Compare commits

...

8 Commits

14 changed files with 172 additions and 256 deletions

View File

@ -38,7 +38,6 @@ import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.poi.ExcelUtil;
import com.ktg.common.core.page.TableDataInfo;
import static com.ktg.common.utils.SecurityUtils.getUsername;
import static com.ktg.generator.util.MultiModuleCodeGenerator.generateTaskCode;
/**
@ -1094,30 +1093,30 @@ public class BaseKnifeController extends BaseController {
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);
List<WmsInPlanDetail> wmsInPlanDetailList = new ArrayList<>();
WmsInPlanDetail wmsInPlanDetail = new WmsInPlanDetail();
wmsInPlanDetail.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetail.setBatch(batchNum);
wmsInPlanDetail.setCellId(1L);
wmsInPlanDetail.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setPlanInStatus("0");
wmsInPlanDetailList.add(wmsInPlanDetail);
wmsInPlanTemp.setWmsInPlanDetailsList(wmsInPlanDetailList);
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);
List<WmsInPlanDetail> wmsInPlanDetailList = wmsInPlan.getWmsInPlanDetailsList();
WmsInPlanDetail wmsInPlanDetail = new WmsInPlanDetail();
wmsInPlanDetail.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetail.setBatch(batchNum);
wmsInPlanDetail.setCellId(1L);
wmsInPlanDetail.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setPlanInStatus("0");
wmsInPlanDetailList.add(wmsInPlanDetail);
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailList);
wmsInPlanService.updateWmsInPlan(wmsInPlan);
}

View File

@ -64,7 +64,11 @@ public class WmsOutTaskController extends BaseController {
@PutMapping("/open/run/{wmsOutTaskIds}")
public AjaxResult openRun(@PathVariable Long[] wmsOutTaskIds) throws JAXBException {
return toAjax(wmsOutTaskService.runWmsOutTask(wmsOutTaskIds));
try {
return toAjax(wmsOutTaskService.runWmsOutTask(wmsOutTaskIds));
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
/**

View File

@ -13,12 +13,20 @@ public interface IBaseKnifeService
{
/**
* 查询工具台账
*
*
* @param baseKnifeId 工具台账主键
* @return 工具台账
* @return 工具台账 包含基础物料信息BOM清单
*/
public BaseKnife selectBaseKnifeByBaseKnifeId(Long baseKnifeId);
/**
* 查询工具台账
*
* @param rfid 工具台账主键
* @return 工具台账 包含物料基础信息
*/
public BaseKnife selectBaseKnifeByRfid(String rfid);
/**
* 查询工具台账列表
*

View File

@ -1,27 +1,15 @@
package com.ktg.mes.md.service.impl;
import com.ktg.common.annotation.DataSource;
import com.ktg.common.enums.DataSourceType;
import com.ktg.generator.util.MultiModuleCodeGenerator;
import com.ktg.mes.md.domain.AP0AE;
import com.ktg.mes.md.domain.MdItem;
import com.ktg.mes.md.mapper.AP0AEMapper;
import com.ktg.mes.md.service.IAP0AEService;
import com.ktg.mes.md.service.IMdItemService;
import com.ktg.mes.wm.domain.WmStorageArea;
import com.ktg.mes.wm.domain.WmsInPlan;
import com.ktg.mes.wm.domain.WmsInPlanDetails;
import com.ktg.mes.wm.domain.WmsInTask;
import com.ktg.mes.wm.service.IWmStorageAreaService;
import com.ktg.mes.wm.service.IWmsInPlanService;
import com.ktg.mes.wm.service.IWmsInTaskService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**

View File

@ -12,6 +12,7 @@ import com.ktg.mes.wm.service.impl.WmsInPlanDetailEntityServiceImpl;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -36,37 +37,14 @@ import java.util.*;
* @date 2024-10-31
*/
@Service
@RequiredArgsConstructor
public class BaseKnifeServiceImpl implements IBaseKnifeService {
@Autowired
private BaseKnifeMapper baseKnifeMapper;
private final BaseKnifeMapper baseKnifeMapper;
private final WmsOutPlanMapper wmsOutPlanMapper;
private final WmsOutPlanDetailEntityMapper wmsOutPlanDetailEntityMapper;
private final WmsBusinessTypeMapper wmsBusinessTypeMapper;
private final WmsInPlanDetailEntityServiceImpl wmsInPlanDetailEntityService;
@Autowired
private WmsOutPlanMapper wmsOutPlanMapper;
@Autowired
private WmsOutPlanDetailEntityMapper wmsOutPlanDetailEntityMapper;
@Autowired
private WmsOutTaskMapper wmsOutTaskMapper;
@Autowired
private WmsBusinessTypeMapper wmsBusinessTypeMapper;
@Autowired
private WmsInPlanDetailEntityMapper wmsInPlanDetailEntityMapper;
@Autowired
private WmsInPlanDetailEntityServiceImpl wmsInPlanDetailEntityService;
@Autowired
private MyConfig myConfig;
/**
* 查询工具台账
*
* @param baseKnifeId 工具台账主键
* @return 工具台账
*/
@Override
public BaseKnife selectBaseKnifeByBaseKnifeId(Long baseKnifeId) {
BaseKnife baseKnife = baseKnifeMapper.selectBaseKnifeByBaseKnifeId(baseKnifeId);
@ -79,6 +57,17 @@ public class BaseKnifeServiceImpl implements IBaseKnifeService {
return baseKnife;
}
/**
* 查询工具台账
*
* @param rfid 工具台账主键
* @return 工具台账
*/
@Override
public BaseKnife selectBaseKnifeByRfid(String rfid) {
return baseKnifeMapper.selectBaseKnifeByRfid(rfid);
}
/**
* 查询工具台账列表
*

View File

@ -88,22 +88,7 @@ public class WmsInPlanController extends BaseController {
@Log(title = "入库计划", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmsInPlan wmsInPlan) {
// 校验是否指定了库区
if (wmsInPlan.getLocationCode() != null && !wmsInPlan.getLocationCode().isEmpty()) {
wmsInPlan.getWmsInPlanDetailsList().forEach(wmsInPlanDetails -> {
// 获得物料ID
MdItem mdItemById = mdItemMapper.selectMdItemById(Long.parseLong(wmsInPlanDetails.getMaterialId()));
if (mdItemById == null) throw new RuntimeException("操作失败,该物料不存在");
// 根据限定条件自动获取库位
WmStorageArea wmStorageArea = wmStorageLocationService.queryOneAreaByLocationCode(wmsInPlan.getLocationCode(), mdItemById.getAttr3() == 1);
if (wmStorageArea == null) throw new RuntimeException("操作失败,缺少空闲库位");
// 设定库位
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
});
}
wmsInPlanService.autoCell(wmsInPlan);
return toAjax(wmsInPlanService.insertWmsInPlan(wmsInPlan));
}

View File

@ -167,7 +167,7 @@ public class WmsInPlan extends BaseEntity {
/**
* 入库计划明细信息
*/
private List<WmsInPlanDetails> wmsInPlanDetailsList;
private List<WmsInPlanDetail> wmsInPlanDetailList;
public void setPlanId(Long planId) {
this.planId = planId;
@ -361,12 +361,12 @@ public class WmsInPlan extends BaseEntity {
this.planTypeCode = planTypeCode;
}
public List<WmsInPlanDetails> getWmsInPlanDetailsList() {
return wmsInPlanDetailsList;
public List<WmsInPlanDetail> getWmsInPlanDetailsList() {
return wmsInPlanDetailList;
}
public void setWmsInPlanDetailsList(List<WmsInPlanDetails> wmsInPlanDetailsList) {
this.wmsInPlanDetailsList = wmsInPlanDetailsList;
public void setWmsInPlanDetailsList(List<WmsInPlanDetail> wmsInPlanDetailList) {
this.wmsInPlanDetailList = wmsInPlanDetailList;
}
public String getLocationCode() {

View File

@ -1,5 +1,7 @@
package com.ktg.mes.wm.domain;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
@ -13,7 +15,9 @@ import java.util.List;
* @author yinjinlu
* @date 2024-10-31
*/
public class WmsInPlanDetails extends BaseEntity
@Setter
@Getter
public class WmsInPlanDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
@ -60,103 +64,6 @@ public class WmsInPlanDetails extends BaseEntity
private List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList;
public void setDetailsId(Long detailsId) {
this.detailsId = detailsId;
}
public Long getDetailsId()
{
return detailsId;
}
public void setPlanId(Long planId) {
this.planId = planId;
}
public Long getPlanId() {
return planId;
}
public void setMaterialId(String materialId)
{
this.materialId = materialId;
}
public String getMaterialId()
{
return materialId;
}
public void setBatch(String batch)
{
this.batch = batch;
}
public String getBatch()
{
return batch;
}
public void setCellId(Long cellId)
{
this.cellId = cellId;
}
public Long getCellId()
{
return cellId;
}
public void setQuantity(String quantity)
{
this.quantity = quantity;
}
public String getQuantity()
{
return quantity;
}
public void setQuantityIn(String quantityIn)
{
this.quantityIn = quantityIn;
}
public String getQuantityIn()
{
return quantityIn;
}
public void setPlanInStatus(String planInStatus)
{
this.planInStatus = planInStatus;
}
public String getPlanInStatus()
{
return planInStatus;
}
public void setIsActivy(String isActivy)
{
this.isActivy = isActivy;
}
public String getIsActivy()
{
return isActivy;
}
public void setIsDelete(String isDelete)
{
this.isDelete = isDelete;
}
public String getIsDelete()
{
return isDelete;
}
public List<WmsInPlanDetailEntity> getWmsInPlanDetailEntityList() {
return wmsInPlanDetailEntityList;
}
public void setWmsInPlanDetailEntityList(List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList) {
this.wmsInPlanDetailEntityList = wmsInPlanDetailEntityList;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

View File

@ -2,7 +2,7 @@ package com.ktg.mes.wm.mapper;
import java.util.List;
import com.ktg.mes.wm.domain.WmsInPlan;
import com.ktg.mes.wm.domain.WmsInPlanDetails;
import com.ktg.mes.wm.domain.WmsInPlanDetail;
import org.apache.ibatis.annotations.Mapper;
/**
@ -73,10 +73,10 @@ public interface WmsInPlanMapper
/**
* 批量新增入库计划明细
*
* @param wmsInPlanDetailsList 入库计划明细列表
* @param wmsInPlanDetailList 入库计划明细列表
* @return 结果
*/
public int batchWmsInPlanDetails(List<WmsInPlanDetails> wmsInPlanDetailsList);
public int batchWmsInPlanDetails(List<WmsInPlanDetail> wmsInPlanDetailList);
/**
@ -96,5 +96,5 @@ public interface WmsInPlanMapper
*/
public Boolean isDuplicatePlanCode(String planCode);
WmsInPlanDetails selectWmsInPlanDetailById(Long planDetailsId);
WmsInPlanDetail selectWmsInPlanDetailById(Long planDetailsId);
}

View File

@ -72,8 +72,20 @@ public interface IWmsInPlanService
/**
* 执行入库计划
*
* @param planId 入库计划ID
* @return 结果
*/
public int issueWmsInPlan(Long planId);
public void issueWmsInPlan(Long planId);
/**
* 创建并执行入库计划
* @param wmsInPlan 入库计划
*/
public void insertAndIssueWmsInPlan(WmsInPlan wmsInPlan);
/**
* 分配库位
* @param wmsInPlan 入库计划
*/
public void autoCell(WmsInPlan wmsInPlan);
}

View File

@ -70,7 +70,7 @@ public class WmsInPlanDetailEntityServiceImpl implements IWmsInPlanDetailEntityS
// 获取入库计划
WmsBusinessType wmsBusinessType = wmsBusinessTypeMapper.selectWmsBusinessTypeByTypeId(wmsInPlan.getPlanTypeId().toString());
for (WmsInPlanDetails detail : wmsInPlan.getWmsInPlanDetailsList()) {
for (WmsInPlanDetail detail : wmsInPlan.getWmsInPlanDetailsList()) {
// 匹配入库明细
if (detail.getDetailsId().equals(entity.getPlanDetailsId())) {
System.out.println("---" + detail.getDetailsId() + "+测试+" + entity.getPlanDetailsId());

View File

@ -52,15 +52,15 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
@Override
public WmsInPlan selectWmsInPlanByPlanId(Long planId) {
WmsInPlan wmsInPlan = wmsInPlanMapper.selectWmsInPlanByPlanId(planId);
List<WmsInPlanDetails> wmsInPlanDetailsList = new ArrayList<>();
List<WmsInPlanDetail> wmsInPlanDetailList = new ArrayList<>();
wmsInPlan.getWmsInPlanDetailsList().forEach(detail -> {
WmsInPlanDetailEntity wmsInPlanDetailEntityQuery = new WmsInPlanDetailEntity();
wmsInPlanDetailEntityQuery.setPlanDetailsId(detail.getDetailsId());
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = wmsInPlanDetailEntityMapper.selectWmsInPlanDetailEntityList(wmsInPlanDetailEntityQuery);
detail.setWmsInPlanDetailEntityList(wmsInPlanDetailEntityList);
wmsInPlanDetailsList.add(detail);
wmsInPlanDetailList.add(detail);
});
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailsList);
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailList);
return wmsInPlan;
}
@ -83,6 +83,7 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
/**
* 同步小型刀具库数据
*/
@Transactional
@Override
public int asyncSmallKnifeData() {
// List<AP0AE> ap0aeList = ap0AEMapper.selectInNewData();
@ -90,7 +91,6 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
int count = 0;
inventoryAdjustments.stream().filter(adjustment -> adjustment.getBillDate() != null).forEach(ap0ae -> {
WmsInPlan wmsInPlan = new WmsInPlan();
wmsInPlan.setPlanCode(MultiModuleCodeGenerator.generateTaskCode("RKP"));
// 发布人
wmsInPlan.setPublishName(ap0ae.getDataEntryClerk());
// 计划日期
@ -109,16 +109,16 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
MdItem mdItem = mdItemService.selectMdItemByCode(ap0ae.getProductNumber());
//-- 入库计划详情
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
WmsInPlanDetail wmsInPlanDetail = new WmsInPlanDetail();
// 状态-待执行
wmsInPlanDetails.setPlanInStatus("0");
wmsInPlanDetail.setPlanInStatus("0");
// 库位ID
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetails.setQuantity(ap0ae.getQuantity().toString());
wmsInPlanDetails.setQuantityIn(ap0ae.getQuantity().toString());
wmsInPlanDetails.setMaterialId(mdItem.getItemId().toString());
wmsInPlanDetail.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetail.setQuantity(ap0ae.getQuantity().toString());
wmsInPlanDetail.setQuantityIn(ap0ae.getQuantity().toString());
wmsInPlanDetail.setMaterialId(mdItem.getItemId().toString());
wmsInPlan.setWmsInPlanDetailsList(Collections.singletonList(wmsInPlanDetails));
wmsInPlan.setWmsInPlanDetailsList(Collections.singletonList(wmsInPlanDetail));
this.insertWmsInPlan(wmsInPlan);
// 执行入库计划
@ -206,24 +206,24 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
* @param wmsInPlan 入库计划对象
*/
public void insertWmsInPlanDetails(WmsInPlan wmsInPlan) {
List<WmsInPlanDetails> wmsInPlanDetailsList = wmsInPlan.getWmsInPlanDetailsList();
List<WmsInPlanDetail> wmsInPlanDetailList = wmsInPlan.getWmsInPlanDetailsList();
Long planId = wmsInPlan.getPlanId();
if (StringUtils.isNotNull(wmsInPlanDetailsList)) {
List<WmsInPlanDetails> list = new ArrayList<>();
for (WmsInPlanDetails wmsInPlanDetails : wmsInPlanDetailsList) {
wmsInPlanDetails.setPlanId(planId);
list.add(wmsInPlanDetails);
if (StringUtils.isNotNull(wmsInPlanDetailList)) {
List<WmsInPlanDetail> list = new ArrayList<>();
for (WmsInPlanDetail wmsInPlanDetail : wmsInPlanDetailList) {
wmsInPlanDetail.setPlanId(planId);
list.add(wmsInPlanDetail);
}
if (!list.isEmpty()) {
wmsInPlanMapper.batchWmsInPlanDetails(list);
WmsInPlan wmsInPlan1 = selectWmsInPlanByPlanId(planId);
List<WmsInPlanDetails> wmsInPlanDetailsList1 = wmsInPlan1.getWmsInPlanDetailsList();
List<WmsInPlanDetail> wmsInPlanDetailList1 = wmsInPlan1.getWmsInPlanDetailsList();
for (int i = 0; i < list.size(); i++) {
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = list.get(i).getWmsInPlanDetailEntityList();
wmsInPlanDetailsList1.get(i).setWmsInPlanDetailEntityList(wmsInPlanDetailEntityList);
wmsInPlanDetailEntityMapper.deleteWmsInPlanDetailEntityByPlanDetailsId(wmsInPlanDetailsList1.get(i).getDetailsId());
wmsInPlanDetailList1.get(i).setWmsInPlanDetailEntityList(wmsInPlanDetailEntityList);
wmsInPlanDetailEntityMapper.deleteWmsInPlanDetailEntityByPlanDetailsId(wmsInPlanDetailList1.get(i).getDetailsId());
// 插入实例
insertWmsInPlanDetailEntity(wmsInPlanDetailsList1.get(i));
insertWmsInPlanDetailEntity(wmsInPlanDetailList1.get(i));
}
}
}
@ -232,12 +232,12 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
/**
* 新增入库计划明细实例
*
* @param wmsInPlanDetails 入库计划明细对象
* @param wmsInPlanDetail 入库计划明细对象
*/
public void insertWmsInPlanDetailEntity(WmsInPlanDetails wmsInPlanDetails) {
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = wmsInPlanDetails.getWmsInPlanDetailEntityList();
Long planId = wmsInPlanDetails.getPlanId();
Long planDetailsId = wmsInPlanDetails.getDetailsId();
public void insertWmsInPlanDetailEntity(WmsInPlanDetail wmsInPlanDetail) {
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = wmsInPlanDetail.getWmsInPlanDetailEntityList();
Long planId = wmsInPlanDetail.getPlanId();
Long planDetailsId = wmsInPlanDetail.getDetailsId();
if (StringUtils.isNotNull(wmsInPlanDetailEntityList)) {
ArrayList<WmsInPlanDetailEntity> list = new ArrayList<>();
for (WmsInPlanDetailEntity wmsInPlanDetailEntity : wmsInPlanDetailEntityList) {
@ -268,10 +268,10 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
* 执行入库计划
*
* @param planId 入库计划ID
* @return 结果
*/
@Override
public int issueWmsInPlan(Long planId) {
@Transactional
public void issueWmsInPlan(Long planId) {
WmsInPlan wmsInPlan = selectWmsInPlanByPlanId(planId);
WmsInTask wmsInTask = new WmsInTask();
@ -299,6 +299,42 @@ public class WmsInPlanServiceImpl implements IWmsInPlanService {
});
wmsInPlan.setState("1");
return wmsInPlanMapper.updateWmsInPlan(wmsInPlan);
wmsInPlanMapper.updateWmsInPlan(wmsInPlan);
}
/**
* 创建并执行入库计划
*
* @param wmsInPlan 入库计划
*/
@Transactional
@Override
public void insertAndIssueWmsInPlan(WmsInPlan wmsInPlan) {
this.insertWmsInPlan(wmsInPlan);
this.issueWmsInPlan(wmsInPlan.getPlanId());
}
/**
* 自动分配库位
*
* @param wmsInPlan 入库计划
*/
@Override
public void autoCell(WmsInPlan wmsInPlan) {
// 校验是否指定了库区
if (StringUtils.isNotEmpty(wmsInPlan.getLocationCode())) {
wmsInPlan.getWmsInPlanDetailsList().forEach(wmsInPlanDetails -> {
// 获得物料ID
MdItem mdItemById = mdItemService.selectMdItemById(Long.parseLong(wmsInPlanDetails.getMaterialId()));
if (mdItemById == null) throw new RuntimeException("操作失败,该物料不存在");
// 根据限定条件自动获取库位
WmStorageArea wmStorageArea = wmStorageLocationService.queryOneAreaByLocationCode(wmsInPlan.getLocationCode(), mdItemById.getAttr3() == 1);
if (wmStorageArea == null) throw new RuntimeException("操作失败,缺少空闲库位");
// 设定库位
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
});
}
}
}

View File

@ -1,29 +1,17 @@
package com.ktg.mes.wm.service.impl;
import java.io.IOException;
import java.util.*;
import com.alibaba.fastjson.JSON;
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.cal.utils.CalendarUtil;
import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.mapper.*;
import com.ktg.mes.md.service.IBaseKnifeService;
import com.ktg.mes.md.service.IBaseTechnologyBomService;
import com.ktg.mes.md.service.IBomRouteService;
import com.ktg.mes.md.service.IMdItemService;
import com.ktg.mes.wm.domain.*;
import com.ktg.mes.wm.mapper.*;
import com.ktg.mes.wm.service.IWmStorageAreaService;
import com.ktg.mes.wm.service.IWmsInPlanService;
import com.ktg.mes.wm.service.IWmsInTaskService;
import com.ktg.system.mapper.SysOperLogMapper;
import com.ktg.system.service.ISysOperLogService;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ktg.mes.wm.service.IWmsZdTaskService;
@ -436,14 +424,14 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
wmsInPlanTemp.setCreateTime(DateUtils.getNowDate());
// 入库任务明细
List<WmsInPlanDetails> wmsInPlanDetailsList = new ArrayList<>();
WmsInPlanDetails wmsInPlanDetails = new WmsInPlanDetails();
wmsInPlanDetails.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetails.setBatch(batchNum);
wmsInPlanDetails.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
List<WmsInPlanDetail> wmsInPlanDetailList = new ArrayList<>();
WmsInPlanDetail wmsInPlanDetail = new WmsInPlanDetail();
wmsInPlanDetail.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetail.setBatch(batchNum);
wmsInPlanDetail.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetail.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setPlanInStatus("0");
// 构建入库明细实体
List<WmsInPlanDetailEntity> wmsInPlanDetailEntityList = new ArrayList<>();
baseKnifeList.forEach(baseKnife -> {
@ -451,23 +439,23 @@ public class WmsZdTaskServiceImpl implements IWmsZdTaskService
wmsInPlanDetailEntity.setKnifeId(baseKnife.getBaseKnifeId());
wmsInPlanDetailEntityList.add(wmsInPlanDetailEntity);
});
wmsInPlanDetails.setWmsInPlanDetailEntityList(wmsInPlanDetailEntityList);
wmsInPlanDetailsList.add(wmsInPlanDetails);
wmsInPlanTemp.setWmsInPlanDetailsList(wmsInPlanDetailsList);
wmsInPlanDetail.setWmsInPlanDetailEntityList(wmsInPlanDetailEntityList);
wmsInPlanDetailList.add(wmsInPlanDetail);
wmsInPlanTemp.setWmsInPlanDetailsList(wmsInPlanDetailList);
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(wmStorageArea.getAreaId());
wmsInPlanDetails.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetails.setPlanInStatus("0");
wmsInPlanDetailsList.add(wmsInPlanDetails);
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailsList);
List<WmsInPlanDetail> wmsInPlanDetailList = wmsInPlan.getWmsInPlanDetailsList();
WmsInPlanDetail wmsInPlanDetail = new WmsInPlanDetail();
wmsInPlanDetail.setMaterialId(zdTask.getmProductId().toString());
wmsInPlanDetail.setBatch(batchNum);
wmsInPlanDetail.setCellId(wmStorageArea.getAreaId());
wmsInPlanDetail.setQuantity(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setQuantityIn(zdTask.getProductIdQty().toString());
wmsInPlanDetail.setPlanInStatus("0");
wmsInPlanDetailList.add(wmsInPlanDetail);
wmsInPlan.setWmsInPlanDetailsList(wmsInPlanDetailList);
wmsInPlanService.updateWmsInPlan(wmsInPlan);
}

View File

@ -37,11 +37,11 @@
</resultMap>
<resultMap id="WmsInPlanWmsInPlanDetailsResult" type="WmsInPlan" extends="WmsInPlanResult">
<collection property="wmsInPlanDetailsList" notNullColumn="sub_DETAILS_ID" javaType="java.util.List"
<collection property="wmsInPlanDetailList" notNullColumn="sub_DETAILS_ID" javaType="java.util.List"
resultMap="WmsInPlanDetailsResult"/>
</resultMap>
<resultMap type="WmsInPlanDetails" id="WmsInPlanDetailsResult">
<resultMap type="WmsInPlanDetail" id="WmsInPlanDetailsResult">
<result property="detailsId" column="sub_DETAILS_ID"/>
<result property="planId" column="sub_PLAN_ID"/>
<result property="materialId" column="sub_MATERIAL_ID"/>
@ -59,7 +59,7 @@
<result property="isDelete" column="sub_IS_DELETE"/>
</resultMap>
<resultMap type="WmsInPlanDetails" id="BizWmsInPlanDetailsResult">
<resultMap type="WmsInPlanDetail" id="BizWmsInPlanDetailsResult">
<result property="detailsId" column="sub_DETAILS_ID"/>
<result property="planId" column="sub_PLAN_ID"/>
<result property="materialId" column="sub_MATERIAL_ID"/>