Browse Source

补料记录 直接生成记录

master
陈薪名 2 years ago
parent
commit
007ade643f
  1. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordDetailBaseVO.java
  2. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordDetailCreateReqVO.java
  3. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordDetailBaseVO.java

@ -107,4 +107,7 @@ public class RepleinshRecordDetailBaseVO {
@Schema(description = "到批次") @Schema(description = "到批次")
private String toBatch; private String toBatch;
@Schema(description = "主表ID")
private Long masterId;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/vo/RepleinshRecordDetailCreateReqVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.repleinshRecord.vo;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 补料记录子创建 Request VO") @Schema(description = "管理后台 - 补料记录子创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class RepleinshRecordDetailCreateReqVO extends RepleinshRecordDetailBaseVO { public class RepleinshRecordDetailCreateReqVO extends RepleinshRecordDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,String>> recordList;
} }

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java

@ -7,8 +7,10 @@ import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.*; import com.win.module.wms.controller.repleinshRecord.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert;
import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordDetailConvert; import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordDetailConvert;
import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert; import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.balance.BalanceDO;
@ -86,7 +88,7 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
// 插入 // 插入
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
RepleinshRecordMainDO mainDO = RepleinshRecordMainConvert.INSTANCE.convert(createReqVO); RepleinshRecordMainDO mainDO = RepleinshRecordMainConvert.INSTANCE.convert(createReqVO);
List<RepleinshRecordDetailDO> subDOList = RepleinshRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); List<RepleinshRecordDetailCreateReqVO> subDOListVO = createReqVO.getSubList();
String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode());
mainDO.setNumber(number); mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
@ -109,7 +111,8 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
repleinshRecordMainMapper.insert(mainDO); repleinshRecordMainMapper.insert(mainDO);
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (RepleinshRecordDetailDO detailDO : subDOList) { for (RepleinshRecordDetailCreateReqVO detailDO : subDOListVO) {
List<Map<String,String>> recordList = detailDO.getRecordList();
detailDO.setMasterId(mainDO.getId()); detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number); detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode()); LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode());
@ -136,55 +139,67 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
} else { } else {
throw exception(ITEMBASIC_NOT_EXISTS); throw exception(ITEMBASIC_NOT_EXISTS);
} }
//查询库存余额 recordList.forEach( recordListItem -> {
BalanceDO balanceDO = balanceMapper.getBalanceQty(detailDO.getFromPackingNumber(), detailDO.getItemCode(), detailDO.getFromBatch(), detailDO.getInventoryStatus(), detailDO.getFromLocationCode()); // record 相关数据
if (balanceDO == null) { String toInventoryStatus = recordListItem.get("toInventoryStatus").toString();
throw exception(BALANCE_NOT_EXISTS); String fromPackingNumber = recordListItem.get("fromPackingNumber").toString();
} String fromBatch = recordListItem.get("fromBatch").toString();
// 库存事务——入 String toPackingNumber = recordListItem.get("toPackingNumber").toString();
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); String toBatch = recordListItem.get("toBatch").toString();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn); String fromLocationCode = recordListItem.get("fromLocationCode").toString();
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); String toLocationCode = recordListItem.get("toLocationCode").toString();
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); //查询库存余额
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); List<String> inventoryStatusList = new ArrayList<>();
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); inventoryStatusList.add(toInventoryStatus);
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),fromPackingNumber,fromBatch,fromLocationCode,inventoryStatusList);
transactionCreateReqVOIn.setBatch(detailDO.getToBatch()); if (balanceDO == null || balanceDO.size() == 0) {
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); throw exception(BALANCE_NOT_EXISTS);
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); }
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); // 库存事务——入
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setId(null); transactionCreateReqVOIn.setBatch(toBatch);
transactionCreateReqVOList.add(transactionCreateReqVOIn); transactionCreateReqVOIn.setPackingNumber(toPackingNumber);
// 库存事务——出 transactionCreateReqVOIn.setInventoryStatus(toInventoryStatus);
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); transactionCreateReqVOIn.setLocationCode(toLocationCode);
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); transactionCreateReqVOIn.setSinglePrice(balanceDO.get(0).getSinglePrice());
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOIn.setAmount(balanceDO.get(0).getAmount());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); transactionCreateReqVOIn.setArriveDate(balanceDO.get(0).getArriveDate());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOIn.setProduceDate(balanceDO.get(0).getProduceDate());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOIn.setExpireDate(balanceDO.get(0).getExpireDate());
transactionCreateReqVOOut.setRecordNumber(number); transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus()); transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); transactionCreateReqVOIn.setId(null);
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); transactionCreateReqVOList.add(transactionCreateReqVOIn);
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); // 库存事务——出
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate()); TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setInventoryStatus(toInventoryStatus);
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(fromBatch);
transactionCreateReqVOOut.setPackingNumber(fromPackingNumber);
transactionCreateReqVOOut.setLocationCode(fromLocationCode);
transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
});
} }
repleinshRecordDetailMapper.insertBatch(subDOList); repleinshRecordDetailMapper.insertBatch(RepleinshRecordDetailConvert.INSTANCE.convertList03(subDOListVO));
//增加库存事务 //增加库存事务
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录 //增加操作记录

Loading…
Cancel
Save