Browse Source

盘点申请生成盘点任务。

master
刘忱 2 years ago
parent
commit
6b79f626e0
  1. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainCreateReqVO.java
  2. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countJob/CountJobDetailConvert.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countJob/CountJobMainConvert.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java
  5. 93
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainCreateReqVO.java

@ -1,7 +1,12 @@
package com.win.module.wms.controller.countJob.vo;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
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 io.swagger.v3.oas.annotations.media.Schema;
@ToString(callSuper = true)
public class CountJobMainCreateReqVO extends CountJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid CountJobDetailCreateReqVO> subList;
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countJob/CountJobDetailConvert.java

@ -1,16 +1,16 @@
package com.win.module.wms.convert.countJob;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.countJob.vo.CountJobDetailCreateReqVO;
import com.win.module.wms.controller.countJob.vo.CountJobDetailExcelVO;
import com.win.module.wms.controller.countJob.vo.CountJobDetailRespVO;
import com.win.module.wms.controller.countJob.vo.CountJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import java.util.List;
/**
* 盘点任务子 Convert
@ -34,4 +34,6 @@ public interface CountJobDetailConvert {
List<CountJobDetailExcelVO> convertList02(List<CountJobDetailDO> list);
CountJobDetailDO convert(CountRequestDetailDO bean);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countJob/CountJobMainConvert.java

@ -7,6 +7,7 @@ import com.win.module.wms.controller.countJob.vo.CountJobMainRespVO;
import com.win.module.wms.controller.countJob.vo.CountJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@ -48,4 +49,6 @@ public interface CountJobMainConvert {
})
CountJobMainExcelVO convert(CountJobMainDO mainDO, CountJobDetailDO detailDO);
CountJobMainDO convert(CountRequestMainDO bean);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java

@ -293,13 +293,15 @@ public class CountPlanMainServiceImpl implements CountPlanMainService {
countRequestMainCreateReqVO.setRequestTime(LocalDateTime.now());
countRequestMainCreateReqVO.setDueTime(LocalDateTime.now());
List<CountRequestDetailCreateReqVO> subList = new ArrayList<>();
for(BalanceDO balanceDO : balanceDOList) {
for (int i = 0; i< balanceDOList.size(); i++) {
BalanceDO balanceDO = balanceDOList.get(i);
CountRequestDetailCreateReqVO countRequestDetailCreateReqVO = new CountRequestDetailCreateReqVO();
BeanUtils.copyProperties(balanceDO, countRequestDetailCreateReqVO);
ItembasicDO itembasicDO = itembasicService.selectItembasic(balanceDO.getItemCode());
countRequestDetailCreateReqVO.setItemName(itembasicDO.getName());
countRequestDetailCreateReqVO.setItemDesc1(itembasicDO.getDesc1());
countRequestDetailCreateReqVO.setItemDesc2(itembasicDO.getDesc2());
countRequestDetailCreateReqVO.setCountDetailNumber(String.valueOf(i + 1));
subList.add(countRequestDetailCreateReqVO);
}
countRequestMainCreateReqVO.setSubList(subList);

93
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.wms.service.countRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
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;
@ -9,27 +10,38 @@ 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.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.countJob.vo.CountJobMainCreateReqVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordDetailCreateReqVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainCreateReqVO;
import com.win.module.wms.controller.countRequest.vo.*;
import com.win.module.wms.convert.countJob.CountJobDetailConvert;
import com.win.module.wms.convert.countJob.CountJobMainConvert;
import com.win.module.wms.convert.countRecord.CountRecordDetailConvert;
import com.win.module.wms.convert.countRecord.CountRecordMainConvert;
import com.win.module.wms.convert.countRequest.CountRequestDetailConvert;
import com.win.module.wms.convert.countRequest.CountRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.countJob.CountJobDetailMapper;
import com.win.module.wms.dal.mysql.countJob.CountJobMainMapper;
import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper;
import com.win.module.wms.dal.mysql.countPlan.CountPlanMainMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.countPlan.CountPlanMainService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService;
@ -42,9 +54,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
@ -62,6 +72,8 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
@Resource
private CountRequestDetailMapper countRequestDetailMapper;
@Resource
private CountPlanDetailMapper countPlanDetailMapper;
@Resource
private ShiftService shiftService;
@Resource
private ItembasicService itembasicService;
@ -72,7 +84,7 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
@Resource
private LocationService locationService;
@Resource
private CountPlanMainService countPlanMainService;
private CountPlanMainMapper countPlanMainMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
@ -85,13 +97,17 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
private CountRecordMainMapper countRecordMainMapper;
@Resource
private CountRecordDetailMapper countRecordDetailMapper;
@Resource
private JobsettingService jobsettingService;
@Resource
private CountJobDetailMapper countJobDetailMapper;
@Override
@Transactional
public Long createCountRequestMain(CountRequestMainCreateReqVO createReqVO) {
// 插入
CountRequestMainDO mainDO = CountRequestMainConvert.INSTANCE.convert(createReqVO);
countPlanMainService.selectCountPlanExist(mainDO.getPlanNumber());
this.selectCountPlanExist(mainDO.getPlanNumber());
List<CountRequestDetailDO> subDOList = CountRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (CountRequestDetailDO detailDO : subDOList) {
this.validateCountRequestDetailCreate(detailDO);
@ -345,6 +361,47 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
}
return;
}
//按库位拆分任务
Map<String, List<CountRequestDetailDO>> listMap = new HashMap<>();
for(CountRequestDetailDO detailDO : detailDOList) {
List<CountRequestDetailDO> list = listMap.get(detailDO.getLocationCode());
if(list == null) {
list = new ArrayList<>();
}
//向list增加数据
list.add(detailDO);
listMap.put(detailDO.getLocationCode(), list);
}
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("PurchaseReceiptJob");
//组装任务数据
for(String mapKey : listMap.keySet()) {
List<CountRequestDetailDO> countRequestDetailDOList = listMap.get(mapKey);
CountJobMainDO countJobMainDO = CountJobMainConvert.INSTANCE.convert(mainDO);
countJobMainDO.setRequestNumber(mainDO.getNumber());
countJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
countJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
countJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
countJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
countJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
countJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
countJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
countJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
countJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountJob");
countJobMainDO.setBusinessType(businesstypeDO.getCode());
countJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());
countJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
countJobMainMapper.insert(countJobMainDO);
List<CountJobDetailDO> countJobDetailDOList = new ArrayList<>();
for (int i = 0; i< countRequestDetailDOList.size(); i++) {
CountRequestDetailDO countRequestDetailDO = countRequestDetailDOList.get(i);
CountJobDetailDO countJobDetailDO = CountJobDetailConvert.INSTANCE.convert(countRequestDetailDO);
countJobDetailDO.setCountDetailNumber(String.valueOf(i + 1));
countJobDetailDOList.add(countJobDetailDO);
}
countJobDetailMapper.insertBatch(countJobDetailDOList);
}
}
/**
@ -355,7 +412,7 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
private String validateCountRequestMainImport(CountRequestMainDO mainDO) {
StringBuilder message = new StringBuilder();
try {
countPlanMainService.selectCountPlanExist(mainDO.getPlanNumber());
this.selectCountPlanExist(mainDO.getPlanNumber());
} catch (ServiceException e) {
message.append(e.getMessage()).append(",");
}
@ -424,4 +481,26 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
jobUtils.ifOutInventoryStatuses(detailDO.getInventoryStatus(), businesstypeDO);
}
private CountPlanDetailDO selectCountPlanExist(String pnumber){
QueryWrapper<CountPlanMainDO> queryWrapperMain = new QueryWrapper<>();
queryWrapperMain.eq("number",pnumber);
queryWrapperMain.eq("available","TRUE");
CountPlanMainDO countPlanMainDO = countPlanMainMapper.selectOne(queryWrapperMain);
if(countPlanMainDO == null) {
throw new UtilException("盘点计划" + pnumber + "无效");
}
if("ClOSE".equals(countPlanMainDO.getStatus())) {
throw new UtilException("盘点计划" + pnumber + "已关闭");
}
QueryWrapper<CountPlanDetailDO> queryWrapperDetail = new QueryWrapper<>();
queryWrapperDetail.eq("number", pnumber);
queryWrapperDetail.eq("available","TRUE");
CountPlanDetailDO countPlanDetailDO = countPlanDetailMapper.selectOne(queryWrapperDetail);
if(countPlanDetailDO != null) {
return countPlanDetailDO;
} else {
throw new UtilException("盘点计划" + pnumber + "无效");
}
}
}

Loading…
Cancel
Save