|
|
@ -209,9 +209,9 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void ifdetailQtyBigThanQty(BigDecimal detailQty, BigDecimal qty) { |
|
|
|
private void ifDetailQtyBigThanQty(BigDecimal detailQty, BigDecimal qty) { |
|
|
|
if (detailQty.compareTo(qty) > 0) { |
|
|
|
throw exception(QTY_EXCEPTION, "退货数量" + qty + "不能大于于收货数量" + detailQty); |
|
|
|
throw exception(QTY_EXCEPTION, "退货数量" + qty + "不能大于收货数量" + detailQty); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -233,12 +233,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
Long count = purchasereturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_CLOSE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
@ -252,12 +252,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
Long count = purchasereturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_RE_ADD); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
@ -271,12 +271,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_SUBMIT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
this.generateJob(mainDO, purchasereturnRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "purchasereturnRequest", "提交了采购收货申请", TrendsTypeEnum.UPDATE); |
|
|
@ -290,12 +290,12 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_AGREE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
this.generateJob(mainDO, purchasereturnRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "purchasereturnRequest", "审批同意了采购收货申请", TrendsTypeEnum.UPDATE); |
|
|
@ -309,7 +309,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_HANDLE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
@ -326,7 +326,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
PurchasereturnRequestMainDO mainDO = validatePurchasereturnRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASERETURN_REQUEST_CANNOT_ABORT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
@ -336,7 +336,8 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
|
|
|
|
/** |
|
|
|
* 生成采购收货任务,不要改动事务传播方式,否则会有事务问题 |
|
|
|
* @param mainDO 采购收货主 |
|
|
|
* |
|
|
|
* @param mainDO 采购收货主 |
|
|
|
* @param detailDOList 采购收货子 |
|
|
|
*/ |
|
|
|
private void generateJob(PurchasereturnRequestMainDO mainDO, List<PurchasereturnRequestDetailDO> detailDOList) { |
|
|
@ -363,10 +364,14 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
purchasereturnJobMainDO.setCreator(null); |
|
|
|
purchasereturnJobMainDO.setUpdateTime(null); |
|
|
|
purchasereturnJobMainDO.setUpdater(null); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest"); |
|
|
|
purchasereturnJobMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
purchasereturnJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); |
|
|
|
purchasereturnJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); |
|
|
|
purchasereturnJobMainMapper.insert(purchasereturnJobMainDO); |
|
|
|
List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>(); |
|
|
|
List<PurchasereturnJobDetailDO> purchasereturnJobDetailDOList = new ArrayList<>(); |
|
|
|
for(PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : detailDOList) { |
|
|
|
for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : detailDOList) { |
|
|
|
PurchasereturnJobDetailDO purchasereturnJobDetailDO = PurchasereturnJobDetailConvert.INSTANCE.convert(purchasereturnRequestDetailDO); |
|
|
|
purchasereturnJobDetailDO.setToLocationCode(purchasereturnRequestDetailDO.getToLocationCode()); |
|
|
|
purchasereturnJobDetailDO.setNumber(number); |
|
|
@ -433,7 +438,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
//子表校验
|
|
|
|
for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : subDOList) { |
|
|
|
purchasereturnRequestDetailDO.setId(null); |
|
|
|
validatorDetailMethod(purchasereturnRequestDetailDO,mainDO); |
|
|
|
validatorDetailMethod(purchasereturnRequestDetailDO, mainDO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -446,7 +451,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
} |
|
|
|
|
|
|
|
//校验主表公共方法(适用于新增/修改)
|
|
|
|
private PurchasereturnRequestMainDO validatorMainMethod(PurchasereturnRequestMainBaseVO baseVO){ |
|
|
|
private PurchasereturnRequestMainDO validatorMainMethod(PurchasereturnRequestMainBaseVO baseVO) { |
|
|
|
PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
|
requestsettingAndBusinesstypeSet(mainDo); |
|
|
|
return mainDo; |
|
|
@ -465,9 +470,9 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectById(purchasereceiptRecordDetailDO.getMasterId()); |
|
|
|
mainDo.setPpNumber(purchasereceiptRecordMainDO.getPpNumber()); |
|
|
|
mainDo.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber()); |
|
|
|
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); |
|
|
|
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo); |
|
|
|
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal); |
|
|
|
ifDetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); |
|
|
|
BigDecimal bigDecimal = validatorBalance(detailDo, mainDo); |
|
|
|
ifDetailQtyBigThanQty(detailDo.getQty(), bigDecimal); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -511,7 +516,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
* @param detailDo |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private String validatorPurchasereturnRequestDetailImport(PurchasereturnRequestDetailDO detailDo, PurchasereturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { |
|
|
|
private String validatorPurchasereturnRequestDetailImport(PurchasereturnRequestDetailDO detailDo, PurchasereturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try { |
|
|
|
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); |
|
|
@ -533,20 +538,20 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); |
|
|
|
}catch (Exception ex) { |
|
|
|
validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
validatorLocation(detailDo.getFromLocationCode()); |
|
|
|
}catch (Exception ex) { |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch()); |
|
|
|
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectById(purchasereceiptRecordDetailDO.getMasterId()); |
|
|
|
try { |
|
|
|
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); |
|
|
|
ifDetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
@ -554,10 +559,10 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo); |
|
|
|
try{ |
|
|
|
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal); |
|
|
|
}catch (Exception ex) { |
|
|
|
BigDecimal bigDecimal = validatorBalance(detailDo, mainDo); |
|
|
|
try { |
|
|
|
ifDetailQtyBigThanQty(detailDo.getQty(), bigDecimal); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
} catch (Exception ex) { |
|
|
|