diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java index 8eed731de..70cacb477 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java @@ -80,59 +80,60 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl processR = remoteFlowApiFlowService.getProcessByBusinessKey(processKey); - if (!processR.isOk() || processR.getData() == null) { - throw new ServiceException("流程配置获取失败: " + processR.getMsg()); - } - String flowId = processR.getData().getFlowId(); - ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); - processInstanceParamDto.setFlowId(flowId); - Map params = new HashMap<>(); - params.put("inventoryType",inventoryType); - processInstanceParamDto.setParamMap(params); - R stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); - if (!stringR.isOk() || stringR.getData() == null) { - throw new ServiceException("流程实例启动失败: " + stringR.getMsg()); - } - String processInstanceId = stringR.getData(); - smErpCgDdEntity.setProcessInstanceId(processInstanceId); - smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); +// String inventoryType = inventoryRecordSaveDTO.getInventoryType(); +// String processKey = getProcessKey(inventoryType); +// R processR = remoteFlowApiFlowService.getProcessByBusinessKey(processKey); +// if (!processR.isOk() || processR.getData() == null) { +// throw new ServiceException("流程配置获取失败: " + processR.getMsg()); +// } +// String flowId = processR.getData().getFlowId(); +// ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); +// processInstanceParamDto.setFlowId(flowId); +// Map params = new HashMap<>(); +// params.put("inventoryType",inventoryType); +// processInstanceParamDto.setParamMap(params); +// R stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); +// if (!stringR.isOk() || stringR.getData() == null) { +// throw new ServiceException("流程实例启动失败: " + stringR.getMsg()); +// } +// String processInstanceId = stringR.getData(); +// smErpCgDdEntity.setProcessInstanceId(processInstanceId); +// smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); + smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.RESULT.getCode()); int insert = baseMapper.insert(smErpCgDdEntity); List cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class); // int sum1 = cgPlanItemEntities.stream().mapToInt(SmErpInventoryRecordsItemEntity::getTotalAmount).sum(); -// List updateStockDTOS = new ArrayList<>(); + List updateStockDTOS = new ArrayList<>(); for (SmErpInventoryRecordsItemEntity cgPlanItemEntity : cgPlanItemEntities) { cgPlanItemEntity.setInventoryId(smErpCgDdEntity.getId()); cgPlanItemEntity.setDeptId(deptId); -// UpdateStockDTO updateStockDTO = new UpdateStockDTO(); -// updateStockDTO.setId(cgPlanItemEntity.getErpSpuId()); -// Double quantity = cgPlanItemEntity.getQuantity(); + UpdateStockDTO updateStockDTO = new UpdateStockDTO(); + updateStockDTO.setId(cgPlanItemEntity.getErpSpuId()); + Double quantity = cgPlanItemEntity.getQuantity(); String orderType = smErpCgDdEntity.getOrderType(); cgPlanItemEntity.setOrderType(orderType); -// if (orderType.equals(OrderTypeEnum.RK.getType())){ -// updateStockDTO.setIncrCount(quantity); -// }else if (orderType.equals(OrderTypeEnum.CK.getType())){ -// updateStockDTO.setIncrCount(-quantity); -// }else if (orderType.equals(OrderTypeEnum.No.getType())){ -// //无需更新库存 -// }else { -// throw new RuntimeException("订单类型错误"); -// } + if (orderType.equals(OrderTypeEnum.RK.getType())){ + updateStockDTO.setIncrCount(quantity); + }else if (orderType.equals(OrderTypeEnum.CK.getType())){ + updateStockDTO.setIncrCount(-quantity); + }else if (orderType.equals(OrderTypeEnum.No.getType())){ + //无需更新库存 + }else { + throw new RuntimeException("订单类型错误"); + } -// updateStockDTOS.add(updateStockDTO); + updateStockDTOS.add(updateStockDTO); } smErpInventoryRecordsItemMapper.insert(cgPlanItemEntities); -// //todo 实际上应该审批后才会入库 -// //更新库存 -// if (!CollectionUtils.isEmpty(updateStockDTOS)){ -// smErpStockService.updateStock(updateStockDTOS); -// } +// //todo 实际上应该审批后才会入库,这里已经写完了,因为说要直接入库不审核,又改回去了 + //更新库存 + if (!CollectionUtils.isEmpty(updateStockDTOS)){ + smErpStockService.updateStock(updateStockDTOS); + } //更新已关联的采购,标记为已使用 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SmErpCgDdEntity::getCode, inventoryRecordSaveDTO.getInventoryCode()); @@ -487,6 +488,7 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl list) { //首先先查询是否有当前数据权限 LambdaQueryWrapper eq = new LambdaQueryWrapper().in(SmErpInventoryRecordsEntity::getId, list); @@ -495,6 +497,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl itemEntityLambdaQueryWrapper = new LambdaQueryWrapper() .in(SmErpInventoryRecordsItemEntity::getInventoryId, delIds); + //要删除的item + List items = smErpInventoryRecordsItemMapper.selectList(itemEntityLambdaQueryWrapper); smErpInventoryRecordsItemMapper.delete(itemEntityLambdaQueryWrapper); baseMapper.deleteByIds(delIds); List toDeleteIds = delIds.stream() @@ -503,6 +507,24 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl updateStockDTOS = new ArrayList<>(); + for (SmErpInventoryRecordsItemEntity item : items){ + //库存更新对象 + UpdateStockDTO updateStockDTO = new UpdateStockDTO(); + updateStockDTO.setId(item.getErpSpuId()); + Double quantity = item.getQuantity(); + String orderType = item.getOrderType(); + if (orderType.equals(OrderTypeEnum.RK.getType())){ + updateStockDTO.setIncrCount(quantity); + }else if (orderType.equals(OrderTypeEnum.CK.getType())){ + updateStockDTO.setIncrCount(-quantity); + }else { + throw new RuntimeException("订单类型错误"); + } + updateStockDTOS.add(updateStockDTO); + } + smErpStockService.updateStock(updateStockDTOS); return R.ok(); }