|
|
@ -10,12 +10,14 @@ import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.system.api.dept.DeptApi; |
|
|
|
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.wms.controller.expectin.vo.ExpectinCreateReqVO; |
|
|
|
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; |
|
|
|
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.inventorychangeRequest.vo.*; |
|
|
|
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; |
|
|
|
import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordMainConvert; |
|
|
|
import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestDetailConvert; |
|
|
@ -30,6 +32,7 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.location.LocationDO; |
|
|
|
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; |
|
|
|
import com.win.module.wms.dal.mysql.balance.BalanceMapper; |
|
|
|
import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper; |
|
|
@ -54,12 +57,14 @@ import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.validation.Validator; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
|
|
|
|
|
/** |
|
|
@ -232,6 +237,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq |
|
|
|
* @param detailDOList 库存修改子 |
|
|
|
*/ |
|
|
|
private void generateRecord(InventorychangeRequestMainDO mainDO, List<InventorychangeRequestDetailDO> detailDOList) { |
|
|
|
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); |
|
|
|
InventorychangeRecordMainCreateReqVO inventorychangeRecordMainCreateReqVO = new InventorychangeRecordMainCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(mainDO, inventorychangeRecordMainCreateReqVO); |
|
|
|
inventorychangeRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
@ -241,14 +247,16 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq |
|
|
|
inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime()); |
|
|
|
inventorychangeRecordMainCreateReqVO.setAvailable("TRUE"); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("inventorychangeRecord"); |
|
|
|
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("inventorychangeRecord"); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRecord"); |
|
|
|
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryChangeRecord"); |
|
|
|
inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); |
|
|
|
InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO); |
|
|
|
inventorychangeRecordMainMapper.insert(convert); |
|
|
|
//库存事务
|
|
|
|
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); |
|
|
|
List<InventorychangeRecordDetailDO> iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>(); |
|
|
|
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) { |
|
|
|
InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO(); |
|
|
@ -260,9 +268,34 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq |
|
|
|
inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); |
|
|
|
validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus); |
|
|
|
iinventorychangeRecordDetailCreateReqVOlDOList.add(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); |
|
|
|
|
|
|
|
// 库存事务——出
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(inventorychangeRequestDetailDO, transactionCreateReqVOOut); |
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); |
|
|
|
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); |
|
|
|
transactionCreateReqVOOut.setRecordNumber(number); |
|
|
|
transactionCreateReqVOOut.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); |
|
|
|
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); |
|
|
|
transactionCreateReqVOOut.setBatch(inventorychangeRequestDetailDO.getToBatch()); |
|
|
|
transactionCreateReqVOOut.setPackingNumber(inventorychangeRequestDetailDO.getToPackingNumber()); |
|
|
|
transactionCreateReqVOOut.setLocationCode(inventorychangeRequestDetailDO.getLocationCode()); |
|
|
|
transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO); |
|
|
|
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); |
|
|
|
transactionCreateReqVOOut.setQty(inventorychangeRequestDetailDO.getFromQty().subtract(inventorychangeRequestDetailDO.getToQty())); |
|
|
|
transactionCreateReqVOOut.setArriveDate(inventorychangeRequestDetailDO.getToArrivdAte()); |
|
|
|
transactionCreateReqVOOut.setProduceDate(inventorychangeRequestDetailDO.getToProduceDate()); |
|
|
|
transactionCreateReqVOOut.setExpireDate(inventorychangeRequestDetailDO.getToExpireDate()); |
|
|
|
transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
} |
|
|
|
inventorychangeRecordDetailMapper.insertBatch(iinventorychangeRecordDetailCreateReqVOlDOList); |
|
|
|
//增加库存事务
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
//增加操作记录
|
|
|
|
trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE); |
|
|
|
} |
|
|
|
|
|
|
@ -538,9 +571,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq |
|
|
|
inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); |
|
|
|
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO); |
|
|
|
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, inventoryStatus); |
|
|
|
inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getFromBatch()); |
|
|
|
inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getFromPackingNumber()); |
|
|
|
inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getFromContainerNumber()); |
|
|
|
} |
|
|
|
|
|
|
|
//子表校验来源库位基础信息
|
|
|
@ -582,18 +612,21 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq |
|
|
|
if (balanceDOList != null) { |
|
|
|
BalanceDO balanceDO = balanceDOList.get(0); |
|
|
|
inventorychangeRequestMainDO.setWarehouseCode(balanceDO.getWarehouseCode()); |
|
|
|
inventorychangeRequestDetailDO.setFromOwnerCode(balanceDO.getOwnerCode()); |
|
|
|
inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty()); |
|
|
|
inventorychangeRequestDetailDO.setToQty(balanceDO.getQty()); |
|
|
|
inventorychangeRequestDetailDO.setQty(balanceDO.getQty()); |
|
|
|
inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate()); |
|
|
|
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); |
|
|
|
inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); |
|
|
|
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); |
|
|
|
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); |
|
|
|
inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); |
|
|
|
inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); |
|
|
|
// balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus());
|
|
|
|
// balanceMapper.updateById(balanceDO);
|
|
|
|
// trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE);
|
|
|
|
inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); |
|
|
|
// 修改后的值
|
|
|
|
inventorychangeRequestDetailDO.setToQty(inventorychangeRequestDetailDO.getToQty()); |
|
|
|
inventorychangeRequestDetailDO.setQty(inventorychangeRequestDetailDO.getToQty()); |
|
|
|
inventorychangeRequestDetailDO.setToExpireDate(inventorychangeRequestDetailDO.getToExpireDate()); |
|
|
|
inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getToBatch()); |
|
|
|
inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getToPackingNumber()); |
|
|
|
inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getToContainerNumber()); |
|
|
|
inventorychangeRequestDetailDO.setToOwnerCode(inventorychangeRequestDetailDO.getToOwnerCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|