|
@ -1,39 +1,57 @@ |
|
|
package com.win.module.wms.service.transferissueRequest; |
|
|
package com.win.module.wms.service.transferissueRequest; |
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
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.CustomConditions; |
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
import com.win.framework.dict.core.util.DictFrameworkUtils; |
|
|
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
|
|
import com.win.module.system.api.user.dto.AdminUserRespDTO; |
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; |
|
|
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; |
|
|
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; |
|
|
import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordDetailCreateReqVO; |
|
|
|
|
|
import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainCreateReqVO; |
|
|
import com.win.module.wms.controller.transferissueRequest.vo.*; |
|
|
import com.win.module.wms.controller.transferissueRequest.vo.*; |
|
|
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; |
|
|
import com.win.module.wms.convert.transferissueJob.TransferissueJobDetailConvert; |
|
|
|
|
|
import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert; |
|
|
|
|
|
import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert; |
|
|
|
|
|
import com.win.module.wms.convert.transferissueRecord.TransferissueRecordMainConvert; |
|
|
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; |
|
|
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; |
|
|
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert; |
|
|
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert; |
|
|
import com.win.module.wms.dal.dataobject.balance.BalanceDO; |
|
|
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.businesstype.BusinesstypeDO; |
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
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.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.requestsetting.RequestsettingDO; |
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
|
|
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; |
|
|
|
|
|
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; |
|
|
|
|
|
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; |
|
|
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; |
|
|
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.transferissueRequest.TransferissueRequestMainDO; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobDetailMapper; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobMainMapper; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordMainMapper; |
|
|
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestDetailMapper; |
|
|
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestDetailMapper; |
|
|
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestMainMapper; |
|
|
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestMainMapper; |
|
|
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.RequestStatusEnum; |
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
|
|
import com.win.module.wms.service.expectin.ExpectinService; |
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
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.location.LocationService; |
|
|
|
|
|
import com.win.module.wms.service.recordsetting.RecordsettingService; |
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
import com.win.module.wms.util.JobUtils; |
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.validation.annotation.Validated; |
|
|
import org.springframework.validation.annotation.Validated; |
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
import javax.validation.Validator; |
|
|
import javax.validation.Validator; |
|
@ -42,14 +60,15 @@ import java.util.ArrayList; |
|
|
import java.util.Collection; |
|
|
import java.util.Collection; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.TIME_AFTER; |
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS; |
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 调拨出库申请主 Service 实现类 |
|
|
* 调拨出库申请主 Service 实现类 |
|
|
* |
|
|
* |
|
|
* @author 超级管理员 |
|
|
* @author 超级管理员 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
@Slf4j |
|
|
@Service |
|
|
@Service |
|
|
@Validated |
|
|
@Validated |
|
|
public class TransferissueRequestMainServiceImpl implements TransferissueRequestMainService { |
|
|
public class TransferissueRequestMainServiceImpl implements TransferissueRequestMainService { |
|
@ -59,6 +78,14 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
@Resource |
|
|
@Resource |
|
|
private TransferissueRequestDetailMapper transferissueRequestDetailMapper; |
|
|
private TransferissueRequestDetailMapper transferissueRequestDetailMapper; |
|
|
@Resource |
|
|
@Resource |
|
|
|
|
|
private TransferissueRecordMainMapper transferissueRecordMainMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private TransferissueRecordDetailMapper transferissueRecordDetailMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private TransferissueJobMainMapper transferissueJobMainMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private TransferissueJobDetailMapper transferissueJobDetailMapper; |
|
|
|
|
|
@Resource |
|
|
private LocationService locationService; |
|
|
private LocationService locationService; |
|
|
@Resource |
|
|
@Resource |
|
|
private ItembasicService itembasicService; |
|
|
private ItembasicService itembasicService; |
|
@ -70,32 +97,56 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
private SerialNumberApi serialNumberApi; |
|
|
private SerialNumberApi serialNumberApi; |
|
|
@Resource |
|
|
@Resource |
|
|
private RequestsettingService requestsettingService; |
|
|
private RequestsettingService requestsettingService; |
|
|
|
|
|
|
|
|
@Resource |
|
|
@Resource |
|
|
private TrendsApi trendsApi; |
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private JobsettingService jobsettingService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private AdminUserApi userApi; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private ExpectinService expectinService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private RecordsettingService recordsettingService; |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
@Override |
|
|
@Override |
|
|
public Long createTransferissueRequestMain(TransferissueRequestMainCreateReqVO createReqVO) { |
|
|
public Long createTransferissueRequestMain(TransferissueRequestMainCreateReqVO createReqVO) { |
|
|
|
|
|
// Setting-----QReqs
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); |
|
|
//调用自动执行方法
|
|
|
//调用自动执行方法
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) { |
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) { |
|
|
|
|
|
List<TransferissueRequestDetailDO> detailDOList = transferissueRequestDetailMapper.selectList(transferissueRequestMainDO.getId()); |
|
|
|
|
|
this.generateJob(transferissueRequestMainDO,detailDOList); |
|
|
} |
|
|
} |
|
|
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE); |
|
|
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE); |
|
|
return transferissueRequestMainDO.getId(); |
|
|
return transferissueRequestMainDO.getId(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private TransferissueRequestMainDO validatorToCreate(TransferissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { |
|
|
public TransferissueRequestMainDO validatorToCreate(TransferissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { |
|
|
|
|
|
// DBT——>DBT3("TransferDeliverRequest")
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ |
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ |
|
|
|
|
|
// 校验业务类型
|
|
|
validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO); |
|
|
validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO); |
|
|
} |
|
|
} |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode()); |
|
|
transferissueRequestMainDO.setNumber(number); |
|
|
transferissueRequestMainDO.setNumber(number); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
|
|
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); |
|
|
|
|
|
transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
transferissueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
|
|
|
transferissueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
|
|
transferissueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
|
|
|
transferissueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
|
|
// 设置部门
|
|
|
|
|
|
Long userId = getLoginUserId(); |
|
|
|
|
|
AdminUserRespDTO userRespDTO = userApi.getUser(userId); |
|
|
|
|
|
transferissueRequestMainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); |
|
|
|
|
|
transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
transferissueRequestMainMapper.insert(transferissueRequestMainDO); |
|
|
transferissueRequestMainMapper.insert(transferissueRequestMainDO); |
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ |
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ |
|
|
transferissueRequestDetailDO.setMasterId(transferissueRequestMainDO.getId()); |
|
|
transferissueRequestDetailDO.setMasterId(transferissueRequestMainDO.getId()); |
|
@ -105,26 +156,45 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
return transferissueRequestMainDO; |
|
|
return transferissueRequestMainDO; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void validateDetailMethod(TransferissueRequestDetailDO transferissueRequestDetailDO, BusinesstypeDO businesstypeDO, TransferissueRequestMainDO transferissueRequestMainDO) { |
|
|
private void validateDetailMethod(TransferissueRequestDetailDO transferissueRequestDetailDO, BusinesstypeDO businesstypeDO, TransferissueRequestMainDO transferissueRequestMainDO) { |
|
|
transferissueRequestDetailDO.setCreateTime(LocalDateTime.now()); |
|
|
transferissueRequestDetailDO.setCreateTime(LocalDateTime.now()); |
|
|
|
|
|
// BQ——>QL 校验来源/目标库位基础信息
|
|
|
|
|
|
LocationDO tolocationDO = validatorLocation(transferissueRequestDetailDO.getToLocationCode()); |
|
|
|
|
|
if(tolocationDO == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferissueRequestDetailDO.getToLocationCode()); |
|
|
|
|
|
} |
|
|
|
|
|
LocationDO fromlocationDO = validatorLocation(transferissueRequestDetailDO.getFromLocationCode()); |
|
|
|
|
|
if(fromlocationDO == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferissueRequestDetailDO.getFromLocationCode()); |
|
|
|
|
|
} |
|
|
|
|
|
// BQ----QI 校验物品基础信息
|
|
|
ItembasicDO item = validatorItembasic(transferissueRequestDetailDO.getItemCode()); |
|
|
ItembasicDO item = validatorItembasic(transferissueRequestDetailDO.getItemCode()); |
|
|
|
|
|
if(item == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferissueRequestDetailDO.getItemCode()); |
|
|
|
|
|
} |
|
|
transferissueRequestDetailDO.setItemDesc1(item.getDesc1()); |
|
|
transferissueRequestDetailDO.setItemDesc1(item.getDesc1()); |
|
|
transferissueRequestDetailDO.setItemDesc2(item.getDesc2()); |
|
|
transferissueRequestDetailDO.setItemDesc2(item.getDesc2()); |
|
|
transferissueRequestDetailDO.setItemName(item.getName()); |
|
|
transferissueRequestDetailDO.setItemName(item.getName()); |
|
|
transferissueRequestDetailDO.setUom(item.getUom()); |
|
|
transferissueRequestDetailDO.setUom(item.getUom()); |
|
|
transferissueRequestDetailDO.setProjectCode(item.getProject()); |
|
|
transferissueRequestDetailDO.setProjectCode(item.getProject()); |
|
|
validatorLocation(transferissueRequestDetailDO.getToLocationCode()); |
|
|
// DBT——>DBT2——>LO 校验来源库位
|
|
|
|
|
|
jobUtils.ifInToLocationType(transferissueRequestDetailDO.getFromLocationCode(), businesstypeDO); |
|
|
|
|
|
// DBT——>DBT2——>LO 校验目标库位
|
|
|
jobUtils.ifInToLocationType(transferissueRequestDetailDO.getToLocationCode(), businesstypeDO); |
|
|
jobUtils.ifInToLocationType(transferissueRequestDetailDO.getToLocationCode(), businesstypeDO); |
|
|
|
|
|
// DBT——>DBT2——>SO 校验库存状态
|
|
|
jobUtils.ifOutInventoryStatuses(transferissueRequestDetailDO.getInventoryStatus(), businesstypeDO); |
|
|
jobUtils.ifOutInventoryStatuses(transferissueRequestDetailDO.getInventoryStatus(), businesstypeDO); |
|
|
List<BalanceDO> balance = validatebalance(transferissueRequestDetailDO); |
|
|
// TB——>TB1 校验库存余额是否存在
|
|
|
for(BalanceDO balancedo: balance ) { |
|
|
List<BalanceDO> balance = validatebalance(transferissueRequestDetailDO); |
|
|
|
|
|
for(BalanceDO balancedo: balance ) { |
|
|
transferissueRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode()); |
|
|
transferissueRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode()); |
|
|
} |
|
|
} |
|
|
|
|
|
transferissueRequestMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
transferissueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
|
|
transferissueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
|
|
transferissueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
|
|
transferissueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
@ -145,11 +215,8 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
return transferissueRequestMainDO; |
|
|
return transferissueRequestMainDO; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
public void updateTransferissueRequestMain(TransferissueRequestMainUpdateReqVO updateReqVO) { |
|
|
public void updateTransferissueRequestMain(TransferissueRequestMainUpdateReqVO updateReqVO) { |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
// 校验存在
|
|
|
// 校验存在
|
|
@ -157,12 +224,13 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
// 更新
|
|
|
// 更新
|
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); |
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) { |
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) { |
|
|
|
|
|
List<TransferissueRequestDetailDO> detailDOList = transferissueRequestDetailMapper.selectList(transferissueRequestMainDO.getId()); |
|
|
|
|
|
this.generateJob(transferissueRequestMainDO,detailDOList); |
|
|
} |
|
|
} |
|
|
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE); |
|
|
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private TransferissueRequestMainDO validatorToUpdate(TransferissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { |
|
|
public TransferissueRequestMainDO validatorToUpdate(TransferissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
//子表校验
|
|
|
//子表校验
|
|
@ -176,7 +244,6 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
} |
|
|
} |
|
|
transferissueRequestMainMapper.updateById(transferissueRequestMainDO); |
|
|
transferissueRequestMainMapper.updateById(transferissueRequestMainDO); |
|
|
return transferissueRequestMainDO; |
|
|
return transferissueRequestMainDO; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -192,10 +259,12 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
transferissueRequestMainMapper.deleteById(id); |
|
|
transferissueRequestMainMapper.deleteById(id); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void validateTransferissueRequestMainExists(Long id) { |
|
|
private TransferissueRequestMainDO validateTransferissueRequestMainExists(Long id) { |
|
|
if (transferissueRequestMainMapper.selectById(id) == null) { |
|
|
TransferissueRequestMainDO transferissueRequestMainDO = transferissueRequestMainMapper.selectById(id); |
|
|
|
|
|
if (transferissueRequestMainDO == null) { |
|
|
throw exception(TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS); |
|
|
throw exception(TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS); |
|
|
} |
|
|
} |
|
|
|
|
|
return transferissueRequestMainDO; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -223,8 +292,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private LocationDO validatorLocation(String Location){ |
|
|
private LocationDO validatorLocation(String Location){ |
|
|
|
|
|
return locationService.selectLocation(Location); |
|
|
return locationService.selectLocation(Location); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void validordurtime(LocalDateTime durtime){ |
|
|
private void validordurtime(LocalDateTime durtime){ |
|
@ -237,12 +305,21 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
StringBuilder message = new StringBuilder(); |
|
|
StringBuilder message = new StringBuilder(); |
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
mainDo.setCreateTime(LocalDateTime.now()); |
|
|
mainDo.setCreateTime(LocalDateTime.now()); |
|
|
|
|
|
if (businesstypeDO == null) { |
|
|
|
|
|
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); |
|
|
|
|
|
} else { |
|
|
|
|
|
mainDo.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
|
|
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
|
|
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
|
|
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
|
|
} |
|
|
try { |
|
|
try { |
|
|
validordurtime(mainDo.getDueTime()); |
|
|
validordurtime(mainDo.getDueTime()); |
|
|
} catch (Exception ex) { |
|
|
} catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
|
|
|
// Setting-----QReqs
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); |
|
|
if (requestsettingDO == null) { |
|
|
if (requestsettingDO == null) { |
|
|
message.append("未查找到制品上架申请的相关申请设置"); |
|
|
message.append("未查找到制品上架申请的相关申请设置"); |
|
@ -252,37 +329,43 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
} |
|
|
} |
|
|
if (businesstypeDO == null) { |
|
|
|
|
|
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); |
|
|
|
|
|
} else { |
|
|
|
|
|
mainDo.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
|
|
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
|
|
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
|
|
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
try { |
|
|
ValidationUtils.validate(validator, mainDo); |
|
|
ValidationUtils.validate(validator, mainDo); |
|
|
} catch (Exception ex) { |
|
|
} catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return message.toString(); |
|
|
return message.toString(); |
|
|
} |
|
|
} |
|
|
private List<BalanceDO> validatebalance(TransferissueRequestDetailDO detailDo){ |
|
|
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
|
|
inventoryStatus.add(detailDo.getInventoryStatus()); |
|
|
|
|
|
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus); |
|
|
|
|
|
return balanceDO; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<BalanceDO> validatebalance(TransferissueRequestDetailDO detailDo) { |
|
|
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
|
|
inventoryStatus.add(detailDo.getInventoryStatus()); |
|
|
|
|
|
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus); |
|
|
|
|
|
return balanceDO; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private String validateTransferissueRequestDetailImport(TransferissueRequestDetailDO detailDo, TransferissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
private String validateTransferissueRequestDetailImport(TransferissueRequestDetailDO detailDo, TransferissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
StringBuilder message = new StringBuilder(); |
|
|
StringBuilder message = new StringBuilder(); |
|
|
detailDo.setCreateTime(LocalDateTime.now()); |
|
|
detailDo.setCreateTime(LocalDateTime.now()); |
|
|
try{ |
|
|
try{ |
|
|
|
|
|
// BQ——>QL 校验来源/目标库位基础信息
|
|
|
|
|
|
LocationDO tolocationDO = validatorLocation(detailDo.getToLocationCode()); |
|
|
|
|
|
if(tolocationDO == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, detailDo.getToLocationCode()); |
|
|
|
|
|
} |
|
|
|
|
|
LocationDO fromlocationDO = validatorLocation(detailDo.getFromLocationCode()); |
|
|
|
|
|
if(fromlocationDO == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, detailDo.getFromLocationCode()); |
|
|
|
|
|
} |
|
|
|
|
|
}catch (Exception ex) { |
|
|
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
|
|
} |
|
|
|
|
|
try{ |
|
|
|
|
|
//BQ----QI 校验物品基础信息
|
|
|
ItembasicDO item = validatorItembasic(detailDo.getItemCode()); |
|
|
ItembasicDO item = validatorItembasic(detailDo.getItemCode()); |
|
|
|
|
|
if(item == null){ |
|
|
|
|
|
throw exception(TRANSFERISSUE_REQUEST_DETAIL_ITEM_NOT_EXISTS, detailDo.getItemCode()); |
|
|
|
|
|
} |
|
|
detailDo.setItemDesc1(item.getDesc1()); |
|
|
detailDo.setItemDesc1(item.getDesc1()); |
|
|
detailDo.setItemDesc2(item.getDesc2()); |
|
|
detailDo.setItemDesc2(item.getDesc2()); |
|
|
detailDo.setItemName(item.getName()); |
|
|
detailDo.setItemName(item.getName()); |
|
@ -292,23 +375,27 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
LocationDO location = validatorLocation(detailDo.getToLocationCode()); |
|
|
// DBT——>DBT2——>LO 校验来源库位
|
|
|
|
|
|
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); |
|
|
}catch (Exception ex) { |
|
|
}catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
|
|
|
// DBT——>DBT2——>LO 校验目标库位
|
|
|
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); |
|
|
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); |
|
|
}catch (Exception ex) { |
|
|
}catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
|
|
|
// DBT——>DBT2——>SO 校验库存状态
|
|
|
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); |
|
|
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); |
|
|
}catch (Exception ex) { |
|
|
}catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
List<BalanceDO> balance = validatebalance(detailDo); |
|
|
// TB——>TB1 校验库存余额是否存在
|
|
|
for(BalanceDO balancedo: balance ){ |
|
|
List<BalanceDO> balance = validatebalance(detailDo); |
|
|
|
|
|
for(BalanceDO balancedo: balance ){ |
|
|
mainDo.setFromWarehouseCode(balancedo.getWarehouseCode()); |
|
|
mainDo.setFromWarehouseCode(balancedo.getWarehouseCode()); |
|
|
} |
|
|
} |
|
|
}catch (Exception ex) { |
|
|
}catch (Exception ex) { |
|
@ -317,15 +404,17 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
return message.toString(); |
|
|
return message.toString(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
public List<TransferissueRequestMainImportErrorVO> importTransferissueRequestMainList(List<TransferissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { |
|
|
public List<TransferissueRequestMainImportErrorVO> importTransferissueRequestMainList(List<TransferissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { |
|
|
if (CollUtil.isEmpty(datas)) { |
|
|
if (CollUtil.isEmpty(datas)) { |
|
|
throw exception(TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS); |
|
|
throw exception(TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS); |
|
|
} |
|
|
} |
|
|
List<TransferissueRequestMainImportErrorVO> errorList = new ArrayList<>(); |
|
|
List<TransferissueRequestMainImportErrorVO> errorList = new ArrayList<>(); |
|
|
datas.forEach(createReqVO -> { |
|
|
datas.forEach(createReqVO -> { |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
|
|
|
TransferissueRequestMainDO mainDo = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO); |
|
|
TransferissueRequestMainDO mainDo = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
|
|
// 校验业务类型是否存在
|
|
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); |
|
|
String messageMain = validateTransferissueRequestMainImport(mainDo, businesstypeDO); |
|
|
String messageMain = validateTransferissueRequestMainImport(mainDo, businesstypeDO); |
|
|
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList); |
|
@ -343,10 +432,14 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
} |
|
|
} |
|
|
//写入数据
|
|
|
//写入数据
|
|
|
if (flag) { |
|
|
if (flag) { |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode()); |
|
|
mainDo.setNumber(number); |
|
|
mainDo.setNumber(number); |
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); |
|
|
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); |
|
|
|
|
|
// 设置部门
|
|
|
|
|
|
Long userId = getLoginUserId(); |
|
|
|
|
|
AdminUserRespDTO userRespDTO = userApi.getUser(userId); |
|
|
|
|
|
mainDo.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); |
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
transferissueRequestMainMapper.insert(mainDo); |
|
|
transferissueRequestMainMapper.insert(mainDo); |
|
|
for (TransferissueRequestDetailDO detailDO : subDOList) { |
|
|
for (TransferissueRequestDetailDO detailDO : subDOList) { |
|
@ -356,10 +449,225 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest |
|
|
transferissueRequestDetailMapper.insertBatch(subDOList); |
|
|
transferissueRequestDetailMapper.insertBatch(subDOList); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
// log.info("调拨出库申请错误信息:{}",errorList);
|
|
|
return errorList; |
|
|
return errorList; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer closeTransferissueRequestMain(Long id) { |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
if(count > 0) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_CLOSE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "关闭了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer reAddTransferissueRequestMain(Long id) { |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
if(count > 0) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_RE_ADD); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "打开了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer submitTransferissueRequestMain(Long id) { |
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_SUBMIT); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, transferissueRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "提交了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer abortTransferissueRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_ABORT); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "审批拒绝了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer agreeTransferissueRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_AGREE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, transferissueRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "审批同意了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer handleTransferissueRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(TRANSFERISSUE_REQUEST_CANNOT_HANDLE); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用执行方法
|
|
|
|
|
|
this.generateJob(mainDO, transferissueRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
trendsApi.createTrends(id, "transferissueRequest", "执行了调拨出库申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return transferissueRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 生成采购收货任务,不要改动事务传播方式,否则会有事务问题 |
|
|
|
|
|
* @param mainDO 采购收货主 |
|
|
|
|
|
* @param detailDOList 采购收货子 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void generateJob(TransferissueRequestMainDO mainDO, List<TransferissueRequestDetailDO> detailDOList) { |
|
|
|
|
|
//跳过任务直接生成记录
|
|
|
|
|
|
if("TRUE".equals(mainDO.getDirectCreateRecord())) { |
|
|
|
|
|
TransferissueRecordMainCreateReqVO transferissueRecordMainCreateReqVO = new TransferissueRecordMainCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(mainDO, transferissueRecordMainCreateReqVO); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setNumber(number); |
|
|
|
|
|
//增加业务类型
|
|
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord"); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
|
|
String interFaceType = recordsettingService.selectRecordsettingExist("TransferDeliverRecord").getInterfaceType(); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setInterfaceType(interFaceType); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setAvailable("TRUE"); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setId(null); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setCreator(null); |
|
|
|
|
|
transferissueRecordMainCreateReqVO.setCreateTime(null); |
|
|
|
|
|
TransferissueRecordMainDO transferissueRecordMainDO = TransferissueRecordMainConvert.INSTANCE.convert(transferissueRecordMainCreateReqVO); |
|
|
|
|
|
transferissueRecordMainMapper.insert(transferissueRecordMainDO); |
|
|
|
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO : detailDOList) { |
|
|
|
|
|
TransferissueRecordDetailCreateReqVO transferissueRecordDetailCreateReqVO = new TransferissueRecordDetailCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(transferissueRequestDetailDO, transferissueRecordDetailCreateReqVO); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setNumber(number); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setMasterId(String.valueOf(transferissueRecordMainDO.getId())); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setFromPackingNumber(transferissueRequestDetailDO.getPackingNumber()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setToPackingNumber(transferissueRequestDetailDO.getPackingNumber()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setFromContainerNumber(transferissueRequestDetailDO.getContainerNumber()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setToContainerNumber(transferissueRequestDetailDO.getContainerNumber()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setFromBatch(transferissueRequestDetailDO.getBatch()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setToBatch(transferissueRequestDetailDO.getBatch()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setInventoryStatus(transferissueRequestDetailDO.getInventoryStatus()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setFromLocationGroupCode(transferissueRequestDetailDO.getFromLocationCode()); |
|
|
|
|
|
transferissueRecordDetailCreateReqVO.setFromAreaCode(transferissueRequestDetailDO.getFromLocationCode()); |
|
|
|
|
|
transferissueRecordDetailMapper.insert(TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO)); |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
// 任务 主表数据创建
|
|
|
|
|
|
TransferissueJobMainDO transferissueJobMainDO = TransferissueJobMainConvert.INSTANCE.convert(mainDO); |
|
|
|
|
|
BeanUtils.copyProperties(mainDO,transferissueJobMainDO); |
|
|
|
|
|
// DBT——>DBT3("TransferDeliverJob")
|
|
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverJob"); |
|
|
|
|
|
transferissueJobMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
// Setting——>QJobS("TransferDeliverJob")
|
|
|
|
|
|
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("TransferDeliverJob"); |
|
|
|
|
|
transferissueJobMainDO.setRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_JOB.getCode()); |
|
|
|
|
|
transferissueJobMainDO.setDeliverDock(mainDO.getFromDockCode());//发货月台
|
|
|
|
|
|
transferissueJobMainDO.setRequestDueTime(mainDO.getDueTime()); |
|
|
|
|
|
transferissueJobMainDO.setNumber(number); |
|
|
|
|
|
transferissueJobMainDO.setId(null); |
|
|
|
|
|
transferissueJobMainDO.setCreateTime(null); |
|
|
|
|
|
transferissueJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); |
|
|
|
|
|
transferissueJobMainDO.setUpdateTime(null); |
|
|
|
|
|
transferissueJobMainDO.setUpdater(null); |
|
|
|
|
|
transferissueJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); |
|
|
|
|
|
transferissueJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); |
|
|
|
|
|
transferissueJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); |
|
|
|
|
|
transferissueJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); |
|
|
|
|
|
transferissueJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); |
|
|
|
|
|
transferissueJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); |
|
|
|
|
|
transferissueJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); |
|
|
|
|
|
transferissueJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); |
|
|
|
|
|
transferissueJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); |
|
|
|
|
|
transferissueJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); |
|
|
|
|
|
transferissueJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); |
|
|
|
|
|
transferissueJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
|
|
|
|
|
|
transferissueJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
|
|
|
|
|
|
transferissueJobMainMapper.insert(transferissueJobMainDO); |
|
|
|
|
|
|
|
|
|
|
|
// 任务 子表数据创建
|
|
|
|
|
|
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); |
|
|
|
|
|
List<TransferissueJobDetailDO> transferissueJobDetailDOList = new ArrayList<>(); |
|
|
|
|
|
for(TransferissueRequestDetailDO transferissueRequestDetailDO:detailDOList){ |
|
|
|
|
|
TransferissueJobDetailDO transferissueJobDetailDO = TransferissueJobDetailConvert.INSTANCE.convert(transferissueRequestDetailDO); |
|
|
|
|
|
BeanUtils.copyProperties(transferissueRequestDetailDO, transferissueJobDetailDO); |
|
|
|
|
|
transferissueJobDetailDO.setId(null); |
|
|
|
|
|
transferissueJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); |
|
|
|
|
|
transferissueJobDetailDO.setCreateTime(null); |
|
|
|
|
|
transferissueJobDetailDO.setUpdater(null); |
|
|
|
|
|
transferissueJobDetailDO.setUpdateTime(null); |
|
|
|
|
|
transferissueJobDetailDO.setMasterId(transferissueJobMainDO.getId()); |
|
|
|
|
|
transferissueJobDetailDO.setNumber(number); |
|
|
|
|
|
transferissueJobDetailDOList.add(transferissueJobDetailDO); |
|
|
|
|
|
//预计出
|
|
|
|
|
|
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(transferissueJobDetailDO, expectinCreateReqVO); |
|
|
|
|
|
expectinCreateReqVO.setJobNumber(number); |
|
|
|
|
|
expectinCreateReqVO.setBusinessType(transferissueJobMainDO.getBusinessType()); |
|
|
|
|
|
expectinCreateReqVO.setLocationCode(transferissueJobDetailDO.getFromLocationCode()); |
|
|
|
|
|
expectinCreateReqVO.setOwnerCode(transferissueJobDetailDO.getFromOwnerCode()); |
|
|
|
|
|
expectinCreateReqVO.setQty(transferissueJobDetailDO.getQty()); |
|
|
|
|
|
expectinCreateReqVOList.add(expectinCreateReqVO); |
|
|
|
|
|
} |
|
|
|
|
|
transferissueJobDetailMapper.insertBatch(transferissueJobDetailDOList); |
|
|
|
|
|
//增加预计入
|
|
|
|
|
|
expectinService.createExpectin(expectinCreateReqVOList); |
|
|
|
|
|
trendsApi.createTrends(transferissueJobMainDO.getId(), "transferissueJob", "调拨出库申请生成调拨出库任务", TrendsTypeEnum.CREATE); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|