feat: 增加 执行入库计划

This commit is contained in:
Kelvin 2024-11-28 15:49:02 +08:00
parent a56d6c5752
commit de37f12a8d
2 changed files with 63 additions and 3 deletions

View File

@ -17,7 +17,7 @@ public interface IWmsInPlanService
* @param planId 入库计划主键
* @return 入库计划
*/
public WmsInPlan selectWmsInPlanByPlanId(String planId);
public WmsInPlan selectWmsInPlanByPlanId(Long planId);
WmsInPlan selectWmsInPlanByPlanCode(String planCode);
@ -67,4 +67,11 @@ public interface IWmsInPlanService
* @return 是否重复
*/
public Boolean isDuplicatePlanCode(String planCode);
/**
* 执行入库计划
* @param planId 入库计划ID
* @return 结果
*/
public int issueWmsInPlan(Long planId);
}

View File

@ -1,14 +1,20 @@
package com.ktg.mes.wm.service.impl;
import java.util.Date;
import java.util.List;
import com.ktg.common.utils.DateUtils;
import com.ktg.mes.md.domain.MdItem;
import com.ktg.mes.md.service.IMdItemService;
import com.ktg.mes.wm.domain.WmsInPlanDetailEntity;
import com.ktg.mes.wm.domain.WmsInTask;
import com.ktg.mes.wm.mapper.WmsInPlanDetailEntityMapper;
import com.ktg.mes.wm.service.IWmsInTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import com.ktg.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
@ -31,6 +37,12 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
@Autowired
private WmsInPlanDetailEntityMapper wmsInPlanDetailEntityMapper;
@Autowired
private IWmsInTaskService wmsInTaskService;
@Autowired
private IMdItemService mdItemService;
/**
* 查询入库计划
*
@ -38,7 +50,7 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
* @return 入库计划
*/
@Override
public WmsInPlan selectWmsInPlanByPlanId(String planId) {
public WmsInPlan selectWmsInPlanByPlanId(Long planId) {
WmsInPlan wmsInPlan = wmsInPlanMapper.selectWmsInPlanByPlanId(planId);
List<WmsInPlanDetails> wmsInPlanDetailsList = new ArrayList<>();
wmsInPlan.getWmsInPlanDetailsList().forEach(detail -> {
@ -140,7 +152,7 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
}
if (!list.isEmpty()) {
wmsInPlanMapper.batchWmsInPlanDetails(list);
WmsInPlan wmsInPlan1 = selectWmsInPlanByPlanId(planId.toString());
WmsInPlan wmsInPlan1 = selectWmsInPlanByPlanId(planId);
List<WmsInPlanDetails> wmsInPlanDetailsList1 = wmsInPlan1.getWmsInPlanDetailsList();
for (int i = 0; i < list.size(); i++) {
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = list.get(i).getWmsInPlanDetailEntityList();
@ -178,10 +190,51 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
/**
* 入库计划ID是否重复
*
* @param planCode 入库计划ID
* @return 是否重复
*/
@Override
public Boolean isDuplicatePlanCode(String planCode) {
return wmsInPlanMapper.isDuplicatePlanCode(planCode);
}
/**
* 执行入库计划
*
* @param planId 入库计划ID
* @return 结果
*/
@Override
public int issueWmsInPlan(Long planId) {
WmsInPlan wmsInPlan = selectWmsInPlanByPlanId(planId);
WmsInTask wmsInTask = new WmsInTask();
AtomicInteger atomicInteger = new AtomicInteger();
wmsInPlan.getWmsInPlanDetailsList().forEach(detail -> {
int index = atomicInteger.getAndIncrement();
wmsInTask.setPlanInId(wmsInPlan.getPlanId());
wmsInTask.setPlanInCode(wmsInPlan.getPlanCode());
wmsInTask.setTaskInQuantity(Integer.parseInt(detail.getQuantity()));
wmsInTask.setActualInQuantity(Integer.parseInt(detail.getQuantityIn()));
wmsInTask.setCellTgt(detail.getCellId());
wmsInTask.setCellOrig(new Date().toString() + index);
wmsInTask.setRemark(detail.getRemark());
wmsInTask.setBatch(detail.getBatch());
wmsInTask.setMaterialId(detail.getMaterialId());
MdItem mdItem = mdItemService.selectMdItemById(Long.parseLong(wmsInTask.getMaterialId()));
wmsInTask.setMaterialCode(mdItem.getItemCode());
wmsInTask.setPlanTypeId(wmsInPlan.getPlanTypeId().toString());
wmsInTask.setPlanTypeCode(wmsInPlan.getPlanTypeCode());
wmsInTask.setPlanInStatus("0");
wmsInTask.setDetailInId(detail.getDetailsId());
wmsInTaskService.insertWmsInTask(wmsInTask);
});
wmsInPlan.setState("1");
return wmsInPlanMapper.updateWmsInPlan(wmsInPlan);
}
}