|
|
@ -150,37 +150,34 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now()); |
|
|
|
validatelocation(inventorymoveRequestMainDO, inventorymoveRequestDetailDO); |
|
|
|
ItembasicDO itembasicDO = validteitembasic(inventorymoveRequestDetailDO); |
|
|
|
//校验库存余额是否存在
|
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
//隔离转合格申请
|
|
|
|
if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
inventoryStatus.add("HOLD"); |
|
|
|
String OkToScrapRequest = "HoldToOkRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); |
|
|
|
} |
|
|
|
//合格转隔离申请
|
|
|
|
if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
inventoryStatus.add("OK"); |
|
|
|
else if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
String OkToScrapRequest = "OkToHoldRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); |
|
|
|
} |
|
|
|
//隔离转报废申请
|
|
|
|
if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
inventoryStatus.add("HOLD"); |
|
|
|
else if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
String OkToScrapRequest = "HoldToScrapRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); |
|
|
|
} |
|
|
|
//报废转隔离申请
|
|
|
|
if ("SCRAP".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
inventoryStatus.add("SCRAP"); |
|
|
|
else if ("SCRAP".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
String OkToScrapRequest = "ScrapToHoldRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); |
|
|
|
} |
|
|
|
//合格转报废申请
|
|
|
|
if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
inventoryStatus.add("SCRAP"); |
|
|
|
else if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { |
|
|
|
String OkToScrapRequest = "OkToScrapRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); |
|
|
|
}//库存转移申请
|
|
|
|
else { |
|
|
|
String InventoryMoveRequest = "InventoryMoveRequest"; |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,InventoryMoveRequest); |
|
|
|
} |
|
|
|
validtebalance(inventorymoveRequestDetailDO); |
|
|
|
inventorymoveRequestDetailDO.setToBatch(inventorymoveRequestDetailDO.getFromBatch()); |
|
|
@ -224,16 +221,14 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateInventorymoveRequestMain(InventorymoveRequestMainUpdateReqVO updateReqVO) { |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest"); |
|
|
|
// 校验存在
|
|
|
|
validateInventorymoveRequestMainExists(updateReqVO.getId()); |
|
|
|
// 更新
|
|
|
|
InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO); |
|
|
|
|
|
|
|
if (RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
this.generateJob(inventorymoveRequestMainDO, inventorymoveRequestDetailMapper.selectList(inventorymoveRequestMainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE); |
|
|
|
trendsApi.createTrends(inventorymoveRequestMainDO.getId(), "InventoryMoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
|
private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO) { |
|
|
@ -294,73 +289,6 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
return inventorymoveRequestMainMapper.selectList(exportReqVO); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 主表导入验证 |
|
|
|
* |
|
|
|
* @param mainDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try { |
|
|
|
ValidationUtils.validate(validator, mainDo); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验来源/目标库位基础信息 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private void validatelocation(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) { |
|
|
|
LocationDO fromLocationDO = locationService.selectLocation(detailDo.getFromLocationCode()); |
|
|
|
if (fromLocationDO != null) { |
|
|
|
detailDo.setFromLocationCode(fromLocationDO.getCode()); |
|
|
|
mainDO.setFromWarehouseCode(fromLocationDO.getWarehouseCode()); |
|
|
|
mainDO.setFromLocationTypes(fromLocationDO.getType()); |
|
|
|
mainDO.setFromAreaCodes(fromLocationDO.getAreaCode()); |
|
|
|
} |
|
|
|
LocationDO toLocationDO = locationService.selectLocation(detailDo.getToLocationCode()); |
|
|
|
if (toLocationDO != null) { |
|
|
|
detailDo.setToLocationCode(toLocationDO.getCode()); |
|
|
|
mainDO.setToWarehouseCode(toLocationDO.getWarehouseCode()); |
|
|
|
mainDO.setToLocationTypes(fromLocationDO.getType()); |
|
|
|
mainDO.setToAreaCodes(toLocationDO.getAreaCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验物品基础信息 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private ItembasicDO validteitembasic(InventorymoveRequestDetailDO detailDo) { |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); |
|
|
|
detailDo.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
detailDo.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
detailDo.setItemName(itembasicDO.getName()); |
|
|
|
detailDo.setUom(itembasicDO.getUom()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
return itembasicDO; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验库存余额是否存在 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
*/ |
|
|
|
private void validtebalance(InventorymoveRequestDetailDO detailDo) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add(detailDo.getFromInventoryStatus()); |
|
|
|
jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() |
|
|
|
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 导入子表校验 |
|
|
|
* @param mainDO |
|
|
@ -394,9 +322,7 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
// mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
|
|
|
|
// }
|
|
|
|
//隔离转合格申请
|
|
|
|
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("HOLD"); |
|
|
|
if ("HOLD".equals(detailDo.getFromInventoryStatus()) && "OK".equals(detailDo.getToInventoryStatus())) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode()); |
|
|
|
detailDo.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
@ -416,11 +342,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
mainDO.setRequestTime(LocalDateTime.now()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//合格转隔离申请
|
|
|
|
if ("OK".equals(detailDo.getFromInventoryStatus())) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("OK"); |
|
|
|
else if ("OK".equals(detailDo.getFromInventoryStatus()) && "HOLD".equals(detailDo.getToInventoryStatus())) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
@ -439,11 +362,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//隔离转报废申请
|
|
|
|
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("HOLD"); |
|
|
|
else if ("HOLD".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
@ -462,11 +382,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//报废转隔离申请
|
|
|
|
if ("SCRAP".equals(detailDo.getFromInventoryStatus())) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("SCRAP"); |
|
|
|
else if ("SCRAP".equals(detailDo.getFromInventoryStatus()) && "HOLD".equals(detailDo.getToInventoryStatus())) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
@ -485,9 +402,28 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//合格转报废
|
|
|
|
if ("Ok".equals(detailDo.getFromInventoryStatus())) { |
|
|
|
else if ("OK".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
|
try { |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); |
|
|
|
mainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
validationBusinesstype(detailDo,businesstypeDO,messageDetail); |
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
} |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest"); |
|
|
|
if (requestsettingDO != null) { |
|
|
|
mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
} |
|
|
|
//合格转报废
|
|
|
|
else if ("OK".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("SCRAP"); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); |
|
|
@ -508,7 +444,28 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
}//库存转移申请
|
|
|
|
else { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_REQUEST.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
// 校验业务类型
|
|
|
|
try { |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRequest"); |
|
|
|
mainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
validationBusinesstype(detailDo,businesstypeDO,messageDetail); |
|
|
|
} catch (ServiceException ex) { |
|
|
|
messageDetail += ex.getMessage() + ","; |
|
|
|
} |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryMoveRequest"); |
|
|
|
if (requestsettingDO != null) { |
|
|
|
mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
validtebalance(detailDo); |
|
|
|
} catch (Exception ex) { |
|
|
@ -643,6 +600,10 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); |
|
|
|
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); |
|
|
|
}else { |
|
|
|
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); |
|
|
|
recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryMoveRecord"); |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord"); |
|
|
|
} |
|
|
|
inventorymoveRecordMainCreateReqVO.setNumber(number); |
|
|
|
inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
@ -699,6 +660,10 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_JOB.getCode()); |
|
|
|
jobsettingDO = jobsettingService.selectJobsettingExist("OkToScrapJob"); |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapJob"); |
|
|
|
}else { |
|
|
|
number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_JOB.getCode()); |
|
|
|
jobsettingDO = jobsettingService.selectJobsettingExist("InventoryMoveJob"); |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveJob"); |
|
|
|
} |
|
|
|
inventorymoveJobMainDO.setNumber(number); |
|
|
|
inventorymoveJobMainDO.setRequestTime(mainDO.getRequestTime()); |
|
|
@ -893,4 +858,73 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest |
|
|
|
public List<InventorymoveRequestMainDO> getInventorymoveRequestMainList(CustomConditions conditions) { |
|
|
|
return inventorymoveRequestMainMapper.selectSeniorList(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 主表导入验证 |
|
|
|
* |
|
|
|
* @param mainDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try { |
|
|
|
ValidationUtils.validate(validator, mainDo); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验来源/目标库位基础信息 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private void validatelocation(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) { |
|
|
|
LocationDO fromLocationDO = locationService.selectLocation(detailDo.getFromLocationCode()); |
|
|
|
if (fromLocationDO != null) { |
|
|
|
detailDo.setFromLocationCode(fromLocationDO.getCode()); |
|
|
|
mainDO.setFromWarehouseCode(fromLocationDO.getWarehouseCode()); |
|
|
|
mainDO.setFromLocationTypes(fromLocationDO.getType()); |
|
|
|
mainDO.setFromAreaCodes(fromLocationDO.getAreaCode()); |
|
|
|
} |
|
|
|
LocationDO toLocationDO = locationService.selectLocation(detailDo.getToLocationCode()); |
|
|
|
if (toLocationDO != null) { |
|
|
|
detailDo.setToLocationCode(toLocationDO.getCode()); |
|
|
|
mainDO.setToWarehouseCode(toLocationDO.getWarehouseCode()); |
|
|
|
mainDO.setToLocationTypes(fromLocationDO.getType()); |
|
|
|
mainDO.setToAreaCodes(toLocationDO.getAreaCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验物品基础信息 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private ItembasicDO validteitembasic(InventorymoveRequestDetailDO detailDo) { |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); |
|
|
|
detailDo.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
detailDo.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
detailDo.setItemName(itembasicDO.getName()); |
|
|
|
detailDo.setUom(itembasicDO.getUom()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
return itembasicDO; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验库存余额是否存在 |
|
|
|
* |
|
|
|
* @param detailDo |
|
|
|
*/ |
|
|
|
private void validtebalance(InventorymoveRequestDetailDO detailDo) { |
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add(detailDo.getFromInventoryStatus()); |
|
|
|
jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() |
|
|
|
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|