From 2a8a645716d3772de03aa43cb126b8aa738d2015 Mon Sep 17 00:00:00 2001 From: 廖井涛 <2265517004@qq.com> Date: 星期三, 26 三月 2025 12:44:04 +0800 Subject: [PATCH] 物料新增撤回功能 --- north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java | 73 ++++++++++++++++++++++++++++++++++-- 1 files changed, 68 insertions(+), 5 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 f3c8ce6..1be42c5 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 @@ -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\"")); @@ -598,7 +602,7 @@ //鏌ヨ鐗╂枡鏄惁瀛樺湪 - Integer MaterialInventoryCount=0; + List<MaterialInventory> MaterialInventoryCount; if (returningWarehouseDetail.getDateOfManufacture()!=null){ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture()); }else{ @@ -606,7 +610,7 @@ } - if(MaterialInventoryCount>0){ + if(!MaterialInventoryCount.isEmpty()){ if (returningWarehouseDetail.getDateOfManufacture()!=null){ materialInventoryMapper.updateMaterialInventoryReturning(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail); }else{ @@ -1018,6 +1022,65 @@ } + 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.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; + + } + + -- Gitblit v1.8.0