fix:同类木箱兼容问题

This commit is contained in:
zhouz
2025-07-14 10:40:12 +08:00
parent 4a1b8ac17a
commit 40cca955bb
5 changed files with 83 additions and 9 deletions

View File

@@ -1,7 +1,12 @@
package org.nl.b_lms.bst.ivt.stockingivt.controller; package org.nl.b_lms.bst.ivt.stockingivt.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo;
import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService;
import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox;
import org.nl.common.TableDataInfo; import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.modules.logging.annotation.Log; import org.nl.modules.logging.annotation.Log;
@@ -13,6 +18,8 @@ import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@@ -27,6 +34,8 @@ public class BstIvtStockingivtController {
@Autowired @Autowired
private IBstIvtStockingivtService bstIvtStockingivtService; private IBstIvtStockingivtService bstIvtStockingivtService;
@Autowired
private IMdpbSameBoxService imdpbSameBoxService;
@GetMapping @GetMapping
@Log("查询备货区点位库存表") @Log("查询备货区点位库存表")
@@ -83,7 +92,14 @@ public class BstIvtStockingivtController {
@Log("查询bom记录") @Log("查询bom记录")
@GetMapping("/showBom2") @GetMapping("/showBom2")
public ResponseEntity<Object> showBom2(@RequestParam Map param) { public ResponseEntity<Object> showBom2(@RequestParam Map param) {
return new ResponseEntity<>(bstIvtStockingivtService.showBom2(param), HttpStatus.OK); PdmBiOrderbominfo pdmBiOrderbominfo = bstIvtStockingivtService.showBom2(param);
List<MdpbSameBox> list = imdpbSameBoxService.list(new LambdaQueryWrapper<MdpbSameBox>().eq(MdpbSameBox::getBox_code, pdmBiOrderbominfo.getProductName()));
JSONObject json = (JSONObject) JSONObject.toJSON(pdmBiOrderbominfo);
ArrayList<String> arrayList = new ArrayList<>();
list.stream().map(MdpbSameBox::getSame_box_code).forEach(arrayList::add);
json.put("sameBoxCode", arrayList);
json.put("sameBoxName", arrayList);
return new ResponseEntity<>(json, HttpStatus.OK);
} }

View File

@@ -44,7 +44,9 @@ import org.nl.b_lms.sch.tasks.TwoOutBoxTask;
import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask;
import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueue; import org.nl.b_lms.sch.tasks.first_floor_area.auto.TaskQueue;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService;
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox;
import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.OutBoxManageServiceImpl; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.OutBoxManageServiceImpl;
@@ -138,6 +140,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
@Autowired @Autowired
private ISysParamService iSysParamService; private ISysParamService iSysParamService;
@Autowired
private IMdpbSameBoxService mdpbSameBoxService;
@Resource @Resource
@Qualifier("threadPoolExecutor") @Qualifier("threadPoolExecutor")
private ThreadPoolExecutor pool; private ThreadPoolExecutor pool;
@@ -491,8 +496,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
if (ObjectUtils.isEmpty(packagerelationList)) { if (ObjectUtils.isEmpty(packagerelationList)) {
throw new BadRequestException("无选中子卷信息"); throw new BadRequestException("无选中子卷信息");
} }
if (!packagerelationList.get(0).getBox_type().equals(whereJson.getString("checked"))){ List<MdpbSameBox> list = mdpbSameBoxService.list(new LambdaQueryWrapper<MdpbSameBox>().eq(MdpbSameBox::getBox_code, packagerelationList.get(0).getBox_type()));
throw new BadRequestException("子卷订单bom的木箱规格与所选木箱规格不一致,请重新操作"); List<MdpbSameBox> collect = list.stream().filter(row -> row.getSame_box_code().equals(whereJson.getString("checked"))).collect(Collectors.toList());
//改为支持多种木箱进行
if (!packagerelationList.get(0).getBox_type().equals(whereJson.getString("checked")) && ObjectUtil.isEmpty(collect)) {
throw new BadRequestException("子卷订单bom的木箱规格及同类木箱与所选木箱规格不符合,请重新操作");
} }
//检查是否存在已分配规格的子卷号 //检查是否存在已分配规格的子卷号
if (packagerelationList.stream() if (packagerelationList.stream()

View File

@@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.database.service.impl;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -12,7 +13,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo; import org.nl.b_lms.pdm.info.dao.PdmBiOrderbominfo;
import org.nl.b_lms.pdm.info.service.IPdmBiOrderbominfoService; import org.nl.b_lms.pdm.info.service.IPdmBiOrderbominfoService;
import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService;
import org.nl.b_lms.storage_manage.database.service.IMdpbSameBoxService;
import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype; import org.nl.b_lms.storage_manage.database.service.dao.MdpbBoxtype;
import org.nl.b_lms.storage_manage.database.service.dao.MdpbSameBox;
import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbBoxtypeMapper; import org.nl.b_lms.storage_manage.database.service.dao.mapper.MdpbBoxtypeMapper;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
@@ -20,8 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Map; import java.util.*;
import java.util.Set;
/** /**
* <p> * <p>
@@ -36,6 +38,8 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl<MdpbBoxtypeMapper, MdpbB
@Autowired @Autowired
private IPdmBiOrderbominfoService pdmBiOrderbominfoService; private IPdmBiOrderbominfoService pdmBiOrderbominfoService;
@Autowired
private IMdpbSameBoxService mdpbSameBoxService;
@Override @Override
public IPage<MdpbBoxtype> queryAll(Map whereJson, PageQuery page) { public IPage<MdpbBoxtype> queryAll(Map whereJson, PageQuery page) {
// 查询条件 // 查询条件
@@ -99,10 +103,30 @@ public class MdpbBoxtypeServiceImpl extends ServiceImpl<MdpbBoxtypeMapper, MdpbB
if (ObjectUtil.isEmpty(boxtype)) { if (ObjectUtil.isEmpty(boxtype)) {
throw new BadRequestException("木箱编码:"+whereJson.getString("productName")+"查询木箱类型失败!"); throw new BadRequestException("木箱编码:"+whereJson.getString("productName")+"查询木箱类型失败!");
} }
//更新BOM信息
pdmBiOrderbominfoService.update(new UpdateWrapper<PdmBiOrderbominfo>().lambda() pdmBiOrderbominfoService.update(new UpdateWrapper<PdmBiOrderbominfo>().lambda()
.eq(PdmBiOrderbominfo::getMfgOrder,whereJson.getString("mfgOrder")) .eq(PdmBiOrderbominfo::getMfgOrder,whereJson.getString("mfgOrder"))
.set(PdmBiOrderbominfo::getProductName, whereJson.getString("productName")) .set(PdmBiOrderbominfo::getProductName, whereJson.getString("productName"))
.set(PdmBiOrderbominfo::getDescription, boxtype.getBox_name()) .set(PdmBiOrderbominfo::getDescription, boxtype.getBox_name())
); );
//更新该木箱对应相同木箱类型1、先删除2、再插入
//删除
mdpbSameBoxService.remove(new QueryWrapper<MdpbSameBox>().lambda().eq(MdpbSameBox::getBox_code,whereJson.getString("productName")));
ArrayList<String> sameBoxCode = (ArrayList<String>) whereJson.get("sameBoxCode");
//插入
MdpbSameBox[] array = sameBoxCode.stream().map(a -> {
MdpbSameBox mdpbSameBox = new MdpbSameBox();
mdpbSameBox.setBox_code(whereJson.getString("productName"));
mdpbSameBox.setSame_box_code(a);
MdpbBoxtype same_box_name = this.getById(a);
if (ObjectUtil.isEmpty(boxtype)) {
throw new BadRequestException("木箱编码:"+whereJson.getString("productName")+"查询木箱类型失败!");
}
mdpbSameBox.setSame_box_name(same_box_name.getBox_name());
return mdpbSameBox;
}).toArray(MdpbSameBox[]::new);
mdpbSameBoxService.saveBatch(Arrays.asList(array));
} }
} }

View File

@@ -500,7 +500,7 @@
<el-table-column v-if="false" prop="workorder_id" label="分切计划标识" /> <el-table-column v-if="false" prop="workorder_id" label="分切计划标识" />
<el-table-column prop="status" label="状态" :formatter="formatStatusName" /> <el-table-column prop="status" label="状态" :formatter="formatStatusName" />
<el-table-column prop="order_type" label="订单类型" :formatter="formatTypeName" /> <el-table-column prop="order_type" label="订单类型" :formatter="formatTypeName" />
<el-table-column prop="mfg_order_name" label="订单号" min-width="200"> <el-table-column prop="mfg_order_name" label="订单号" min-width="220">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" @click="toView2(scope.$index, scope.row)">{{ scope.row.mfg_order_name }}</el-link> <el-link type="primary" @click="toView2(scope.$index, scope.row)">{{ scope.row.mfg_order_name }}</el-link>
</template> </template>

View File

@@ -15,11 +15,11 @@
</el-form-item> </el-form-item>
<el-form-item label="工单号" prop="mfgOrder"> <el-form-item label="工单号" prop="mfgOrder">
<label slot="label">工单号:</label> <label slot="label">工单号:</label>
<el-input v-model="form.mfgOrder" disabled clearable style="width: 300px" /> <el-input v-model="form.mfgOrder" disabled clearable style="width: 300px" />
</el-form-item> </el-form-item>
<el-form-item label="木箱编码" prop="productName"> <el-form-item label="木箱编码" prop="productName">
<label slot="label">木箱编码:</label> <label slot="label">木箱编码:</label>
<el-input v-model="form.productName" disabled clearable style="width: 300px" /> <el-input v-model="form.productName" disabled clearable style="width: 300px" />
</el-form-item> </el-form-item>
<el-form-item label="木箱描述" prop="description"> <el-form-item label="木箱描述" prop="description">
<el-select <el-select
@@ -45,7 +45,30 @@
</el-form-item> </el-form-item>
<el-form-item label="管芯描述" prop="carrierDescription"> <el-form-item label="管芯描述" prop="carrierDescription">
<label slot="label">管芯描述:</label> <label slot="label">管芯描述:</label>
<el-input v-model="form.carrierDescription" disabled clearable style="width: 300px" /> <el-input v-model="form.carrierDescription" disabled clearable style="width: 300px" />
</el-form-item>
<el-form-item label="同类木箱编码" prop="sameBoxCode">
<label slot="label">同类木箱编码:</label>
<el-input v-model="form.sameBoxCode" disabled clearable style="width: 300px" />
</el-form-item>
<el-form-item label="同类木箱描述" prop="sameBoxName">
<el-select
v-model="form.sameBoxName"
placeholder="木箱描述"
style="width: 400px"
multiple
class="filter-item"
clearable
filterable
@change="hand2"
>
<el-option
v-for="item in typelist"
:key="item.box_type"
:label="item.box_name"
:value="item.box_type"
/>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -101,6 +124,9 @@ export default {
hand(value) { hand(value) {
this.form.productName = value this.form.productName = value
}, },
hand2(value) {
this.form.sameBoxCode = value
},
close() { close() {
this.$emit('update:dialogShow', false) this.$emit('update:dialogShow', false)
this.form = {} this.form = {}