wanghongzhi 2 weeks ago
parent
commit
5d8d1def3d

+ 3 - 0
easydo-core/src/main/java/easydo/technology/components/JdbcClient.java

@@ -1001,6 +1001,9 @@ public class JdbcClient {
             }
             Field idField = model.getClass().getDeclaredField("id");
             idField.setAccessible(true);
+            if (StringUtil.isEmpty(idField.get(model))) {
+                return;
+            }
             String refId = idField.get(model).toString();
 
             List<MinioFile> fileList = minio.getFileList();

+ 93 - 12
easydo-mes/src/main/java/easydo/technology/controller/ProcessRouteController.java

@@ -5,6 +5,7 @@ import easydo.technology.enums.MESEnum;
 import easydo.technology.exception.BizException;
 import easydo.technology.model.ProcessRoute;
 import easydo.technology.model.ProcessRouteDetail;
+import easydo.technology.model.ProcessStage;
 import easydo.technology.service.FlowNoService;
 import easydo.technology.utils.SecurityUtils;
 import easydo.technology.utils.StringUtil;
@@ -17,9 +18,8 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.sql.DataSource;
 import java.sql.Connection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/processRoute")
@@ -47,9 +47,24 @@ public class ProcessRouteController {
                 ProcessRouteDetail routeDetail = new ProcessRouteDetail();
                 routeDetail.setRouteId(model.getId());
                 List<ProcessRouteDetail> routeDetailList = jdbcClient.getJdbcList(routeDetail, connection);
+                for (ProcessRouteDetail detail : routeDetailList) {
+                    ProcessStage stage = new ProcessStage();
+                    stage.setId(detail.getStageId());
+                    stage = jdbcClient.getJdbcModelById(stage, connection);
+                    detail.setStage(stage);
+                }
                 model.setDetailList(routeDetailList);
 
                 jdbcClient.getMinioFile(model, connection);
+
+                ProcessRoute child = new ProcessRoute();
+                child.setParentId(model.getId());
+                int count = jdbcClient.getJdbcCount(child, connection);
+                if (count > 0) {
+                    model.setIsHaveHistory(true);
+                } else {
+                    model.setIsHaveHistory(false);
+                }
             }
             return new ResponseEntity<>(recordsPage, HttpStatus.OK);
         } catch (Exception e) {
@@ -69,6 +84,7 @@ public class ProcessRouteController {
             if (StringUtil.isEmpty(model.getCode())) {
                 model.setCode(flowNoService.getFlowNo(MESEnum.FLOW_NO_TYPE_PROCESS_ROUTE.getValue(), connection));
             }
+            model.setParentId("0");
             model.setStatus(MESEnum.PROCESS_ROUTE_OF_STATUS_ENABLE.getValue());
             jdbcClient.jdbcInsert(model, connection);
 
@@ -94,14 +110,16 @@ public class ProcessRouteController {
             connection.setAutoCommit(false);
             jdbcClient.jdbcUpdateById(model, connection);
 
-            ProcessRouteDetail routeDetail = new ProcessRouteDetail();
-            routeDetail.setRouteId(model.getId());
-            jdbcClient.jdbcRemove(routeDetail, connection);
-
             List<ProcessRouteDetail> detailList = model.getDetailList();
-            for (ProcessRouteDetail detail : detailList) {
-                detail.setRouteId(model.getId());
-                jdbcClient.jdbcInsert(detail, connection);
+            if (null != detailList && !detailList.isEmpty()) {
+                ProcessRouteDetail routeDetail = new ProcessRouteDetail();
+                routeDetail.setRouteId(model.getId());
+                jdbcClient.jdbcRemove(routeDetail, connection);
+
+                for (ProcessRouteDetail detail : detailList) {
+                    detail.setRouteId(model.getId());
+                    jdbcClient.jdbcInsert(detail, connection);
+                }
             }
             connection.commit();
             return new ResponseEntity<>(model, HttpStatus.OK);
@@ -124,6 +142,17 @@ public class ProcessRouteController {
             routeDetail.setRouteId(model.getId());
             jdbcClient.jdbcRemove(routeDetail, connection);
 
+            ProcessRoute history = new ProcessRoute();
+            history.setParentId(model.getId());
+            List<ProcessRoute> historyList = jdbcClient.getJdbcList(history, connection);
+            for (ProcessRoute hismodel : historyList) {
+                jdbcClient.jdbcRemoveById(hismodel, connection);
+
+                ProcessRouteDetail routeHisDetail = new ProcessRouteDetail();
+                routeHisDetail.setRouteId(hismodel.getId());
+                jdbcClient.jdbcRemove(routeHisDetail, connection);
+            }
+
             connection.commit();
             return new ResponseEntity<>(model, HttpStatus.OK);
         } catch (Exception e) {
@@ -139,12 +168,27 @@ public class ProcessRouteController {
         Connection connection = dataSource.getConnection();
         try {
             connection.setAutoCommit(false);
+            String newId = UUID.randomUUID().toString();
+
+            ProcessRoute existRoute = new ProcessRoute();
+            existRoute.setId(model.getId());
+            existRoute.setParentId(newId);
+            existRoute.setStatus(MESEnum.PROCESS_ROUTE_OF_STATUS_DISABLE.getValue());
+            jdbcClient.jdbcUpdateById(existRoute, connection);
+
+            ProcessRoute childrenRoute = new ProcessRoute();
+            childrenRoute.setParentId(newId);
+            Map<String, Object> paramMap = new HashMap<>();
+            paramMap.put("parentId", model.getId());
+            jdbcClient.jdbcUpdate(childrenRoute, paramMap, connection);
+
             model.setCreateId(SecurityUtils.getCurrentUserId());
             if (StringUtil.isEmpty(model.getCode())) {
                 model.setCode(flowNoService.getFlowNo(MESEnum.FLOW_NO_TYPE_PROCESS_ROUTE.getValue(), connection));
             }
-            model.setParentId(model.getId());
-            model.setId(UUID.randomUUID().toString());
+            model.setParentId("0");
+            model.setId(newId);
+            model.setStatus(MESEnum.PROCESS_ROUTE_OF_STATUS_ENABLE.getValue());
             jdbcClient.jdbcInsert(model, connection);
 
             List<ProcessRouteDetail> detailList = model.getDetailList();
@@ -161,4 +205,41 @@ public class ProcessRouteController {
             connection.close();
         }
     }
+
+    @RequestMapping(value = "/regrade")
+    public Object regrade(@RequestBody ProcessRoute model) throws Exception {
+        Connection connection = dataSource.getConnection();
+        try {
+            connection.setAutoCommit(false);
+            ProcessRoute children = new ProcessRoute();
+            children.setParentId(model.getId());
+            List<ProcessRoute> childrenList = jdbcClient.getJdbcList(children, connection);
+            if (!childrenList.isEmpty()) {
+                childrenList = childrenList.stream().sorted(Comparator.comparing(ProcessRoute::getCreateTime).reversed()).collect(Collectors.toList());
+                ProcessRoute child = childrenList.get(0);
+                child.setParentId("0");
+                jdbcClient.jdbcUpdateById(child, connection);
+
+                ProcessRoute childrenRoute = new ProcessRoute();
+                childrenRoute.setParentId(child.getId());
+                Map<String, Object> paramMap = new HashMap<>();
+                paramMap.put("parentId", model.getId());
+                jdbcClient.jdbcUpdate(childrenRoute, paramMap, connection);
+
+                jdbcClient.jdbcRemoveById(model, connection);
+
+                ProcessRouteDetail routeDetail = new ProcessRouteDetail();
+                routeDetail.setRouteId(model.getId());
+                jdbcClient.jdbcRemove(routeDetail, connection);
+            }
+            connection.commit();
+            return new ResponseEntity<>(model, HttpStatus.OK);
+        } catch (Exception e) {
+            connection.rollback();
+            throw new BizException(e.getMessage());
+        } finally {
+            connection.close();
+        }
+    }
+
 }

+ 3 - 0
easydo-mes/src/main/java/easydo/technology/model/ProcessRoute.java

@@ -20,7 +20,10 @@ public class ProcessRoute extends CommonModel {
     private Long createId;
     private String status;
     private String remark;
+    private String version;
 
     @NotTableField
     private List<ProcessRouteDetail> detailList;
+    @NotTableField
+    private Boolean isHaveHistory;
 }

+ 4 - 1
easydo-mes/src/main/java/easydo/technology/model/ProcessRouteDetail.java

@@ -1,12 +1,12 @@
 package easydo.technology.model;
 
 import easydo.technology.annotation.Minio;
+import easydo.technology.annotation.NotTableField;
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
-@Minio
 public class ProcessRouteDetail {
     private String id;
     private String routeId;
@@ -21,4 +21,7 @@ public class ProcessRouteDetail {
     private Boolean isReport;
     private Boolean isRound;
     private String remark;
+
+    @NotTableField
+    private ProcessStage stage;
 }

+ 20 - 0
easydo-mes/src/main/java/easydo/technology/model/ProductBom.java

@@ -0,0 +1,20 @@
+package easydo.technology.model;
+
+import lombok.Data;
+
+@Data
+public class ProductBom {
+    private String id;
+    private String name;
+    private String code;
+    private String specification;
+    private String category;
+    private String unit;
+    private String createTime;
+    private Long createId;
+    private String status;
+    private String version;
+    private String productType;
+
+
+}

+ 12 - 0
easydo-mes/src/main/java/easydo/technology/model/ProductBomDetail.java

@@ -0,0 +1,12 @@
+package easydo.technology.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ProductBomDetail {
+    private String id;
+    private String bomId;
+    private BigDecimal number;
+}