From d5bb894f9be2e0a3b62d475b60b44f2ab138528c Mon Sep 17 00:00:00 2001 From: guoyujie <guoyujie@ng.com> Date: 星期四, 12 六月 2025 16:48:35 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 102 insertions(+), 10 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java index 24dca0a..46dc82b 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java @@ -168,7 +168,7 @@ sysError.setError(e+Arrays.toString(e.getStackTrace())); sysError.setFunc("saveMaterialOutbound"); sysErrorService.insert(sysError); - saveState = "false1"; + saveState = "false"; } return saveState; @@ -201,21 +201,22 @@ //鏌ヨ鐗╂枡鏄惁瀛樺湪 - Integer MaterialInventoryCount=0; + List<MaterialInventory> MaterialInventoryCount; if (materialInventory.getDateOfManufacture()!=null){ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture()); }else{ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(materialCode); } - if(MaterialInventoryCount==1){ + if(MaterialInventoryCount.size()==1){ + materialInventory.setId(MaterialInventoryCount.get(0).getId()); if (materialInventory.getDateOfManufacture()!=null){ materialInventoryMapper.updateMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory); }else{ materialInventoryMapper.updateMaterialInventoryNull(materialCode,singlePieceArea,totalArea,materialInventory); } log.setFunction("saveMaterialInventory淇敼"); - }else if(MaterialInventoryCount==0) { + }else if(MaterialInventoryCount.isEmpty()) { materialInventoryMapper.insertMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory); log.setFunction("saveMaterialInventory鏂板"); }else { @@ -226,6 +227,9 @@ MaterialStore materialStore=materialStoreMapper.getSelectMaterialStoreById(materialCode); json=materialStore.getJson().substring(1, materialStore.getJson().length() - 1); MaterialLog materialLog=new MaterialLog(); + if(materialInventory.getDateOfManufacture()!=null){ + materialLog.setOperationOrderNumber(materialInventory.getDateOfManufacture().toString()); + } materialLog.setOperateType("鐗╂枡鏂板"); materialLog.setMaterialCode(materialCode); materialLog.setMaterialName(convertString(json,"\"name\"")); @@ -343,7 +347,10 @@ for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) { //杩樺師鐗╂枡搴撳瓨鏁� materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); - + if(materialOutboundDetail.getUseId()!=null){ + //杩樺師浼樺寲宸ョ▼搴撳瓨鏁� + materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity()); + } } } @@ -487,10 +494,12 @@ List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId); if (!materialOutboundDetailList.isEmpty()) { for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) { - + if(materialOutboundDetail.getUseId()!=null){ //淇敼鐗╂枡搴撳瓨鏁伴噺 + materialInventoryMapper.updateMaterialInventoryInventoryPlanQuantityOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); + }else{ materialInventoryMapper.updateMaterialInventoryInventoryOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); - + } } } @@ -499,9 +508,13 @@ List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId); if (!materialOutboundDetailList.isEmpty()) { for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) { - + if(materialOutboundDetail.getUseId()!=null){ //淇敼鐗╂枡搴撳瓨鏁伴噺 + materialInventoryMapper.updateMaterialInventoryInventoryPlanQuantityInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); + }else{ materialInventoryMapper.updateMaterialInventoryInventoryInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); + } + } @@ -589,7 +602,7 @@ //鏌ヨ鐗╂枡鏄惁瀛樺湪 - Integer MaterialInventoryCount=0; + List<MaterialInventory> MaterialInventoryCount; if (returningWarehouseDetail.getDateOfManufacture()!=null){ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture()); }else{ @@ -597,7 +610,7 @@ } - if(MaterialInventoryCount>0){ + if(!MaterialInventoryCount.isEmpty()){ if (returningWarehouseDetail.getDateOfManufacture()!=null){ materialInventoryMapper.updateMaterialInventoryReturning(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail); }else{ @@ -1009,7 +1022,86 @@ } + public String cancelMaterialAdditionRecord(Map<String,Object> object) { + String saveState = "true"; + //璁剧疆鍥炴粴鐐� + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + Log log = new Log(); + log.setOperatorId(object.get("userId").toString()); + log.setOperator(object.get("userName").toString()); + log.setFunction("cancelMaterialAdditionRecord鐗╂枡鏂板鎾ら攢"); + log.setContent(object.toString()); + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<MaterialLog> materialLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("materialAdd")), MaterialLog.class); + if (!materialLoglist.isEmpty()){ + for (MaterialLog materialLog : materialLoglist) { + + //鏌ヨ鐗╂枡鏄惁瀛樺湪 + List<MaterialInventory> MaterialInventoryList; + if (materialLog.getOperationOrderNumber()!=null){ + MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCount(materialLog.getMaterialCode(), LocalDate.parse(materialLog.getOperationOrderNumber())); + }else{ + MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCountNull(materialLog.getMaterialCode()); + } + + if(MaterialInventoryList.size()==1){ + if(MaterialInventoryList.get(0).getAvailableQuantity()>=materialLog.getQuantity()){ + if (materialLog.getOperationOrderNumber()!=null){ + materialInventoryMapper.updateMaterialInventoryOut(materialLog.getMaterialCode(),materialLog.getQuantity(),materialLog.getOperationOrderNumber()); + }else{ + materialInventoryMapper.updateMaterialInventoryNullOut(materialLog.getMaterialCode(),materialLog.getQuantity()); + } + materialInventoryMapper.deleteMaterialLogById(materialLog.getId()); + }else{ + return "false1"; + } + + }else{ + return "false2"; + } + } + } + logService.saveLog(log); + + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e+Arrays.toString(e.getStackTrace())); + sysError.setFunc("cancelFinishedGoodsInventoryStorage"); + sysErrorService.insert(sysError); + saveState = "false"; + + } + return saveState; + + } + + + public Map<String, Object> getOptimizeOutboundReport(String type, Integer pageNum, Integer pageSize, List<String> selectDate, MaterialLog materialLog) { + Integer offset = (pageNum-1)*pageSize; + String endDate = LocalDate.now().toString(); + String startDate = LocalDate.now().minusDays(15).toString(); + if(selectDate !=null && selectDate.size()==2){ + if(!selectDate.get(0).isEmpty()){ + startDate = selectDate.get(0); + } + if(!selectDate.get(1).isEmpty()){ + endDate = selectDate.get(1); + } + } + + Map<String, Object> map = new HashMap<>(); + map.put("data", materialInventoryMapper.getOptimizeOutboundReport(offset, pageSize,startDate, endDate, materialLog,type)); + map.put("total", materialInventoryMapper.getOptimizeOutboundReportTotal(offset, pageSize,startDate, endDate, materialLog,type)); + List<String> list = new ArrayList<>(); + list.add(startDate); + list.add(endDate); + map.put("selectDate",list); + return map; + } } -- Gitblit v1.8.0