Browse Source

完成到货检验。

master
刘忱 2 years ago
parent
commit
86b6afb8db
  1. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobDetailUpdateReqVO.java
  2. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobMainUpdateReqVO.java
  3. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectJob/InspectJobMainMapper.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java
  5. 129
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java
  6. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  7. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

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

@ -3,10 +3,36 @@ package com.win.module.wms.controller.inspectJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 检验任务子更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InspectJobDetailUpdateReqVO extends InspectJobDetailBaseVO {
@Schema(description = "合格数量")
private BigDecimal goodQty;
@Schema(description = "不合格数量")
private BigDecimal failedQty;
@Schema(description = "破坏数量")
private BigDecimal crackQty;
@Schema(description = "最终不合格数量")
private BigDecimal notPassedQty;
@Schema(description = "不合格原因")
private String failedReason;
@Schema(description = "异常照片")
private String photos;
@Schema(description = "检验人")
private String inspectUser;
@Schema(description = "检验结果")
private String inspectResult;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobMainUpdateReqVO.java

@ -1,7 +1,12 @@
package com.win.module.wms.controller.inspectJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 检验任务主更新 Request VO")
@Data
@ -9,4 +14,6 @@ import lombok.*;
@ToString(callSuper = true)
public class InspectJobMainUpdateReqVO extends InspectJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid InspectJobDetailUpdateReqVO> subList;
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectJob/InspectJobMainMapper.java

@ -132,8 +132,7 @@ public interface InspectJobMainMapper extends BaseMapperX<InspectJobMainDO> {
.eqIfPresent(InspectJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning())
.eqIfPresent(InspectJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete())
.eqIfPresent(InspectJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch())
.eqIfPresent(InspectJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber())
.orderByDesc(InspectJobMainDO::getId));
.eqIfPresent(InspectJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()));
}
default List<InspectJobMainDO> getReturnJobMainSenior(InspectJobMainRespVO reqVO) {
@ -176,8 +175,7 @@ public interface InspectJobMainMapper extends BaseMapperX<InspectJobMainDO> {
.eqIfPresent(InspectJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning())
.eqIfPresent(InspectJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete())
.eqIfPresent(InspectJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch())
.eqIfPresent(InspectJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber())
.orderByDesc(InspectJobMainDO::getId));
.eqIfPresent(InspectJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()));
}
/**
@ -188,11 +186,22 @@ public interface InspectJobMainMapper extends BaseMapperX<InspectJobMainDO> {
default Long selectListCount(Collection<String> types) {
return selectCount(new LambdaQueryWrapperX<InspectJobMainDO>()
.inIfPresent(InspectJobMainDO::getStatus, types));
}
default List<InspectJobMainDO> selectList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
/**
* 根据类型数和申请单号组查询任务数量
* @param types
* @param requestNumber
* @return
*/
default Long selectListCount(Collection<String> types, String requestNumber) {
return selectCount(new LambdaQueryWrapperX<InspectJobMainDO>()
.in(InspectJobMainDO::getStatus, types)
.eq(InspectJobMainDO::getRequestNumber, requestNumber));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java

@ -102,4 +102,8 @@ public interface InspectRequestMainMapper extends BaseMapperX<InspectRequestMain
return selectList(QueryWrapperUtils.structure(conditions));
}
default InspectRequestMainDO selectByNumber(String number) {
return selectOne(InspectRequestMainDO::getNumber, number);
}
}

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

@ -1,29 +1,42 @@
package com.win.module.wms.service.inspectJob;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
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.wms.controller.inspectJob.vo.InspectJobMainExportReqVO;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainPageReqVO;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainRespVO;
import com.win.module.wms.controller.inspectJob.vo.InspectJobMainUpdateReqVO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectJob.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inspectJob.InspectJobMainDO;
import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordDetailDO;
import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordMainDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.inspectJob.InspectJobDetailMapper;
import com.win.module.wms.dal.mysql.inspectJob.InspectJobMainMapper;
import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordDetailMapper;
import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordMainMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@ -41,9 +54,27 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
@Resource
private InspectJobMainMapper inspectJobMainMapper;
@Resource
private InspectJobDetailMapper inspectJobDetailMapper;
@Resource
private InspectJobDetailService inspectJobDetailService;
@Resource
private InspectRecordMainMapper inspectRecordMainMapper;
@Resource
private InspectRecordDetailMapper inspectRecordDetailMapper;
@Resource
private InspectRequestMainMapper inspectRequestMainMapper;
@Resource
private AdminUserApi userApi;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private TransactionService transactionService;
@Resource
private ExpectinService expectinService;
@Override
public InspectJobMainDO getInspectJobMain(Long id) {
@ -135,7 +166,87 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
@Override
@Transactional
public Integer excuteInspectJobMain(InspectJobMainUpdateReqVO inspectJobMainUpdateReqVO) {
return 0;
//查询数据
InspectJobMainDO inspectJobMainDO = this.validateInspectJobMainExists(inspectJobMainUpdateReqVO.getId());
JobStatusState jobStatusState = new JobStatusState(inspectJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(INSPECT_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
inspectJobMainDO.setStatus(jobStatusState.getState().getCode());
inspectJobMainDO.setCompleteTime(LocalDateTime.now());
inspectJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
inspectJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = inspectJobMainMapper.updateById(inspectJobMainDO);
//创建采购收货记录主表
InspectRecordMainDO inspectRecordMainDO = new InspectRecordMainDO();
BeanUtils.copyProperties(inspectJobMainDO, inspectRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode());
inspectRecordMainDO.setNumber(number);
inspectRecordMainDO.setJobNumber(inspectJobMainDO.getNumber());
inspectRecordMainDO.setId(null);
inspectRecordMainDO.setCreator(null);
inspectRecordMainDO.setCreateTime(null);
inspectRecordMainDO.setUpdater(null);
inspectRecordMainDO.setUpdateTime(null);
inspectRecordMainMapper.insert(inspectRecordMainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<InspectJobDetailUpdateReqVO> inspectJobDetailUpdateReqVOList = inspectJobMainUpdateReqVO.getSubList();
List<InspectRecordDetailDO> inspectRecordDetailDOList = new ArrayList<>();
for(InspectJobDetailUpdateReqVO inspectJobDetailUpdateReqVO : inspectJobDetailUpdateReqVOList) {
InspectRecordDetailDO inspectRecordDetailDO = new InspectRecordDetailDO();
BeanUtils.copyProperties(inspectJobDetailUpdateReqVO, inspectRecordDetailDO);
inspectRecordDetailDO.setMasterId(inspectRecordMainDO.getId());
inspectRecordDetailDO.setNumber(number);
inspectRecordDetailDO.setJobDetailId(String.valueOf(inspectJobDetailUpdateReqVO.getId()));
inspectRecordDetailDO.setId(null);
inspectRecordDetailDO.setCreator(null);
inspectRecordDetailDO.setCreateTime(null);
inspectRecordDetailDO.setUpdater(null);
inspectRecordDetailDO.setUpdateTime(null);
inspectRecordDetailDOList.add(inspectRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVO);
//增加业务类型
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);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVO);
}
if(!inspectRecordDetailDOList.isEmpty()) {
inspectRecordDetailMapper.insertBatch(inspectRecordDetailDOList);
}
List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = inspectJobMainMapper.selectListCount(typeList, inspectJobMainDO.getRequestNumber());
InspectRequestMainDO inspectRequestMainDO = inspectRequestMainMapper.selectByNumber(inspectJobMainDO.getRequestNumber());
//申请单下所有任务全部完成
if(count == 0) {
inspectRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
inspectRequestMainMapper.updateById(inspectRequestMainDO);
} else if(inspectRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
inspectRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
inspectRequestMainMapper.updateById(inspectRequestMainDO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(inspectJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(inspectJobMainDO.getId(), "inspectJob", "执行了到货检验任务", TrendsTypeEnum.UPDATE);
return result;
}
private InspectJobMainDO validateInspectJobMainExists(Long id) {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -218,7 +218,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
purchasereceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO);
int result = purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO);
//创建采购收货记录主表
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
BeanUtils.copyProperties(purchasereceiptJobMainDO, purchasereceiptRecordMainDO);
@ -375,6 +375,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
expectinService.deleteExpectinByJobNumber(purchasereceiptJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "执行了采购收货任务", TrendsTypeEnum.UPDATE);
return null;
return result;
}
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -398,19 +398,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
if(ruleRespVO == null) {
throw new ServiceException(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
} else {
JSONArray conditionArray = JSONUtil.parseArray(ruleRespVO.getConfiguration());
for (int i = 0; i < conditionArray.size(); i++) {
JSONObject conditionObject = conditionArray.getJSONObject(i);
if ("WarehouseCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setFromWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
if ("DockCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToDockCode(String.valueOf(conditionObject.get("Value")));
}
if ("OnTheWayLocationCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
}
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
mainDo.setFromWarehouseCode(String.valueOf(jsonObject.get("WarehouseCode")));
mainDo.setToDockCode(String.valueOf(jsonObject.get("DockCode")));
mainDo.setToWarehouseCode(String.valueOf(jsonObject.get("OnTheWayLocationCode")));
}
}

Loading…
Cancel
Save