|
|
@ -4,47 +4,51 @@ import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.framework.dict.core.util.DictFrameworkUtils; |
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
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.productputawayRequest.vo.ProductputawayImportErrorVO; |
|
|
|
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO; |
|
|
|
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; |
|
|
|
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; |
|
|
|
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO; |
|
|
|
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; |
|
|
|
import com.win.module.wms.controller.unplannedreceiptRecord.vo.UnplannedreceiptRecordDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.unplannedreceiptRecord.vo.UnplannedreceiptRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; |
|
|
|
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; |
|
|
|
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobDetailConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobMainConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordMainConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.location.LocationDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptJob.UnplannedreceiptJobDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptJob.UnplannedreceiptJobMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper; |
|
|
|
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.businesstype.BusinesstypeService; |
|
|
|
import com.win.module.wms.service.expectin.ExpectinService; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.jobsetting.JobsettingService; |
|
|
|
import com.win.module.wms.service.location.LocationService; |
|
|
|
import com.win.module.wms.service.recordsetting.RecordsettingService; |
|
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.shift.ShiftService; |
|
|
|
import com.win.module.wms.service.supplieritem.SupplieritemService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
@ -54,6 +58,7 @@ import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
|
|
|
|
|
/** |
|
|
@ -70,37 +75,151 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
@Resource |
|
|
|
private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private ShiftService shiftService; |
|
|
|
@Resource |
|
|
|
private ItembasicService itembasicService; |
|
|
|
@Resource |
|
|
|
private SupplieritemService supplieritemService; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private LocationService locationService; |
|
|
|
@Resource |
|
|
|
private BusinesstypeService businesstypeService; |
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
@Resource |
|
|
|
private RequestsettingService requestsettingService; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
@Resource |
|
|
|
private RecordsettingService recordsettingService; |
|
|
|
@Resource |
|
|
|
private UnplannedreceiptRecordMainMapper unplannedreceiptRecordMainMapper; |
|
|
|
@Resource |
|
|
|
private UnplannedreceiptRecordDetailMapper unplannedreceiptRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private JobsettingService jobsettingService; |
|
|
|
@Resource |
|
|
|
private AdminUserApi userApi; |
|
|
|
@Resource |
|
|
|
private UnplannedreceiptJobMainMapper unplannedreceiptJobMainMapper; |
|
|
|
@Resource |
|
|
|
private UnplannedreceiptJobDetailMapper unplannedreceiptJobDetailMapper; |
|
|
|
@Resource |
|
|
|
private ExpectinService expectinService; |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) { |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); |
|
|
|
// Setting——>QReqS("UnplannedReceiptRequest")
|
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); |
|
|
|
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
List<UnplannedreceiptRequestDetailDO> detailDOList = unplannedreceiptRequestDetailMapper.selectList(unplannedreceiptRequestMainDO.getId()); |
|
|
|
this.generateJob(unplannedreceiptRequestMainDO,detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); |
|
|
|
return unplannedreceiptRequestMainDO.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
private void generateJob(UnplannedreceiptRequestMainDO mainDO, List<UnplannedreceiptRequestDetailDO> detailDOList) { |
|
|
|
//跳过任务直接生成记录
|
|
|
|
if("TRUE".equals(mainDO.getDirectCreateRecord())) { |
|
|
|
UnplannedreceiptRecordMainCreateReqVO unplannedreceiptRecordMainCreateReqVO = new UnplannedreceiptRecordMainCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(mainDO, unplannedreceiptRecordMainCreateReqVO); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_RECORD.getCode()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setNumber(number); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRecord"); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
String interFaceType = recordsettingService.selectRecordsettingExist("UnplannedReceiptRecord").getInterfaceType(); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setInterfaceType(interFaceType); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setAvailable("TRUE"); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setId(null); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setCreator(null); |
|
|
|
unplannedreceiptRecordMainCreateReqVO.setCreateTime(null); |
|
|
|
UnplannedreceiptRecordMainDO unplannedreceiptRecordMainDO = UnplannedreceiptRecordMainConvert.INSTANCE.convert(unplannedreceiptRecordMainCreateReqVO); |
|
|
|
unplannedreceiptRecordMainMapper.insert(unplannedreceiptRecordMainDO); |
|
|
|
|
|
|
|
for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : detailDOList) { |
|
|
|
UnplannedreceiptRecordDetailCreateReqVO unplannedreceiptRecordDetailCreateReqVO = new UnplannedreceiptRecordDetailCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(unplannedreceiptRequestDetailDO, unplannedreceiptRecordDetailCreateReqVO); |
|
|
|
unplannedreceiptRecordDetailCreateReqVO.setNumber(number); |
|
|
|
unplannedreceiptRecordDetailCreateReqVO.setMasterId(String.valueOf(unplannedreceiptRequestDetailDO.getId())); |
|
|
|
unplannedreceiptRecordDetailCreateReqVO.setInventoryStatus(unplannedreceiptRequestDetailDO.getInventoryStatus()); |
|
|
|
UnplannedreceiptRecordDetailDO unplannedreceiptRecordDetailDO = UnplannedreceiptRecordDetailConvert.INSTANCE.convert(unplannedreceiptRecordDetailCreateReqVO); |
|
|
|
unplannedreceiptRecordDetailMapper.insert(unplannedreceiptRecordDetailDO); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 任务 主表数据创建
|
|
|
|
UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = UnplannedreceiptJobMainConvert.INSTANCE.convert(mainDO); |
|
|
|
BeanUtils.copyProperties(mainDO,unplannedreceiptJobMainDO); |
|
|
|
unplannedreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); |
|
|
|
// DBT——>DBT3("TransferDeliverJob")
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptJob"); |
|
|
|
unplannedreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
// Setting——>QJobS("TransferDeliverJob")
|
|
|
|
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("UnplannedReceiptJob"); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_JOB.getCode()); |
|
|
|
unplannedreceiptJobMainDO.setNumber(number); |
|
|
|
unplannedreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); |
|
|
|
unplannedreceiptJobMainDO.setId(null); |
|
|
|
unplannedreceiptJobMainDO.setCreateTime(null); |
|
|
|
unplannedreceiptJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); |
|
|
|
unplannedreceiptJobMainDO.setUpdateTime(null); |
|
|
|
unplannedreceiptJobMainDO.setUpdater(null); |
|
|
|
unplannedreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); |
|
|
|
unplannedreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); |
|
|
|
unplannedreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); |
|
|
|
unplannedreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); |
|
|
|
unplannedreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); |
|
|
|
unplannedreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); |
|
|
|
unplannedreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); |
|
|
|
unplannedreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); |
|
|
|
unplannedreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); |
|
|
|
unplannedreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); |
|
|
|
unplannedreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); |
|
|
|
unplannedreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
|
|
|
|
unplannedreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
|
|
|
|
unplannedreceiptJobMainMapper.insert(unplannedreceiptJobMainDO); |
|
|
|
|
|
|
|
// 任务 子表数据创建
|
|
|
|
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); |
|
|
|
List<UnplannedreceiptJobDetailDO> unplannedreceiptJobDetailDOList = new ArrayList<>(); |
|
|
|
for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO:detailDOList){ |
|
|
|
UnplannedreceiptJobDetailDO unplannedreceiptJobDetailDO = UnplannedreceiptJobDetailConvert.INSTANCE.convert(unplannedreceiptRequestDetailDO); |
|
|
|
BeanUtils.copyProperties(unplannedreceiptRequestDetailDO, unplannedreceiptJobDetailDO); |
|
|
|
unplannedreceiptJobDetailDO.setId(null); |
|
|
|
unplannedreceiptJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); |
|
|
|
unplannedreceiptJobDetailDO.setCreateTime(null); |
|
|
|
unplannedreceiptJobDetailDO.setUpdater(null); |
|
|
|
unplannedreceiptJobDetailDO.setUpdateTime(null); |
|
|
|
unplannedreceiptJobDetailDO.setMasterId(unplannedreceiptJobMainDO.getId()); |
|
|
|
unplannedreceiptJobDetailDO.setNumber(number); |
|
|
|
unplannedreceiptJobDetailDOList.add(unplannedreceiptJobDetailDO); |
|
|
|
//预计出
|
|
|
|
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(unplannedreceiptJobDetailDO, expectinCreateReqVO); |
|
|
|
expectinCreateReqVO.setJobNumber(number); |
|
|
|
expectinCreateReqVO.setBusinessType(unplannedreceiptJobMainDO.getBusinessType()); |
|
|
|
expectinCreateReqVO.setLocationCode(unplannedreceiptJobDetailDO.getToLocationCode()); |
|
|
|
expectinCreateReqVO.setOwnerCode(unplannedreceiptJobDetailDO.getOwnerCode()); |
|
|
|
expectinCreateReqVO.setQty(unplannedreceiptJobDetailDO.getQty()); |
|
|
|
expectinCreateReqVOList.add(expectinCreateReqVO); |
|
|
|
} |
|
|
|
unplannedreceiptJobDetailMapper.insertBatch(unplannedreceiptJobDetailDOList); |
|
|
|
//增加预计入
|
|
|
|
expectinService.createExpectin(expectinCreateReqVOList); |
|
|
|
trendsApi.createTrends(unplannedreceiptJobMainDO.getId(), "UnplannedReceiptJob", "计划外入库申请生成计划外入库任务", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
|
private UnplannedreceiptRequestMainDO validatorToCreate(UnplannedreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { |
|
|
|
// DBT——>DBT3("UnplannedReceiptRequest")
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); |
|
|
|
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
|
List<UnplannedreceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
@ -108,8 +227,10 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO,unplannedreceiptRequestMainDO); |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode()); |
|
|
|
unplannedreceiptRequestMainDO.setNumber(number); |
|
|
|
unplannedreceiptRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());// 入库库存状态范围
|
|
|
|
unplannedreceiptRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); // 出库库存状态范围
|
|
|
|
unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMainDO); |
|
|
|
for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){ |
|
|
|
unplannedreceiptRequestDetailDO.setMasterId(unplannedreceiptRequestMainDO.getId()); |
|
|
@ -120,20 +241,26 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
} |
|
|
|
|
|
|
|
private void validateDetailMethod(UnplannedreceiptRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO) { |
|
|
|
detailDo.setCreateTime(LocalDateTime.now()); |
|
|
|
// BQ——>QL
|
|
|
|
LocationDO toLocationDO = validatorLocation(detailDo.getToLocationCode()); |
|
|
|
if(toLocationDO == null){ |
|
|
|
throw exception(UNPLANNEDRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, detailDo.getToLocationCode()); |
|
|
|
} |
|
|
|
// BQ——>QI
|
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); |
|
|
|
detailDo.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
detailDo.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
detailDo.setItemName(itembasicDO.getName()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
detailDo.setUom(itembasicDO.getUom()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
// DBT——>DBT2——>LO
|
|
|
|
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); |
|
|
|
// DBT——>DBT2——>SO
|
|
|
|
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); |
|
|
|
detailDo.setCreateTime(LocalDateTime.now()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private UnplannedreceiptRequestMainDO validateMainMethod(UnplannedreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
|
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
|
unplannedreceiptRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
@ -155,9 +282,10 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
// 更新
|
|
|
|
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); |
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
List<UnplannedreceiptRequestDetailDO> detailDOList = unplannedreceiptRequestDetailMapper.selectList(unplannedreceiptRequestMainDO.getId()); |
|
|
|
this.generateJob(unplannedreceiptRequestMainDO,detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
|
private UnplannedreceiptRequestMainDO validatorToUpdate(UnplannedreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { |
|
|
@ -189,10 +317,12 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
unplannedreceiptRequestMainMapper.deleteById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private void validateUnplannedreceiptRequestMainExists(Long id) { |
|
|
|
if (unplannedreceiptRequestMainMapper.selectById(id) == null) { |
|
|
|
private UnplannedreceiptRequestMainDO validateUnplannedreceiptRequestMainExists(Long id) { |
|
|
|
UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = unplannedreceiptRequestMainMapper.selectById(id); |
|
|
|
if (unplannedreceiptRequestMainDO == null) { |
|
|
|
throw exception(UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS); |
|
|
|
} |
|
|
|
return unplannedreceiptRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -222,7 +352,7 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
} |
|
|
|
|
|
|
|
private LocationDO validatorLocation(String Location){ |
|
|
|
return locationService.selectLocation(Location); |
|
|
|
return locationService.selectLocation(Location); |
|
|
|
} |
|
|
|
|
|
|
|
private String validateUnplannedreceiptRequestMainImport(UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
@ -287,8 +417,115 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR |
|
|
|
return unplannedreceiptRequestMainMapper.selectSeniorList(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer closeUnplannedreceiptRequestMain(Long id) { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
Long count = unplannedreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_JOB_MAIN_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_CLOSE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "关闭了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer reAddUnplannedreceiptRequestMain(Long id) { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
Long count = unplannedreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_JOB_MAIN_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_RE_ADD); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "打开了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer submitUnplannedreceiptRequestMain(Long id) { |
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_SUBMIT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
List<UnplannedreceiptRequestDetailDO> detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO,detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "提交了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer abortUnplannedreceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_ABORT); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "审批拒绝了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer agreeUnplannedreceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_AGREE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
List<UnplannedreceiptRequestDetailDO> detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO,detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "审批同意了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer handleUnplannedreceiptRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
|
UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_HANDLE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用执行方法
|
|
|
|
List<UnplannedreceiptRequestDetailDO> detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO,detailDOList); |
|
|
|
trendsApi.createTrends(id, "UnplannedReceiptRequest", "执行了计划外入库申请", TrendsTypeEnum.UPDATE); |
|
|
|
return unplannedreceiptRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
public List<UnplannedreceiptRequestMainImportErrorVO> importUnplannedreceiptRequestMainList(List<UnplannedreceiptRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { |
|
|
|
if (CollUtil.isEmpty(datas)) { |
|
|
|