From 9f7fcb82f43ac4905623b0239d0f3ef7f4079e47 Mon Sep 17 00:00:00 2001 From: 刘小明 <liuxm_a@163.com> Date: 星期二, 13 八月 2024 08:48:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java | 182 +++++++++++++++++++++++++++++++++------------ 1 files changed, 132 insertions(+), 50 deletions(-) diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java index 24aea10..f825f4a 100644 --- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java +++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java @@ -36,6 +36,7 @@ private static final String WORK_TYPE_TEST = "2"; private static final String WORK_TYPE_INSPECTION = "3"; private static final String WORK_TYPE_REPAIR = "4"; + private static final String WORK_TYPE_OTHER = "5"; private StaDeviceLastMapper deviceLastDao; private StaDeviceLifeMapper deviceLifeDao; @@ -172,7 +173,7 @@ StaDeviceLast deviceLast = buildDeviceLast(params, workLast, deviceList.get(0)); int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) : - deviceLastDao.updateByPrimaryKeySelective(deviceLast); + deviceLastDao.updateByPrimaryKey(deviceLast); saveDeviceProductionLog(deviceLast); @@ -211,12 +212,13 @@ private StaDeviceLast buildDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, String deviceNo) { //缁勮鏁版嵁 StaDeviceLast record = new StaDeviceLast(); - //pr_assembly_plan input_number +1 鎶曞叆鏁板姞1 - PrAssemblyPlan assemblyPlan = assemblyPlanDao.selectByPrimaryKey(workLast.planId); + //pr_assembly_plan input_number +1 鎶曞叆鏁板姞1 鏍规嵁deviceNo 鎵惧埌瀵瑰簲浠诲姟 + PrAssemblyPlan assemblyPlan = queryPlanByDeviceNo(deviceNo); //PrAssemblyPlan assemblyPlan = assemblyPlanDao.selectByPrimaryKey(workLast.planId); StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceNo); if (preRecord != null) { record.id = preRecord.id; record.inTime = preRecord.outTime; + record.inLineTime = preRecord.inLineTime; record.outLineTime = preRecord.outLineTime;//涓嬭竟鍒ゆ柇鏄惁缁撴潫浼氱敤鍒� 寰楃暀鐫� } else { record.inTime = new Date(); @@ -224,34 +226,40 @@ assemblyPlan.setInputNumber(assemblyPlan.getInputNumber() + 1); } record.outTime = new Date(); - - record.planId = workLast.planId; + record.planId = assemblyPlan.getId(); record.workId = Long.parseLong(params.workId); record.stationId = workLast.stationId; record.deviceNo = deviceNo; record.currNode = workLast.nodeId; - record.updatedBy = workLast.userId; record.assistants = workLast.assistants; record.errorMsg = params.errorMsg; - Boolean isEnd = false;//鏄惁缁忓巻杩囩粨鏉熻妭鐐� - PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId); - record.nodeContent = node.content; - if (node.isRecord) { - record.deviceCycleContent = node.deviceCycleContent; + Boolean isEnd = false;//鏄惁缁忓巻杩囨垨姝e湪缁忓巻缁撴潫鑺傜偣 + if (workLast.nodeId == null) { + if (record.outLineTime != null) { + isEnd = true; + } + if(StringUtils.isNotBlank(params.getContent())){ + record.nodeContent = params.getContent(); + } + } else { + PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId); + record.nodeContent = node.content; + if (node.isRecord) { + record.deviceCycleContent = node.deviceCycleContent; + } + if (node.getIsEnd() && record.outLineTime == null) { + record.outLineTime = new Date(); + assemblyPlan.setOutputNumber(assemblyPlan.getOutputNumber() + 1); + isEnd = true; + } else if (record.outLineTime != null) { + isEnd = true; + } } - if (node.getIsEnd() && record.outLineTime == null) { - record.outLineTime = new Date(); - assemblyPlan.setOutputNumber(assemblyPlan.getOutputNumber() + 1); - isEnd = true; - }else if(record.outLineTime != null){ - isEnd = true; - } - assemblyPlanDao.updateByPrimaryKeySelective(assemblyPlan); - record.status = getStatus(params.status, isEnd, workLast.workType.toString()); record.result = getResult(params.status, workLast.workType.toString()); + assemblyPlanDao.updateByPrimaryKeySelective(assemblyPlan); return record; } @@ -271,16 +279,18 @@ /** * 鍘熺姸鎬�: 0:寰呯敓浜�,1:缁勮涓�,2:瀹屾垚,3:缁翠慨,4:鎶ュ簾,5:娴嬭瘯涓嶉�氳繃,6:鍝佹涓嶉�氳繃 - *20240717褰撳墠鐘舵�� 鐘舵��: 1, 缁勮涓�,2:瀹屾垚,3:缁翠慨,4:鎶ュ簾 - * @param status 鐘舵�� - * @param isEnd 鏄惁缁忓巻杩囩粨鏉熻妭鐐� + * 20240717褰撳墠鐘舵�� 鐘舵��: 1, 缁勮涓�,2:瀹屾垚,3:缁翠慨,4:鎶ュ簾 + * + * @param status 鐘舵�� + * @param isEnd 鏄惁缁忓巻杩囩粨鏉熻妭鐐� * @return 鐘舵�� */ private Integer getStatus(String status, boolean isEnd, String workType) { //缁勮 2024/07/17 鐩墠缁勮workType 1 鍙湁MarkOk //娴嬭瘯 //鍝佹 - if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_TEST.equals(workType) || WORK_TYPE_INSPECTION.equals(workType) || WORK_TYPE_REPAIR.equals(workType)) { + if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_TEST.equals(workType) || WORK_TYPE_INSPECTION.equals(workType) || WORK_TYPE_REPAIR.equals(workType)|| WORK_TYPE_OTHER.equals(workType)) { return switch (status) { case QrCodeConstant.MarkOk -> isEnd ? DeviceStatus.COMPLETED.getCode() : DeviceStatus.ASSEMBLING.getCode(); + case QrCodeConstant.MarkQualified -> isEnd ? DeviceStatus.COMPLETED.getCode() : DeviceStatus.ASSEMBLING.getCode(); case QrCodeConstant.MarkUnqualified -> DeviceStatus.REPAIR.getCode(); case QrCodeConstant.MarkWaste -> DeviceStatus.WASTE.getCode(); default -> throw new RuntimeException("鐘舵�侀敊璇�"); @@ -289,34 +299,36 @@ //缁翠慨 throw new RuntimeException("鐘舵�侀敊璇紝鏃犳晥鐨勮妭鐐圭被鍨�: " + workType); } + /** * 缁撴灉: 1:閫氳繃,2:娴嬭瘯閫氳繃,3:鍝佹閫氳繃,4:缁翠慨閫氳繃,5:娴嬭瘯涓嶉�氳繃,6:鍝佹涓嶉�氳繃,7:鎶ュ簾 - * @param status 鍓嶇鍑烘潵鐨勭姸鎬� + * + * @param status 鍓嶇鍑烘潵鐨勭姸鎬� * @return 缁撴灉 */ private Integer getResult(String status, String workType) { - //缁勮 - if (WORK_TYPE_ASSEMBLY.equals(workType)) { + //缁勮 涓存椂浠诲姟-鍏朵粬 + if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_OTHER.equals(workType)) { return switch (status) { case QrCodeConstant.MarkOk -> DeviceResult.PASS.getCode(); default -> throw new RuntimeException("鐘舵�侀敊璇�"); }; //娴嬭瘯 - }else if (WORK_TYPE_TEST.equals(workType)) { + } else if (WORK_TYPE_TEST.equals(workType)) { return switch (status) { - case QrCodeConstant.MarkOk -> DeviceResult.TEST_PASS.getCode(); + case QrCodeConstant.MarkQualified -> DeviceResult.TEST_PASS.getCode(); case QrCodeConstant.MarkUnqualified -> DeviceResult.TEST_FAIL.getCode(); default -> throw new RuntimeException("鐘舵�侀敊璇�"); }; //鍝佹 - }else if (WORK_TYPE_INSPECTION.equals(workType)) { + } else if (WORK_TYPE_INSPECTION.equals(workType)) { return switch (status) { - case QrCodeConstant.MarkOk -> DeviceResult.INSPECTION_PASS.getCode(); + case QrCodeConstant.MarkQualified -> DeviceResult.INSPECTION_PASS.getCode(); case QrCodeConstant.MarkUnqualified -> DeviceResult.INSPECTION_FAIL.getCode(); default -> throw new RuntimeException("鐘舵�侀敊璇�"); }; //缁翠慨 - }else if (WORK_TYPE_REPAIR.equals(workType)) { + } else if (WORK_TYPE_REPAIR.equals(workType)) { return switch (status) { case QrCodeConstant.MarkOk -> DeviceResult.REPAIR_PASS.getCode(); case QrCodeConstant.MarkWaste -> DeviceResult.WASTE.getCode(); @@ -326,15 +338,7 @@ throw new RuntimeException("鐘舵�侀敊璇紝鏃犳晥鐨勮妭鐐圭被鍨�: " + workType); } - - - - - - - - - + @Transactional public int repair(QueryVo vo) { long workId = Long.parseLong(vo.workId); StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId); @@ -348,21 +352,24 @@ repairInfo.repairTime = new Date(); repairInfo.repairBy = workLast.userId; repairInfo.repairReason = vo.errorMsg; - repairInfo.fromNode = preDeviceRecord.currNode; + if (preDeviceRecord != null) { + repairInfo.fromNode = preDeviceRecord.currNode; + } repairInfoDao.insertSelective(repairInfo); StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]); - + deviceLast.setRepairId(repairInfo.getId()); int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) : - deviceLastDao.updateByPrimaryKeySelective(deviceLast); + deviceLastDao.updateByPrimaryKey(deviceLast); saveDeviceProductionLog(deviceLast); - boolean isEndNode = nodeDao.isEndNode(preDeviceRecord.currNode); - if (isEndNode) { + //鍙缁忓巻杩囩粨鏉熻妭鐐�,灏变竴鐩磋褰昫evice life + if (preDeviceRecord != null && preDeviceRecord.getOutLineTime() != null) { saveDeviceLife(deviceLast); } return count; } + @Transactional public int testing(QueryVo vo) { long workId = Long.parseLong(vo.workId); StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId); @@ -371,11 +378,65 @@ } StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]); int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) : - deviceLastDao.updateByPrimaryKeySelective(deviceLast); + deviceLastDao.updateByPrimaryKey(deviceLast); saveDeviceProductionLog(deviceLast); PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId); - if (node.isRecord) { + if (node != null && node.isRecord) { saveDeviceLife(deviceLast); + } + return count; + } + + @Transactional + public int inspectQuality(QueryVo vo) { + long workId = Long.parseLong(vo.workId); + StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId); + if (workLast == null) { + throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�"); + } + StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]); + int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) : + deviceLastDao.updateByPrimaryKey(deviceLast); + saveDeviceProductionLog(deviceLast); + PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId); + if (node != null && node.isRecord) { + saveDeviceLife(deviceLast); + } + return count; + } + + //鏃犱换鍔¤鍒掍腑鐨勫叾浠� 浼爓orkId ,鎵嬪啓宸ヤ綔鍐呭 , 鏁伴噺 + @Transactional + public int otherWork(QueryVo vo) { + long workId = Long.parseLong(vo.workId); + StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId); + if (workLast == null) { + throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�"); + } + int count = 0; + //淇濆瓨宸ヤ綔璁板綍 //濡傛灉鏈夎澶囩爜 + if(vo.deviceNo != null && StringUtils.isNotBlank(vo.deviceNo[0])){ + StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]); + count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) : + deviceLastDao.updateByPrimaryKey(deviceLast); + saveDeviceProductionLog(deviceLast); + }else{ + StaDeviceProductionLog log = new StaDeviceProductionLog(); + log.setId(null); // 璁惧鐢熶骇鏃ュ織ID璁句负null锛岃〃绀烘柊澧� + log.setDeviceNo(""); //RepairId planId currNode deviceCycleContent memo + log.setWorkId(workId); + log.setStationId(workLast.getStationId()); + log.setNodeContent(vo.getContent()); + log.setStatus(DeviceStatus.COMPLETED.getCode());//瀹屾垚鐘舵�� + log.setResult(DeviceResult.PASS.getCode());//閫氳繃 + log.setErrorMsg(vo.getErrorMsg()); + log.setAssistants(workLast.getAssistants()); + log.setInTime(new Date()); + log.setOutTime(new Date()); + log.setUpdatedBy(workLast.getUserId()); + log.setNumber(vo.getNumber()); + count = deviceProductionLogDao.insertSelective(log); + } return count; } @@ -426,6 +487,7 @@ public List<PltProductQualityInspectionItems> getQualityItems(String proId) { Map<String, Object> params = new HashMap<>(); params.put("proId", proId);//item start count + params.put("disabled", "0"); //鏌ヨ绗﹀悎鏉′欢鐨勮褰� return qualityItemsDao.selectSome(params); } @@ -433,6 +495,7 @@ public List<PltProductTestInspectionItems> getTestItems(String proId) { Map<String, Object> params = new HashMap<>(); params.put("proId", proId); + params.put("disabled", "0"); return testItemsDao.selectSome(params); } @@ -489,14 +552,15 @@ return fileRestVo.fileWebUrl + file.filePath; } - public Map<String, String> queryByDeviceNo(String deviceNo,List<PltProduct> productList) { + public Map<String, String> queryByDeviceNo(String deviceNo, List<PltProduct> productList) { Map<String, String> map = new HashMap<>(); map.put("deviceNo", deviceNo); map.put("proName", ""); map.put("proType", ""); map.put("proId", ""); + map.put("proCode", ""); //鍒ゆ柇鏄笉鏄槸鏈巶鐗╂枡 - if(CollectionUtils.isEmpty(productList)){ + if (CollectionUtils.isEmpty(productList)) { productList = productDao.selectAll(null); } PltProduct product = null; @@ -509,8 +573,24 @@ map.put("proType", product.getType()); BigInteger proId = BigInteger.valueOf(product.getId()); map.put("proId", proId.toString()); + map.put("proCode", product.getCode()); } return map; + } + + //鏌ヨ浜у搧鎵�鍦ㄧ殑浠诲姟 + public PrAssemblyPlan queryPlanByDeviceNo(String deviceNo) { + String proCode = ""; + String lotCode = ""; + if (StringUtils.isNotEmpty(deviceNo) && deviceNo.length() == 22) { + proCode = deviceNo.substring(3, 6); + lotCode = deviceNo.substring(6, 15); + } + PrAssemblyPlan plan = assemblyPlanDao.selectByDeviceNo(proCode, lotCode); + if (plan != null) { + plan.setBatchNo(lotCode); + } + return plan; } public List<StaDeviceLife> queryLifeByDeviceNo(String deviceNo) { @@ -520,4 +600,6 @@ public List<StaDeviceProductionLog> queryLogByDeviceNo(String devoiceNo) { return deviceProductionLogDao.selectByDeviceNo(devoiceNo); } + + } -- Gitblit v1.8.0