修改超市入库
This commit is contained in:
1 parent
c067a48980
commit
5138684ba1
1 file changed
+60
-38
+60
-38
@@ -80,59 +80,60 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
smErpCgDdEntity.setTotalAmount(sum);
|
||||
|
||||
//发起流程
|
||||
String inventoryType = inventoryRecordSaveDTO.getInventoryType();
|
||||
String processKey = getProcessKey(inventoryType);
|
||||
R<Process> 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<String,Object> params = new HashMap<>();
|
||||
params.put("inventoryType",inventoryType);
|
||||
processInstanceParamDto.setParamMap(params);
|
||||
R<String> 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<Process> 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<String,Object> params = new HashMap<>();
|
||||
// params.put("inventoryType",inventoryType);
|
||||
// processInstanceParamDto.setParamMap(params);
|
||||
// R<String> 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<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class);
|
||||
// int sum1 = cgPlanItemEntities.stream().mapToInt(SmErpInventoryRecordsItemEntity::getTotalAmount).sum();
|
||||
|
||||
// List<UpdateStockDTO> updateStockDTOS = new ArrayList<>();
|
||||
List<UpdateStockDTO> 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<SmErpCgDdEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SmErpCgDdEntity::getCode, inventoryRecordSaveDTO.getInventoryCode());
|
||||
@@ -487,6 +488,7 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object removeBatch(ArrayList<Long> list) {
|
||||
//首先先查询是否有当前数据权限
|
||||
LambdaQueryWrapper<SmErpInventoryRecordsEntity> eq = new LambdaQueryWrapper<SmErpInventoryRecordsEntity>().in(SmErpInventoryRecordsEntity::getId, list);
|
||||
@@ -495,6 +497,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
|
||||
LambdaQueryWrapper<SmErpInventoryRecordsItemEntity> itemEntityLambdaQueryWrapper = new LambdaQueryWrapper<SmErpInventoryRecordsItemEntity>()
|
||||
.in(SmErpInventoryRecordsItemEntity::getInventoryId, delIds);
|
||||
//要删除的item
|
||||
List<SmErpInventoryRecordsItemEntity> items = smErpInventoryRecordsItemMapper.selectList(itemEntityLambdaQueryWrapper);
|
||||
smErpInventoryRecordsItemMapper.delete(itemEntityLambdaQueryWrapper);
|
||||
baseMapper.deleteByIds(delIds);
|
||||
List<Long> toDeleteIds = delIds.stream()
|
||||
@@ -503,6 +507,24 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
if (!CollectionUtils.isEmpty(toDeleteIds)){
|
||||
return R.failed("越权删除!");
|
||||
}
|
||||
//删除之前入库的库存
|
||||
List<UpdateStockDTO> 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();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user