优化组装任务

This commit is contained in:
Stang 2024-11-15 15:04:06 +08:00
parent bb93abcee8
commit e599a0cb5d
9 changed files with 110 additions and 75 deletions

View File

@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.ktg.common.utils.DateUtils;
import com.ktg.generator.util.MultiModuleCodeGenerator;
import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.mapper.WmsOutPlanDetailEntityMapper;
import com.ktg.mes.md.mapper.WmsOutPlanMapper;
@ -554,11 +555,11 @@ public class BaseKnifeController extends BaseController {
// 生成组装任务
WmsZdTask wmsZdTask = new WmsZdTask();
wmsZdTask.setmProductId(mdItem.getItemId());
wmsZdTask.setAttr4(planSheet);
wmsZdTask.setCode(techBom.getProcessCode());
wmsZdTask.setPlanSheet(planSheet);
wmsZdTask.setCode(generateTaskCode(techBom.getProcessCode()));
wmsZdTask.setName(techBom.getProcessName());
wmsZdTask.setProductIdQty(count);
wmsZdTask.setAttr1(bomRouteList.get(0).getBomRouteId());
wmsZdTask.setBomId(bomRouteList.get(0).getBomRouteId());
wmsZdTask.setCreateTime(DateUtils.getNowDate());
zdTaskService.insertWmsZdTask(wmsZdTask);
msg = "生产准备验证成功!缺少物料已生成组装任务!";
@ -769,65 +770,65 @@ public class BaseKnifeController extends BaseController {
mdItemService.updateMdItem(mdItem);
}
// // 整刀入库计划, 根据图号查询入库计划如果不存在生成计划存在则往计划中添加任务
// WmsInPlan wmsInPlan = wmsInPlanService.selectWmsInPlanByPlanCode(zdTask.getAttr4());
// if (wmsInPlan == null) {
// WmsInPlan wmsInPlanTemp = new WmsInPlan();
// wmsInPlanTemp.setState("1");
// wmsInPlanTemp.setSourceType("SGLR");
// wmsInPlanTemp.setCellCode(zdTask.getAttr3());
// wmsInPlanTemp.setPlanCode(zdTask.getAttr4() == null ? zdTask.getCode() : zdTask.getAttr4());
// wmsInPlanTemp.setRelBillCode("组装单据");
// wmsInPlanTemp.setPlanTypeId("13");
// wmsInPlanTemp.setCreateBy(getUsername());
// wmsInPlanTemp.setCreateTime(DateUtils.getNowDate());
//
// // 入库任务明细
// List<WmsInPlanDetails> wmsInPlanDetailsList = new ArrayList<>();
// WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
// wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
// wmsInPlanDetails.setBatch(batchNum);
// wmsInPlanDetails.setCellId(1L);
// wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
// wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
// wmsInPlanDetails.setPlanInStatus("0");
// wmsInPlanDetailsList.add(wmsInPlanDetails);
// wmsInPlanTemp.setWmsInPlanDetailsList(wmsInPlanDetailsList);
// wmsInPlanService.insertWmsInPlan(wmsInPlanTemp);
// wmsInPlan = wmsInPlanTemp;
// } else {
// // 入库任务明细
// List<WmsInPlanDetails> wmsInPlanDetailsList = wmsInPlan.getWmsInPlanDetailsList();
// WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
// wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
// wmsInPlanDetails.setBatch(batchNum);
// wmsInPlanDetails.setCellId(1L);
// wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
// wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
// wmsInPlanDetails.setPlanInStatus("0");
// wmsInPlanDetailsList.add(wmsInPlanDetails);
// wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailsList);
// wmsInPlanService.updateWmsInPlan(wmsInPlan);
// }
//
// // 入库任务
// MdItem mdItem = mdItemService.selectMdItemById(zdTask.getmProductId());
// WmsInTask wmsInTask = new WmsInTask();
// // 生成任务号
// String taskInCode = MultiModuleCodeGenerator.generateTaskCode("RKT");
// wmsInTask.setTaskInCode(taskInCode);
// wmsInTask.setPlanInId(wmsInPlan.getPlanId().toString());
// wmsInTask.setPlanInCode(wmsInPlan.getPlanCode());
// wmsInTask.setMaterialCode(mdItem.getItemCode());
// wmsInTask.setTaskInQuantity(zdTask.getProductIdQty());
// wmsInTask.setActualInQuantity(zdTask.getProductIdQty());
// WmStorageArea wmStorageArea = wmStorageAreaService.selectWmStorageAreaByAreaCode(zdTask.getAttr3());
// wmsInTask.setCellTgt(wmStorageArea.getAreaId());
// wmsInTask.setBatch(batchNum);
// wmsInTask.setMaterialId(zdTask.getmProductId().toString());
// wmsInTask.setPlanTypeId("9");
// wmsInTask.setPlanInStatus("1");
// wmsInTaskService.insertWmsInTask(wmsInTask);
// 整刀入库计划, 根据图号查询入库计划如果不存在生成计划存在则往计划中添加任务
WmsInPlan wmsInPlan = wmsInPlanService.selectWmsInPlanByPlanCode(zdTask.getAttr4());
if (wmsInPlan == null) {
WmsInPlan wmsInPlanTemp = new WmsInPlan();
wmsInPlanTemp.setState("1");
wmsInPlanTemp.setSourceType("SGLR");
wmsInPlanTemp.setCellCode(zdTask.getAttr3());
wmsInPlanTemp.setPlanCode(zdTask.getAttr4() == null ? zdTask.getCode() : zdTask.getAttr4());
wmsInPlanTemp.setRelBillCode("组装单据");
wmsInPlanTemp.setPlanTypeId("13");
wmsInPlanTemp.setCreateBy(getUsername());
wmsInPlanTemp.setCreateTime(DateUtils.getNowDate());
// 入库任务明细
List<WmsInPlanDetails> wmsInPlanDetailsList = new ArrayList<>();
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetails.setBatch(batchNum);
wmsInPlanDetails.setCellId(1L);
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
wmsInPlanDetailsList.add(wmsInPlanDetails);
wmsInPlanTemp.setWmsInPlanDetailsList(wmsInPlanDetailsList);
wmsInPlanService.insertWmsInPlan(wmsInPlanTemp);
wmsInPlan = wmsInPlanTemp;
} else {
// 入库任务明细
List<WmsInPlanDetails> wmsInPlanDetailsList = wmsInPlan.getWmsInPlanDetailsList();
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetails.setBatch(batchNum);
wmsInPlanDetails.setCellId(1L);
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
wmsInPlanDetailsList.add(wmsInPlanDetails);
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailsList);
wmsInPlanService.updateWmsInPlan(wmsInPlan);
}
// 入库任务
MdItem mdItem = mdItemService.selectMdItemById(zdTask.getmProductId());
WmsInTask wmsInTask = new WmsInTask();
// 生成任务号
String taskInCode = MultiModuleCodeGenerator.generateTaskCode("RKT");
wmsInTask.setTaskInCode(taskInCode);
wmsInTask.setPlanInId(wmsInPlan.getPlanId().toString());
wmsInTask.setPlanInCode(wmsInPlan.getPlanCode());
wmsInTask.setMaterialCode(mdItem.getItemCode());
wmsInTask.setTaskInQuantity(zdTask.getProductIdQty());
wmsInTask.setActualInQuantity(zdTask.getProductIdQty());
WmStorageArea wmStorageArea = wmStorageAreaService.selectWmStorageAreaByAreaCode(zdTask.getAttr3());
wmsInTask.setCellTgt(wmStorageArea.getAreaId());
wmsInTask.setBatch(batchNum);
wmsInTask.setMaterialId(zdTask.getmProductId().toString());
wmsInTask.setPlanTypeId("9");
wmsInTask.setPlanInStatus("1");
wmsInTaskService.insertWmsInTask(wmsInTask);
// 更新组装任务
@ -845,14 +846,6 @@ public class BaseKnifeController extends BaseController {
public TableDataInfo list(BaseKnife baseKnife) {
startPage();
List<BaseKnife> list = baseKnifeService.selectBaseKnifeList(baseKnife);
list.forEach(item -> {
// 查询基础物料
if ("PRODUCT".equals(item.getItemOrProduct())) {
BaseKnife baseKnifeWrapper = new BaseKnife();
baseKnifeWrapper.setAttr1(item.getBaseKnifeId());
item.setBaseKnifeList(baseKnifeService.selectBaseKnifeList(baseKnifeWrapper));
}
});
return getDataTable(list);
}

View File

@ -119,6 +119,13 @@ public class BaseKnifeServiceImpl implements IBaseKnifeService {
wmsInPlanDetailEntityQuery.setKnifeId(nowBaseKnife.getBaseKnifeId());
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = wmsInPlanDetailEntityService.selectWmsInPlanDetailEntityList(wmsInPlanDetailEntityQuery);
nowBaseKnife.setInInfoList(wmsInPlanDetailEntityList);
// 查询基础物料
if ("PRODUCT".equals(nowBaseKnife.getItemOrProduct())) {
BaseKnife baseKnifeWrapper = new BaseKnife();
baseKnifeWrapper.setParentId(nowBaseKnife.getBaseKnifeId());
nowBaseKnife.setBaseKnifeList(baseKnifeMapper.selectBaseKnifeList(baseKnifeWrapper));
}
});
return baseKnifeList;

View File

@ -2,6 +2,8 @@ package com.ktg.mes.wm.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ktg.common.constant.UserConstants;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -100,6 +102,9 @@ public class WmsZdTaskController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody WmsZdTask wmsZdTask)
{
if (UserConstants.NOT_UNIQUE.equals(wmsZdTaskService.checkTaskCodeUnique(wmsZdTask))) {
return AjaxResult.error("新增物料" + wmsZdTask.getCode() + "失败,任务编码已存在");
}
return toAjax(wmsZdTaskService.insertWmsZdTask(wmsZdTask));
}

View File

@ -2,6 +2,7 @@ package com.ktg.mes.wm.mapper;
import java.util.List;
import com.ktg.mes.wm.domain.WmsInTask;
import com.ktg.mes.wm.domain.WmsZdTask;
/**
* 入库任务Mapper接口

View File

@ -58,4 +58,6 @@ public interface WmsZdTaskMapper
* @return 结果
*/
public int deleteWmsZdTaskByWmsZdTaskIds(String[] wmsZdTaskIds);
WmsZdTask checkTaskCodeUnique(WmsZdTask wmsZdTask);
}

View File

@ -64,4 +64,6 @@ public interface IWmsZdTaskService
AjaxResult createOutTaskByWmsZdTask(WmsZdTask wmsZdTask);
AjaxResult createInTaskByWmsZdTask(WmsZdTask wmsZdTask);
String checkTaskCodeUnique(WmsZdTask wmsZdTask);
}

View File

@ -3,8 +3,10 @@ package com.ktg.mes.wm.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.utils.DateUtils;
import com.ktg.common.utils.StringUtils;
import com.ktg.generator.util.MultiModuleCodeGenerator;
import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.mapper.*;
@ -180,6 +182,11 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
// attr4 组装任务所属计划单 如果为空则是手动组装任务不需要锁定
if (zdTask.getPlanSheet() != null) {
lockedFlag = true;
BaseTechnologyBom technologyBomWrapper = new BaseTechnologyBom();
technologyBomWrapper.setProcessCode(zdTask.getProcessCode());
MdItem mdItemTemp = mdItemMapper.selectMdItemById(zdTask.getmProductId());
technologyBomWrapper.setKnifeCode(mdItemTemp.getItemCode());
technologyBom = baseTechnologyBomMapper.selectBaseTechnologyBomList(technologyBomWrapper).get(0);
}
// 出库基础物料 根据图号查询出库计划如果不存在生成计划存在则往计划中添加任务
@ -216,7 +223,6 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
baseKnife.setKnifeLife(100);
baseKnife.setKnifeFineState(1);
baseKnife.setIsValid(1);
baseKnife.setZdTaskId(zdTask.getWmsZdTaskId());
// 判断是否需要锁定整刀
if (lockedFlag) {
baseKnife.setIsLocked(1);
@ -227,6 +233,7 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
}
// attr4 计划编码 整刀
baseKnife.setPlanSheet(zdTask.getPlanSheet());
baseKnife.setZdTaskId(zdTask.getWmsZdTaskId());
baseKnife.setItemOrProduct("PRODUCT");
baseKnife.setCreateBy(getUsername());
baseKnife.setCreateTime(DateUtils.getNowDate());
@ -487,12 +494,12 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
String batchNum = "ZZPC001";
// 整刀入库计划, 根据图号查询入库计划如果不存在生成计划存在则往计划中添加任务
WmStorageArea wmStorageArea = wmStorageAreaMapper.selectWmStorageAreaByAreaId(zdTask.getAreaId());
WmsInPlan wmsInPlan = wmsInPlanService.selectWmsInPlanByPlanCode(zdTask.getPlanSheet());
if (wmsInPlan == null) {
WmsInPlan wmsInPlanTemp = new WmsInPlan();
wmsInPlanTemp.setState("1");
wmsInPlanTemp.setSourceType("SGLR");
WmStorageArea wmStorageArea = wmStorageAreaMapper.selectWmStorageAreaByAreaId(zdTask.getAreaId());
wmsInPlanTemp.setCellCode(wmStorageArea.getAreaCode());
wmsInPlanTemp.setPlanCode(zdTask.getPlanSheet() == null ? zdTask.getCode() : zdTask.getPlanSheet());
wmsInPlanTemp.setRelBillCode("组装单据");
@ -505,7 +512,7 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetails.setBatch(batchNum);
wmsInPlanDetails.setCellId(1L);
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
@ -519,7 +526,7 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetails.setBatch(batchNum);
wmsInPlanDetails.setCellId(1L);
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
@ -539,7 +546,6 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
wmsInTask.setMaterialCode(mdItem.getItemCode());
wmsInTask.setTaskInQuantity(zdTask.getProductIdQty());
wmsInTask.setActualInQuantity(zdTask.getProductIdQty());
WmStorageArea wmStorageArea = wmStorageAreaMapper.selectWmStorageAreaByAreaId(zdTask.getAreaId());
wmsInTask.setCellTgt(wmStorageArea.getAreaId());
wmsInTask.setBatch(batchNum);
wmsInTask.setMaterialId(zdTask.getmProductId().toString());
@ -566,4 +572,15 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
wmsZdTaskMapper.updateWmsZdTask(zdTask);
return AjaxResult.success();
}
@Override
public String checkTaskCodeUnique(WmsZdTask wmsZdTask) {
WmsZdTask zdTask = wmsZdTaskMapper.checkTaskCodeUnique(wmsZdTask);
Long zdTaskId = wmsZdTask.getWmsZdTaskId() == null ? -1L : wmsZdTask.getWmsZdTaskId();
if (StringUtils.isNotNull(zdTask) && zdTask.getWmsZdTaskId().longValue() != zdTaskId.longValue()) {
return UserConstants.NOT_UNIQUE;
} else {
return UserConstants.UNIQUE;
}
}
}

View File

@ -152,6 +152,9 @@
<if test="planSheet != null and planSheet != ''">
and BK.plan_sheet = #{planSheet}
</if>
<if test="parentId != null and parentId != ''">
and BK.parent_id = #{parentId}
</if>
<if test="zdTaskId != null and zdTaskId != ''">
and BK.zd_task_id = #{zdTaskId}
</if>

View File

@ -163,4 +163,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{wmsZdTaskId}
</foreach>
</delete>
<select id="checkTaskCodeUnique" parameterType="WmsZdTask" resultMap="WmsZdTaskResult">
<include refid="selectWmsZdTaskVo"/>
where code = #{code} limit 1
</select>
</mapper>