From c17e36e49be715a3305c79625187631184278c19 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期四, 05 六月 2025 09:52:16 +0800 Subject: [PATCH] 申请单入库 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java | 352 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 349 insertions(+), 3 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java index 061ee1c..0671b37 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.flowable.engine.TaskService; @@ -64,9 +65,43 @@ @Autowired private IToolLedgerDetailService toolLedgerDetailService; + + @Autowired + private IInboundDetailService inboundDetailService; @Override public boolean submit(String id) { InboundOrder inboundOrder = this.getById(id); + //鍊熺敤鍜屽垉纾ㄥ叆搴撴椂鏍¢獙搴撳瓨 + List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,id).list(); + if("2".equals(inboundOrder.getInStorehouseType())){ + for(InboundDetail inboundDetail : inboundDetailList){ + if(StringUtils.isNotBlank(inboundDetail.getToolId())){ + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one(); + if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒"); + } + }else { + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one(); + if(toolLedger.getLendCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒"); + } + } + } + }else if("5".equals(inboundOrder.getInStorehouseType())){ + for(InboundDetail inboundDetail : inboundDetailList){ + if(StringUtils.isNotBlank(inboundDetail.getToolId())){ + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one(); + if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒"); + } + }else { + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one(); + if(toolLedger.getSharpeningCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒"); + } + } + } + } //鍙戣捣瀹℃壒娴佺▼ this.triggerProcess(inboundOrder); //鏇存柊鍏ュ簱鍗曞鎵圭姸鎬佷负宸叉彁浜� @@ -91,7 +126,7 @@ variables.put("comment", "鏂板鍏ュ簱鐢宠鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); variables.put("proofreading", true); List<String> usernames = new ArrayList<>(); - usernames.add(inboundOrder.getHandler()); + usernames.add(inboundOrder.getReviewer()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("tool_in_storage", variables); return result.isSuccess(); @@ -165,9 +200,10 @@ //鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊鐢宠鍗曠姸鎬� if (result.isSuccess()) { - inboundOrder.setOrderStatus(inboundOrderFlowDto.getStatus()); if ("3".equals(inboundOrderFlowDto.getStatus())) { - inboundOrder.setInStatus("1"); + inboundOrder.setOrderStatus("3"); + }else if("4".equals(inboundOrderFlowDto.getStatus())){ + inboundOrder.setOrderStatus("1"); } inboundOrder.setReviewer(user.getUsername()); inboundOrder.setApprovalDate(new Date()); @@ -179,6 +215,7 @@ @Override public void addInStorage(JSONObject jSONObject) { String inStorehouseType = jSONObject.getString("inStorehouseType"); + String classifyId = jSONObject.getString("classifyId"); Date inboundTime = jSONObject.getDate("inboundTime"); //鑾峰彇鍏ュ簱鏄庣粏 JSONArray jsonArray = jSONObject.getJSONArray("detailData"); @@ -201,6 +238,7 @@ newToolLedger.setLossCount(BigDecimal.ZERO); newToolLedger.setRepairCount(BigDecimal.ZERO); newToolLedger.setSharpeningCount(BigDecimal.ZERO); + newToolLedger.setClassifyId(classifyId); toolLedgerService.save(newToolLedger); }else { toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); @@ -264,13 +302,321 @@ } } } + //褰掕繕鍏ュ簱 }else if("2".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨 + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + } }else if("5".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + } } } + @Override + public void addApplyInStorage(JSONObject jSONObject) { + String inStorehouseType = jSONObject.getString("inStorehouseType"); + //鍏ュ簱鐢宠鍗昳d + String orderId = jSONObject.getString("orderId"); + //鑾峰彇鍏ュ簱鏄庣粏 + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetailVo> inStoreDetailList =jsonArray.toJavaList(InboundDetailVo.class); + //鏂拌揣鍏ュ簱 + if("1".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList){ + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //鎿嶄綔搴撳瓨,鏌ヨ鎬诲簱瀛樻槸鍚﹀瓨鍦ㄨ绫诲垁鍏� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetailVo.getToolCodeId()).one(); + if(toolLedger == null){ + ToolLedger newToolLedger = new ToolLedger(); + newToolLedger.setToolId(inboundDetailVo.getToolCodeId()); + newToolLedger.setAvailableCount(inboundDetailVo.getInStorageQuantity()); + newToolLedger.setTotalCount(inboundDetailVo.getInStorageQuantity()); + newToolLedger.setLendCount(BigDecimal.ZERO); + newToolLedger.setDetectionCount(BigDecimal.ZERO); + newToolLedger.setLossCount(BigDecimal.ZERO); + newToolLedger.setRepairCount(BigDecimal.ZERO); + newToolLedger.setSharpeningCount(BigDecimal.ZERO); + newToolLedger.setClassifyId(inboundDetailVo.getClassifyId()); + toolLedgerService.save(newToolLedger); + }else { + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setTotalCount(toolLedger.getTotalCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + } + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //寰幆鍏ュ簱鏁伴噺锛屼负瀹炵墿璧嬬爜 + for(int i=0;i<inboundDetailVo.getInStorageQuantity().intValue();i++){ + BaseTools newBaseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //鏌ヨ褰撳墠缂栫爜 + String currentCode = newBaseTools.getCurrentCode(); + //灏嗗瓧绗︿覆杞崲涓烘暣鏁� + int num = Integer.parseInt(currentCode); + //鍔�1鎿嶄綔 + num++; + //杞崲鍥炲瓧绗︿覆骞朵繚鐣欏墠瀵奸浂 + String result = String.format("%0" + currentCode.length() + "d", num); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("1"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); + inStoreDetailService.save(inStoreDetail); + //澧炲姞搴撳瓨鏄庣粏 + ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail(); + toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); + toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.save(toolLedgerDetail); + //鏇存柊褰撳墠缂栫爜 + newBaseTools.setCurrentCode(result); + baseToolsService.updateById(newBaseTools); + } + //涓嶇鍒版妸 + }else { + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("1"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿 + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + if(toolLedgerDetail == null){ + ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail(); + newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); + newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity()); + newToolLedgerDetail.setStatus("1"); + toolLedgerDetailService.save(newToolLedgerDetail); + }else { + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetailService.updateById(toolLedgerDetail); + } + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + //褰掕繕鍏ュ簱 + }else if("2".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨 + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + }else if("5".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + } + //鏇存敼鐢宠鍗曞叆搴撶姸鎬� + InboundOrder inboundOrder = this.getById(orderId); + List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,orderId).list(); + boolean flag = inboundDetailList.stream().allMatch(inboundDetail -> "3".equals(inboundDetail.getInStatus())); + if(flag){ + inboundOrder.setInStatus("3"); + }else { + inboundOrder.setInStatus("2"); + } + this.updateById(inboundOrder); + } + private LoginUser getCurrentUser() { // 鑾峰彇褰撳墠璁よ瘉鐨勭櫥褰曠敤鎴蜂俊鎭� Subject currentUser = SecurityUtils.getSubject(); -- Gitblit v1.9.3