billion-admin/src/main/resources/application-druid.yml
@@ -6,9 +6,12 @@ # 主åºæ°æ®æº master: driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://183.134.244.158:1433;DatabaseName=billion-db # url: jdbc:sqlserver://183.134.244.158:1433;DatabaseName=billion-db # username: sa # password: JCDM@2023 url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=billion-db username: sa password: JCDM@2023 password: 123456 # password: admin@123 # åå§è¿æ¥æ° initialSize: 10 billion-main/src/main/java/com/billion/main/api/RestfulAPI.java
@@ -25,7 +25,7 @@ * 1ãå·¥åMESè°ç¨æ¥æ¶å·¥åæ¥å£ï¼å°å·¥åä¿¡æ¯åéç»äº§çº¿MES * 2ã产线MESå°æ¥æ¶å°çå·¥åä¿¡æ¯åå ¥å°å·¥å表åBOM表 */ @GetMapping("/receiveWorkOrdersInfo") @PostMapping("/receiveWorkOrdersInfo") public ApiResponse receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo workOrdersInfo) { try { // è°ç¨serviceå±ä¿åæ°æ® billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java
@@ -18,7 +18,7 @@ private String startTime; private String description; private String state; private String fLAG; private String flag; private String bomName; private List<WorkOrdersInfoChild> data; billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java
@@ -4,7 +4,7 @@ @Data public class WorkOrdersInfoChild { private String BomName; // æ·»å BomNameå段ç¨äºå ³è private String bomName; // æ·»å BomNameå段ç¨äºå ³è private String stationName; private String material; private String count; billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java
@@ -2,6 +2,7 @@ import com.billion.main.api.domain.WorkOrdersInfo; public interface IWorkOrdersInfoService { boolean saveWorkOrders(WorkOrdersInfo workOrdersInfo); } billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java
@@ -40,6 +40,9 @@ try { //ä¿åå·¥åä¿¡æ¯ OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo(); omProductionOrderInfo.setBodyQty(Long.valueOf("0")); omProductionOrderInfo.setHeadQty(Long.valueOf("0")); omProductionOrderInfo.setPreQty(Long.valueOf("0")); omProductionOrderInfo.setWorkOrderNo(workOrdersInfo.getOrderNumber()); omProductionOrderInfo.setSalesOrderCode(workOrdersInfo.getBatchNumber()); omProductionOrderInfo.setProductCode(workOrdersInfo.getMaterialNumber()); @@ -49,17 +52,16 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = sdf.parse(workOrdersInfo.getStartTime()); omProductionOrderInfo.setPlanStartTime(startTime); omProductionOrderInfo.setRemarks(Long.valueOf(workOrdersInfo.getDescription())); // omProductionOrderInfo.setRemarks(Long.valueOf(workOrdersInfo.getDescription())); omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState()); omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG()); omProductionOrderInfoService.save(omProductionOrderInfo); omProductionOrderInfo.setFlag(workOrdersInfo.getFlag()); omProductionOrderInfoService.insertOmProductionOrderInfo(omProductionOrderInfo); //ä¿åBOMä¸»è¡¨ä¿¡æ¯ BsBomInfo bsBomInfo = new BsBomInfo(); bsBomInfo.setBomCode(workOrdersInfo.getBomName()); bsBomInfo.setBomName(workOrdersInfo.getBomName()); bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber()); bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber()); bsBomInfoService.save(bsBomInfo); bsBomInfoService.insertBsBomInfo(bsBomInfo); //ä¿åBOMåè¡¨ä¿¡æ¯ List<WorkOrdersInfoChild> childList = workOrdersInfo.getData(); for (WorkOrdersInfoChild child : childList) { @@ -73,7 +75,7 @@ bsBomChildInfo.setCostQty(child.getCount()); bsBomChildInfo.setChecked(child.getChecked()); bsBomChildInfo.setMaterialName(child.getMaterialName()); bsBomChildInfoService.save(bsBomChildInfo); bsBomChildInfoService.insertBsBomChildInfo(bsBomChildInfo); } return true; } catch (Exception e) { billion-main/src/main/java/com/billion/main/constant/Constants.java
@@ -11,63 +11,85 @@ public static final String RecordData= "RecordData"; public static final String WorkOrderRequest= "WorkOrderRequest"; public static final List<String> PLC = new ArrayList<>(); public static final List<String> PLC1 = new ArrayList<>(); public static final List<String> PLC2 = new ArrayList<>(); public static final List<String> PLC3 = new ArrayList<>(); public static final List<String> PLC4 = new ArrayList<>(); public static final String C005= "C005"; public static final List<String> ONLINE = new ArrayList<>(); public static final List<String> OFFLINE = new ArrayList<>(); //PLC1 public static final String C005= "C005";//缸çä¸çº¿å·¥ä½ public static final String C010= "C010"; public static final String C020= "C020"; public static final String C030= "C030"; public static final String C050= "C050"; public static final String C060= "C060"; public static final String C070= "C070"; public static final String C070= "C070";//缸çä¸çº¿å·¥ä½ public static final String P010= "P010"; public static final String P020= "P020"; public static final String P030= "P030"; public static final String OP005= "OP005"; //PLC2 public static final String OP005= "OP005";//缸ä½ä¸çº¿å·¥ä½ public static final String OP010= "OP010"; public static final String OP020= "OP020"; public static final String OP040= "OP040"; public static final String OP045= "OP045"; public static final String OP060= "OP060"; public static final String OP070= "OP070"; public static final String OP075= "OP075"; public static final String OP080= "OP080"; public static final String OP090= "OP090"; public static final String OP095= "OP095"; public static final String OP100= "OP100"; public static final String OP095_1= "OP095-1"; public static final String OP095_2= "OP095-2"; public static final String OP100_1= "OP100-1"; public static final String OP100_2= "OP100-2"; public static final String OP120= "OP120"; public static final String P010= "P010";//é¢è£ ä¸çº¿å·¥ä½//é¢è£ ä¸çº¿å·¥ä½ //PLC3 public static final String OP130= "OP130"; public static final String OP145= "OP145"; public static final String OP150= "OP150"; public static final String OP145_1= "OP145-1"; public static final String OP145_2= "OP145-2"; public static final String OP150_1= "OP150-1"; public static final String OP150_2= "OP150-2"; public static final String OP160= "OP160"; public static final String OP165= "OP165"; public static final String OP170= "OP170"; public static final String OP165_1= "OP165-1"; public static final String OP165_2= "OP165-2"; public static final String OP170_1= "OP170-1"; public static final String OP170_2= "OP170-2"; public static final String OP180= "OP180"; public static final String OP190= "OP190"; public static final String OP200= "OP200"; public static final String OP210= "OP210"; public static final String OP220= "OP220"; public static final String OP230= "OP230"; public static final String OP240= "OP240"; public static final String OP250= "OP250"; public static final String OP260= "OP260"; public static final String OP270= "OP270"; public static final String OP190_1= "OP190-1"; public static final String OP190_2= "OP190-2"; public static final String OP200_1= "OP200-1"; public static final String OP200_2= "OP200-2"; public static final String OP210_1= "OP210-1"; public static final String OP210_2= "OP210-2"; public static final String OP220_1= "OP220-1"; public static final String OP220_2= "OP220-2"; public static final String OP230_1= "OP230-1"; public static final String OP230_2= "OP230-2"; public static final String OP240_1= "OP240-1"; public static final String OP240_2= "OP240-2"; public static final String OP250_1= "OP250-1"; public static final String OP250_2= "OP250-2"; public static final String OP260_1= "OP260-1"; public static final String OP260_2= "OP260-2"; public static final String OP270_1= "OP270-1"; public static final String OP270_2= "OP270-2"; public static final String OP275= "OP275"; public static final String OP280= "OP280"; public static final String OP290= "OP290"; public static final String OP290_1= "OP290-1"; public static final String OP290_2= "OP290-2"; public static final String OP295= "OP295"; public static final String OP300= "OP300"; public static final String OP310= "OP310"; public static final String OP310= "OP310"; //缸ä½ä¸çº¿å·¥ä½ //PLC4 public static final String C040= "C040"; public static final String OP030= "OP030"; public static final String OP050= "OP050"; public static final String OP070= "OP070"; public static final String OP110= "OP110"; public static final String OP140= "OP140"; } billion-main/src/main/java/com/billion/main/om/domain/OmOrderScheduling.java
@@ -55,4 +55,8 @@ @Excel(name = "å¤æ³¨") private String remarks; /** å½å订åå·²ä¸çº¿æ°é */ @Excel(name = "å½å订åå·²ä¸çº¿æ°é") private Long nowQty; } billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java
@@ -39,6 +39,15 @@ /** 计åæ°é */ @Excel(name = "计åæ°é") private Long planQty; /** 计åæ°é */ @Excel(name = "缸ä½æ°é") private Long bodyQty; /** 计åæ°é */ @Excel(name = "缸çæ°é") private Long headQty; /** 计åæ°é */ @Excel(name = "é¢è£ æ°é") private Long preQty; /** 计åå¼å§æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -54,9 +63,19 @@ @Excel(name = "å·¥åç¶æ", readConverterExp = "1=æªå¼å§,2=ç产ä¸,3=å·²å®æ,4=å·²å ³é") private String orderStatus; /** å·¥åç¶æï¼1æªå¼å§2ç产ä¸3å·²å®æ4å·²å ³éï¼ */ @Excel(name = "å·¥å缸ä½ç¶æ", readConverterExp = "1=æªå¼å§,2=ç产ä¸,3=å·²å®æ,4=å·²å ³é") private String bodyStatus; /** å·¥åç¶æï¼1æªå¼å§2ç产ä¸3å·²å®æ4å·²å ³éï¼ */ @Excel(name = "å·¥å缸çç¶æ", readConverterExp = "1=æªå¼å§,2=ç产ä¸,3=å·²å®æ,4=å·²å ³é") private String headStatus; /** å·¥åç¶æï¼1æªå¼å§2ç产ä¸3å·²å®æ4å·²å ³éï¼ */ @Excel(name = "å·¥åé¢è£ ç¶æ", readConverterExp = "1=æªå¼å§,2=ç产ä¸,3=å·²å®æ,4=å·²å ³é") private String preStatus; /** å¤æ³¨ */ @Excel(name = "å¤æ³¨") private Long remarks; private String remarks; /** åå¨æºåå· */ @Excel(name = "åå¨æºåå·") billion-main/src/main/java/com/billion/main/om/mapper/OmProductionOrderInfoMapper.java
@@ -15,15 +15,21 @@ public interface OmProductionOrderInfoMapper extends BaseMapper<OmProductionOrderInfo> { // æ¥è¯¢ order_status 为 1 ä¸ plan_start_time ææ©çä¸æ¡è®°å½ public OmProductionOrderInfo selectEarliestOrder(); public OmProductionOrderInfo selectEarliestOrder2(); public OmProductionOrderInfo getSerialNumber(); public OmProductionOrderInfo updateSerialNumber(); public OmProductionOrderInfo updateYear(); public OmProductionOrderInfo updateOrderStatus5(); public OmProductionOrderInfo getBodyOrder(); public OmProductionOrderInfo updateOrderStatus2(); public OmProductionOrderInfo updateBodyStatus2(); public OmProductionOrderInfo updateBodyStatus1(); public OmProductionOrderInfo getHeadOrder(); public OmProductionOrderInfo updateHeadStatus2(); public OmProductionOrderInfo updateHeadStatus1(); public OmProductionOrderInfo getPreOrder(); public OmProductionOrderInfo updatePreStatus2(); public OmProductionOrderInfo updatePreStatus1(); billion-main/src/main/java/com/billion/main/om/service/IOmProductionOrderInfoService.java
@@ -14,13 +14,18 @@ */ public interface IOmProductionOrderInfoService extends IService<OmProductionOrderInfo> { public OmProductionOrderInfo getEarliestOrder(); public OmProductionOrderInfo getEarliestOrder2(); public OmProductionOrderInfo getSerialNumber(); public OmProductionOrderInfo updateSerialNumber(); public OmProductionOrderInfo updateYear(); public OmProductionOrderInfo updateOrderStatus5(); public OmProductionOrderInfo updateOrderStatus2(); public OmProductionOrderInfo getBodyOrder(); public OmProductionOrderInfo updateBodyStatus2(); public OmProductionOrderInfo updateBodyStatus1(); public OmProductionOrderInfo getHeadOrder(); public OmProductionOrderInfo updateHeadStatus2(); public OmProductionOrderInfo updateHeadStatus1(); public OmProductionOrderInfo getPreOrder(); public OmProductionOrderInfo updatePreStatus2(); public OmProductionOrderInfo updatePreStatus1(); billion-main/src/main/java/com/billion/main/om/service/impl/OmProductionOrderInfoServiceImpl.java
@@ -29,34 +29,49 @@ @Override public OmProductionOrderInfo getEarliestOrder() public OmProductionOrderInfo getBodyOrder() { return OmProductionOrderInfoMapper.selectEarliestOrder(); return OmProductionOrderInfoMapper.getBodyOrder(); } @Override public OmProductionOrderInfo updateBodyStatus2() {return OmProductionOrderInfoMapper.updateBodyStatus2();} @Override public OmProductionOrderInfo updateBodyStatus1() { return OmProductionOrderInfoMapper.updateBodyStatus1(); } @Override public OmProductionOrderInfo getEarliestOrder2() {return OmProductionOrderInfoMapper.selectEarliestOrder2();} @Override public OmProductionOrderInfo getSerialNumber() public OmProductionOrderInfo getHeadOrder() { return OmProductionOrderInfoMapper.getSerialNumber(); return OmProductionOrderInfoMapper.getHeadOrder(); } @Override public OmProductionOrderInfo updateHeadStatus2() {return OmProductionOrderInfoMapper.updateHeadStatus2();} @Override public OmProductionOrderInfo updateHeadStatus1() { return OmProductionOrderInfoMapper.updateHeadStatus1(); } @Override public OmProductionOrderInfo updateSerialNumber() {return OmProductionOrderInfoMapper.updateSerialNumber();} @Override public OmProductionOrderInfo updateYear() {return OmProductionOrderInfoMapper.updateYear();} @Override public OmProductionOrderInfo updateOrderStatus5() public OmProductionOrderInfo getPreOrder() { return OmProductionOrderInfoMapper.updateOrderStatus5(); return OmProductionOrderInfoMapper.getPreOrder(); } @Override public OmProductionOrderInfo updateOrderStatus2() public OmProductionOrderInfo updatePreStatus2() {return OmProductionOrderInfoMapper.updatePreStatus2();} @Override public OmProductionOrderInfo updatePreStatus1() { return OmProductionOrderInfoMapper.updateOrderStatus2(); return OmProductionOrderInfoMapper.updatePreStatus1(); } /** * æ¥è¯¢ç产工å * billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
@@ -9,6 +9,7 @@ import com.billion.main.om.service.IOmOrderSchedulingService; import com.billion.main.om.service.IOmProductionOrderInfoService; import com.billion.main.plcServer.sub.OPCUaSubscription; import com.billion.main.sys.service.ISysCountService; import com.kangaroohy.milo.service.MiloService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -38,62 +39,85 @@ public IDaCollectionParamConfService daCollectionParamConfService; @Autowired public IDaMaterialCollectionService daMaterialCollectionService; @Autowired public ISysCountService sysCountService; @Override public void run(ApplicationArguments args) throws Exception { //第ä¸æ¹è®¾å¤ Constants.PLC.add(Constants.C040); Constants.PLC.add(Constants.OP030); Constants.PLC.add(Constants.OP050); Constants.PLC.add(Constants.OP070); Constants.PLC.add(Constants.OP110); Constants.PLC.add(Constants.OP140); //PLC1è®¾å¤ Constants.PLC.add(Constants.C010); Constants.PLC.add(Constants.C020); Constants.PLC.add(Constants.C030); Constants.PLC.add(Constants.C060); Constants.PLC.add(Constants.C070); //PLC2è®¾å¤ Constants.PLC.add(Constants.P010); Constants.PLC.add(Constants.P020); Constants.PLC.add(Constants.P030); Constants.PLC.add(Constants.OP005); Constants.PLC.add(Constants.OP010); Constants.PLC.add(Constants.OP020); Constants.PLC.add(Constants.OP040); Constants.PLC.add(Constants.OP045); Constants.PLC.add(Constants.OP060); Constants.PLC.add(Constants.OP075); Constants.PLC.add(Constants.OP080); Constants.PLC.add(Constants.OP090); Constants.PLC.add(Constants.OP095); Constants.PLC.add(Constants.OP100); Constants.PLC.add(Constants.OP120); //PLC3è®¾å¤ Constants.PLC.add(Constants.OP130); Constants.PLC.add(Constants.OP145); Constants.PLC.add(Constants.OP150); Constants.PLC.add(Constants.OP160); Constants.PLC.add(Constants.OP165); Constants.PLC.add(Constants.OP170); Constants.PLC.add(Constants.OP180); Constants.PLC.add(Constants.OP190); Constants.PLC.add(Constants.OP200); Constants.PLC.add(Constants.OP210); Constants.PLC.add(Constants.OP220); Constants.PLC.add(Constants.OP230); Constants.PLC.add(Constants.OP240); Constants.PLC.add(Constants.OP250); Constants.PLC.add(Constants.OP260); Constants.PLC.add(Constants.OP270); Constants.PLC.add(Constants.OP275); Constants.PLC.add(Constants.OP280); Constants.PLC.add(Constants.OP290); Constants.PLC.add(Constants.OP295); Constants.PLC.add(Constants.OP300); // //PLC1设å¤//ææ¥ä¸ä¸çº¿ Constants.PLC1.add(Constants.C010); Constants.PLC1.add(Constants.C020); Constants.PLC1.add(Constants.C030); Constants.PLC1.add(Constants.C050); Constants.PLC1.add(Constants.C060); //PLC2设å¤//ææ¥ä¸ä¸çº¿ Constants.PLC2.add(Constants.OP005); Constants.PLC2.add(Constants.OP010); Constants.PLC2.add(Constants.OP020); Constants.PLC2.add(Constants.OP040); Constants.PLC2.add(Constants.OP045); Constants.PLC2.add(Constants.OP060); Constants.PLC2.add(Constants.OP070); Constants.PLC2.add(Constants.OP075); Constants.PLC2.add(Constants.OP080); Constants.PLC2.add(Constants.OP090); Constants.PLC2.add(Constants.OP095_1); Constants.PLC2.add(Constants.OP095_2); Constants.PLC2.add(Constants.OP100_1); Constants.PLC2.add(Constants.OP100_2); Constants.PLC2.add(Constants.OP120); //PLC3设å¤//ææ¥ä¸ä¸çº¿ Constants.PLC3.add(Constants.OP130); Constants.PLC3.add(Constants.OP145_1); Constants.PLC3.add(Constants.OP145_2); Constants.PLC3.add(Constants.OP150_1); Constants.PLC3.add(Constants.OP150_2); Constants.PLC3.add(Constants.OP160); Constants.PLC3.add(Constants.OP165_1); Constants.PLC3.add(Constants.OP165_2); Constants.PLC3.add(Constants.OP170_1); Constants.PLC3.add(Constants.OP170_2); Constants.PLC3.add(Constants.OP180); Constants.PLC3.add(Constants.OP190_1); Constants.PLC3.add(Constants.OP190_2); Constants.PLC3.add(Constants.OP200_1); Constants.PLC3.add(Constants.OP200_2); Constants.PLC3.add(Constants.OP210_1); Constants.PLC3.add(Constants.OP210_2); Constants.PLC3.add(Constants.OP220_1); Constants.PLC3.add(Constants.OP220_2); Constants.PLC3.add(Constants.OP230_1); Constants.PLC3.add(Constants.OP230_2); Constants.PLC3.add(Constants.OP240_1); Constants.PLC3.add(Constants.OP240_2); Constants.PLC3.add(Constants.OP250_1); Constants.PLC3.add(Constants.OP250_2); Constants.PLC3.add(Constants.OP260_1); Constants.PLC3.add(Constants.OP260_2); Constants.PLC3.add(Constants.OP270_1); Constants.PLC3.add(Constants.OP270_2); Constants.PLC3.add(Constants.OP275); Constants.PLC3.add(Constants.OP280); Constants.PLC3.add(Constants.OP290_1); Constants.PLC3.add(Constants.OP290_2); Constants.PLC3.add(Constants.OP295); Constants.PLC3.add(Constants.OP300); Constants.PLC3.add(Constants.OP310); //PLC4//ææ¥ä¸ä¸çº¿ Constants.PLC4.add(Constants.C040); Constants.PLC4.add(Constants.OP030); Constants.PLC4.add(Constants.OP050); Constants.PLC4.add(Constants.OP110); Constants.PLC4.add(Constants.OP140); //ä¸çº¿å·¥ä½ Constants.ONLINE.add(Constants.C005); Constants.ONLINE.add(Constants.OP005); //ä¸çº¿å·¥ä½ Constants.OFFLINE.add(Constants.C070); Constants.OFFLINE.add(Constants.OP310); Constants.OFFLINE.add(Constants.P010); OPCUaSubscription OPCUaSubscription = new OPCUaSubscription(miloService, daParamCollectionService, @@ -102,7 +126,8 @@ omOrderSchedulingService, bsBomChildInfoService, daCollectionParamConfService, daMaterialCollectionService); daMaterialCollectionService, sysCountService); List<String> lists = getList(); System.out.println("订é å 容ï¼"+lists); @@ -112,10 +137,80 @@ public List<String> getList(){ List<String> lists = new ArrayList<>(); lists.add("PLC1.C005.RecordData");//请æ±ä¿å lists.add("PLC1.C005.WorkOrderRequest");//请æ±ä¿å lists.add("PLC1.OP010.RecordData");//请æ±ä¿å lists.add("PLC1.A1.RecordData");//请æ±ä¿å //PLC1 lists.add("PLC1.C005.RecordData"); lists.add("PLC1.C005.WorkOrderRequest");//请æ±å·¥å lists.add("PLC1.C010.RecordData"); lists.add("PLC1.C020.RecordData"); lists.add("PLC1.C030.RecordData"); lists.add("PLC1.C050.RecordData"); lists.add("PLC1.C060.RecordData"); lists.add("PLC1.C070.RecordData"); //PLC2 lists.add("PLC2.OP005.RecordData"); lists.add("PLC2.OP010.WorkOrderRequest");//请æ±å·¥å lists.add("PLC2.OP020.RecordData"); lists.add("PLC2.OP040.RecordData"); lists.add("PLC2.OP045.RecordData"); lists.add("PLC2.OP060.RecordData"); lists.add("PLC2.OP070.RecordData"); lists.add("PLC2.OP075.RecordData"); lists.add("PLC2.OP080.RecordData"); lists.add("PLC2.OP090.RecordData"); lists.add("PLC2.OP095-1.RecordData"); lists.add("PLC2.OP095-2.RecordData"); lists.add("PLC2.OP100-1.RecordData"); lists.add("PLC2.OP100-2.RecordData"); lists.add("PLC2.OP120.RecordData"); lists.add("PLC2.P010.RecordData"); lists.add("PLC2.P010.WorkOrderRequest");//请æ±å·¥å //PLC3 lists.add("PLC3.OP130.RecordData"); lists.add("PLC3.OP145-1.RecordData"); lists.add("PLC3.OP145-2.RecordData"); lists.add("PLC3.OP150-1.RecordData"); lists.add("PLC3.OP150-2.RecordData"); lists.add("PLC3.OP160.RecordData"); lists.add("PLC3.OP165-1.RecordData"); lists.add("PLC3.OP165-2.RecordData"); lists.add("PLC3.OP170-1.RecordData"); lists.add("PLC3.OP170-2.RecordData"); lists.add("PLC3.OP180.RecordData"); lists.add("PLC3.OP190-1.RecordData"); lists.add("PLC3.OP190-2.RecordData"); lists.add("PLC3.OP200-1.RecordData"); lists.add("PLC3.OP200-2.RecordData"); lists.add("PLC3.OP210-1.RecordData"); lists.add("PLC3.OP210-2.RecordData"); lists.add("PLC3.OP220-1.RecordData"); lists.add("PLC3.OP220-2.RecordData"); lists.add("PLC3.OP230-1.RecordData"); lists.add("PLC3.OP230-2.RecordData"); lists.add("PLC3.OP240-1.RecordData"); lists.add("PLC3.OP240-2.RecordData"); lists.add("PLC3.OP250-1.RecordData"); lists.add("PLC3.OP250-2.RecordData"); lists.add("PLC3.OP260-1.RecordData"); lists.add("PLC3.OP260-2.RecordData"); lists.add("PLC3.OP270-1.RecordData"); lists.add("PLC3.OP270-2.RecordData"); lists.add("PLC3.OP275.RecordData"); lists.add("PLC3.OP280.RecordData"); lists.add("PLC3.OP290-1.RecordData"); lists.add("PLC3.OP290-2.RecordData"); lists.add("PLC3.OP295.RecordData"); lists.add("PLC3.OP300.RecordData"); lists.add("PLC3.OP310.RecordData"); //PLC4 lists.add("PLC4.C040.RecordData"); lists.add("PLC4.OP030.RecordData"); lists.add("PLC4.OP050.RecordData"); lists.add("PLC4.OP070.RecordData"); lists.add("PLC3.OP110.RecordData"); lists.add("PLC3.OP140.RecordData"); return lists; } billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -1,4 +1,5 @@ package com.billion.main.plcServer.sub; import com.billion.common.utils.StringUtils; import com.billion.main.bs.domain.BsBomChildInfo; import com.billion.main.bs.service.IBsBomChildInfoService; @@ -15,15 +16,18 @@ import com.billion.main.om.domain.OmProductionOrderInfo; import com.billion.main.om.service.IOmOrderSchedulingService; import com.billion.main.om.service.IOmProductionOrderInfoService; import com.billion.main.sys.domain.SysCount; import com.billion.main.sys.service.ISysCountService; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.concurrent.CompletableFuture; @Slf4j @Component @@ -36,6 +40,7 @@ public IBsBomChildInfoService bsBomChildInfoService; public IDaCollectionParamConfService daCollectionParamConfService; public IDaMaterialCollectionService daMaterialCollectionService; public ISysCountService sysCountService; public OPCUaSubscription(MiloService miloService, @@ -45,7 +50,8 @@ IOmOrderSchedulingService omOrderSchedulingService, IBsBomChildInfoService bsBomChildInfoService, IDaCollectionParamConfService daCollectionParamConfService, IDaMaterialCollectionService daMaterialCollectionService IDaMaterialCollectionService daMaterialCollectionService, ISysCountService sysCountService ) { OPCUaSubscription.miloService = miloService; this.daParamCollectionService = daParamCollectionService; @@ -55,6 +61,7 @@ this.bsBomChildInfoService = bsBomChildInfoService; this.daCollectionParamConfService = daCollectionParamConfService; this.daMaterialCollectionService = daMaterialCollectionService; this.sysCountService = sysCountService; } @Override public void onSubscribe(String identifier, Object value) { @@ -84,12 +91,12 @@ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("0").build()); //请æ±è¿ç« } else if (Constants.ONE.equals(valueString)){ //é¦å·¥ç« if(Constants.C005.equals(device)){ //1.1//é¦å·¥ç« if(Constants.C005.equals(device) || Constants.OP005.equals(device) || Constants.P010.equals(device)){ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("11").build()); } //é¤é¦å·¥ç«ææå·¥ç« else if(Constants.PLC.contains(device) && Constants.OP310.contains(device)){ ///////é¤é¦å·¥ç«ææå·¥ç« else if(Constants.PLC1.contains(device) && Constants.OP310.contains(device)){ //æ ¡éªSFCCodeæ¯å¦åå¨ Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue(); Object PalletID = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue(); @@ -106,124 +113,129 @@ //ä¸åé æ¹ formula(thoroughfare, device, bsbomChildInfo); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("11").build()); } } // // //åºç«ä¿åæ°æ® } else if (Constants.TWO.equals(valueString)) { //é¦åç« if(Constants.C005.equals(device)){ // å¤ææ¥åæ¯å¦æå OmOrderScheduling omOrderScheduling = new OmOrderScheduling(); List<OmOrderScheduling> omOrderSchedulinglist = new ArrayList<>(); OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo(); OmOrderScheduling omOrderScheduling = new OmOrderScheduling(); Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue(); //ä¸çº¿å·¥ä½ if(Constants.ONLINE.contains(device)){ Object workOrderNumber = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue(); Object PalletID = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue(); Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue(); //æçç»å®SFCCodeåå·¥å Object nowQty = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue(); omOrderScheduling.setWorkOrderNo(workOrderNumber.toString()); omOrderScheduling.setRemarks(PalletID.toString()); omOrderScheduling.setNowQty((Long) nowQty); omOrderScheduling.setSfcCode(SFCCode.toString()); omOrderSchedulinglist.add(omOrderScheduling); omOrderSchedulingService.saveBatch(omOrderSchedulinglist); //æ¥è¯¢descriptiveå段çäº1çéé项ä¿åå°æ«ç ä¿åå°da_material_collection表é DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf(); daCollectionParamConf1.setProcessesCode(device); daCollectionParamConf1.setDescriptive("1"); List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1); for (DaCollectionParamConf conf : daCollectionParamConfList1) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} } DaMaterialCollection materialCollection = new DaMaterialCollection(); materialCollection.setSfcCode(SFCCode.toString()); materialCollection.setLocationCode(device); materialCollection.setParamName(conf.getParameterSetName()); materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); materialCollection.setCollectTime(new Date()); daMaterialCollectionService.insertDaMaterialCollection(materialCollection); //æçç»å®SFCCodeåå·¥åå产线 if(Constants.OP005.equals(device)){ omOrderScheduling.setRemarks("Body"); } //æ¥è¯¢descriptiveå段çäº2çéé项ä¿åå°æ«ç ä¿åå°da_param_collection表é DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf(); daCollectionParamConf2.setProcessesCode(device); daCollectionParamConf2.setDescriptive("2"); List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2); for (DaCollectionParamConf conf : daCollectionParamConfList2) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} } DaParamCollection paramCollection = new DaParamCollection(); paramCollection.setSfcCode(SFCCode.toString()); paramCollection.setLocationCode(device); paramCollection.setParamName(conf.getParameterSetName()); paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); paramCollection.setCollectionTime(new Date()); daParamCollectionService.insertDaParamCollection(paramCollection); if(Constants.C005.equals(device)){ omOrderScheduling.setRemarks("Head"); } DaStationCollection daStationCollection = new DaStationCollection(); daStationCollection.setLocationCode(device); daStationCollection.setSfcCode(SFCCode.toString()); daStationCollection.setInboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime").getValue()); daStationCollection.setOutboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime").getValue()); daStationCollectionService.insertDaStationCollection(daStationCollection); omOrderSchedulingService.insertOmOrderScheduling(omOrderScheduling); }else if(Constants.OFFLINE.contains(device)){ if(Constants.C070.equals(device)){ omOrderScheduling.setRemarks("Head"); omOrderScheduling.setSfcCode(SFCCode.toString()); List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling); Object nowQty = omOrderSchedulingList.get(0).getNowQty(); Object WorkOrderNumber = omOrderSchedulingList.get(0).getWorkOrderNo(); omProductionOrderInfo.setWorkOrderNo(WorkOrderNumber.toString()); List<OmProductionOrderInfo> omProductionOrderInfoList = omProductionOrderInfoService.selectOmProductionOrderInfoList(omProductionOrderInfo); Object headQty = omProductionOrderInfoList.get(0).getHeadQty(); if (nowQty == headQty){ omProductionOrderInfoList.get(0).setHeadStatus("3"); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("21").build()); }else if(Constants.PLC.contains(device) && Constants.OP310.contains(device) ){ Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue(); //æ¥è¯¢descriptiveå段çäº1çéé项ä¿åå°æ«ç ä¿åå°da_material_collection表é DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf(); daCollectionParamConf1.setProcessesCode(device); daCollectionParamConf1.setDescriptive("1"); List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1); for (DaCollectionParamConf conf : daCollectionParamConfList1) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} omProductionOrderInfoService.updateOmProductionOrderInfo(omProductionOrderInfoList.get(0)); } DaMaterialCollection materialCollection = new DaMaterialCollection(); materialCollection.setSfcCode(SFCCode.toString()); materialCollection.setLocationCode(device); materialCollection.setParamName(conf.getParameterSetName()); materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); materialCollection.setCollectTime(new Date()); daMaterialCollectionService.insertDaMaterialCollection(materialCollection); } //æ¥è¯¢descriptiveå段çäº2çéé项ä¿åå°æ«ç ä¿åå°da_param_collection表é DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf(); daCollectionParamConf2.setProcessesCode(device); daCollectionParamConf2.setDescriptive("2"); List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2); for (DaCollectionParamConf conf : daCollectionParamConfList2) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} } else if (Constants.OP310.equals(device)) { omOrderScheduling.setRemarks("Body"); omOrderScheduling.setSfcCode(SFCCode.toString()); List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling); Object nowQty = omOrderSchedulingList.get(0).getNowQty(); Object WorkOrderNumber = omOrderSchedulingList.get(0).getWorkOrderNo(); omProductionOrderInfo.setWorkOrderNo(WorkOrderNumber.toString()); List<OmProductionOrderInfo> omProductionOrderInfoList = omProductionOrderInfoService.selectOmProductionOrderInfoList(omProductionOrderInfo); Object bodyQty = omProductionOrderInfoList.get(0).getBodyQty(); if (nowQty == bodyQty){ omProductionOrderInfoList.get(0).setBodyStatus("3"); omProductionOrderInfoService.updateOmProductionOrderInfo(omProductionOrderInfoList.get(0)); } DaParamCollection paramCollection = new DaParamCollection(); paramCollection.setSfcCode(SFCCode.toString()); paramCollection.setLocationCode(device); paramCollection.setParamName(conf.getParameterSetName()); paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); paramCollection.setCollectionTime(new Date()); daParamCollectionService.insertDaParamCollection(paramCollection); } DaStationCollection daStationCollection = new DaStationCollection(); daStationCollection.setLocationCode(device); daStationCollection.setSfcCode(SFCCode.toString()); daStationCollection.setInboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime").getValue()); daStationCollection.setOutboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime").getValue()); daStationCollectionService.insertDaStationCollection(daStationCollection); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("21").build()); } else if (Constants.P010.equals(device)) { Object workOrderNumber = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue(); Object nowQty = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue(); omOrderScheduling.setWorkOrderNo(workOrderNumber.toString()); omOrderScheduling.setNowQty((Long) nowQty); omOrderScheduling.setSfcCode(SFCCode.toString()); omOrderScheduling.setRemarks("Pre"); omOrderSchedulingService.insertOmOrderScheduling(omOrderScheduling); List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling); Object WorkOrderNumber = omOrderSchedulingList.get(0).getWorkOrderNo(); omProductionOrderInfo.setWorkOrderNo(WorkOrderNumber.toString()); List<OmProductionOrderInfo> omProductionOrderInfoList = omProductionOrderInfoService.selectOmProductionOrderInfoList(omProductionOrderInfo); Object preQty = omProductionOrderInfoList.get(0).getPreQty(); if (nowQty == preQty){ omProductionOrderInfoList.get(0).setPreStatus("3"); omProductionOrderInfoService.updateOmProductionOrderInfo(omProductionOrderInfoList.get(0)); } } //æ¥è¯¢descriptiveå段çäº1çéé项ä¿åå°æ«ç ä¿åå°da_material_collection表é DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf(); daCollectionParamConf1.setProcessesCode(device); daCollectionParamConf1.setDescriptive("1"); List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1); for (DaCollectionParamConf conf : daCollectionParamConfList1) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} } DaMaterialCollection materialCollection = new DaMaterialCollection(); materialCollection.setSfcCode(SFCCode.toString()); materialCollection.setLocationCode(device); materialCollection.setParamName(conf.getParameterSetName()); materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); materialCollection.setCollectTime(new Date()); daMaterialCollectionService.insertDaMaterialCollection(materialCollection); } //æ¥è¯¢descriptiveå段çäº2çéé项ä¿åå°æ«ç ä¿åå°da_param_collection表é DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf(); daCollectionParamConf2.setProcessesCode(device); daCollectionParamConf2.setDescriptive("2"); List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2); for (DaCollectionParamConf conf : daCollectionParamConfList2) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // è·ååå§å¼å¯¹è±¡â:ml-citation{ref="4" data="citationList"} if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) { log.warn("ééå°å{}è¿å空å¼ï¼è·³è¿åå¨", gatherAddress); continue; // ç»æ¢å½å循ç¯è¿ä»£â:ml-citation{ref="1,2" data="citationList"} } DaParamCollection paramCollection = new DaParamCollection(); paramCollection.setSfcCode(SFCCode.toString()); paramCollection.setLocationCode(device); paramCollection.setParamName(conf.getParameterSetName()); paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); paramCollection.setCollectionTime(new Date()); daParamCollectionService.insertDaParamCollection(paramCollection); } DaStationCollection daStationCollection = new DaStationCollection(); daStationCollection.setLocationCode(device); daStationCollection.setSfcCode(SFCCode.toString()); daStationCollection.setInboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime").getValue()); daStationCollection.setOutboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime").getValue()); daStationCollectionService.insertDaStationCollection(daStationCollection); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("21").build()); } } } @@ -236,96 +248,161 @@ public void plackWorkOrder(String thoroughfare, String device, String tab, String valueString) { try { if (Constants.WorkOrderRequest.equals(tab)) { if(Constants.OP010.equals(device)){ if (Constants.ZERO.equals(valueString)) { miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("0").build()); } else if (Constants.ONE.equals(valueString)) { if (Constants.ZERO.equals(valueString)) { miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("0").build()); }else if (Constants.ONE.equals(valueString)){ if (Constants.OP005.equals(device)){ // æ¥è¯¢æ°æ®åºè·å符åæ¡ä»¶ç订åä¿¡æ¯ OmProductionOrderInfo getEarliestOrder = omProductionOrderInfoService.getEarliestOrder(); if (getEarliestOrder != null) { //å¤æå½åä¸åæ°é if(getEarliestOrder.getRemarks() >= getEarliestOrder.getPlanQty()){ OmProductionOrderInfo getBodyOrder = omProductionOrderInfoService.getBodyOrder(); if (getBodyOrder != null) { //å¤æå½åä¸åæ°éæ¯å¦æ»¡è¶³è®¡åæ°é //æ´æ°å·¥åç¶æ omProductionOrderInfoService.updateOrderStatus5(); //æ¥è¯¢æ°æ»¡è¶³çå·¥å OmProductionOrderInfo getEarliestOrder2 = omProductionOrderInfoService.getEarliestOrder(); if (getEarliestOrder2 != null) { // å°æ°æ®åå ¥å°å°ååä¸ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(getEarliestOrder2.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ProductionPlan").value(String.valueOf(getEarliestOrder2.getPlanQty())).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(getEarliestOrder2.getEngineType()).build()); //çæsnç OmProductionOrderInfo serialNumber = omProductionOrderInfoService.getSerialNumber(); String A3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); if(A3.equals(String.valueOf(serialNumber.getRemarks()))){ String A1 = getEarliestOrder2.getEngineType();//è·å产ååå· String A2 = "3"; String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", serialNumber.getPlanQty()); String SFCCode = A1 + A2 + A3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); omProductionOrderInfoService.updateSerialNumber(); }else{ OmProductionOrderInfo newNumber = omProductionOrderInfoService.updateYear(); String A1 = getEarliestOrder2.getEngineType();//è·å产ååå· String A2 = "3"; String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", newNumber.getPlanQty()); String SFCCode = A1 + A2 + A3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); omProductionOrderInfoService.updateSerialNumber(); } // æ´æ° WorkOrderRequestDone å°åå miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("11").build()); BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); bsbomChildInfo.setLocationCode(device); bsbomChildInfo.setBomCode(getEarliestOrder2.getWorkOrderNo()); //åä¸å·¥èºé æ¹ formula(thoroughfare, device, bsbomChildInfo); omProductionOrderInfoService.updateOrderStatus2(); } } else if (getEarliestOrder.getRemarks() < getEarliestOrder.getPlanQty()) { //æ´æ°å·¥åç¶æ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(getEarliestOrder.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ProductionPlan").value(String.valueOf(getEarliestOrder.getPlanQty())).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(getEarliestOrder.getEngineType()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(getBodyOrder.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ProductionPlan").value(String.valueOf(getBodyOrder.getPlanQty())).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(getBodyOrder.getEngineType()).build()); //çæsnç OmProductionOrderInfo serialNumber = omProductionOrderInfoService.getSerialNumber(); SysCount serialNumber = sysCountService.getSerialNumber(); String A3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); if(A3.equals(String.valueOf(serialNumber.getRemarks()))){ String A1 = getEarliestOrder.getEngineType();//è·å产ååå· String A2 = "3"; //å¤ææ¯å¦è·¨å¹´ if(A3.equals(String.valueOf(serialNumber.getYear()))){ String A1 = getBodyOrder.getEngineType();//è·å产ååå· String A2 = "3";//åºå®äº§çº¿ String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", serialNumber.getPlanQty()); String A5 = String.format("%05d", serialNumber.getSerialNumber()); String SFCCode = A1 + A2 + A3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); omProductionOrderInfoService.updateSerialNumber(); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updateSerialNumber(); }else{ OmProductionOrderInfo newNumber = omProductionOrderInfoService.updateYear(); String A1 = getEarliestOrder.getEngineType();//è·å产ååå· sysCountService.clean(); sysCountService.updateYear(); String A1 = getBodyOrder.getEngineType();//è·å产ååå· String A2 = "3"; String newA3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", newNumber.getPlanQty()); String SFCCode = A1 + A2 + A3+ A4 + A5; String A5 = String.format("%05d", sysCountService.getSerialNumber().getSerialNumber()); String SFCCode = A1 + A2 + newA3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); omProductionOrderInfoService.updateSerialNumber(); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updateSerialNumber(); } // æ´æ° WorkOrderRequestDone å°åå miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("11").build()); BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); bsbomChildInfo.setLocationCode(device); bsbomChildInfo.setBomCode(getEarliestOrder.getWorkOrderNo()); bsbomChildInfo.setBomCode(getBodyOrder.getWorkOrderNo()); //åä¸å·¥èºé æ¹ formula(thoroughfare, device, bsbomChildInfo); omProductionOrderInfoService.updateOrderStatus2(); omProductionOrderInfoService.updateBodyStatus1(); //å¤æ缸ä½å·¥åå®æ OmProductionOrderInfo getBodyOrder2 = omProductionOrderInfoService.getBodyOrder(); if (Objects.equals(getBodyOrder2.getBodyQty(), getBodyOrder2.getPlanQty())){ omProductionOrderInfoService.updateBodyStatus2(); } miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getBodyOrder2.getBodyQty()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("11").build()); } } else if (Constants.C005.equals(device)) { // æ¥è¯¢æ°æ®åºè·å符åæ¡ä»¶ç订åä¿¡æ¯ OmProductionOrderInfo getHeadOrder = omProductionOrderInfoService.getHeadOrder(); if (getHeadOrder != null) { //å¤æå½åä¸åæ°éæ¯å¦æ»¡è¶³è®¡åæ°é //æ´æ°å·¥åç¶æ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(getHeadOrder.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ProductionPlan").value(String.valueOf(getHeadOrder.getPlanQty())).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(getHeadOrder.getEngineType()).build()); //çæsnç SysCount headNumber = sysCountService.getHeadNumber(); String A3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); //å¤ææ¯å¦è·¨å¹´ if(A3.equals(String.valueOf(headNumber.getYear()))){ String A1 = getHeadOrder.getEngineType();//è·å产ååå· String A2 = "3";//åºå®äº§çº¿ String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", headNumber.getHeadNumber()); String SFCCode = A1 + A2 + A3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updateHeadNumber(); }else{ sysCountService.clean(); sysCountService.updateYear(); String A1 = getHeadOrder.getEngineType();//è·å产ååå· String A2 = "3"; String newA3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", sysCountService.getHeadNumber().getHeadNumber()); String SFCCode = A1 + A2 + newA3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updateHeadNumber(); } // æ´æ° WorkOrderRequestDone å°åå BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); bsbomChildInfo.setLocationCode(device); bsbomChildInfo.setBomCode(getHeadOrder.getWorkOrderNo()); //åä¸å·¥èºé æ¹ formula(thoroughfare, device, bsbomChildInfo); omProductionOrderInfoService.updateHeadStatus1(); //å¤æ缸ä½å·¥åå®æ OmProductionOrderInfo getHeadOrder2 = omProductionOrderInfoService.getHeadOrder(); if (Objects.equals(getHeadOrder2.getHeadQty(), getHeadOrder2.getPlanQty())){ omProductionOrderInfoService.updateHeadStatus2(); } miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getHeadOrder2.getHeadQty()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("11").build()); } } else if (Constants.P010.equals(device)) { // æ¥è¯¢æ°æ®åºè·å符åæ¡ä»¶ç订åä¿¡æ¯ OmProductionOrderInfo getPreOrder = omProductionOrderInfoService.getPreOrder(); if (getPreOrder != null) { //å¤æå½åä¸åæ°éæ¯å¦æ»¡è¶³è®¡åæ°é //æ´æ°å·¥åç¶æ miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(getPreOrder.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ProductionPlan").value(String.valueOf(getPreOrder.getPlanQty())).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(getPreOrder.getEngineType()).build()); //çæsnç SysCount preNumber = sysCountService.getPreNumber(); String A3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); if(A3.equals(String.valueOf(preNumber.getYear()))){ String A1 = getPreOrder.getEngineType();//è·å产ååå· String A2 = "3"; String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", preNumber.getPreNumber()); String SFCCode = A1 + A2 + A3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updatePreNumber(); }else{ sysCountService.clean(); sysCountService.updateYear(); String A1 = getPreOrder.getEngineType();//è·å产ååå· String A2 = "3"; String newA3 = String.valueOf(LocalDateTime.now().getYear()).substring(2); String A4 = MONTH[LocalDateTime.now().getMonthValue() - 1];// è·åå½åæ份ï¼1-12ï¼ String A5 = String.format("%05d", sysCountService.getPreNumber().getPreNumber()); String SFCCode = A1 + A2 + newA3+ A4 + A5; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build()); sysCountService.updateHeadNumber(); } // æ´æ° WorkOrderRequestDone å°åå BsBomChildInfo bsbomChildInfo= new BsBomChildInfo(); bsbomChildInfo.setLocationCode(device); bsbomChildInfo.setBomCode(getPreOrder.getWorkOrderNo()); //åä¸å·¥èºé æ¹ formula(thoroughfare, device, bsbomChildInfo); omProductionOrderInfoService.updatePreStatus1(); //å¤æ缸ä½å·¥åå®æ OmProductionOrderInfo getPreOrder2 = omProductionOrderInfoService.getPreOrder(); if (Objects.equals(getPreOrder2.getPreQty(), getPreOrder2.getPlanQty())){ omProductionOrderInfoService.updatePreStatus2(); } miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getPreOrder2.getPreQty()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("11").build()); } } } else if (Constants.C005.equals(device)) { } } } catch (Exception e) { log.error(e.getMessage()); billion-main/src/main/java/com/billion/main/sys/domain/SysCount.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package com.billion.main.sys.domain; import com.billion.common.annotation.Excel; import com.billion.common.core.domain.BaseEntity; import lombok.Data; /** * sys_count * * @author Billion * @date 2024-11-20 */ @Data public class SysCount extends BaseEntity { /** ID */ private Long id; /** å·¥åç¼å· */ @Excel(name = "年份") private String year; /** æ»æåºåå· */ @Excel(name = "æµæ°´å·") private Long serialNumber; /** æ»æåºåå· */ @Excel(name = "æµæ°´å·") private Long headNumber; /** æ»æåºåå· */ @Excel(name = "æµæ°´å·") private Long preNumber; } billion-main/src/main/java/com/billion/main/sys/mapper/SysCountMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.billion.main.sys.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.billion.main.sys.domain.SysCount; /** * Mapperæ¥å£ * * @author Billion * @date 2024-11-20 */ public interface SysCountMapper extends BaseMapper<SysCount> { public SysCount updateYear(); public SysCount getSerialNumber(); public SysCount getHeadNumber(); public SysCount updateSerialNumber(); public SysCount updateHeadNumber(); public SysCount getPreNumber(); public SysCount updatePreNumber(); public SysCount clean(); } billion-main/src/main/java/com/billion/main/sys/service/ISysCountService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.billion.main.sys.service; import com.baomidou.mybatisplus.extension.service.IService; import com.billion.main.sys.domain.SysCount; /** * ç产工åServiceæ¥å£ * * @author Billion * @date 2024-11-20 */ public interface ISysCountService extends IService<SysCount> { public SysCount updateYear(); public SysCount getSerialNumber(); public SysCount getHeadNumber(); public SysCount updateSerialNumber(); public SysCount updateHeadNumber(); public SysCount getPreNumber(); public SysCount updatePreNumber(); public SysCount clean(); } billion-main/src/main/java/com/billion/main/sys/service/impl/SysCountServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,54 @@ package com.billion.main.sys.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.billion.main.sys.domain.SysCount; import com.billion.main.sys.mapper.SysCountMapper; import com.billion.main.sys.service.ISysCountService; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * ç产工åServiceä¸å¡å±å¤ç * * @author Billion * @date 2024-11-20 */ @Service public class SysCountServiceImpl extends ServiceImpl<SysCountMapper, SysCount> implements ISysCountService { @Resource private SysCountMapper SysCountMapper; @Override public SysCount updateYear() {return SysCountMapper.updateYear();} @Override public SysCount getSerialNumber() { return SysCountMapper.getSerialNumber(); } @Override public SysCount getHeadNumber() { return SysCountMapper.getHeadNumber(); } @Override public SysCount updateSerialNumber() {return SysCountMapper.updateSerialNumber();} @Override public SysCount updateHeadNumber() {return SysCountMapper.updateHeadNumber();} @Override public SysCount getPreNumber() { return SysCountMapper.getHeadNumber(); } @Override public SysCount updatePreNumber() {return SysCountMapper.updateSerialNumber();} @Override public SysCount clean() {return SysCountMapper.clean();} } billion-main/src/main/resources/mapper/om/OmOrderSchedulingMapper.xml
@@ -18,10 +18,11 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="remarks" column="remarks" /> <result property="nowQty" column="now_qty" /> </resultMap> <sql id="selectOmOrderSchedulingVo"> select id, work_order_no, sfc_code, product_code, online_time, offline_time, quality_status, status, create_by, create_time, update_by, update_time, remarks from om_order_scheduling select id, now_qty,work_order_no, sfc_code, product_code, online_time, offline_time, quality_status, status, create_by, create_time, update_by, update_time, remarks from om_order_scheduling </sql> <select id="selectOmOrderSchedulingList" parameterType="OmOrderScheduling" resultMap="OmOrderSchedulingResult"> @@ -33,6 +34,7 @@ <if test="params.beginOnlineTime != null and params.beginOnlineTime != '' and params.endOnlineTime != null and params.endOnlineTime != ''"> and online_time between #{params.beginOnlineTime} and #{params.endOnlineTime}</if> <if test="params.beginOfflineTime != null and params.beginOfflineTime != '' and params.endOfflineTime != null and params.endOfflineTime != ''"> and offline_time between #{params.beginOfflineTime} and #{params.endOfflineTime}</if> <if test="status != null and status != ''"> and status = #{status}</if> <if test="nowQty != null and nowQty != ''"> and now_qty = #{nowQty}</if> </where> </select> billion-main/src/main/resources/mapper/om/OmProductionOrderInfoMapper.xml
@@ -23,62 +23,93 @@ </resultMap> <sql id="selectOmProductionOrderInfoVo"> select id, work_order_no, sales_order_code, product_code, line_code, plan_qty, plan_start_time, plan_end_time, order_status, create_time, update_time, create_by, update_by, remarks, del_flag from om_production_order_info select id,body_status,head_status,pre_status,body_qty,head_qty,pre_qty,work_order_no, sales_order_code, product_code, line_code, plan_qty, plan_start_time, plan_end_time, order_status, create_time, update_time, create_by, update_by, remarks, del_flag from om_production_order_info </sql> <!-- æ¥è¯¢ order_status 为 1 ä¸ plan_start_time ææ©çä¸æ¡è®°å½ --> <select id="selectEarliestOrder" resultType="OmProductionOrderInfo"> <select id="getBodyOrder" resultType="OmProductionOrderInfo"> SELECT TOP 1 * FROM om_production_order_info WHERE order_status IN (1, 2) WHERE body_status IN (0,1) ORDER BY plan_start_time ASC </select> <select id="selectEarliestOrder2" resultType="OmProductionOrderInfo"> <select id="updateBodyStatus1" resultType="OmProductionOrderInfo"> UPDATE o SET body_status = 1, body_qty = body_qty + 1 FROM om_production_order_info AS o INNER JOIN ( SELECT TOP 1 id FROM om_production_order_info WHERE body_status IN (0, 1) ORDER BY plan_start_time ASC ) AS sub ON o.id = sub.id; </select> <select id="updateBodyStatus2" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET body_status = 2 WHERE id = ( SELECT TOP 1 id FROM om_production_order_info WHERE body_status IN (0, 1) ORDER BY plan_start_time ASC ); </select> <select id="getHeadOrder" resultType="OmProductionOrderInfo"> SELECT TOP 1 * FROM om_production_order_info WHERE order_status IN (5) WHERE head_status IN (0,1) ORDER BY plan_start_time ASC </select> <select id="updateOrderStatus" resultType="OmProductionOrderInfo"> <select id="updateHeadStatus1" resultType="OmProductionOrderInfo"> UPDATE o SET head_status = 1, head_qty = head_qty + 1 FROM om_production_order_info AS o INNER JOIN ( SELECT TOP 1 id FROM om_production_order_info WHERE head_status IN (0, 1) ORDER BY plan_start_time ASC ) AS sub ON o.id = sub.id; </select> <select id="updateHeadStatus2" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET order_status = 5 SET head_status = 2 WHERE id = ( SELECT TOP 1 id FROM om_production_order_info WHERE order_status IN (1, 2) WHERE head_status IN (0, 1) ORDER BY plan_start_time ASC ); </select> <select id="updateOrderStatus2" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET order_status = 2 WHERE id = ( SELECT TOP 1 id FROM om_production_order_info WHERE order_status IN (1, 2) ORDER BY plan_start_time ASC ); </select> <select id="getSerialNumber" resultType="OmProductionOrderInfo"> SELECT * <select id="getPreOrder" resultType="OmProductionOrderInfo"> SELECT TOP 1 * FROM om_production_order_info WHERE id = 1 WHERE pre_status IN (0,1) ORDER BY plan_start_time ASC </select> <select id="updatePreStatus1" resultType="OmProductionOrderInfo"> UPDATE o SET pre_status = 1, pre_qty = pre_qty + 1 FROM om_production_order_info AS o INNER JOIN ( SELECT TOP 1 id FROM om_production_order_info WHERE pre_status IN (0, 1) ORDER BY plan_start_time ASC ) AS sub ON o.id = sub.id; </select> <select id="updatePreStatus2" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET pre_status = 2 WHERE id = ( SELECT TOP 1 id FROM om_production_order_info WHERE pre_status IN (0, 1) ORDER BY plan_start_time ASC ); </select> <select id="updateSerialNumber" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET plan_qty = plan_qty + 1 WHERE id = 1; </select> <select id="updateYear" resultType="OmProductionOrderInfo"> UPDATE om_production_order_info SET remarks = remarks + 1, qty = 1 WHERE id = 1; </select> <select id="selectOmProductionOrderInfoList" parameterType="OmProductionOrderInfo" resultMap="OmProductionOrderInfoResult"> billion-main/src/main/resources/mapper/sys/SysCountMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.billion.main.sys.mapper.SysCountMapper"> <resultMap type="SysCount" id="SysCountResult"> <result property="id" column="id" /> <result property="year" column="year" /> <result property="serialNumber" column="serial_number" /> <result property="headNumber" column="head_number" /> </resultMap> <select id="updateYear" resultType="SysCount"> UPDATE sys_count SET year = year + 1, serial_number = 1 WHERE id = 1; </select> <select id="getSerialNumber" resultType="SysCount"> SELECT * FROM sys_count WHERE id = 1 </select> <select id="getHeadNumber" resultType="SysCount"> SELECT * FROM sys_count WHERE id = 1 </select> <select id="updateSerialNumber" resultType="SysCount"> UPDATE sys_count SET serial_number = serial_number + 1 WHERE id = 1; </select> <select id="updateHeadNumber" resultType="SysCount"> UPDATE sys_count SET head_number = head_number + 1 WHERE id = 1; </select> <select id="getPreNumber" resultType="SysCount"> SELECT * FROM sys_count WHERE id = 1 </select> <select id="updatePreNumber" resultType="SysCount"> UPDATE sys_count SET pre_number = pre_number + 1 WHERE id = 1; </select> <select id="clean" resultType="SysCount"> UPDATE sys_count SET pre_number = 1, head_number = 1, serial_number = 1 WHERE id = 1; </select> </mapper>