|
|
@ -1,8 +1,7 @@ |
|
|
|
package com.win.module.wms.service.deliverRequest; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
|
import com.win.framework.common.exception.ErrorCode; |
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
|
import com.win.framework.dict.core.util.DictFrameworkUtils; |
|
|
@ -11,36 +10,51 @@ import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.system.api.dict.DictDataApi; |
|
|
|
import com.win.module.system.api.dict.dto.DictDataRespDTO; |
|
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.deliverRequest.vo.*; |
|
|
|
import com.win.module.wms.controller.issueRequest.vo.*; |
|
|
|
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; |
|
|
|
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; |
|
|
|
import com.win.module.wms.convert.deliverJob.DeliverJobDetailConvert; |
|
|
|
import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.balance.BalanceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; |
|
|
|
import com.win.module.wms.dal.mysql.balance.BalanceMapper; |
|
|
|
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.deliverJob.DeliverJobDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.deliverJob.DeliverJobMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; |
|
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
|
import com.win.module.wms.enums.job.JobStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.customer.*; |
|
|
|
import com.win.module.wms.service.customerdock.*; |
|
|
|
import com.win.module.wms.service.expectout.ExpectoutService; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.jobsetting.JobsettingService; |
|
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.validation.Validator; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
import java.math.BigDecimal; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.*; |
|
|
|
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.module.wms.convert.deliverRequest.DeliverRequestMainConvert; |
|
|
|
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper; |
|
|
@ -61,7 +75,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
private DeliverRequestMainMapper deliverRequestMainMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private DeliverRequestDetailMapper deliverRequestDetailMapper; |
|
|
|
private DeliverRequestDetailMapper deliverRequestDetailMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private DeliverJobMainMapper deliverJobMainMapper; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
@ -69,6 +86,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private AdminUserApi userApi; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private Validator validator; |
|
|
|
|
|
|
@ -80,109 +100,69 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
@Resource |
|
|
|
private CustomerService customerService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private CustomerdockService customerdockService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private CustomerreturnJobDetailMapper customerreturnJobDetailMapper; |
|
|
|
@Resource |
|
|
|
private RequestsettingService requestsettingService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ExpectoutService expectoutService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private DeliverJobMainService deliverJobMainService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private DeliverJobDetailMapper deliverJobDetailMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private RuleService ruleService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private JobsettingService jobsettingService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private BalanceMapper balanceMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ExpectoutMapper expectoutMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); |
|
|
|
DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); |
|
|
|
DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,businesstypeDO,requestsettingDO); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) { |
|
|
|
|
|
|
|
generateJob(deliverRequestMain,deliverRequestDetailMapper.selectList(deliverRequestMain.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); |
|
|
|
return deliverRequestMain.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { |
|
|
|
BusinesstypeDO businesstypeDO = new BusinesstypeDO(); |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
|
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
|
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
|
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(deliverRequestDetailDO); |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); |
|
|
|
deliverRequestMainDO.setNumber(number); |
|
|
|
deliverRequestMainMapper.insert(deliverRequestMainDO); |
|
|
|
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { |
|
|
|
deliverRequestDetailDO.setMasterId(deliverRequestMainDO.getId()); |
|
|
|
deliverRequestDetailDO.setNumber(deliverRequestMainDO.getNumber()); |
|
|
|
} |
|
|
|
deliverRequestDetailMapper.insertBatch(subDOList); |
|
|
|
return deliverRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestMainDO validateMainMethod(DeliverRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = DeliverRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
|
deliverRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
deliverRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
|
requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); |
|
|
|
deliverRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
deliverRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
deliverRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
deliverRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); |
|
|
|
deliverRequestMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
deliverRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
deliverRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
return deliverRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) { |
|
|
|
ItembasicDO itembasicDO = validatoritemcode(deliverRequestDetailDO.getItemCode()); |
|
|
|
deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
deliverRequestDetailDO.setItemName(itembasicDO.getName()); |
|
|
|
deliverRequestDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom()); |
|
|
|
SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode()); |
|
|
|
if(saleDetailDO!=null) { |
|
|
|
Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode()); |
|
|
|
} |
|
|
|
return deliverRequestDetailDO; |
|
|
|
} |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) { |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); |
|
|
|
// 校验存在
|
|
|
|
validateDeliverRequestMainExists(updateReqVO.getId()); |
|
|
|
// 更新
|
|
|
|
DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); |
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { |
|
|
|
BusinesstypeDO businesstypeDO = new BusinesstypeDO(); |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
|
//子表校验
|
|
|
|
List<DeliverRequestDetailCreateReqVO> subList = updateReqVO.getSubList(); |
|
|
|
if(subList!=null){ |
|
|
|
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
|
for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(issueRequestDetailDO); |
|
|
|
deliverRequestDetailMapper.updateBatch(subDOList); |
|
|
|
} |
|
|
|
} |
|
|
|
deliverRequestMainMapper.updateById(deliverRequestMainDO); |
|
|
|
return deliverRequestMainDO; |
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) { |
|
|
|
generateJob(deliverRequestMainDO,deliverRequestDetailMapper.selectList(deliverRequestMainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "修改了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void deleteDeliverRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
validateDeliverRequestMainExists(id); |
|
|
@ -190,10 +170,12 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
deliverRequestMainMapper.deleteById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private void validateDeliverRequestMainExists(Long id) { |
|
|
|
if (deliverRequestMainMapper.selectById(id) == null) { |
|
|
|
private DeliverRequestMainDO validateDeliverRequestMainExists(Long id) { |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = deliverRequestMainMapper.selectById(id); |
|
|
|
if (deliverRequestMainDO == null) { |
|
|
|
throw exception(DELIVER_REQUEST_MAIN_NOT_EXISTS); |
|
|
|
} |
|
|
|
return deliverRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -220,30 +202,225 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
public List<DeliverRequestMainDO> getDeliverRequestMainList(DeliverRequestMainExportReqVO exportReqVO) { |
|
|
|
return deliverRequestMainMapper.selectList(exportReqVO); |
|
|
|
} |
|
|
|
public String Isuom(String uom1, String uom2) { |
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); |
|
|
|
String value = dictDataRespDTO.getLabel(); |
|
|
|
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2); |
|
|
|
String value2 = dictDataRespDTO1.getLabel(); |
|
|
|
if(value2.equals(value)){ |
|
|
|
return "ture"; |
|
|
|
}else { |
|
|
|
throw exception(UOM_ERROR, value2); |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<DeliverRequestMainDO> getDeliverPlanMainList(CustomConditions conditions) { |
|
|
|
return deliverRequestMainMapper.selectSeniorList(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
// @Override
|
|
|
|
@Override |
|
|
|
public Integer closeDeliverRequestMain(Long id) { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
Long count = deliverJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_CLOSE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "deliverRequest", "关闭了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty,String sonumber,String soline,String itemcode) { |
|
|
|
BigDecimal resultqty = orderqty.subtract(shippedqty); |
|
|
|
if( resultqty.compareTo(detailqty)>0 ) |
|
|
|
return "TURE"; |
|
|
|
else{ |
|
|
|
throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty); |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer reAddDeliverRequestMain(Long id) { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
Long count = deliverJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_JOB_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_RE_ADD); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "deliverRequest", "打开了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
// @Override
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer submitDeliverRequestMain(Long id) { |
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_SUBMIT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "deliverRequest", "提交了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
// @Override
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer agreeDeliverRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_AGREE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "deliverRequest", "审批同意了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
// @Override
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer handleDeliverRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_HANDLE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用执行方法
|
|
|
|
this.generateJob(mainDO, deliverRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
trendsApi.createTrends(id, "deliverRequest", "执行了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
// @Override
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer abortDeliverRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
DeliverRequestMainDO mainDO = validateDeliverRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(DELIVER_REQUEST_CANNOT_ABORT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
trendsApi.createTrends(id, "deliverRequest", "审批拒绝了发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return deliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 生成采购收货任务,不要改动事务传播方式,否则会有事务问题 |
|
|
|
* @param mainDO 采购收货主 |
|
|
|
* @param detailDOList 采购收货子 |
|
|
|
*/ |
|
|
|
private void generateJob(DeliverRequestMainDO mainDO, List<DeliverRequestDetailDO> detailDOList) { |
|
|
|
DeliverJobMainDO deliverJobMainDO = DeliverJobMainConvert.INSTANCE.convert(mainDO); |
|
|
|
BeanUtils.copyProperties(mainDO, deliverJobMainDO); |
|
|
|
deliverJobMainDO.setRequestNumber(mainDO.getNumber()); |
|
|
|
deliverJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_JOB.getCode()); |
|
|
|
deliverJobMainDO.setNumber(number); |
|
|
|
deliverJobMainDO.setId(null); |
|
|
|
deliverJobMainDO.setRequestTime(mainDO.getRequestTime()); |
|
|
|
deliverJobMainDO.setRequestDueTime(mainDO.getDueTime()); |
|
|
|
deliverJobMainDO.setCreator(null); |
|
|
|
deliverJobMainDO.setCreateTime(null); |
|
|
|
deliverJobMainDO.setUpdater(null); |
|
|
|
deliverJobMainDO.setUpdateTime(null); |
|
|
|
// 获取任务单据设置
|
|
|
|
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("DeliverJob"); |
|
|
|
deliverJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); |
|
|
|
deliverJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); |
|
|
|
deliverJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); |
|
|
|
deliverJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); |
|
|
|
deliverJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); |
|
|
|
deliverJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); |
|
|
|
deliverJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); |
|
|
|
deliverJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); |
|
|
|
deliverJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); |
|
|
|
deliverJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverJob"); |
|
|
|
deliverJobMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
deliverJobMainMapper.insert(deliverJobMainDO); |
|
|
|
List<ExpectoutCreateReqVO> expectpoutCreateReqVOList = new ArrayList<>(); |
|
|
|
List<DeliverJobDetailDO> deliverJobDetailDOList = new ArrayList<>(); |
|
|
|
detailDOList.forEach(item -> { |
|
|
|
// 根据批次策略/下架策略 返回 库存余额DO
|
|
|
|
List<BalanceDO> balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(item.getItemCode(),"OK",item.getProjectCode(),item.getQty()); |
|
|
|
// 根据 查询出所需数据 解析成 任务子表数据
|
|
|
|
balanceDOListJob.forEach(balanceDOItem -> { |
|
|
|
DeliverJobDetailDO deliverJobDetailDo = new DeliverJobDetailDO(); |
|
|
|
BeanUtils.copyProperties(item, deliverJobDetailDo); |
|
|
|
deliverJobDetailDo.setId(null); |
|
|
|
deliverJobDetailDo.setCreateTime(null); |
|
|
|
deliverJobDetailDo.setCreator(null); |
|
|
|
deliverJobDetailDo.setUpdateTime(null); |
|
|
|
deliverJobDetailDo.setUpdater(null); |
|
|
|
deliverJobDetailDo.setProjectCode(item.getProjectCode()); |
|
|
|
deliverJobDetailDo.setPackingNumber(balanceDOItem.getPackingNumber()); |
|
|
|
deliverJobDetailDo.setContainerNumber(balanceDOItem.getContainerNumber()); |
|
|
|
deliverJobDetailDo.setBatch(balanceDOItem.getBatch()); |
|
|
|
deliverJobDetailDo.setFromLocationCode(balanceDOItem.getLocationCode()); |
|
|
|
deliverJobDetailDo.setToLocationCode(item.getToLocationCode()); |
|
|
|
deliverJobDetailDo.setItemCode(item.getItemCode()); |
|
|
|
deliverJobDetailDo.setItemName(item.getItemName()); |
|
|
|
deliverJobDetailDo.setItemDesc1(item.getItemDesc1()); |
|
|
|
deliverJobDetailDo.setItemDesc2(item.getItemDesc2()); |
|
|
|
deliverJobDetailDo.setProjectCode(item.getProjectCode()); |
|
|
|
deliverJobDetailDo.setQty(item.getQty()); |
|
|
|
deliverJobDetailDo.setUom(item.getUom()); |
|
|
|
deliverJobDetailDo.setNumber(deliverJobMainDO.getNumber()); |
|
|
|
deliverJobDetailDo.setMasterId(deliverJobMainDO.getId()); |
|
|
|
deliverJobDetailDo.setInventoryStatus(item.getInventoryStatus()); |
|
|
|
deliverJobDetailDOList.add(deliverJobDetailDo); |
|
|
|
//预计出
|
|
|
|
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(deliverJobDetailDo, expectoutCreateReqVO); |
|
|
|
expectoutCreateReqVO.setJobNumber(number); |
|
|
|
expectoutCreateReqVO.setBusinessType(deliverJobMainDO.getBusinessType()); |
|
|
|
expectoutCreateReqVO.setLocationCode(deliverJobDetailDo.getFromLocationCode()); |
|
|
|
expectoutCreateReqVO.setBatch(deliverJobDetailDo.getBatch()); |
|
|
|
expectoutCreateReqVO.setOwnerCode(deliverJobDetailDo.getOwnerCode()); |
|
|
|
expectoutCreateReqVO.setQty(deliverJobDetailDo.getQty()); |
|
|
|
expectoutCreateReqVO.setInventoryStatus("OK"); |
|
|
|
expectpoutCreateReqVOList.add(expectoutCreateReqVO); |
|
|
|
}); |
|
|
|
}); |
|
|
|
deliverJobDetailMapper.insertBatch(deliverJobDetailDOList); |
|
|
|
//增加预计入
|
|
|
|
expectoutService.createExpectout(expectpoutCreateReqVOList); |
|
|
|
trendsApi.createTrends(deliverJobMainDO.getId(), "DeliverJob", "成品发货申请生成成品发货任务", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
|
private String validateDeliverRequestMainImport(DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
|
|
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
|
try{ |
|
|
|
validatorcustomercode(mainDo.getCustomerCode()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try{ |
|
|
|
CustomerdockDO customerdockDO = validatorcustomerDockCode(mainDo.getCustomerCode(),mainDo.getCustomerDockCode()); |
|
|
|
if(customerdockDO == null){ |
|
|
|
message.append("未查找到客户" + mainDo.getCustomerCode() + "与" + "客户月台" + mainDo.getCustomerDockCode() + "相关的数据"); |
|
|
|
}else { |
|
|
|
mainDo.setToWarehouseCode(customerdockDO.getWarehouseCode()); |
|
|
|
} |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); |
|
|
|
if (requestsettingDO == null) { |
|
|
|
message.append("未查找到发料申请的相关申请设置"); |
|
|
@ -252,8 +429,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); |
|
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
|
} |
|
|
|
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); |
|
|
|
if(businesstypeDO == null){ |
|
|
|
message.append("根据单据设置未查找到发料申请的相关业务类型"); |
|
|
|
}else { |
|
|
@ -270,26 +449,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
} |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
private void validatorcustomercode(String code){ |
|
|
|
customerService.selectCustomerExist(code); |
|
|
|
} |
|
|
|
private ItembasicDO validatoritemcode(String code){ |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(code); |
|
|
|
return itembasicDO; |
|
|
|
} |
|
|
|
|
|
|
|
private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){ |
|
|
|
SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode ); |
|
|
|
return saleDetailDO; |
|
|
|
} |
|
|
|
|
|
|
|
private String validateIssueRequestDetailImport(DeliverRequestDetailDO detailDo, DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
|
private String validateIssueRequestDetailImport(DeliverRequestDetailDO detailDo) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
try{ |
|
|
|
validatorcustomercode(mainDo.getCustomerCode()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try { |
|
|
|
ItembasicDO itembasicDO = validatoritemcode(detailDo.getItemCode()); |
|
|
|
detailDo.setItemDesc1(itembasicDO.getDesc1()); |
|
|
@ -304,18 +466,19 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
}catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
try{ |
|
|
|
SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode()); |
|
|
|
if(saleDetailDO!=null) { |
|
|
|
try { |
|
|
|
Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
} |
|
|
|
}catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
|
//TODO 暂时滞后 等待销售订单开发后再启动
|
|
|
|
// try{
|
|
|
|
// SaleDetailDO saleDetailDO = validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode());
|
|
|
|
// if(saleDetailDO!=null) {
|
|
|
|
// try {
|
|
|
|
// Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode());
|
|
|
|
// } catch (Exception ex) {
|
|
|
|
// message.append(ex.getMessage()).append(",");
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }catch (Exception ex) {
|
|
|
|
// message.append(ex.getMessage()).append(",");
|
|
|
|
// }
|
|
|
|
try { |
|
|
|
ValidationUtils.validate(validator, detailDo); |
|
|
|
} catch (Exception ex) { |
|
|
@ -324,9 +487,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){ |
|
|
@ -335,7 +495,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
} |
|
|
|
List<DeliverRequestImportErrorVO> errorList = new ArrayList<>(); |
|
|
|
datas.forEach(createReqVO -> { |
|
|
|
BusinesstypeDO businesstypeDO = new BusinesstypeDO(); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); |
|
|
|
DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO); |
|
|
|
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
@ -343,7 +503,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
// 是否有错误数据
|
|
|
|
boolean flag = true; |
|
|
|
for (DeliverRequestDetailDO detailDO : subDOList) { |
|
|
|
String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO); |
|
|
|
String messageDetail = validateIssueRequestDetailImport(detailDO); |
|
|
|
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { |
|
|
|
DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); |
|
|
|
importErrorVO.setImportStatus("失败"); |
|
|
@ -357,7 +517,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
if (flag) { |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); |
|
|
|
mainDo.setNumber(number); |
|
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1")); |
|
|
|
deliverRequestMainMapper.insert(mainDo); |
|
|
|
for (DeliverRequestDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
@ -369,4 +529,100 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService |
|
|
|
return errorList; |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
|
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
|
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
|
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(deliverRequestDetailDO); |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_REQUEST.getCode()); |
|
|
|
deliverRequestMainDO.setNumber(number); |
|
|
|
deliverRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
|
deliverRequestMainMapper.insert(deliverRequestMainDO); |
|
|
|
for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { |
|
|
|
deliverRequestDetailDO.setMasterId(deliverRequestMainDO.getId()); |
|
|
|
deliverRequestDetailDO.setNumber(deliverRequestMainDO.getNumber()); |
|
|
|
} |
|
|
|
deliverRequestDetailMapper.insertBatch(subDOList); |
|
|
|
return deliverRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestMainDO validateMainMethod(DeliverRequestMainBaseVO baseVO ,BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
|
DeliverRequestMainDO deliverRequestMainDO = DeliverRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
|
validatorcustomercode(deliverRequestMainDO.getCustomerCode()); |
|
|
|
CustomerdockDO customerdockDO = validatorcustomerDockCode(deliverRequestMainDO.getCustomerCode(),deliverRequestMainDO.getCustomerDockCode()); |
|
|
|
if(customerdockDO == null){ |
|
|
|
deliverRequestMainDO.setToWarehouseCode(null); |
|
|
|
}else { |
|
|
|
deliverRequestMainDO.setToWarehouseCode(customerdockDO.getWarehouseCode()); |
|
|
|
} |
|
|
|
deliverRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
deliverRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
deliverRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
deliverRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
requestStatusState.newObject(deliverRequestMainDO.getAutoCommit(), deliverRequestMainDO.getAutoAgree(), deliverRequestMainDO.getAutoExecute()); |
|
|
|
deliverRequestMainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
deliverRequestMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
deliverRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
deliverRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
return deliverRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) { |
|
|
|
ItembasicDO itembasicDO = validatoritemcode(deliverRequestDetailDO.getItemCode()); |
|
|
|
deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
deliverRequestDetailDO.setItemName(itembasicDO.getName()); |
|
|
|
deliverRequestDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom()); |
|
|
|
SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode()); |
|
|
|
//TODO 后续销售订单开发后再解除注释
|
|
|
|
// if(saleDetailDO!=null) {
|
|
|
|
// Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode());
|
|
|
|
// }
|
|
|
|
return deliverRequestDetailDO; |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorcustomercode(String code){ |
|
|
|
customerService.selectCustomerExist(code); |
|
|
|
} |
|
|
|
|
|
|
|
private CustomerdockDO validatorcustomerDockCode(String customerCode,String customerDockCode){ |
|
|
|
return customerdockService.getCustomerdockByCustomerCode(customerCode,customerDockCode); |
|
|
|
} |
|
|
|
|
|
|
|
private ItembasicDO validatoritemcode(String code){ |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(code); |
|
|
|
return itembasicDO; |
|
|
|
} |
|
|
|
|
|
|
|
private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){ |
|
|
|
SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode ); |
|
|
|
return saleDetailDO; |
|
|
|
} |
|
|
|
|
|
|
|
private String Isuom(String uom1, String uom2) { |
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); |
|
|
|
String value = dictDataRespDTO.getLabel(); |
|
|
|
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2); |
|
|
|
String value2 = dictDataRespDTO1.getLabel(); |
|
|
|
if(value2.equals(value)){ |
|
|
|
return "ture"; |
|
|
|
}else { |
|
|
|
throw exception(UOM_ERROR, value2); |
|
|
|
} |
|
|
|
} |
|
|
|
//TODO 后续销售订单开发后再解除注释
|
|
|
|
// private String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty, String sonumber, String soline, String itemcode) {
|
|
|
|
// BigDecimal resultqty = orderqty.subtract(shippedqty);
|
|
|
|
// if(resultqty.compareTo(detailqty) > 0)
|
|
|
|
// return "TURE";
|
|
|
|
// else{
|
|
|
|
// throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
} |
|
|
|