|
@ -4,17 +4,22 @@ import cn.hutool.core.collection.CollUtil; |
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
import cn.hutool.core.util.StrUtil; |
|
|
import cn.hutool.core.util.StrUtil; |
|
|
import com.google.common.annotations.VisibleForTesting; |
|
|
import com.google.common.annotations.VisibleForTesting; |
|
|
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
import com.win.framework.datapermission.core.util.DataPermissionUtils; |
|
|
import com.win.framework.datapermission.core.util.DataPermissionUtils; |
|
|
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.dict.DictDataApi; |
|
|
import com.win.module.system.api.dict.DictDataApi; |
|
|
import com.win.module.system.api.dict.dto.DictDataRespDTO; |
|
|
import com.win.module.system.api.dict.dto.DictDataRespDTO; |
|
|
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
|
|
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; |
|
|
|
|
|
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; |
|
|
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; |
|
|
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; |
|
|
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; |
|
|
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; |
|
|
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainBaseVO; |
|
|
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainBaseVO; |
|
|
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO; |
|
|
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO; |
|
|
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; |
|
|
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; |
|
|
|
|
|
import com.win.module.wms.controller.rule.vo.RuleRespVO; |
|
|
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; |
|
|
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; |
|
|
import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; |
|
|
import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; |
|
|
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; |
|
|
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; |
|
@ -23,14 +28,25 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; |
|
|
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.issueRequest.IssueRequestMainDO; |
|
|
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.productputawayJob.ProductputawayJobDetailDO; |
|
|
|
|
|
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; |
|
|
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; |
|
|
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; |
|
|
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; |
|
|
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; |
|
|
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; |
|
|
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; |
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobDetailMapper; |
|
|
|
|
|
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper; |
|
|
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper; |
|
|
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper; |
|
|
|
|
|
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.service.expectin.ExpectinService; |
|
|
|
|
|
import com.win.module.wms.service.expectout.ExpectoutService; |
|
|
|
|
|
import com.win.module.wms.service.jobsetting.JobsettingService; |
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
import com.win.module.wms.util.*; |
|
|
import com.win.module.wms.util.*; |
|
|
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; |
|
@ -44,6 +60,7 @@ import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayReq |
|
|
import com.win.module.wms.service.businesstype.*; |
|
|
import com.win.module.wms.service.businesstype.*; |
|
|
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper; |
|
|
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper; |
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
@ -59,6 +76,7 @@ import java.util.Collection; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import com.win.module.wms.service.location.*; |
|
|
import com.win.module.wms.service.location.*; |
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
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.*; |
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
import com.win.module.wms.service.recordsetting.*; |
|
|
import com.win.module.wms.service.recordsetting.*; |
|
|
import com.win.module.wms.service.itembasic.*; |
|
|
import com.win.module.wms.service.itembasic.*; |
|
@ -72,6 +90,20 @@ import com.win.module.wms.service.itembasic.*; |
|
|
@Validated |
|
|
@Validated |
|
|
public class ProductputawayRequestMainServiceImpl implements ProductputawayRequestMainService { |
|
|
public class ProductputawayRequestMainServiceImpl implements ProductputawayRequestMainService { |
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
private ExpectoutService expectoutService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private ExpectinService expectinService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private ProductputawayJobDetailMapper productputawayJobDetailMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private RuleService ruleService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private JobsettingService jobsettingService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private ProductputawayJobMainMapper productputawayJobMainMapper; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private AdminUserApi userApi; |
|
|
@Resource |
|
|
@Resource |
|
|
private ProductputawayRequestMainMapper productputawayRequestMainMapper; |
|
|
private ProductputawayRequestMainMapper productputawayRequestMainMapper; |
|
|
@Resource |
|
|
@Resource |
|
@ -102,16 +134,16 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) { |
|
|
public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) { |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); |
|
|
|
|
|
//调用自动执行方法
|
|
|
//调用自动执行方法
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { |
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
trendsApi.createTrends(requestsettingDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); |
|
|
trendsApi.createTrends(productputawayRequestMainDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); |
|
|
return productputawayRequestMainDO.getId(); |
|
|
return productputawayRequestMainDO.getId(); |
|
|
} |
|
|
} |
|
|
private ProductputawayRequestMainDO validatorToCreate( ProductputawayRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { |
|
|
private ProductputawayRequestMainDO validatorToCreate( ProductputawayRequestMainCreateReqVO createReqVO) { |
|
|
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); |
|
|
//子表校验
|
|
|
//子表校验
|
|
@ -136,10 +168,13 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
productputawayRequestDetailDO.setItemName(itembasicDO.getName()); |
|
|
productputawayRequestDetailDO.setItemName(itembasicDO.getName()); |
|
|
productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
|
|
// 校验 库位
|
|
|
validatorLocation(productputawayRequestDetailDO.getFromLocationCode()); |
|
|
validatorLocation(productputawayRequestDetailDO.getFromLocationCode()); |
|
|
|
|
|
// 校验 库位类型是否一致
|
|
|
IfInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO); |
|
|
IfInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO); |
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(productputawayRequestDetailDO.getInventoryStatus()); |
|
|
// 物品类型 与 业务设置类型 是否正确
|
|
|
String value = dictDataRespDTO.getValue(); |
|
|
jobUtils.selectItembasicExist(productputawayRequestDetailDO.getItemCode(),businesstypeDO); |
|
|
|
|
|
String value = productputawayRequestDetailDO.getInventoryStatus(); |
|
|
String[] businessArray = value.split(","); |
|
|
String[] businessArray = value.split(","); |
|
|
List<String> business = Arrays.asList(businessArray); |
|
|
List<String> business = Arrays.asList(businessArray); |
|
|
List<BalanceDO> balance = selectlocationReturnManagement(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(), |
|
|
List<BalanceDO> balance = selectlocationReturnManagement(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(), |
|
@ -150,12 +185,14 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
} |
|
|
} |
|
|
BalanceDO blance1 = balance.get(0); |
|
|
BalanceDO blance1 = balance.get(0); |
|
|
isqty(productputawayRequestDetailDO.getQty(),blance1.getQty()); |
|
|
isqty(productputawayRequestDetailDO.getQty(),blance1.getQty()); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
productputawayRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
|
|
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); |
|
|
|
|
|
productputawayRequestMainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
productputawayRequestMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); |
|
|
productputawayRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
productputawayRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
productputawayRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
productputawayRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
productputawayRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
productputawayRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
@ -186,14 +223,14 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); |
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
//子表校验
|
|
|
//子表校验
|
|
|
List<ProductputawayRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); |
|
|
// List<ProductputawayRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
|
|
|
if(subList!=null) { |
|
|
// if(subList!=null) {
|
|
|
List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList05(subList); |
|
|
// List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList05(subList);
|
|
|
for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) { |
|
|
// for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) {
|
|
|
validateDetailMethod(productputawayRequestDetailDO, businesstypeDO, productputawayRequestMainDO); |
|
|
// validateDetailMethod(productputawayRequestDetailDO, businesstypeDO, productputawayRequestMainDO);
|
|
|
} |
|
|
// }
|
|
|
productputawayRequestDetailMapper.updateBatch(subDOList); |
|
|
// productputawayRequestDetailMapper.updateBatch(subDOList);
|
|
|
} |
|
|
// }
|
|
|
productputawayRequestMainMapper.updateById(productputawayRequestMainDO); |
|
|
productputawayRequestMainMapper.updateById(productputawayRequestMainDO); |
|
|
return productputawayRequestMainDO; |
|
|
return productputawayRequestMainDO; |
|
|
} |
|
|
} |
|
@ -207,10 +244,12 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
productputawayRequestMainMapper.deleteById(id); |
|
|
productputawayRequestMainMapper.deleteById(id); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void validateProductputawayRequestMainExists(Long id) { |
|
|
private ProductputawayRequestMainDO validateProductputawayRequestMainExists(Long id) { |
|
|
if (productputawayRequestMainMapper.selectById(id) == null) { |
|
|
ProductputawayRequestMainDO productputawayRequestMainDO = productputawayRequestMainMapper.selectById(id); |
|
|
|
|
|
if ( productputawayRequestMainDO == null) { |
|
|
throw exception(PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS); |
|
|
throw exception(PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS); |
|
|
} |
|
|
} |
|
|
|
|
|
return productputawayRequestMainDO; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -243,15 +282,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void validateproductputawayForCreateOrUpdate(Long id,String code,String workshopCode,String productionLineCode,String available) { |
|
|
|
|
|
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
|
|
|
|
|
|
DataPermissionUtils.executeIgnore(() -> { |
|
|
|
|
|
// 校验code唯一
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
@VisibleForTesting |
|
|
private void validateProductputawayExists(Long id) { |
|
|
private void validateProductputawayExists(Long id) { |
|
|
if (id == null) { |
|
|
if (id == null) { |
|
@ -263,16 +293,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String Isuom(String uom1, String uom2) { |
|
|
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); |
|
|
|
|
|
String value = dictDataRespDTO.getLabel(); |
|
|
|
|
|
if(uom2.equals(value)){ |
|
|
|
|
|
return "ture"; |
|
|
|
|
|
}else { |
|
|
|
|
|
throw exception(UOM_ERRORR,uom2,value); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
public String isqty(BigDecimal qty1, BigDecimal qty2) { |
|
|
public String isqty(BigDecimal qty1, BigDecimal qty2) { |
|
|
if(qty1.compareTo(qty2) < 0){ |
|
|
if(qty1.compareTo(qty2) < 0){ |
|
|
return "ture"; |
|
|
return "ture"; |
|
@ -283,7 +303,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
|
|
|
|
|
|
private String validateProductputawayRequestMainImport(ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
private String validateProductputawayRequestMainImport(ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
StringBuilder message = new StringBuilder(); |
|
|
StringBuilder message = new StringBuilder(); |
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); |
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); |
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); |
|
|
if (requestsettingDO == null) { |
|
|
if (requestsettingDO == null) { |
|
@ -293,6 +313,9 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); |
|
|
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
|
|
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); |
|
|
|
|
|
mainDo.setStatus(requestStatusState.getState().getCode()); |
|
|
} |
|
|
} |
|
|
if (businesstypeDO == null) { |
|
|
if (businesstypeDO == null) { |
|
|
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); |
|
|
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); |
|
@ -322,7 +345,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, String batch, String fromLocationCode ,List<String> business){ |
|
|
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, String batch, String fromLocationCode ,List<String> business){ |
|
|
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, batch,fromLocationCode, business); |
|
|
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, batch,fromLocationCode, business); |
|
|
return balanceDO; |
|
|
return balanceDO; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -335,26 +358,33 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
detailDo.setItemDesc2(item.getDesc2()); |
|
|
detailDo.setItemDesc2(item.getDesc2()); |
|
|
detailDo.setItemName(item.getName()); |
|
|
detailDo.setItemName(item.getName()); |
|
|
detailDo.setProjectCode(item.getProject()); |
|
|
detailDo.setProjectCode(item.getProject()); |
|
|
try{ |
|
|
if (!item.getUom().equals(detailDo.getUom())) { |
|
|
Isuom(item.getUom(),detailDo.getUom()); |
|
|
message.append("计量单位【").append(detailDo.getUom()).append("】错误,应该是【").append(item.getUom()).append("】").append(","); |
|
|
}catch (Exception ex) { |
|
|
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
|
|
} |
|
|
} |
|
|
} catch (Exception ex) { |
|
|
} catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
|
|
|
// 物品类型 与 业务设置类型 是否正确
|
|
|
|
|
|
try { |
|
|
|
|
|
jobUtils.selectItembasicExist(detailDo.getItemCode(),businesstypeDO); |
|
|
|
|
|
} catch (Exception ex){ |
|
|
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
|
|
|
// 校验 库位
|
|
|
validatorLocation(detailDo.getFromLocationCode()); |
|
|
validatorLocation(detailDo.getFromLocationCode()); |
|
|
|
|
|
detailDo.setInventoryStatus(detailDo.getInventoryStatus()); |
|
|
}catch (Exception ex) { |
|
|
}catch (Exception ex) { |
|
|
message.append(ex.getMessage()).append(","); |
|
|
message.append(ex.getMessage()).append(","); |
|
|
} |
|
|
} |
|
|
try{ |
|
|
try{ |
|
|
|
|
|
// 校验来源库位
|
|
|
IfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); |
|
|
IfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); |
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDo.getInventoryStatus()); |
|
|
String value = detailDo.getInventoryStatus(); |
|
|
String value = dictDataRespDTO.getValue(); |
|
|
|
|
|
String[] businessArray = value.split(","); |
|
|
String[] businessArray = value.split(","); |
|
|
List<String> business = Arrays.asList(businessArray); |
|
|
List<String> business = Arrays.asList(businessArray); |
|
|
try { |
|
|
try { |
|
|
|
|
|
// 校验库存余额
|
|
|
List<BalanceDO> balance = selectlocationReturnManagement(detailDo.getItemCode(), detailDo.getPackingNumber(), |
|
|
List<BalanceDO> balance = selectlocationReturnManagement(detailDo.getItemCode(), detailDo.getPackingNumber(), |
|
|
detailDo.getBatch(), detailDo.getFromLocationCode(), business); |
|
|
detailDo.getBatch(), detailDo.getFromLocationCode(), business); |
|
|
try{ |
|
|
try{ |
|
@ -406,7 +436,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
if (flag) { |
|
|
if (flag) { |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); |
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); |
|
|
mainDo.setNumber(number); |
|
|
mainDo.setNumber(number); |
|
|
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
|
|
productputawayRequestMainMapper.insert(mainDo); |
|
|
productputawayRequestMainMapper.insert(mainDo); |
|
|
for (ProductputawayRequestDetailDO detailDO : subDOList) { |
|
|
for (ProductputawayRequestDetailDO detailDO : subDOList) { |
|
|
detailDO.setMasterId(mainDo.getId()); |
|
|
detailDO.setMasterId(mainDo.getId()); |
|
@ -418,4 +447,211 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque |
|
|
return errorList; |
|
|
return errorList; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public List<ProductputawayRequestMainDO> getProductputawayRequestMainList(CustomConditions conditions) { |
|
|
|
|
|
return productputawayRequestMainMapper.selectSeniorList(conditions); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer closeProductputawayRequestMain(Long id) { |
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
if(count > 0) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//增加操作记录
|
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "关闭了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer reAddProductputawayRequestMain(Long id) { |
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
if(count > 0) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "打开了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer submitProductputawayRequestMain(Long id) { |
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
// 校验存在存在下级单据
|
|
|
|
|
|
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
if(count > 0) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS); |
|
|
|
|
|
} |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "提交了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer refusedProductputawayRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "驳回了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer agreeProductputawayRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用自动执行方法
|
|
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
|
|
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "审批通过了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
@Transactional |
|
|
|
|
|
public Integer handleProductputawayRequestMain(Long id) { |
|
|
|
|
|
// 校验存在
|
|
|
|
|
|
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id); |
|
|
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
|
|
if(!flag) { |
|
|
|
|
|
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
//调用执行方法
|
|
|
|
|
|
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId())); |
|
|
|
|
|
trendsApi.createTrends(id, "productputawayRequest", "执行了制品上架申请", TrendsTypeEnum.UPDATE); |
|
|
|
|
|
return productputawayRequestMainMapper.updateById(mainDO); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 创建任务 OR 创建记录 |
|
|
|
|
|
* @param mainDO |
|
|
|
|
|
* @param detailDOList |
|
|
|
|
|
*/ |
|
|
|
|
|
private void generateJob(ProductputawayRequestMainDO mainDO, List<ProductputawayRequestDetailDO> detailDOList) { |
|
|
|
|
|
//跳过任务直接生成记录
|
|
|
|
|
|
if("TRUE".equals(mainDO.getDirectCreateRecord())) { |
|
|
|
|
|
// TODO: 发料申请 跳过任务直接生成记录 未做!!
|
|
|
|
|
|
} |
|
|
|
|
|
// 任务主表信息
|
|
|
|
|
|
ProductputawayJobMainDO productputawayJobMainDO = new ProductputawayJobMainDO(); |
|
|
|
|
|
BeanUtils.copyProperties(mainDO,productputawayJobMainDO); |
|
|
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_JOB.getCode()); |
|
|
|
|
|
productputawayJobMainDO.setNumber(number); |
|
|
|
|
|
productputawayJobMainDO.setRequestNumber(mainDO.getNumber()); |
|
|
|
|
|
productputawayJobMainDO.setCompletetime(LocalDateTime.now()); |
|
|
|
|
|
productputawayJobMainDO.setRequestDueTime(mainDO.getDueTime()); |
|
|
|
|
|
productputawayJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); |
|
|
|
|
|
productputawayJobMainDO.setId(null); |
|
|
|
|
|
productputawayJobMainDO.setCreateTime(null); |
|
|
|
|
|
productputawayJobMainDO.setCreator(null); |
|
|
|
|
|
productputawayJobMainDO.setUpdateTime(null); |
|
|
|
|
|
productputawayJobMainDO.setUpdater(null); |
|
|
|
|
|
// 获取任务单据设置
|
|
|
|
|
|
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductPutawayJob"); |
|
|
|
|
|
productputawayJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); |
|
|
|
|
|
productputawayJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); |
|
|
|
|
|
productputawayJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); |
|
|
|
|
|
productputawayJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); |
|
|
|
|
|
productputawayJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); |
|
|
|
|
|
productputawayJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); |
|
|
|
|
|
productputawayJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); |
|
|
|
|
|
productputawayJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); |
|
|
|
|
|
productputawayJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); |
|
|
|
|
|
productputawayJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); |
|
|
|
|
|
//增加业务类型
|
|
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayJob"); |
|
|
|
|
|
productputawayJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); |
|
|
|
|
|
productputawayJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); |
|
|
|
|
|
productputawayJobMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); |
|
|
|
|
|
productputawayJobMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
|
|
productputawayJobMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); |
|
|
|
|
|
productputawayJobMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
|
|
productputawayJobMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
productputawayJobMainMapper.insert(productputawayJobMainDO); |
|
|
|
|
|
|
|
|
|
|
|
List<ProductputawayJobDetailDO> productputawayJobDetailDOList = new ArrayList<>(); |
|
|
|
|
|
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); |
|
|
|
|
|
List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>(); |
|
|
|
|
|
for(ProductputawayRequestDetailDO productputawayRequestDetailDO : detailDOList) { |
|
|
|
|
|
ProductputawayJobDetailDO productputawayJobDetailDO = new ProductputawayJobDetailDO(); |
|
|
|
|
|
BeanUtils.copyProperties(productputawayRequestDetailDO,productputawayJobDetailDO); |
|
|
|
|
|
// 获取上架策略 并赋值 to库位
|
|
|
|
|
|
RuleRespVO ruleRespVO = ruleService.grounding(null,null, productputawayJobDetailDO.getItemCode(),null,null,null,null,null,null); |
|
|
|
|
|
LocationDO locationDO = locationService.inspectLocation(ruleRespVO, productputawayJobDetailDO.getItemCode(), productputawayJobDetailDO.getBatch(), productputawayJobDetailDO.getInventoryStatus()); |
|
|
|
|
|
productputawayJobDetailDO.setToLocationCode(locationDO.getCode()); |
|
|
|
|
|
productputawayJobDetailDO.setNumber(mainDO.getNumber()); |
|
|
|
|
|
productputawayJobDetailDO.setMasterId(mainDO.getId()); |
|
|
|
|
|
productputawayJobDetailDO.setId(null); |
|
|
|
|
|
productputawayJobDetailDO.setCreateTime(null); |
|
|
|
|
|
productputawayJobDetailDO.setCreator(null); |
|
|
|
|
|
productputawayJobDetailDO.setUpdateTime(null); |
|
|
|
|
|
productputawayJobDetailDO.setUpdater(null); |
|
|
|
|
|
productputawayJobDetailDOList.add(productputawayJobDetailDO); |
|
|
|
|
|
//预计入
|
|
|
|
|
|
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productputawayJobDetailDO, expectinCreateReqVO); |
|
|
|
|
|
expectinCreateReqVO.setJobNumber(number); |
|
|
|
|
|
expectinCreateReqVO.setBusinessType(mainDO.getBusinessType()); |
|
|
|
|
|
expectinCreateReqVO.setLocationCode(productputawayJobDetailDO.getToLocationCode()); |
|
|
|
|
|
expectinCreateReqVO.setOwnerCode(productputawayJobDetailDO.getToOwnerCode()); |
|
|
|
|
|
expectinCreateReqVOList.add(expectinCreateReqVO); |
|
|
|
|
|
//预计出
|
|
|
|
|
|
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productputawayJobDetailDO, expectoutCreateReqVO); |
|
|
|
|
|
expectoutCreateReqVO.setJobNumber(number); |
|
|
|
|
|
expectoutCreateReqVO.setBusinessType(mainDO.getBusinessType()); |
|
|
|
|
|
expectoutCreateReqVO.setLocationCode(productputawayJobDetailDO.getFromLocationCode()); |
|
|
|
|
|
expectoutCreateReqVO.setOwnerCode(productputawayJobDetailDO.getFromOwnerCode()); |
|
|
|
|
|
expectoutCreateReqVOList.add(expectoutCreateReqVO); |
|
|
|
|
|
} |
|
|
|
|
|
productputawayJobDetailMapper.insertBatch(productputawayJobDetailDOList); |
|
|
|
|
|
//增加预计入
|
|
|
|
|
|
expectinService.createExpectin(expectinCreateReqVOList); |
|
|
|
|
|
//增加预计出
|
|
|
|
|
|
expectoutService.createExpectout(expectoutCreateReqVOList); |
|
|
|
|
|
trendsApi.createTrends(mainDO.getId(), "productputawayJob", "制品上架申请生成制品上架任务", TrendsTypeEnum.CREATE); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|