From e1a98fbab82268012f9adc38135d4bb0e7e1cc6b Mon Sep 17 00:00:00 2001 From: cl <418351270@qq.com> Date: 星期五, 06 九月 2024 09:24:27 +0800 Subject: [PATCH] 修改报工接口 --- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 270 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 214 insertions(+), 56 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index 1fd42d9..59fd854 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -3,21 +3,24 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.jcdm.common.core.domain.AjaxResult; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jcdm.framework.websocket.WebSocketUsers; import com.jcdm.main.constant.Constants; +import com.jcdm.main.da.cellData.domain.DaCellData; +import com.jcdm.main.da.cellData.service.IDaCellDataService; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; +import com.jcdm.main.da.psConf.domain.DaPsConf; +import com.jcdm.main.da.psConf.service.IDaPsConfService; import com.jcdm.main.da.testDeviceInterfaceTemp.domain.DaTestDeviceInterfaceTemp; import com.jcdm.main.da.testDeviceInterfaceTemp.service.IDaTestDeviceInterfaceTempService; import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; @@ -30,12 +33,12 @@ import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.GetMapping; import javax.websocket.Session; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @@ -46,7 +49,7 @@ public class OPCUaSubscription implements SubscriptionCallback { public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - + public static Calendar calendar = Calendar.getInstance(); Map<String, Session> map = WebSocketUsers.getUsers(); public static MiloService miloService; @@ -62,6 +65,10 @@ public static IDaTestDeviceInterfaceTempService daTestDeviceInterfaceTempService; + public static IDaCellDataService daCellDataService; + + public static IDaPsConfService daPsConfService; + /* @Value("${orderLineUrl}") private static String orderLineUrl;*/ @@ -70,13 +77,17 @@ IDaCollectionParamConfService collectionParamConfService, IDaParamCollectionService daParamCollectionService, IOmProductionOrdeInfoService omProductionOrdeInfoService, - IDaTestDeviceInterfaceTempService daTestDeviceInterfaceTempService) { + IDaTestDeviceInterfaceTempService daTestDeviceInterfaceTempService, + IDaCellDataService daCellDataService, + IDaPsConfService daPsConfService) { OPCUaSubscription.miloService = miloService; OPCUaSubscription.daPassingStationCollectionService = daPassingStationCollectionService; OPCUaSubscription.collectionParamConfService = collectionParamConfService; OPCUaSubscription.daParamCollectionService = daParamCollectionService; OPCUaSubscription.omProductionOrdeInfoService = omProductionOrdeInfoService; OPCUaSubscription.daTestDeviceInterfaceTempService = daTestDeviceInterfaceTempService; + OPCUaSubscription.daCellDataService = daCellDataService; + OPCUaSubscription.daPsConfService = daPsConfService; } @@ -121,7 +132,7 @@ }else if(Constants.OP030.equals(device)){ Object value1 = miloService.readFromOpcUa(thoroughfare + "." + device + ".Scaner").getValue();//鐢佃姱鐮� if (ObjectUtil.isNotNull(value1)){ - String cellCode = value1.toString(); + //String cellCode = value1.toString(); scanResult = 11; //鍙嶉鐢佃姱ocv妫�娴嬬粨鏋�,杩欓噷涓嶇敤鍐嶈繘琛屾娴嬶紝鍙鐮佹病闂灏卞彲浠ヤ簡 /*boolean b = OCVResultFeedBack(thoroughfare, device,cellCode);//瀵规浛鎹㈢數鑺牎楠� @@ -143,9 +154,23 @@ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(1).build());//娌℃湁瑕佺敓浜х殑宸ュ崟 } }else if (Constants.RECORD_DATA.equals(tab)){//鍑哄叆绔� - if (Constants.ONE.equals(valueString)){//鍏ョ珯 - //1:鍛婄煡MES鎵樼洏宸插埌绔欙紝璇锋眰涓嬪彂杩涚珯鐘舵�� - if (Constants.OP030.equals(device)){ + if (Constants.ONE.equals(valueString)){//鍏ョ珯 //1:鍛婄煡MES鎵樼洏宸插埌绔欙紝璇锋眰涓嬪彂杩涚珯鐘舵�� + + //OP020 鐢佃姱鎸′綅鏍¢獙 + if (Constants.OP020.equals(device)){ + Integer result = 11; + Object cellGearObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".CellGear").getValue(); + if (ObjectUtil.isNull(cellGearObjcet)){ + result = 16;//鐢佃姱鎸′綅涓虹┖ + }else{ + String cellGear = cellGearObjcet.toString(); + List<String> cellCodeList = readCellCodeList(thoroughfare, device); + result = checkCellGear(thoroughfare, device,cellCodeList,cellGear);//鏍¢獙鐢佃姱鎸′綅鍜岀粍鍒� + Constants.OLD_CELL_GEAR = cellGear;//鎸′綅璧嬪�� + } + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(result).build()); + + }else if (Constants.OP030.equals(device)){ //鍙嶉鐢佃姱ocv妫�娴嬬粨鏋� boolean b = OCVResultFeedBack(thoroughfare, device);//杩涚珯瀵�4涓數鑺牎楠� //鍥涗釜鐢佃姱鐨勭姸鎬� @@ -162,7 +187,7 @@ if (ObjectUtil.isNotNull(productTypeObjcet)){ String productType = productTypeObjcet.toString();//浜у搧绫诲瀷 String materialCode = Constants.materialMap.get(productType); - //璋冪敤宸ュ巶MES锛屼繚瀛樺埌鏁版嵁搴�,骞朵笖灏嗗伐鍗曚紶缁橮LC + //鎺ユ敹宸ュ崟锛屼繚瀛樺埌鏁版嵁搴�,骞朵笖灏嗗伐鍗曚紶缁橮LC CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { receivingWorkOrders(thoroughfare, device,materialCode); }); @@ -221,11 +246,32 @@ result = savePassingStation(thoroughfare, device,cellCodeList);//淇濆瓨杩囩珯 if(result == 21) { - if(Constants.OP030.contains(device)){ - daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode1); - daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode2); - daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode3); - daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode4); + if(Constants.OP020.contains(device)){ + if(!cellCode1.isEmpty()){ + daCellDataService.deleteDaCellDataByGbCellCode(cellCode1); + } + if(!cellCode2.isEmpty()){ + daCellDataService.deleteDaCellDataByGbCellCode(cellCode2); + } + if(!cellCode3.isEmpty()){ + daCellDataService.deleteDaCellDataByGbCellCode(cellCode3); + } + if(!cellCode4.isEmpty()){ + daCellDataService.deleteDaCellDataByGbCellCode(cellCode4); + } + }else if(Constants.OP030.contains(device)){ + if(!cellCode1.isEmpty()){ + daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode1); + } + if(!cellCode2.isEmpty()){ + daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode2); + } + if(!cellCode3.isEmpty()){ + daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode3); + } + if(!cellCode4.isEmpty()) { + daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode4); + } } result = saveParamCollection(device,cellCodeList);//淇濆瓨鍙傛暟锛屽彂閫佸伐鍘侻ES } @@ -269,35 +315,17 @@ public synchronized void receivingWorkOrders(String thoroughfare ,String device ,String materialCode) { - String paramProductNum = ""; try { - // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅 - OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + //鍏堟煡璇㈣〃涓槸鍚︽湁鍓╀綑宸ュ崟 + List<OmProductionOrdeInfo> orderList = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>() + .eq(OmProductionOrdeInfo::getOrderStatus, Constants.ONE) + .eq(OmProductionOrdeInfo::getStationCode,device)//宸ヤ綅 + .eq(OmProductionOrdeInfo::getProductCode,materialCode));//浜у搧绫诲瀷 + if (CollUtil.isNotEmpty(orderList)){ + Long id = orderList.get(0).getId(); + String productNum = orderList.get(0).getProductNum();//妯$粍鐮� + String orderNum = orderList.get(0).getWorkOrderNo(); - log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俤evice{},materialCode锛歿}", device, materialCode); - String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode); - JSONObject jsonObject = new JSONObject(orderJsonString); - // 浠嶫SONObject涓幏鍙杁ata瀵硅薄 - JSONObject dataObject = jsonObject.getJSONObject("data"); - String code = jsonObject.getStr("code"); - // 鍒ゆ柇鎺ュ崟鏄惁鎴愬姛 - if(code.equals("success")) { - log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}", paramProductNum, dataObject.getStr("productNum")); - OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); - omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum")); - omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum")); - omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode")); - omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode")); - omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity"))); - omProductionOrdeInfo.setOnlineCompletionMark("0"); - omProductionOrdeInfo.setSfResult("0"); - omProductionOrdeInfo.setProductModel(dataObject.getStr("model")); - omProductionOrdeInfo.setCreateTime(new Date()); - omProductionOrdeInfo.setCreateUser("宸ュ巶MES"); - omProductionOrdeInfoService.save(omProductionOrdeInfo); - - String productNum = dataObject.getStr("productNum"); - String orderNum = dataObject.getStr("productionOrderNum"); //涓嬪彂浜у搧妯$粍鐮� miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(productNum).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(orderNum).build()); @@ -305,8 +333,45 @@ //灏嗕骇鍝丼N鍙戦�佸埌鍓嶅彴 productNum = "productNum,"+ productNum; WebSocketUsers.sendMessageToUserByText(map.get(device), productNum); + }else{ + // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅 + OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俤evice{},materialCode锛歿}", device, materialCode); + String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode); + log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬嚭鍙俻ack锛歿}", orderJsonString); + + JSONObject jsonObject = new JSONObject(orderJsonString); + // 浠嶫SONObject涓幏鍙杁ata瀵硅薄 + JSONObject dataObject = jsonObject.getJSONObject("data"); + String code = jsonObject.getStr("code"); + // 鍒ゆ柇鎺ュ崟鏄惁鎴愬姛 + if(code.equals("success")) { + OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); + omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum")); + omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum")); + omProductionOrdeInfo.setStationCode(device); + omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode")); + omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity"))); + omProductionOrdeInfo.setOnlineCompletionMark("0"); + omProductionOrdeInfo.setSfResult("0"); + omProductionOrdeInfo.setProductModel(dataObject.getStr("model")); + omProductionOrdeInfo.setCreateTime(new Date()); + omProductionOrdeInfo.setCreateUser("宸ュ巶MES"); + omProductionOrdeInfoService.save(omProductionOrdeInfo); + + String productNum = dataObject.getStr("productNum"); + String orderNum = dataObject.getStr("productionOrderNum"); + //涓嬪彂浜у搧妯$粍鐮� + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(productNum).build()); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(orderNum).build()); + + //灏嗕骇鍝丼N鍙戦�佸埌鍓嶅彴 + productNum = "productNum,"+ productNum; + WebSocketUsers.sendMessageToUserByText(map.get(device), productNum); + } } + } catch (Exception e) { throw new RuntimeException(e); } @@ -509,7 +574,7 @@ daParamCollectionService.insertBatch(collectionList); //濡傛灉220宸ヤ綅锛岃繘琛屾姤宸�,鍥犱负涓婂眰绯荤粺鍙敮鎸�6浣嶏紝鎵�鏈夋姤宸ュ伐浣嶄慨鏀逛负M1P220 - if("M1OP220".equals(device)) { + if(Constants.OP220.equals(device)) { getWorkReportResultFeedback(moduleCode, "M1P220", format.format(new Date())); } @@ -746,11 +811,10 @@ ParentVO parentVO = new ParentVO(); parentVO.setStationCode(device);//宸ヤ綅 parentVO.setSiteCode("3983"); - - parentVO.setRecordId(UUID.randomUUID().toString()); - parentVO.setTotalResult("1"); for (int i = 0; i < cellCodeList.size(); i++) {//寰幆4涓數鑺� if(!cellCodeList.get(i).isEmpty()){ + parentVO.setRecordId(UUID.randomUUID().toString()); + parentVO.setTotalResult("1"); parentVO.setProductNum(cellCodeList.get(i));//鐢佃姱鐮� //灏佽缁欏伐鍘侻ES鍙戦�佺殑childlist4 List<ChildVO> mesChildList = new ArrayList<>(mesChildList0); @@ -791,6 +855,52 @@ } /** + * OP020鏍¢獙鐢佃姱鎸′綅 + * @param thoroughfare + * @param device + * @throws Exception + */ + private Integer checkCellGear(String thoroughfare, String device,List<String> cellCodeList,String cellGear) throws Exception { + Integer result = 11; + String cellSerial = ""; + for(int i = 0; i < cellCodeList.size(); i ++){ + Integer cellStatus = 1; + String cellCode = cellCodeList.get(i); + if(!cellCode.isEmpty()){ + List<DaCellData> list = daCellDataService.list(new LambdaQueryWrapper<DaCellData>() + .eq(DaCellData::getGbCellCode,cellCode)); + if(CollUtil.isNotEmpty(list)){ + DaCellData daCellData = list.get(0); + String cellValue = daCellData.getCellValue();//鏁版嵁搴撲腑鐢佃姱鎸′綅 + cellSerial = daCellData.getCellSerial();//鏁版嵁搴撲腑鐢佃姱缁勫埆 + if(!cellValue.isEmpty() && cellValue.equals(cellGear)){ + cellStatus = 1; + }else { + cellStatus = 2; + result = 16;//鎸′綅鏍¢獙涓嶅悎鏍� + log.info("鐢佃姱鎸′綅鏍¢獙涓嶅悎鏍硷細鐢佃姱鐮佷负{}锛孭LC璁剧疆鎸′綅涓簕}锛屽伐鍘侻ES涓嬪彂鎸′綅涓猴細{}",cellCode,cellGear,cellValue); + } + }else { + cellStatus = 2; + result = 16;//鏌ヤ笉鍒拌鏍¢獙鐨勬尅浣� + log.info("鐢佃姱鎸′綅鏍¢獙涓嶅悎鏍硷細鐢佃姱鐮佷负{}锛孭LC璁剧疆鎸′綅涓簕}锛屽伐鍘侻ES涓嬪彂鎸′綅涓虹┖锛屾煡璇笉鍒拌鏁版嵁",cellCode,cellGear); + } + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".Cell_Status_"+(i+1)).value(cellStatus).build()); + } + } + + //褰撶數鑺尅浣嶅彂鐢熷彉鍖栨椂锛屽苟涓旇�佺殑鎸′綅涓嶄负绌猴紝鍒犻櫎褰撳墠鐢佃姱鎵规 + if(!Constants.OLD_CELL_GEAR.isEmpty() && !cellGear.equals(Constants.OLD_CELL_GEAR)){ + if(!cellSerial.isEmpty()){ + daCellDataService.deleteDaCellDataByCellSerial(cellSerial); + } + log.info("鐢佃姱鎸′綅鍙戠敓鏀瑰彉锛岃�佺殑鎸′綅涓猴細{}锛屾柊鐨勬尅浣嶄负锛歿}锛屾壒娆″彿涓簕}",Constants.OLD_CELL_GEAR,cellGear,cellSerial); + } + + return result; + } + + /** * 030宸ヤ綅杩斿洖ocv娴嬭瘯缁撴灉 * @param thoroughfare * @param device @@ -799,9 +909,7 @@ */ private boolean OCVResultFeedBack(String thoroughfare, String device,String cellCode) throws Exception { boolean flag = true; - List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>() - .eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020") .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode) .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime) ); @@ -812,7 +920,7 @@ }else { flag = false; } - daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode); + //daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode); }else { flag = false; log.info("璇诲彇鍒板伐浣峽},娴嬭瘯璁惧杩斿洖鐨勬暟鎹煡璇笉鍒帮紝鐢佃姱鐮佷负锛歿}",device,cellCode); @@ -831,7 +939,6 @@ if (ObjectUtil.isNotNull(value1)){ String cellCode = value1.toString(); List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>() - //.eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020") .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode) .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime) ); @@ -858,7 +965,6 @@ if (ObjectUtil.isNotNull(value2)){ String cellCode = value2.toString(); List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>() - //.eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020") .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode) .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime) ); @@ -886,7 +992,6 @@ if (ObjectUtil.isNotNull(value3)){ String cellCode = value3.toString(); List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>() - //.eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020") .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode) .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime) ); @@ -914,7 +1019,6 @@ if (ObjectUtil.isNotNull(value4)){ String cellCode = value4.toString(); List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>() - //.eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020") .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode) .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime) ); @@ -955,7 +1059,7 @@ try { String url = Constants.FACTORY_EMS_UAT_GET_RUL + "workReportResultFeedback?siteCode="+Constants.FACTORY_EMS_SITE_CODE+"&stationCode="+stationCode+"&productNum="+productNum+"&confirmTime="+confirmTime; HttpResponse response = HttpRequest.get(url).execute(); - HttpRequest httpRequest = HttpRequest.get(url); + //HttpRequest httpRequest = HttpRequest.get(url); result = response.body(); }catch (Exception e){ throw new RuntimeException(e); @@ -982,6 +1086,11 @@ ); if (CollUtil.isNotEmpty(list)){ for(DaCollectionParamConf conf:list){ + //1P1S鐢熸垚 + if("1P1S".equals(conf.getCollectParameterId())){ + String result = get1P1S(sfcCode); + conf.setParamCentral(result); + } ChildVO childVO = new ChildVO(); childVO.setItemCode(conf.getCollectParameterId());//鍙傛暟 childVO.setItemType(conf.getItemType()); @@ -992,7 +1101,7 @@ basicList.add(childVO); DaParamCollection daParamCollection = new DaParamCollection(); - daParamCollection.setSfcCode(sfcCode);//妯$粍鐮� + daParamCollection.setSfcCode(sfcCode);//鎬绘垚鐮� daParamCollection.setParamCode(conf.getCollectParameterId());//鍙傛暟缂栫爜 daParamCollection.setParamName(conf.getCollectParameterName());//鍙傛暟鍚嶇О @@ -1009,6 +1118,55 @@ } } + /** + * 鐢熸垚1P1S鐮� + * @param sfcCode + * @return list + */ + public static String get1P1S(String sfcCode) { + String result = ""; + LocalDate now = LocalDate.now(); + String supplierCode = sfcCode.substring(0,3); + try { + List<DaPsConf> list = daPsConfService.list(new LambdaQueryWrapper<DaPsConf>() + .eq(DaPsConf::getSpareField1, supplierCode)//渚涘簲鍟嗚瘑鍒爜 + .eq(DaPsConf::getState,"1"));//鐘舵�� + if(!list.isEmpty()){ + String mfCode = list.get(0).getMfCode();//鍘傚晢浠g爜 + String proTypeCode = list.get(0).getProTypeCode();//浜у搧绫诲瀷浠g爜 + String batteryTypeCode = list.get(0).getBatteryTypeCode();//鐢垫睜绫诲瀷浠g爜 + String specificationsCode = list.get(0).getSpecificationsCode();//瑙勬牸浠g爜 + String traceInfoCode = list.get(0).getTraceInfoCode();//杩芥函淇℃伅浠g爜 + String oldDateCode = list.get(0).getProDateCode(); + String proDateCode = Constants.YEARSMAP.get(now.getYear()) + + Constants.MONTHSMAP.get(now.getMonthValue()) + + Constants.DAYMAP.get(now.getDayOfMonth());//鐢熶骇鏃ユ湡 + String code = ""; + if(oldDateCode.equals(proDateCode)){ + code = list.get(0).getSfcCode();//搴忓垪鍙� + }else { + code = "0"; + } + code = StringUtils.leftPad(String.valueOf(Integer.valueOf(code)+1),7, "0");;//搴忓垪鍙� + result = mfCode+proTypeCode+batteryTypeCode+specificationsCode+traceInfoCode+proDateCode+code; + log.info("璇诲彇鍒扮數鑺爜涓猴細{},1P1S鐮佷负锛歿}",sfcCode,result); + + //鏇存柊鏃ユ湡鍜屽簭鍒楀彿 + LambdaUpdateWrapper<DaPsConf> lambdaUpdateWrapper = new LambdaUpdateWrapper<DaPsConf>(); + lambdaUpdateWrapper.set(DaPsConf::getProDateCode,proDateCode);//鐢熶骇鏃ユ湡 + lambdaUpdateWrapper.set(DaPsConf::getSfcCode,code);//搴忓垪鍙� + lambdaUpdateWrapper.eq(DaPsConf::getSpareField1,supplierCode);//渚涘簲鍟嗚瘑鍒爜 + lambdaUpdateWrapper.eq(DaPsConf::getState,"1");//鐘舵�� + daPsConfService.update(lambdaUpdateWrapper); + + }else{ + log.info("璇峰厛鍘�1P1S閰嶇疆椤甸潰閰嶇疆瑙勫垯!"); + } + return result; + }catch (Exception e) { + throw new RuntimeException(e); + } + } } -- Gitblit v1.9.3