|
|
@ -1,46 +1,78 @@ |
|
|
|
package com.win.module.wms.service.productscrapRequest; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.annotations.VisibleForTesting; |
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.framework.dict.core.util.DictFrameworkUtils; |
|
|
|
import com.win.framework.common.util.validation.ValidationUtils; |
|
|
|
import com.win.framework.mybatis.core.util.MyBatisUtils; |
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.system.api.dict.DictDataApi; |
|
|
|
import com.win.module.system.api.dict.dto.DictDataRespDTO; |
|
|
|
import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.productscrapRequest.vo.*; |
|
|
|
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; |
|
|
|
import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordMainConvert; |
|
|
|
import com.win.module.wms.convert.productscrapRecord.RawscrapRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; |
|
|
|
import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert; |
|
|
|
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.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; |
|
|
|
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.RawscrapRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.shift.ShiftDO; |
|
|
|
import com.win.module.wms.dal.dataobject.team.TeamDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRecord.RawscrapRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper; |
|
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
|
import com.win.module.wms.dal.mysql.productscrapRequest.RawscrapRequestDetailMapper; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.productionline.ProductionlineService; |
|
|
|
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.team.TeamService; |
|
|
|
import com.win.module.wms.service.transaction.TransactionService; |
|
|
|
import com.win.module.wms.service.workshop.WorkshopService; |
|
|
|
import com.win.module.wms.service.workstation.WorkstationService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.validation.Validator; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
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.*; |
|
|
|
|
|
|
|
/** |
|
|
@ -54,87 +86,245 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ProductscrapRequestMainMapper productscrapRequestMainMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private Validator validator; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ProductscrapRequestDetailMapper productscrapRequestDetailMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private SerialNumberApi serialNumberApi; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private DictDataApi dictDataApi; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private ItembasicService itembasicService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private RequestsettingService requestsettingService; |
|
|
|
@Resource |
|
|
|
private RawscrapRequestDetailMapper rawscrapRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private RecordsettingService recordsettingService; |
|
|
|
@Resource |
|
|
|
private ProductscrapRecordMainMapper productscrapRecordMainMapper; |
|
|
|
@Resource |
|
|
|
private ProductscrapRecordDetailMapper productscrapRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private RawscrapRecordDetailMapper rawscrapRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private AdminUserApi userApi; |
|
|
|
@Resource |
|
|
|
private TransactionService transactionService; |
|
|
|
@Resource |
|
|
|
private WorkshopService workshopService; |
|
|
|
@Resource |
|
|
|
private TeamService teamService; |
|
|
|
@Resource |
|
|
|
private ShiftService shiftService; |
|
|
|
@Resource |
|
|
|
private ProductionlineService productionlineService; |
|
|
|
@Resource |
|
|
|
private WorkstationService workstationService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { |
|
|
|
// 调用:Setting——>QReqS(ProductScrapRequest)
|
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); |
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO); |
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); |
|
|
|
//调用自动执行方法
|
|
|
|
if (RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(productscrapRequestMainDO.getId()); |
|
|
|
this.generateJob(productscrapRequestMainDO, detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); |
|
|
|
trendsApi.createTrends(productscrapRequestMainDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); |
|
|
|
return productscrapRequestMainDO.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO) { |
|
|
|
private void generateJob(ProductscrapRequestMainDO mainDO, List<ProductscrapRequestDetailDO> detailDOList) { |
|
|
|
//跳过任务直接生成记录
|
|
|
|
if("TRUE".equals(mainDO.getDirectCreateRecord())) { |
|
|
|
ProductscrapRecordMainCreateReqVO productscrapRecordMainCreateReqVO = new ProductscrapRecordMainCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(mainDO, productscrapRecordMainCreateReqVO); |
|
|
|
productscrapRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_RECORD.getCode()); |
|
|
|
productscrapRecordMainCreateReqVO.setNumber(number); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRecord"); |
|
|
|
productscrapRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
productscrapRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
productscrapRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
String interFaceType = recordsettingService.selectRecordsettingExist("ProductScrapRecord").getInterfaceType(); |
|
|
|
productscrapRecordMainCreateReqVO.setInterfaceType(interFaceType); |
|
|
|
productscrapRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); |
|
|
|
productscrapRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); |
|
|
|
productscrapRecordMainCreateReqVO.setAvailable("TRUE"); |
|
|
|
productscrapRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); |
|
|
|
productscrapRecordMainCreateReqVO.setId(null); |
|
|
|
productscrapRecordMainCreateReqVO.setCreator(null); |
|
|
|
productscrapRecordMainCreateReqVO.setCreateTime(null); |
|
|
|
ProductscrapRecordMainDO productscrapRecordMainDO = ProductscrapRecordMainConvert.INSTANCE.convert(productscrapRecordMainCreateReqVO); |
|
|
|
productscrapRecordMainMapper.insert(productscrapRecordMainDO); |
|
|
|
|
|
|
|
//库存事务
|
|
|
|
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); |
|
|
|
for(ProductscrapRequestDetailDO productscrapRequestDetailDO : detailDOList) { |
|
|
|
ProductscrapRecordDetailCreateReqVO productscrapRecordDetailCreateReqVO = new ProductscrapRecordDetailCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(productscrapRequestDetailDO, productscrapRecordDetailCreateReqVO); |
|
|
|
productscrapRecordDetailCreateReqVO.setNumber(number); |
|
|
|
productscrapRecordDetailCreateReqVO.setMasterId(productscrapRecordMainDO.getId()); |
|
|
|
productscrapRecordDetailCreateReqVO.setInventoryStatus(productscrapRequestDetailDO.getInventoryStatus()); |
|
|
|
ProductscrapRecordDetailDO productscrapRecordDetailDO = ProductscrapRecordDetailConvert.INSTANCE.convert(productscrapRecordDetailCreateReqVO); |
|
|
|
productscrapRecordDetailMapper.insert(productscrapRecordDetailDO); |
|
|
|
// 查询二级子表数据
|
|
|
|
List<RawscrapRequestDetailDO> rawscrapRequestDetailDOList = rawscrapRequestDetailMapper.selectList(productscrapRequestDetailDO.getId()); |
|
|
|
for(RawscrapRequestDetailDO rawscrapRequestDetailDO:rawscrapRequestDetailDOList){ |
|
|
|
RawscrapRecordDetailDO rawscrapRecordDetailDO = RawscrapRecordDetailConvert.INSTANCE.convert(rawscrapRequestDetailDO); |
|
|
|
rawscrapRecordDetailDO.setMasterId(productscrapRecordDetailDO.getId()); |
|
|
|
rawscrapRecordDetailMapper.insert(rawscrapRecordDetailDO); |
|
|
|
} |
|
|
|
//添加库存事务list
|
|
|
|
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(productscrapRecordDetailDO, transactionCreateReqVO); |
|
|
|
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); |
|
|
|
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); |
|
|
|
transactionCreateReqVO.setBusinessType(productscrapRecordMainDO.getBusinessType()); |
|
|
|
transactionCreateReqVO.setOwnerCode(productscrapRecordDetailDO.getFromOwnerCode()); |
|
|
|
transactionCreateReqVO.setRecordNumber(number); |
|
|
|
transactionCreateReqVO.setId(null); |
|
|
|
transactionCreateReqVO.setPackingNumber(""); |
|
|
|
transactionCreateReqVO.setBatch(""); |
|
|
|
transactionCreateReqVO.setInventoryStatus(""); |
|
|
|
transactionCreateReqVO.setContainerNumber(productscrapRecordDetailDO.getContainerNumber()); |
|
|
|
transactionCreateReqVO.setAmount(BigDecimal.ZERO); |
|
|
|
transactionCreateReqVO.setWarehouseCode(productscrapRecordMainDO.getFromWarehouseCode()); |
|
|
|
transactionCreateReqVO.setLocationCode(productscrapRecordDetailDO.getFromLocationCode()); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVO); |
|
|
|
} |
|
|
|
//增加库存事务
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) { |
|
|
|
// DBT——>DBT3("ProductScrapRequest")
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); |
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); |
|
|
|
//子表校验
|
|
|
|
// 主表信息
|
|
|
|
ProductscrapRequestMainDO mainBo = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); |
|
|
|
// 子表校验
|
|
|
|
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList(); |
|
|
|
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); |
|
|
|
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productscrapRequestMainDO); |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); |
|
|
|
productscrapRequestMainDO.setNumber(number); |
|
|
|
productscrapRequestMainMapper.insert(productscrapRequestMainDO); |
|
|
|
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { |
|
|
|
productscrapRequestDetailDO.setMasterId(productscrapRequestMainDO.getId()); |
|
|
|
productscrapRequestDetailDO.setNumber(productscrapRequestMainDO.getNumber()); |
|
|
|
} |
|
|
|
productscrapRequestDetailMapper.insertBatch(subDOList); |
|
|
|
return productscrapRequestMainDO; |
|
|
|
for(ProductscrapRequestDetailCreateReqVO detailCreateReqVO:subList){ |
|
|
|
validateDetailMethod(detailCreateReqVO, businesstypeDO,mainBo); |
|
|
|
} |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode()); |
|
|
|
mainBo.setNumber(number); |
|
|
|
productscrapRequestMainMapper.insert(mainBo); |
|
|
|
for (ProductscrapRequestDetailCreateReqVO detailCreateReqVO : subList) { |
|
|
|
ProductscrapRequestDetailDO detailDO = ProductscrapRequestDetailConvert.INSTANCE.convert(detailCreateReqVO); |
|
|
|
detailDO.setMasterId(mainBo.getId()); |
|
|
|
detailDO.setNumber(mainBo.getNumber()); |
|
|
|
productscrapRequestDetailMapper.insert(detailDO); |
|
|
|
List<RawscrapRequestDetailCreateReqVO> requestDetailCreateReqVOList = detailCreateReqVO.getChildList(); |
|
|
|
List<RawscrapRequestDetailDO> childList = new ArrayList<>(); |
|
|
|
for(RawscrapRequestDetailCreateReqVO rawscrapRequestDetailCreateReqVO:requestDetailCreateReqVOList){ |
|
|
|
RawscrapRequestDetailDO rawscrapRequestDetailDO = RawscrapRequestDetailConvert.INSTANCE.convert(rawscrapRequestDetailCreateReqVO); |
|
|
|
rawscrapRequestDetailDO.setMasterId(detailDO.getId()); |
|
|
|
rawscrapRequestDetailDO.setNumber(detailDO.getNumber()); |
|
|
|
// 校验--二级子表数据
|
|
|
|
validateDetailbBom(rawscrapRequestDetailDO,detailDO,mainBo); |
|
|
|
rawscrapRequestDetailDO.setId(null); |
|
|
|
childList.add(rawscrapRequestDetailDO); |
|
|
|
} |
|
|
|
rawscrapRequestDetailMapper.insertBatch(childList); |
|
|
|
} |
|
|
|
return mainBo; |
|
|
|
} |
|
|
|
|
|
|
|
private void validateDetailbBom(RawscrapRequestDetailDO rawscrapRequestDetailDO, ProductscrapRequestDetailDO detailDO, ProductscrapRequestMainDO mainBo) { |
|
|
|
// 校验--物品基本信息
|
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(rawscrapRequestDetailDO.getItemCode()); |
|
|
|
// 赋值物品Item相关信息
|
|
|
|
rawscrapRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
rawscrapRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
rawscrapRequestDetailDO.setItemName(itembasicDO.getName()); |
|
|
|
rawscrapRequestDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
// 校验库存余额
|
|
|
|
List<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add("OK"); // 查询合格的边料库存余额
|
|
|
|
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(rawscrapRequestDetailDO.getItemCode(),null,null,detailDO.getFromLocationCode(),inventoryStatus); |
|
|
|
BalanceDO balanceDO = list.get(0); // 去第一条库存余额
|
|
|
|
rawscrapRequestDetailDO.setInventoryStatus(balanceDO.getInventoryStatus()); |
|
|
|
rawscrapRequestDetailDO.setBatch(balanceDO.getBatch()); |
|
|
|
rawscrapRequestDetailDO.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
|
rawscrapRequestDetailDO.setFromLocationCode(balanceDO.getLocationCode()); |
|
|
|
rawscrapRequestDetailDO.setCreateTime(LocalDateTime.now()); |
|
|
|
rawscrapRequestDetailDO.setCreator(null); |
|
|
|
} |
|
|
|
|
|
|
|
private void validateDetailMethod(ProductscrapRequestDetailDO productscrapRequestDetailDO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) { |
|
|
|
ItembasicDO itembasic = validatorItembasic(productscrapRequestDetailDO.getItemCode()); |
|
|
|
productscrapRequestDetailDO.setItemDesc1(itembasic.getDesc1()); |
|
|
|
productscrapRequestDetailDO.setItemDesc2(itembasic.getDesc2()); |
|
|
|
productscrapRequestDetailDO.setItemName(itembasic.getName()); |
|
|
|
productscrapRequestDetailDO.setProjectCode(itembasic.getProject()); |
|
|
|
Isuom(productscrapRequestDetailDO.getUom(), itembasic.getUom()); |
|
|
|
jobUtils.selectItembasicExist(itembasic.getCode(), businesstypeDO); |
|
|
|
jobUtils.ifInToLocationType(productscrapRequestDetailDO.getFromLocationCode(), businesstypeDO); |
|
|
|
jobUtils.ifOutInventoryStatuses(productscrapRequestDetailDO.getInventoryStatus(), businesstypeDO); |
|
|
|
List<String> business = validatorbusinessbasic(productscrapRequestDetailDO.getInventoryStatus()); |
|
|
|
List<BalanceDO> balance = validatorbalance(productscrapRequestDetailDO.getItemCode(), productscrapRequestDetailDO.getPackingNumber(), |
|
|
|
productscrapRequestDetailDO.getBatch(), productscrapRequestDetailDO.getFromLocationCode(), business); |
|
|
|
BalanceDO blance1 = balance.get(0); |
|
|
|
for(BalanceDO balance2 :balance) { |
|
|
|
productscrapRequestMainDO.setFromWarehouseCode(balance2.getWarehouseCode()); |
|
|
|
productscrapRequestMainDO.setDueTime(balance2.getExpireDate()); |
|
|
|
private void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) { |
|
|
|
// 校验--生产线基本信息
|
|
|
|
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailCreateReqVO.getProductionLineCode()); |
|
|
|
detailCreateReqVO.setFromLocationCode(productionlineDO.getRawLocationCode()); |
|
|
|
// 校验--物品基本信息 BQ——>QI
|
|
|
|
ItembasicDO itembasic = validatorItembasic(detailCreateReqVO.getItemCode()); |
|
|
|
detailCreateReqVO.setItemDesc1(itembasic.getDesc1()); |
|
|
|
detailCreateReqVO.setItemDesc2(itembasic.getDesc2()); |
|
|
|
detailCreateReqVO.setItemName(itembasic.getName()); |
|
|
|
detailCreateReqVO.setProjectCode(itembasic.getProject()); |
|
|
|
detailCreateReqVO.setUom(itembasic.getUom()); |
|
|
|
// 校验--工位基础信息
|
|
|
|
if(StringUtils.isNotEmpty(detailCreateReqVO.getWorkStationCode())){ |
|
|
|
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailCreateReqVO.getWorkStationCode(), productscrapRequestMainDO.getWorkshopCode(), detailCreateReqVO.getProductionLineCode()); |
|
|
|
detailCreateReqVO.setFromLocationCode(workstationDO.getRawLocationCode()); |
|
|
|
} |
|
|
|
isqty(productscrapRequestDetailDO.getQty(), blance1.getQty()); |
|
|
|
// 校验--uom
|
|
|
|
// validatorUom(detailCreateReqVO.getUom(), itembasic.getUom());
|
|
|
|
// 校验--物品类型 DBT---DBT2---IT1
|
|
|
|
jobUtils.ifInType(itembasic.getType(), businesstypeDO); |
|
|
|
// 校验--来源库位 DBT——>DBT2——>LO
|
|
|
|
jobUtils.ifInToLocationType(detailCreateReqVO.getFromLocationCode(), businesstypeDO); |
|
|
|
// 校验--库存状态 DBT——>DBT2——>ISO
|
|
|
|
// jobUtils.ifOutInventoryStatuses(detailCreateReqVO.getInventoryStatus(), businesstypeDO);
|
|
|
|
// 校验--库存余额 TB——>TB1
|
|
|
|
// List<String> business = validatorbusinessbasic(detailCreateReqVO.getInventoryStatus());
|
|
|
|
// List<BalanceDO> balance = validatorbalance(detailCreateReqVO.getItemCode(), detailCreateReqVO.getPackingNumber(),detailCreateReqVO.getBatch(), detailCreateReqVO.getFromLocationCode(), business);
|
|
|
|
// BalanceDO balanceDO = balance.get(0);
|
|
|
|
// productscrapRequestMainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
|
|
|
|
// productscrapRequestMainDO.setDueTime(balanceDO.getExpireDate());
|
|
|
|
// detailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
|
|
|
|
// // 校验 报废数量【qty】不能大于库存数量【banlance.qty】
|
|
|
|
// validatorQty(detailCreateReqVO.getQty(), balanceDO.getQty());
|
|
|
|
} |
|
|
|
|
|
|
|
private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { |
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = ProductscrapRequestMainConvert.INSTANCE.convert(baseVO); |
|
|
|
productscrapRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(); |
|
|
|
requestStatusState.newObject(productscrapRequestMainDO.getAutoCommit(), productscrapRequestMainDO.getAutoAgree(), productscrapRequestMainDO.getAutoExecute()); |
|
|
|
productscrapRequestMainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
|
|
|
|
// 校验--车间
|
|
|
|
workshopService.selectWorkshopExist(baseVO.getWorkshopCode()); |
|
|
|
// 校验--班组
|
|
|
|
if(StringUtils.isNotEmpty(baseVO.getTeam())){ |
|
|
|
TeamDO teamDO = teamService.selectTeamExist(baseVO.getTeam()); |
|
|
|
if(teamDO == null){ |
|
|
|
// 提示:班组【team】无效
|
|
|
|
throw exception(PRODUCTREPAIR_REQUEST_MAIN_TEAM_NOT_INVALID); |
|
|
|
} |
|
|
|
} |
|
|
|
// 校验--班次
|
|
|
|
if(StringUtils.isNotEmpty(baseVO.getShift())){ |
|
|
|
ShiftDO shiftDO = shiftService.selectShiftExist(baseVO.getShift()); |
|
|
|
if(shiftDO == null){ |
|
|
|
// 提示:班次【shift】无效
|
|
|
|
throw exception(PRODUCTREPAIR_REQUEST_MAIN_SHIFT_NOT_INVALID); |
|
|
|
} |
|
|
|
} |
|
|
|
// 校验--截止时间
|
|
|
|
validordurtime(baseVO.getDueTime()); |
|
|
|
|
|
|
|
productscrapRequestMainDO.setRequestTime(LocalDateTime.now()); |
|
|
|
productscrapRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); |
|
|
|
productscrapRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); |
|
|
@ -143,9 +333,17 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
productscrapRequestMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
productscrapRequestMainDO.setFromLocationTypes(businesstypeDO.getInLocationTypes()); |
|
|
|
productscrapRequestMainDO.setFromAreaCodes(businesstypeDO.getInAreaCodes()); |
|
|
|
productscrapRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
|
|
|
|
productscrapRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
|
|
|
|
return productscrapRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
private void validordurtime(LocalDateTime durtime){ |
|
|
|
if(!durtime.isAfter(LocalDateTime.now())){ |
|
|
|
throw exception(TIME_AFTER,LocalDateTime.now(),durtime); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@VisibleForTesting |
|
|
|
private void validateProductscrapExists(Long id) { |
|
|
|
if (id == null) { |
|
|
@ -159,26 +357,28 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) { |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); |
|
|
|
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); |
|
|
|
// 校验存在
|
|
|
|
validateProductscrapRequestMainExists(updateReqVO.getId()); |
|
|
|
// 更新
|
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); |
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { |
|
|
|
|
|
|
|
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(productscrapRequestMainDO.getId()); |
|
|
|
this.generateJob(productscrapRequestMainDO, detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "ProductPutawayRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); |
|
|
|
trendsApi.createTrends(requestsettingDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
|
private ProductscrapRequestMainDO validatorToUpdate(ProductscrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); |
|
|
|
ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); |
|
|
|
//子表校验
|
|
|
|
List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); |
|
|
|
if(subList!=null) { |
|
|
|
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); |
|
|
|
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { |
|
|
|
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO); |
|
|
|
for (ProductscrapRequestDetailUpdateReqVO detailUpdateReqVO : subList) { |
|
|
|
validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO); |
|
|
|
} |
|
|
|
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); |
|
|
|
productscrapRequestDetailMapper.updateBatch(subDOList); |
|
|
|
} |
|
|
|
productscrapRequestMainMapper.updateById(productputawayRequestMainDO); |
|
|
@ -186,7 +386,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteProductscrapRequestMain(Long id) { |
|
|
|
// 校验存在
|
|
|
@ -200,10 +399,12 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
return productscrapRequestMainMapper.selectSenior(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
private void validateProductscrapRequestMainExists(Long id) { |
|
|
|
if (productscrapRequestMainMapper.selectById(id) == null) { |
|
|
|
private ProductscrapRequestMainDO validateProductscrapRequestMainExists(Long id) { |
|
|
|
ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(id); |
|
|
|
if (productscrapRequestMainDO == null) { |
|
|
|
throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); |
|
|
|
} |
|
|
|
return productscrapRequestMainDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -232,7 +433,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
|
StringBuilder message = new StringBuilder(); |
|
|
|
mainDo.setRequestTime(LocalDateTime.now()); |
|
|
@ -261,7 +461,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void Isuom(String uom1, String uom2) { |
|
|
|
public void validatorUom(String uom1, String uom2) { |
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); |
|
|
|
String value = dictDataRespDTO.getLabel(); |
|
|
|
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2); |
|
|
@ -271,7 +471,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private String isqty(BigDecimal qty1, BigDecimal qty2) { |
|
|
|
private String validatorQty(BigDecimal qty1, BigDecimal qty2) { |
|
|
|
if (qty1.compareTo(qty2) < 0) { |
|
|
|
return "ture"; |
|
|
|
} else { |
|
|
@ -305,7 +505,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
detailDo.setItemName(itembasic.getName()); |
|
|
|
detailDo.setProjectCode(itembasic.getProject()); |
|
|
|
try { |
|
|
|
Isuom(detailDo.getUom(), itembasic.getUom()); |
|
|
|
validatorUom(detailDo.getUom(), itembasic.getUom()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
@ -338,7 +538,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
mainDo.setDueTime(balance2.getExpireDate()); |
|
|
|
} |
|
|
|
BalanceDO blance1 = balance.get(0); |
|
|
|
isqty(detailDo.getQty(), blance1.getQty()); |
|
|
|
validatorQty(detailDo.getQty(), blance1.getQty()); |
|
|
|
} catch (Exception ex) { |
|
|
|
message.append(ex.getMessage()).append(","); |
|
|
|
} |
|
|
@ -356,7 +556,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
return message.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { |
|
|
|
if (CollUtil.isEmpty(datas)) { |
|
|
|
throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); |
|
|
@ -398,5 +597,139 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa |
|
|
|
}); |
|
|
|
return errorList; |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer closeProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "关闭了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer reAddeProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.reAdd(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "打开了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer submitProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO, detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "提交了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer refusedProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.refused(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "驳回了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer agreeProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用自动执行方法
|
|
|
|
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { |
|
|
|
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO, detailDOList); |
|
|
|
} |
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "审批通过了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public Integer handleProductscrapRequestMain(Long id) { |
|
|
|
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id); |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.handle(); |
|
|
|
if(!flag) { |
|
|
|
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode()); |
|
|
|
//调用执行方法
|
|
|
|
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId()); |
|
|
|
this.generateJob(mainDO, detailDOList); |
|
|
|
trendsApi.createTrends(id, "ProductScrapRequest", "执行了制品报废申请", TrendsTypeEnum.UPDATE); |
|
|
|
return productscrapRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageResult<ProductscrapRequestBomRespVO> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO) { |
|
|
|
IPage<ProductscrapRequestBomRespVO> myPage = MyBatisUtils.buildPage(pageVO); |
|
|
|
List<Map<String,Object>> list = jobUtils.bomDismantleList(pageVO.getItemCode(),pageVO.getBomVersion()); |
|
|
|
List<ProductscrapRequestBomRespVO> resultList = new ArrayList<>(); |
|
|
|
Map<String, ProductscrapRequestDetailDO> detailbDOMap = new HashMap<>(); |
|
|
|
if(pageVO.getMasterId() != null){ |
|
|
|
List<ProductscrapRequestDetailDO> detailBOList = productscrapRequestDetailMapper.selectList(pageVO.getMasterId()); |
|
|
|
if(detailBOList != null && detailBOList.size() > 0){ |
|
|
|
detailbDOMap.putAll(detailBOList.stream().collect(Collectors.toMap(ProductscrapRequestDetailDO::getItemCode, item -> item))); |
|
|
|
} |
|
|
|
} |
|
|
|
for(Map<String,Object> map:list){ |
|
|
|
ProductscrapRequestBomRespVO productscrapRequestBomRespVO = new ProductscrapRequestBomRespVO(); |
|
|
|
String itemCode = map.get("itemCode") != null?map.get("itemCode").toString():""; |
|
|
|
productscrapRequestBomRespVO.setItemCode(itemCode); |
|
|
|
if(StringUtils.isNotEmpty(productscrapRequestBomRespVO.getItemCode())){ |
|
|
|
if(detailbDOMap.get(productscrapRequestBomRespVO.getItemCode()) != null){ |
|
|
|
ProductscrapRequestDetailDO productscrapRequestDetailDO = detailbDOMap.get(productscrapRequestBomRespVO.getItemCode()); |
|
|
|
productscrapRequestBomRespVO = ProductscrapRequestDetailConvert.INSTANCE.convertRespVO(productscrapRequestDetailDO); |
|
|
|
}else { |
|
|
|
productscrapRequestBomRespVO.setQty(BigDecimal.ZERO); |
|
|
|
} |
|
|
|
}else { |
|
|
|
productscrapRequestBomRespVO.setQty(BigDecimal.ZERO); |
|
|
|
} |
|
|
|
productscrapRequestBomRespVO.setUom(map.get("uom") != null?map.get("uom").toString():""); |
|
|
|
productscrapRequestBomRespVO.setVersion(map.get("version") != null?map.get("version").toString():""); |
|
|
|
resultList.add(productscrapRequestBomRespVO); |
|
|
|
} |
|
|
|
myPage.setRecords(resultList); |
|
|
|
myPage.setTotal(resultList.size()); |
|
|
|
PageResult<ProductscrapRequestBomRespVO> pageResult = new PageResult(myPage.getRecords(),myPage.getTotal()); |
|
|
|
return pageResult; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|