From 4086570d2a4091c86e6fad35a0c36c8963cdf415 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 24 十一月 2025 14:56:26 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java |   83 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 73 insertions(+), 10 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
index 0d88662..319c357 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java
@@ -7,11 +7,14 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.example.erp.common.Constants;
+import com.example.erp.dto.sd.OrderSearchDTO;
 import com.example.erp.entity.sd.Product;
 import com.example.erp.entity.sd.ProductDetail;
+import com.example.erp.entity.userInfo.Log;
 import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.sd.ProductDetailMapper;
 import com.example.erp.mapper.sd.ProductMapper;
+import com.example.erp.service.userInfo.LogService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -27,25 +30,41 @@
     private final
     ProductDetailMapper productDetailMapper;
 
-    public ProductService(ProductMapper productMapper, ProductDetailMapper productDetailMapper) {
+    private final LogService logService;
+
+    public ProductService(ProductMapper productMapper, ProductDetailMapper productDetailMapper, LogService logService) {
         this.productMapper = productMapper;
         this.productDetailMapper = productDetailMapper;
+        this.logService = logService;
     }
     //浜у搧鏌ヨ鏂规硶
-    public Map<String,Object> defaultDateProduct(Integer pageNum, Integer pageSize, List<String> glassType, Product product) {
+    public Map<String,Object> defaultDateProduct(Integer pageNum, Integer pageSize, List<String> glassType,Map<String,Object> config) {
         Integer offset = (pageNum-1)*pageSize;
         String glassTypeId = null;
-        if(glassType.size()>1){
-            glassTypeId = glassType.get(1);
+        if(glassType.size()==2){
+            if(!Objects.equals(glassType.get(0), "")&&!Objects.equals(glassType.get(1), "")){
+                glassTypeId = glassType.get(1);
+            }
+        }else if(glassType.size()==1){
+            if(!Objects.equals(glassType.get(0), "")&& !Objects.equals(glassType.get(0), "undefined")){
+                glassTypeId = glassType.get(0);
+            }
+
         }
+        JSONObject orderJson = new JSONObject(config);
+        Product product = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("filter")), Product.class);
+        Map<String,String> sortDate = (Map<String, String>) config.get("sort");
+        String field = sortDate.get("field").replaceAll("(?<!^)([A-Z])", "_$1").toLowerCase();
+        String orderBy = sortDate.get("order");
+
         Map<String,Object> map = new HashMap<>();
-        map.put("data",productMapper.defaultProduct(offset,pageSize,glassTypeId,product));
+        map.put("data",productMapper.defaultProduct(offset,pageSize,glassTypeId,product,field, orderBy));
         map.put("total",productMapper.getPageTotal(offset,pageSize,glassTypeId,product));
         return map;
     }
 
     //浜у搧淇濆瓨鏂规硶
-    public boolean saveProduct(Map<String,Object>  productObject) {
+    public boolean saveProduct(Map<String,Object>  productObject, String operator) {
         //鎶婁紶鍏ヤ富闄勮〃鐨刼bject绫诲瀷杞崲鎴愬疄浣撶被绫诲瀷
         JSONObject productJson = new JSONObject(productObject);
         Product product = JSONObject.parseObject(JSONObject.toJSONString(productJson.get("title")), Product.class);
@@ -58,19 +77,44 @@
         if(getProduct.getId()==null ){
             insertProduct(getProduct,getProductDetails);
         }else{
-            updateProductData(getProductDetails,getProduct);
+            updateProductData(getProductDetails,getProduct,operator);
         }
         return true;
 
     }
 
-    private void updateProductData(List<ProductDetail> getProductDetails, Product getProduct) {
+    public Map<String,Object> selectProduct(String productName,Map<String,Object>  productObject) {
+        Map<String,Object> map = new HashMap<>();
+        //鎶婁紶鍏ヤ富闄勮〃鐨刼bject绫诲瀷杞崲鎴愬疄浣撶被绫诲瀷
+        JSONObject productJson = new JSONObject(productObject);
+        Product product = JSONObject.parseObject(JSONObject.toJSONString(productJson.get("title")), Product.class);
+        List<ProductDetail> productDetails = JSONArray.parseArray(JSONObject.toJSONString(productJson.get("detail")), ProductDetail.class);
+        //瀹屽杽涓婚檮琛ㄤ俊鎭苟杩斿洖
+        Map<String,Object> getProductJson = updateProduct(productDetails,product);
+        Product getProduct = JSONObject.parseObject(JSONObject.toJSONString(getProductJson.get("title")), Product.class);
+        List<ProductDetail> getProductDetails = JSONArray.parseArray(JSONObject.toJSONString(getProductJson.get("detail")), ProductDetail.class);
+        if(getProduct.getId()!=null){
+            map.put("data",productMapper.selectProductId(productName,getProduct.getProductAbbreviation(), getProduct.getId()));
+        }else{
+            map.put("data",productMapper.selectProduct(productName,getProduct.getProductAbbreviation()));
+        }
+
+        return map;
+
+    }
+
+    private void updateProductData(List<ProductDetail> getProductDetails, Product getProduct, String operator) {
         productMapper.update(getProduct,new UpdateWrapper<Product>().eq("id",getProduct.getId()));
         productDetailMapper.delete(new QueryWrapper<ProductDetail>().eq("prod_id",getProduct.getId()));
         for (ProductDetail getProductDetail : getProductDetails) {
             getProductDetail.setProdId(getProduct.getId());
         }
         productDetailMapper.insertList(getProductDetails);
+        Log log = new Log();
+        log.setOperator(operator);
+        log.setContent(getProductDetails.toString()+getProduct.toString());
+        log.setFunction("浜у搧淇敼:saveProduct"+getProduct.getId());
+        logService.saveLog(log);
     }
 
     private void insertProduct(Product getProduct, List<ProductDetail> getProductDetails) {
@@ -80,8 +124,13 @@
         for (ProductDetail getProductDetail : getProductDetails) {
             getProductDetail.setProdId(getProduct.getId());
         }
+
         //鎻掑叆鍓〃
         productDetailMapper.insertList(getProductDetails);
+        Log log = new Log();
+        log.setOperator(getProduct.getCreator());
+        log.setFunction("浜у搧鍒涘缓:saveProduct"+getProduct.getId());
+        logService.saveLog(log);
     }
 
     private Map<String,Object> updateProduct(List<ProductDetail> productDetailList,Product product) {
@@ -131,16 +180,25 @@
         return map;
     }
 
-    public boolean deleteProductById(Integer id) {
+    public boolean deleteProductById(Integer id, String operator) {
         Product product = productMapper.selectById(id);
         if(product.getState()==1){
             throw new ServiceException(Constants.Code_600,"浜у搧宸插鏍�,鏃犳硶鍒犻櫎");
         }
         productMapper.deleteById(id);
+        Log log = new Log();
+        log.setOperator(operator);
+        log.setFunction("浜у搧鍒犻櫎:deleteProductById"+id);
+        logService.saveLog(log);
         return true;
     }
 
-    public boolean updateProductStateById(Integer id,Integer state) {
+    public boolean updateProductStateById(Integer id, Integer state, String operator) {
+        Log log = new Log();
+        log.setOperator(operator);
+        log.setContent(state+state==0?"鍙嶅":"瀹℃牳");
+        log.setFunction("浜у搧瀹℃牳鍙嶅:updateProductStateById"+id);
+        logService.saveLog(log);
        return productMapper.updateProductStateById(id,state);
     }
 
@@ -153,4 +211,9 @@
         map.put("detail",productDetailList);
         return map;
     }
+
+    public List<Product> otherSysGetProduct() {
+        return productMapper.selectList(new QueryWrapper<Product>().eq("state",1)
+                .orderByDesc("id"));
+    }
 }

--
Gitblit v1.8.0