Browse Source

库存修改申请 记录

master
陈薪名 2 years ago
parent
commit
8dfc3514c1
  1. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java
  2. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java
  4. 59
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java

@ -133,4 +133,8 @@ public class InventorychangeRecordDetailExportReqVO {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表ID")
private String masterId;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java

@ -61,7 +61,6 @@ public class InventorychangeRecordMainBaseVO {
private String interfaceType;
@Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "代码不能为空")
private String code;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java

@ -22,6 +22,7 @@ public interface InventorychangeRecordDetailMapper extends BaseMapperX<Inventory
default PageResult<InventorychangeRecordDetailDO> selectPage(InventorychangeRecordDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRecordDetailDO>()
.eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode())
@ -66,6 +67,7 @@ public interface InventorychangeRecordDetailMapper extends BaseMapperX<Inventory
}
default List<InventorychangeRecordDetailDO> selectList(InventorychangeRecordDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorychangeRecordDetailDO>()
.eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode())

59
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java

@ -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());
}
}
}

Loading…
Cancel
Save