Browse Source

Merge remote-tracking branch 'origin/master'

master
陈薪名 2 years ago
parent
commit
493ecf55e2
  1. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobDetailUpdateReqVO.java
  2. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/PurchasereceiptRecordMainController.java
  3. 36
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java
  4. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java
  5. 110
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobDetailUpdateReqVO.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.inspectJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 检验任务子更新 Request VO")
@ -35,4 +36,8 @@ public class InspectJobDetailUpdateReqVO extends InspectJobDetailBaseVO {
@Schema(description = "检验结果")
private String inspectResult;
@Schema(description = "到库存状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库存状态不能为空")
private String toInventoryStatus;
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/PurchasereceiptRecordMainController.java

@ -19,6 +19,7 @@ import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordDetailService;
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@ -120,4 +121,15 @@ public class PurchasereceiptRecordMainController {
return resultList;
}
@PutMapping("/generateInspectRequest")
@Operation(summary = "生成检验申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-record-main:generate')")
public CommonResult<Boolean> generateInspectRequest(@RequestParam("id") Long id) {
PurchasereceiptRecordMainDO mainDO = purchasereceiptRecordMainService.getPurchasereceiptRecordMainById(id);
List<PurchasereceiptRecordDetailDO> subList = purchasereceiptRecordDetailService.selectList(id);
int result = purchasereceiptRecordMainService.generateInspectRequest(mainDO, subList);
return success(result > 0);
}
}

36
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java

@ -209,19 +209,33 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
inspectRecordDetailDO.setUpdater(null);
inspectRecordDetailDO.setUpdateTime(null);
inspectRecordDetailDOList.add(inspectRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVO);
//增加业务类型
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVOIn);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectReceiptJob");
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setInventoryStatus(inspectJobDetailUpdateReqVO.getToInventoryStatus());
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVO);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
//添加库存事务出list
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVOOut);
//增加业务出类型
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(inspectJobDetailUpdateReqVO.getInventoryStatus());
transactionCreateReqVOOut.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
if(!inspectRecordDetailDOList.isEmpty()) {
inspectRecordDetailMapper.insertBatch(inspectRecordDetailDOList);

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainService.java

@ -16,6 +16,14 @@ import java.util.List;
*/
public interface PurchasereceiptRecordMainService {
/**
* 通过id获取采购收货记录主
*
* @param id id
* @return 分页列表
*/
PurchasereceiptRecordMainDO getPurchasereceiptRecordMainById(Long id);
/**
* 获得用高级搜索采购收货记录主分页列表
*
@ -59,4 +67,13 @@ public interface PurchasereceiptRecordMainService {
* @return
*/
PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode, String pNumber,String ppoLine, String pitemCode);
/**
* 生成检验任务
* @param mainDO 采购收货记录主
* @param detailDOList 采购收货记录子
* @return
*/
int generateInspectRequest(PurchasereceiptRecordMainDO mainDO, List<PurchasereceiptRecordDetailDO> detailDOList);
}

110
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java

@ -1,20 +1,38 @@
package com.win.module.wms.service.purchasereceiptRecord;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordMainPageReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO;
import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import com.win.module.wms.service.rule.RuleService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 采购收货记录主 Service 实现类
@ -30,6 +48,23 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco
@Resource
private PurchasereceiptRecordDetailMapper purchasereceiptRecordDetailMapper;
@Resource
private PurchasereceiptJobMainMapper purchasereceiptJobMainMapper;
@Resource
private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper;
@Resource
private RuleService ruleService;
@Resource
private SwitchService switchService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private InspectRequestMainService inspectRequestMainService;
@Override
public PurchasereceiptRecordMainDO getPurchasereceiptRecordMainById(Long id) {
return purchasereceiptRecordMainMapper.selectById(id);
}
@Override
public PageResult<PurchasereceiptRecordMainDO> getPurchasereceiptRecordMainSenior(CustomConditions conditions) {
@ -75,4 +110,79 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco
throw new UtilException( "采购收货记录无效" + pNumber + "无效");
}
}
@Override
public int generateInspectRequest(PurchasereceiptRecordMainDO mainDO, List<PurchasereceiptRecordDetailDO> detailDOList) {
int result = 0;
RuleRespVO ruleRespVO = ruleService.inspect(mainDO.getSupplierCode(), null);
//上架申请子
List<InspectRequestDetailCreateReqVO> inspectRequestDetailCreateReqVOList = new ArrayList<>();
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
SwitchDO switchDO1 = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
SwitchDO switchDO2 = switchService.selectSwitchExist("ExemptItemCreatePutawayRequestAfterPurchaseReceiptRecordCreated");
//采购收货记录 生成后 创建 到货检验申请
if(switchDO1.getEffectiveSetValue().equals("TRUE") && !"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
//按零件号和批次分组
Map<String, List<PurchasereceiptRecordDetailDO>> listMap = new HashMap<>();
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : detailDOList) {
//采购收货记录 生成后免检物品 创建 上架申请
if(switchDO2.getEffectiveSetValue().equals("TRUE")) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, inspectRequestDetailCreateReqVO);
inspectRequestDetailCreateReqVO.setId(null);
inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO);
}
String key = purchasereceiptRecordDetailDO.getItemCode() + "_" + purchasereceiptRecordDetailDO.getFromBatch();
List<PurchasereceiptRecordDetailDO> list = listMap.get(key);
if(list == null) {
list = new ArrayList<>();
}
list.add(purchasereceiptRecordDetailDO);
listMap.put(key, list);
}
//组装到货检验数据
for(String mapKey : listMap.keySet()) {
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList1 = listMap.get(mapKey);
//创建主表信息
PurchasereceiptRecordDetailDO recordDetailDO = purchasereceiptRecordDetailDOList1.get(0);
InspectRequestMainCreateReqVO inspectRequestMainCreateReqVO = new InspectRequestMainCreateReqVO();
String inspectRecordNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode());
inspectRequestMainCreateReqVO.setNumber(inspectRecordNumber);
inspectRequestMainCreateReqVO.setPurchaseReceiptRecordNumber(mainDO.getNumber());
inspectRequestMainCreateReqVO.setSupplierCode(mainDO.getSupplierCode());
inspectRequestMainCreateReqVO.setItemCode(recordDetailDO.getItemCode());
inspectRequestMainCreateReqVO.setBatch(recordDetailDO.getFromBatch());
inspectRequestMainCreateReqVO.setPoNumber(recordDetailDO.getPoNumber());
inspectRequestMainCreateReqVO.setPoLine(recordDetailDO.getPoLine());
inspectRequestMainCreateReqVO.setUom(recordDetailDO.getUom());
inspectRequestMainCreateReqVO.setReceiveQty(BigDecimal.ZERO);
inspectRequestMainCreateReqVO.setFromWarehouseCode(mainDO.getToWarehouseCode());
//创建子表信息
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList1) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, inspectRequestDetailCreateReqVO);
inspectRequestDetailCreateReqVO.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber());
inspectRequestDetailCreateReqVO.setContainerNumber(purchasereceiptRecordDetailDO.getFromContainerNumber());
inspectRequestDetailCreateReqVO.setInventoryStatus(purchasereceiptRecordDetailDO.getInventoryStatus());
inspectRequestDetailCreateReqVO.setFromLocationCode(purchasereceiptRecordDetailDO.getFromLocationCode());
inspectRequestDetailCreateReqVO.setItemCode(purchasereceiptRecordDetailDO.getItemCode());
inspectRequestDetailCreateReqVO.setItemName(purchasereceiptRecordDetailDO.getItemName());
inspectRequestDetailCreateReqVO.setItemDesc1(purchasereceiptRecordDetailDO.getItemDesc1());
inspectRequestDetailCreateReqVO.setItemDesc2(purchasereceiptRecordDetailDO.getItemDesc2());
inspectRequestDetailCreateReqVO.setProjectCode(purchasereceiptRecordDetailDO.getProjectCode());
inspectRequestDetailCreateReqVO.setQty(purchasereceiptRecordDetailDO.getQty());
inspectRequestDetailCreateReqVO.setUom(purchasereceiptRecordDetailDO.getUom());
//合计数量
inspectRequestMainCreateReqVO.setReceiveQty(inspectRequestMainCreateReqVO.getReceiveQty().add(inspectRequestDetailCreateReqVO.getQty()));
inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO);
}
inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList);
//创建检验申请
inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO);
result++;
}
}
return result;
}
}

Loading…
Cancel
Save