From 873494885861271331bf7e51b679f537961f8def Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期三, 18 六月 2025 11:03:57 +0800
Subject: [PATCH] 提交 产品日志文件和其他厂家获取流程卡接口

---
 north-glass-erp/src/main/java/com/example/erp/controller/sd/ProductController.java     |   20 +++---
 north-glass-erp/src/main/java/com/example/erp/entity/sd/Product.java                   |    5 +
 north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProductList.vue                 |    4 
 north-glass-erp/northglass-erp/src/main.js                                             |    5 +
 north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java           |   36 ++++++++++--
 north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java                  |    3 
 north-glass-erp/src/main/java/com/example/erp/entity/sd/ProductDetail.java             |    2 
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java |    6 ++
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java          |   75 +++++++++++++++++++++++--
 9 files changed, 129 insertions(+), 27 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/main.js b/north-glass-erp/northglass-erp/src/main.js
index 354857e..04ade50 100644
--- a/north-glass-erp/northglass-erp/src/main.js
+++ b/north-glass-erp/northglass-erp/src/main.js
@@ -35,8 +35,11 @@
 app.use(pinia)
 app.use(router)
 app.use(ElementPlus,{
-    locale: zhCn,
+    locale: (localStorage.getItem('lang') === 'zh-CN' || null)? zhCn  : null,
 })
+
+
+
 app.use(i18n)
 app.use(print)
 app.use(hiPrintPlugin)
diff --git a/north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProductList.vue b/north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProductList.vue
index 05acd03..970ca16 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProductList.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProductList.vue
@@ -153,7 +153,7 @@
       router.push({path:'/main/product/createProduct',query:{id:row.id}})
       break
     }
-    case 'delete': {
+    /*case 'delete': {
       request.post(`/product/deleteProductById/${row.id}`).then((res) => {
         if(res.code==200){
           router.push({path:"/main/product/selectProduct",query:{random:Math.random()}})
@@ -163,7 +163,7 @@
         if(err==="600")ElMessage.warning(t('product.msg.theProductHasBeenReviewedAndCannotBeDeleted'))
       })
       break
-    }
+    }*/
 
   }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
index 8ece1ca..235d73c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -386,6 +386,12 @@
         return Result.seccess(flowCardService.getProcessCard(processCards));
     }
 
+    @ApiOperation("鑾峰彇娴佺▼鍗℃帴鍙�")
+    @PostMapping("/getProcessCardList/all")
+    public Result getProcessCardAll(@RequestBody Map<String,String> processCards)  {
+        return Result.seccess(flowCardService.getProcessCardAll(processCards));
+    }
+
     @ApiOperation("澶嶉�夋鍒犻櫎娴佺▼鍗�")
     @SaCheckPermission("selectProcessCard.delete")
     @PostMapping("/checkboxDelete")
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/ProductController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/ProductController.java
index 9c108f4..4fa78fa 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/ProductController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/ProductController.java
@@ -39,14 +39,14 @@
 
     @ApiOperation("浜у搧淇濆瓨鎺ュ彛")
     @SaCheckPermission("createProduct.add")
-    @PostMapping("/saveProduct")
-    public Result saveProduct(@RequestBody Map<String,Object> product){
-        return Result.seccess(productService.saveProduct(product));
+    @PostMapping("/saveProduct/{operator}")
+    public Result saveProduct(@PathVariable String operator,@RequestBody Map<String,Object> product){
+        return Result.seccess(productService.saveProduct(product,operator));
     }
     @ApiOperation("鍏朵粬绯荤粺浜у搧淇濆瓨鎺ュ彛")
     @PostMapping("/otherSysSaveProduct")
     public Result otherSysSaveProduct(@RequestBody Map<String,Object> product){
-        return Result.seccess(productService.saveProduct(product));
+        return Result.seccess(productService.saveProduct(product,null));
     }
 
     @ApiOperation("浜у搧鏌ラ噸鎺ュ彛")
@@ -58,16 +58,16 @@
 
     @ApiOperation("浜у搧鍒犻櫎鎺ュ彛")
     @SaCheckPermission("selectProduct.delete")
-    @PostMapping("/deleteProductById/{id}")
-    public Result deleteProductById(@PathVariable Integer id){
-        return Result.seccess(productService.deleteProductById(id));
+    @PostMapping("/deleteProductById/{id}/{operator}")
+    public Result deleteProductById(@PathVariable Integer id,@PathVariable String operator){
+        return Result.seccess(productService.deleteProductById(id,operator));
     }
 
     @ApiOperation("浜у搧瀹℃牳鐘舵�佷慨鏀规帴鍙�")
     @SaCheckPermission("createProduct.review")
-    @PostMapping("/updateProductStateById/{id}/{state}")
-    public Result updateProductStateById(@PathVariable Integer id,@PathVariable Integer state){
-        return Result.seccess(productService.updateProductStateById(id,state));
+    @PostMapping("/updateProductStateById/{id}/{state}/{operator}")
+    public Result updateProductStateById(@PathVariable Integer id,@PathVariable Integer state,@PathVariable String operator){
+        return Result.seccess(productService.updateProductStateById(id,state,operator));
     }
     @ApiOperation("鏍规嵁浜у搧id鏌ヨ浜у搧鎺ュ彛")
     @SaCheckPermission("selectProduct.edit")
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index 48ffb43..580f539 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -114,6 +114,5 @@
     @TableField(select = false,exist= false)
     private OrderGlassDetail orderGlassDetail;
 
-    @TableField(select = false,exist= false)
-    private  Product product;
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/Product.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/Product.java
index dc7fb55..a410944 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/Product.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/Product.java
@@ -3,11 +3,14 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.time.LocalDate;
+import java.util.List;
 
 @Data
+@TableName("sd.`product`")
 public class Product {
     @TableId(type = IdType.AUTO)
     private Long id;
@@ -25,5 +28,7 @@
     private LocalDate updateTime;
     @TableField(select = false)
     private BasicGlassType basicGlassType;
+    @TableField(select = false,exist= false)
+    private List<ProductDetail> ProductDetails;
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/ProductDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/ProductDetail.java
index 2877505..f24622a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/ProductDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/ProductDetail.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 
@@ -11,6 +12,7 @@
 
 
 @Data
+@TableName("sd.`product_detail`")
 public class ProductDetail    {
     @TableId(type = IdType.AUTO)
     private Long id;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index 7872e80..162ce35 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -7,16 +7,14 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.example.erp.common.Constants;
 import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.sd.OrderDetail;
-import com.example.erp.entity.sd.OrderGlassDetail;
-import com.example.erp.entity.sd.OrderProcessDetail;
+import com.example.erp.entity.sd.*;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.pp.FlowCardMapper;
-import com.example.erp.mapper.sd.OrderGlassDetailMapper;
-import com.example.erp.mapper.sd.OrderProcessDetailMapper;
+import com.example.erp.mapper.sd.*;
 import com.example.erp.service.userInfo.LogService;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDate;
@@ -45,12 +43,19 @@
     OrderProcessDetailMapper orderProcessDetailMapper;
     final
     LogService logService;
+    private final ProductMapper productMapper;
+    private final ProductDetailMapper productDetailMapper;
 
-    public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, LogService logService) {
+    private final OrderDetailMapper orderDetailMapper;
+
+    public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, LogService logService, ProductMapper productMapper, ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper) {
         this.flowCardMapper = flowCardMapper;
         this.orderGlassDetailMapper = orderGlassDetailMapper;
         this.orderProcessDetailMapper = orderProcessDetailMapper;
         this.logService = logService;
+        this.productMapper = productMapper;
+        this.productDetailMapper = productDetailMapper;
+        this.orderDetailMapper = orderDetailMapper;
     }
 
     //娴佺▼鍗$鐞嗘煡璇�
@@ -957,6 +962,62 @@
         return flowCardList;
     }
 
+    public Map<String,Object> getProcessCardAll(Map<String, String> processCards) {
+        String processCard = processCards.get("processCard");
+        if (!processCard.contains("/")) {
+            throw new ServiceException(Constants.Code_600, "閿欒鐨勬祦绋嬪崱鍙凤紝璇锋鏌�!");
+        }
+
+        String[] processCardList = processCard.split("/");
+        List<String> result = IntStream.range(0, processCardList[1].length())
+                .mapToObj(i -> String.valueOf(processCardList[1].charAt(i)))
+                .collect(Collectors.toList());
+
+        List<FlowCard> flowCardList = flowCardMapper.selectList(
+                new QueryWrapper<FlowCard>()
+                        .eq("process_id", processCardList[0])
+                        .in("technology_number", result)
+        );
+        for (FlowCard flowCard : flowCardList) {
+            flowCard.setOrderGlassDetail(
+                    orderGlassDetailMapper.selectOne(
+                            new QueryWrapper<OrderGlassDetail>()
+                                    .eq("order_id", flowCard.getOrderId())
+                                    .eq("order_number", flowCard.getOrderNumber())
+                                    .eq("technology_number", flowCard.getTechnologyNumber())
+                    )
+            );
+            String str = flowCard.getOrderGlassDetail().getGlassChild();
+            String delimiter = "mm";
+            int index = str.indexOf(delimiter);
+            Integer subString = Integer.valueOf(str.substring(0, index).trim());
+            flowCard.getOrderGlassDetail().setThickness(subString);
+        }
+        OrderDetail orderDetail = orderDetailMapper
+                .selectOne(new QueryWrapper<OrderDetail>()
+                        .eq("order_id", flowCardList.get(0).getOrderId())
+                        .eq("order_number", flowCardList.get(0).getOrderNumber())
+        );
+        Product product = productMapper
+                .selectOne(new QueryWrapper<Product>()
+                        .eq("id",orderDetail.getProductId()));
+        product.setProductDetails(productDetailMapper
+                .selectList(new QueryWrapper<ProductDetail>()
+                        .eq("prod_id",orderDetail.getProductId())
+                )
+        );
+
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("product",product);
+        map.put("flowCard",flowCardList);
+
+
+
+        return map;
+    }
+
+
     public Boolean checkboxDeleteSv(Map<String, Object> object) {
         String userName = "";
         if (object.get("userName") != null) {
@@ -1257,6 +1318,8 @@
 
         }
     }
+
+
 }
 
 
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 8b5f4b1..915a2cf 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
@@ -9,9 +9,11 @@
 import com.example.erp.common.Constants;
 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,9 +29,12 @@
     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) {
@@ -45,7 +50,7 @@
     }
 
     //浜у搧淇濆瓨鏂规硶
-    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,7 +63,7 @@
         if(getProduct.getId()==null ){
             insertProduct(getProduct,getProductDetails);
         }else{
-            updateProductData(getProductDetails,getProduct);
+            updateProductData(getProductDetails,getProduct,operator);
         }
         return true;
 
@@ -84,13 +89,18 @@
 
     }
 
-    private void updateProductData(List<ProductDetail> getProductDetails, Product getProduct) {
+    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) {
@@ -100,8 +110,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) {
@@ -151,16 +166,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);
     }
 

--
Gitblit v1.8.0