diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java index 11a5fb2..07d4261 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java @@ -1,14 +1,13 @@ package org.nl.b_lms.pdm.subpackagerelation.dao.mapper; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationDto; -import org.nl.common.domain.query.PageQuery; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructattrQuerry; import java.util.List; @@ -40,4 +39,7 @@ public interface PdmBiSubpackagerelationMapper extends BaseMapper #{day} and task_status = '07' and vehicle_code != '' and vehicle_code is not NULL and point_code2 IN ('TZZC30','TZZC31','TZZC32','TZZC33','TZZC34','TZZC35','TZZC36','TZZC37','TZZC38')\n") List> downloadData(@Param("day") String date); + + @Select("select * from pdm_bi_subpackagerelation where package_box_sn = #{boxNo}") + StructattrQuerry selectSubpackagerelationInser(String boxNo); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java new file mode 100644 index 0000000..440fc9d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java @@ -0,0 +1,24 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dto; + +import lombok.Data; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; + +import java.util.List; + +@Data +public class StructattrQuerry extends PdmBiSubpackagerelation { + private String stor_id; + private String sect_id; + private String material_id; + private String vehicle_type; + private String block_num; + List height; + private String not_in_block_num; + + private List block_in; + + private List not_block; + + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 01041bb..f101f73 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -299,8 +299,6 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl JSONObject JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(whereJson)); // 分配明细集合 @@ -320,7 +318,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl paramLockList = new ArrayList<>(); // 仓位对象 - StIvtStructattr stIvtStructattr; + StIvtStructattr stIvtStructattr = new StIvtStructattr(); // 是否自动分配货位 Boolean checked = jsonObject.getBoolean("checked"); String height = ""; @@ -350,9 +348,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id",jsonObject.getString("sect_id"))); // 判断是否是虚拟区 - if (jsonSect.getString("sect_type_attr").equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { + if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { stIvtStructattr = stIvtStructattrMapper.selectOne(new QueryWrapper().eq("sect_id", jsonObject.getString("sect_id")).eq("lock_type", "1").eq("is_delete", "0").apply("IFNULL(storagevehicle_code, '') = ''")); @@ -362,12 +360,14 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("struct_id", jsonDis.getString("struct_id"))); } @@ -385,11 +385,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id", jsonAttr.getString("sect_id"))); - StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper().eq("sect_id", 1)); - if (jsonSect.getString("sect_type_attr").equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { + StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper().eq("sect_id",stIvtStructattr.getSect_id())); + if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { // 虚拟区:执行状态为完成 work_status = IOSEnum.WORK_STATUS.code("完成"); task_id = IdUtil.getLongId(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java index d394849..4ac1b5e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java @@ -501,6 +501,9 @@ public class InBussManageServiceImpl implements InBussManageService { List boxAllLikeList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + + // 为空说明库内没有相同规格的木箱,则返回不区分木箱规格的最小巷道 if (ObjectUtil.isEmpty(boxAllLikeList)) { return jsonBlockMin.getString("block_num"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java index d16bf07..7aef4a4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java @@ -1,11 +1,13 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.log4j.Log4j; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructattrQuerry; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; @@ -17,10 +19,8 @@ import org.nl.system.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; @Service @@ -34,9 +34,11 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { @Autowired private StIvtStructattrMapper stIvtStructattrMapper; + @Autowired + private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; @Override - public JSONObject getOneStruct(JSONObject jsonObject) { + public JSONObject getOneStruct(JSONObject jsonObject) { /* * 成品入库规则: * 1.根据托盘类型确认巷道小托盘负载均衡到所有巷道,大托盘去大托盘巷道。 @@ -66,45 +68,27 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { // 是否是移库: 提前确定的巷道 String block_num = jsonObject.getString("move_block_num"); - JSONArray attrArry = new JSONArray(); String input = jsonObject.getString("height"); List result = Arrays.asList(input.split("','")); - // - if (ObjectUtil.isEmpty(block_num)) { - attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " + - "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" + - "AND height IN " + jsonObject.getString("height") + - "AND sect_id = '" + jsonObject.getString("sect_id") + "'").getResultJSONArray(0); - - LambdaQueryWrapper stIvtStructattrLambdaQueryWrapper = new LambdaQueryWrapper<>(); - stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")).eq(StIvtStructattr::getSect_id, jsonObject.getString("sect_id")) - .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")).eq(StIvtStructattr::getStor_id, jsonObject.getString("stor_id")) - .in(StIvtStructattr::getHeight, result); -// if (){ -// -// } -// stIvtStructattrMapper.selectList() - - - - } else { - attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " + - "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" + - "AND height IN " + jsonObject.getString("height") + - "AND sect_id = '" + jsonObject.getString("sect_id") + "' AND block_num = '"+block_num+"'") - .getResultJSONArray(0); + LambdaQueryWrapper stIvtStructattrLambdaQueryWrapper = new LambdaQueryWrapper<>(); + stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")).eq(StIvtStructattr::getSect_id, jsonObject.getString("sect_id")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")).eq(StIvtStructattr::getStor_id, jsonObject.getString("stor_id")) + .in(StIvtStructattr::getHeight, result); + //小托盘均入四个巷道(不分类型),大托盘均入三个巷道 + if ("2".equals(jsonObject.getString("vehicle_type"))) { + stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getStoragevehicle_type, "2"); } + if (!ObjectUtil.isEmpty(block_num)) { + stIvtStructattrLambdaQueryWrapper.eq(StIvtStructattr::getBlock_num, block_num); + } + List stIvtStructattrs = stIvtStructattrMapper.selectList(stIvtStructattrLambdaQueryWrapper); - if (ObjectUtil.isEmpty(attrArry)) { + if (ObjectUtil.isEmpty(stIvtStructattrs)) { throw new BadRequestException("仓位不足!"); } @@ -112,23 +96,25 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { * 确定巷道:查看每个巷道相同木箱规格等 的数量,找到数量最小的那个巷道 */ // 获取木箱入库巷道 - JSONObject jsonSub = subTab.query("package_box_sn = '" + jsonObject.getString("box_no") + "'").uniqueResult(0); - jsonSub.put("stor_id", jsonObject.getString("stor_id")); - jsonSub.put("sect_id", jsonObject.getString("sect_id")); - jsonSub.put("material_id", jsonObject.getString("material_id")); - jsonSub.put("vehicle_type", jsonObject.getString("vehicle_type")); - jsonSub.put("height", jsonObject.getString("height")); + StructattrQuerry structattrQuerry = pdmBiSubpackagerelationMapper.selectSubpackagerelationInser( jsonObject.getString("box_no")); + + structattrQuerry.setStor_id(jsonObject.getString("stor_id")); + structattrQuerry.setSect_id(jsonObject.getString("sect_id")); + structattrQuerry.setMaterial_id(jsonObject.getString("material_id")); + structattrQuerry.setStor_id(jsonObject.getString("vehicle_type")); + structattrQuerry.setHeight(result); + // 不是移库则需要找新巷道 if (ObjectUtil.isEmpty(block_num)) { - block_num = getMinBlock(jsonSub); + block_num = getMinBlock(structattrQuerry); } - jsonSub.put("block_num", block_num); + structattrQuerry.setBlock_num(block_num); /* * 找仓位 */ - JSONObject jsonAttr = getStruct(jsonSub); + JSONObject jsonAttr = getStruct(structattrQuerry); // 如果是移库空并且仓位为空则报错 if (ObjectUtil.isNotEmpty(jsonObject.getString("move_block_num")) && ObjectUtil.isEmpty(jsonAttr)) { @@ -138,20 +124,15 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { // 为空则新找巷道 if (ObjectUtil.isEmpty(jsonAttr)) { - jsonSub.put("flag", "1"); - notInBlockList.add(jsonSub.getString("block_num")); - - String join = "('" + String.join("','", notInBlockList) + "')"; - jsonSub.put("not_block", join); + notInBlockList.add(structattrQuerry.getBlock_num()); + structattrQuerry.setNot_block(notInBlockList); + List block = stIvtStructattrMapper.getBlock(structattrQuerry); - List blockList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + for (int i = 0; i < block.size(); i++) { + String s = block.get(i); + structattrQuerry.setBlock_num(s); - for (int i = 0; i < blockList.size(); i++) { - JSONObject json = blockList.get(i); - jsonSub.put("block_num",json.getString("block_num")); - - JSONObject jsonAttr_2 = getStruct(jsonSub); + JSONObject jsonAttr_2 = getStruct(structattrQuerry); if (ObjectUtil.isNotEmpty(jsonAttr_2)) { jsonAttr = jsonAttr_2; break; @@ -169,54 +150,43 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { /** * 获取最小巷道 * - * @param jsonSub { - * jsonSub:木箱信息 - * sect_id:库区 - * stor_id:仓库 - * material_id:物料 - * } + * @param structattrQuerry { + * jsonSub:木箱信息 + * sect_id:库区 + * stor_id:仓库 + * material_id:物料 + * } * @return String : 巷道 */ - private String getMinBlock(JSONObject jsonSub) { + private String getMinBlock(StructattrQuerry structattrQuerry) { // 获取系统参数不入哪个巷道 String not_in_block_num = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("not_in_block_num").getValue(); if (!not_in_block_num.equals(IOSEnum.IS_NOTANDYES.code("否"))) { - jsonSub.put("not_in_block_num", not_in_block_num); + structattrQuerry.setNot_in_block_num(not_in_block_num); } - jsonSub.put("flag", "1"); - // 获取仓库、库区有空位的巷道 - List blockList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List block = stIvtStructattrMapper.getBlock(structattrQuerry); /* * 查询所属巷道所有木箱 */ - String block_in = blockList.stream() - .map(row -> row.getString("block_num")) - .collect(Collectors.joining("','")); - - jsonSub.put("flag", "2"); - jsonSub.put("block_in", "('" + block_in + "')"); - - List boxAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + structattrQuerry.setBlock_in(block); + List boxAllList = stIvtStructattrMapper.getBoxAllList(structattrQuerry); // 为空说明没有木箱,返回最小巷道 - if (ObjectUtil.isEmpty(boxAllList)) { - return blockList.get(0).getString("block_num"); + if (CollUtil.isEmpty(boxAllList)) { + return block.get(0); } // 不区分木箱规格:最小木箱数的巷道 - JSONObject jsonBlockMin = sumBlockMinNum(blockList, boxAllList); + JSONObject jsonBlockMin = sumBlockMinNum(block, boxAllList); /* * 查询所属巷道所有相同规格的木箱 */ - jsonSub.put("flag", "3"); - List boxAllLikeList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List boxAllLikeList = stIvtStructattrMapper.getBoxAllLikeList(structattrQuerry); + // 为空说明库内没有相同规格的木箱,则返回不区分木箱规格的最小巷道 if (ObjectUtil.isEmpty(boxAllLikeList)) { @@ -224,7 +194,7 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { } // 区分木箱规格:最小木箱的巷道 - JSONObject jsonBlockLikeMin = sumBlockMinNum(blockList, boxAllLikeList); + JSONObject jsonBlockLikeMin = sumBlockMinNum(block, boxAllLikeList); return jsonBlockLikeMin.getString("block_num"); } @@ -235,35 +205,32 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { * @param boxAllList: 所有木箱 * @return JSONObject:最小木箱数的巷道 JSONObject{block_num,box_num} */ - private JSONObject sumBlockMinNum(List blockList, List boxAllList) { + private JSONObject sumBlockMinNum(List blockList, List boxAllList) { // 统计各巷道木箱数 - ArrayList blockBoxList = new ArrayList<>(); + Map> boxGroupedByBlock = boxAllList.stream() + .collect(Collectors.groupingBy(row -> row.getBlock_num())); - for (int i = 0; i < blockList.size(); i++) { - JSONObject jsonBlock = blockList.get(i); - - List box_num = boxAllList.stream() - .filter(row -> row.getString("block_num").equals(jsonBlock.getString("block_num"))) - .collect(Collectors.toList()); + ArrayList blockBoxList = new ArrayList<>(); - jsonBlock.put("box_num", String.valueOf(box_num.size())); - blockBoxList.add(jsonBlock); + for (String jsonBlock : blockList) { + JSONObject jsonObject = new JSONObject(); + int count = boxGroupedByBlock.getOrDefault(jsonBlock, Collections.emptyList()).size(); + jsonObject.put("box_num", String.valueOf(count)); + blockBoxList.add(jsonObject); } - // 最小木箱数的巷道 - List boxNumList = blockBoxList.stream() - .sorted(Comparator.comparing(row -> row.getIntValue("box_num"))) - .collect(Collectors.toList()); - - return boxNumList.get(0); + // 获取木箱数最少的巷道 + return blockBoxList.stream() + .min(Comparator.comparingInt(row -> Integer.parseInt(row.getString("box_num")))) + .orElse(null); } /** * 获取一个货位公共方法 * - * @param jsonSub { + * @param structattrQuerry { * jsonSub:木箱信息 * sect_id:库区 * stor_id:仓库 @@ -273,100 +240,88 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { * } * @return JSONObject : 仓位 */ - private JSONObject getStruct(JSONObject jsonSub) { + private JSONObject getStruct(StructattrQuerry structattrQuerry) { // 根据巷道找这一巷道相同订单号、物料的仓位 - JSONObject jsonLikeBox = queryEqualBox(jsonSub); + JSONObject jsonLikeBox = queryEqualBox(structattrQuerry); if (ObjectUtil.isNotEmpty(jsonLikeBox)) { return jsonLikeBox; } - // 获取此仓库、库区、巷道、排的所有空位 根据列、层、深度排序 - jsonSub.put("flag", "55"); - - List rowStructList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List stIvtStructattrs = stIvtStructattrMapper.getstructRow(structattrQuerry); // 获取此仓库、库区、巷道、排的所有仓位 - jsonSub.put("flag", "66"); - - List structAllList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); - - JSONObject jsonAttr = new JSONObject(); - - for (int i = 0; i < rowStructList.size(); i++) { - JSONObject json = rowStructList.get(i); - + List allStruct = stIvtStructattrMapper.getAllStruct(structattrQuerry); + StIvtStructattr stIvtStructattrReturn = new StIvtStructattr(); + for (int i = 0; i < stIvtStructattrs.size(); i++) { + StIvtStructattr stIvtStructattr = stIvtStructattrs.get(i); // 判断伸位 - if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { + if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { // 无需深度 - jsonAttr = json; + stIvtStructattrReturn = stIvtStructattr; break; - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + } else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { /* * 深货位:判断浅是否阻挡 */ // 获取此货位对应的浅货位 - List lowAttr = structAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("row_num").equals(json.getString("row_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) - .collect(Collectors.toList()); + List lowAttr = allStruct.stream() + .filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) && + row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) && + row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { notInBlockList.clear(); - throw new BadRequestException("匹配仓位时:" + json.getString("struct_code") + "对应的浅货位错误!"); + throw new BadRequestException("匹配仓位时:" + stIvtStructattr.getStruct_code() + "对应的浅货位错误!"); } // 判断是否有木箱 - JSONObject jsonAttrLow = lowAttr.get(0); - if (ObjectUtil.isEmpty(jsonAttrLow.getString("storagevehicle_code")) && jsonAttrLow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + StIvtStructattr jsonAttrLow = lowAttr.get(0); + if (ObjectUtil.isEmpty(jsonAttrLow.getStoragevehicle_code()) && jsonAttrLow.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 没有木箱 - jsonAttr = json; + stIvtStructattrReturn = stIvtStructattr; break; } else { continue; } - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { + } else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { /* * 浅货位:判断深货位是否空洞 */ // 获取此货位对应的深货位 - List darkAttr = structAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("row_num").equals(json.getString("row_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) - .collect(Collectors.toList()); + List darkAttr = allStruct.stream() + .filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) && + row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) && + row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList()); if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) { notInBlockList.clear(); - throw new BadRequestException("匹配仓位时:" + json.getString("struct_code") + "对应的深货位错误!"); + throw new BadRequestException("匹配仓位时:" + stIvtStructattr.getStruct_code() + "对应的深货位错误!"); } // 判断是否有木箱 - JSONObject jsonAttrDark = darkAttr.get(0); + StIvtStructattr jsonAttrDark = darkAttr.get(0); - if (ObjectUtil.isNotEmpty(jsonAttrDark.getString("storagevehicle_code"))) { + if (ObjectUtil.isNotEmpty(jsonAttrDark.getStoragevehicle_code())) { // 判断是否是成品箱,判断内容:是否空托盘、是否空木箱 - if (jsonAttrDark.getString("is_vehicle").equals(IOSEnum.IS_NOTANDYES.code("是")) || - jsonAttrDark.getString("is_packing").equals(IOSEnum.IS_NOTANDYES.code("否")) + if (jsonAttrDark.getIs_vehicle().equals(IOSEnum.IS_NOTANDYES.code("是")) || + jsonAttrDark.getIs_packing().equals(IOSEnum.IS_NOTANDYES.code("否")) ) { continue; } - if (jsonAttrDark.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - jsonAttr = json; + if (jsonAttrDark.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + stIvtStructattrReturn = stIvtStructattr; break; } else { continue; } } else { - if (jsonAttrDark.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - jsonAttr = jsonAttrDark; + if (jsonAttrDark.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + stIvtStructattrReturn = jsonAttrDark; break; } else { continue; @@ -376,56 +331,59 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { } - return jsonAttr; + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stIvtStructattrReturn); + return jsonObject; } /** * 匹配相同订单、物料的仓位 - * @param jsonSub{子卷包装关系} + * + * @param structattrQuerry{子卷包装关系} * @return JSONObject:要入库的仓位 */ - private JSONObject queryEqualBox(JSONObject jsonSub) { + private JSONObject queryEqualBox(StructattrQuerry structattrQuerry) { // 需要返回的仓位 JSONObject result = new JSONObject(); // 1.匹配相同订单号、物料的排(row_num) - jsonSub.put("flag", "77"); - List rowList = WQL.getWO("BST_INRULE").addParamMap(jsonSub) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + List likeOrder = stIvtStructattrMapper.getLikeOrder(structattrQuerry); + StructattrQuerry structattrQuerry2 = new StructattrQuerry(); + structattrQuerry2.setBlock_num(structattrQuerry.getBlock_num()); + structattrQuerry2.setSect_id(structattrQuerry.getSect_id()); // 查询此巷道的所有仓位 - List attrRowAllList = WQL.getWO("BST_INRULE").addParam("flag", "88") - .addParam("sect_id", jsonSub.getString("sect_id")) - .addParam("block_num", jsonSub.getString("block_num")).process().getResultJSONArray(0).toJavaList(JSONObject.class); + List stIvtStructattrs = stIvtStructattrMapper.getallStruct(structattrQuerry2); - for (JSONObject json : rowList) { + for (StIvtStructattr json : likeOrder) { // 判断此深仓位是否有货、是否被锁住 - if (ObjectUtil.isEmpty(json.getString("storagevehicle_code")) - || !json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定")) + if (ObjectUtil.isEmpty(json.getStoragevehicle_code()) + || !json.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) { continue; } // 找对应的浅货位 - JSONObject darkJson = attrRowAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("row_num").equals(json.getString("row_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + StIvtStructattr darkJson = stIvtStructattrs.stream() + .filter(row -> row.getCol_num().equals(json.getCol_num()) && + row.getLayer_num().equals(json.getLayer_num()) && + row.getRow_num().equals(json.getRow_num()) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .findFirst().orElse(null); if (ObjectUtil.isEmpty(darkJson)) { notInBlockList.clear(); - throw new BadRequestException("匹配相同木箱规格仓位时:" + json.getString("struct_code") + "对应的深货位错误!"); + throw new BadRequestException("匹配相同木箱规格仓位时:" + darkJson.getStruct_code() + "对应的深货位错误!"); } // 判断浅货位是否有货、未锁定 - if (ObjectUtil.isNotEmpty(darkJson.getString("storagevehicle_code")) - || !darkJson.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定")) + if (ObjectUtil.isNotEmpty(darkJson.getStoragevehicle_code()) + || !darkJson.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) { continue; } + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(darkJson); - result = darkJson; + result = jsonObject; break; } return result; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java index 49a26d4..c2a4890 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java @@ -98,7 +98,7 @@ public class StIvtStructattr implements Serializable { * 高度 */ @TableField("height") - private BigDecimal height; + private String height; /** * 深度 @@ -357,4 +357,9 @@ public class StIvtStructattr implements Serializable { */ @TableField("storagevehicle_type") private String storagevehicle_type; + + @TableField(exist = false) + private String is_packing; + @TableField(exist = false) + private String is_vehicle; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java index 0b5f838..cb1c354 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java @@ -1,7 +1,26 @@ package org.nl.b_lms.storage_manage.st.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructattrQuerry; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import java.util.List; + public interface StIvtStructattrMapper extends BaseMapper { + + List getBlock(@Param("param") StructattrQuerry pdmBiSubpackagerelation); + + List getBoxAllList(@Param("param") StructattrQuerry pdmBiSubpackagerelation); + + List getBoxAllLikeList(@Param("param") StructattrQuerry structattrQuerry); + + List getLikeOrder(@Param("param") StructattrQuerry jsonSub); + + List getallStruct(@Param("param")StructattrQuerry structattrQuerry2); + + List getstructRow(@Param("param")StructattrQuerry structattrQuerry); + + List getAllStruct(StructattrQuerry structattrQuerry); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml index a8c7977..d5ca8a3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml @@ -2,4 +2,254 @@ + + + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java index c7de2a1..3ac5fda 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java @@ -14,7 +14,9 @@ import org.nl.wms.basedata.st.service.UserStorService; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -196,4 +198,18 @@ public class UserStorServiceImpl implements UserStorService { return in_stor_id; } + public List getInStor2() { + String currentUserId = SecurityUtils.getCurrentUserId().toString(); + WQLObject userStorTab = WQLObject.getWQLObject("st_ivt_userstor"); + + JSONArray userStorArr = userStorTab.query("user_id = '" + currentUserId + "'").getResultJSONArray(0); + // 将仓库id拼成字符串 + List list = new ArrayList<>(); + for (int i = 0; i < userStorArr.size(); i++) { + JSONObject json = userStorArr.getJSONObject(i); + list.add(json.getString("stor_id")); + } + return list; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java index dfc2873..b004003 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java @@ -3,6 +3,8 @@ package org.nl.wms.st.instor.check.contronller; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.wms.st.instor.service.CheckService; import org.springframework.data.domain.Pageable; @@ -25,8 +27,8 @@ public class CheckController { @GetMapping @Log("查询盘点单") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(checkService.pageQuery(whereJson, page), HttpStatus.OK); + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(checkService.pageQuery(whereJson, page)), HttpStatus.OK); } @GetMapping("/getDtlView") @@ -37,8 +39,8 @@ public class CheckController { @GetMapping("/getExceptionDispose") @Log("查询盘点单明细异常") - public ResponseEntity getExceptionDispose(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(checkService.getExceptionDispose(whereJson, page), HttpStatus.OK); + public ResponseEntity getExceptionDispose(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(checkService.getExceptionDispose(whereJson, page)), HttpStatus.OK); } @GetMapping("/getOutBillDtl") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java index d18c959..4d439fb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java @@ -164,4 +164,7 @@ public class StIvtCheckMst implements Serializable { */ private String syscompanyid; + @TableField(exist = false) + private Integer pcsn_num; + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java index f4cf8a1..267eb7f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java @@ -1,5 +1,6 @@ package org.nl.wms.st.instor.check.service.dao; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; @@ -159,6 +160,13 @@ public class StIvtCheckdtl implements Serializable { */ private String remark; + @TableField(exist = false) + private String material_code; + + + @TableField(exist = false) + private String material_name; + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java index d874387..4f63519 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java @@ -2,7 +2,13 @@ package org.nl.wms.st.instor.check.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckdtl; +import org.nl.wms.st.outbill.service.dto.OutBillQueryPageParam; + +import java.util.List; /** *

@@ -14,5 +20,7 @@ import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; */ public interface StIvtCheckMstMapper extends BaseMapper { + List recordQuery(List ids); + IPage getExceptionDispose(IPage pages, OutBillQueryPageParam paramMap); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.xml b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.xml new file mode 100644 index 0000000..f5c2ca7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java index 6d48086..123754e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java @@ -2,8 +2,11 @@ package org.nl.wms.st.instor.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckdtl; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -18,7 +21,7 @@ public interface CheckService extends IService { * @param page 分页参数 * @return Map */ - Map pageQuery(Map whereJson, Pageable page); + IPage pageQuery(Map whereJson, PageQuery page); /** * 查询数据分页 @@ -36,7 +39,7 @@ public interface CheckService extends IService { * @param page 分页参数 * @return Map */ - Map getExceptionDispose(Map whereJson, Pageable page); + IPage getExceptionDispose(Map whereJson, PageQuery page); /** * 多选删除 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java index 23c5c63..d1c0303 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java @@ -9,9 +9,15 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; @@ -25,6 +31,7 @@ import org.nl.wms.st.instor.check.service.dao.StIvtCheckdtl; import org.nl.wms.st.instor.check.service.dao.mapper.StIvtCheckMstMapper; import org.nl.wms.st.instor.check.service.dao.mapper.StIvtCheckdtlMapper; import org.nl.wms.st.instor.service.CheckService; +import org.nl.wms.st.outbill.service.dto.OutBillQueryPageParam; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -48,46 +55,43 @@ public class CheckServiceImpl extends ServiceImpl pageQuery(Map whereJson, Pageable page) { - - HashMap map = new HashMap<>(whereJson); - map.put("flag", "1"); - if (StrUtil.isNotEmpty(map.get("check_code"))) { - map.put("check_code", "%" + map.get("check_code") + "%"); - } + public IPage pageQuery(Map whereJson, PageQuery page) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); //获取人员对应的仓库 UserStorServiceImpl userStorService = new UserStorServiceImpl(); - String in_stor_id = userStorService.getInStor(); + List in_stor_id = userStorService.getInStor2(); + wrapper.in(ObjectUtil.isNotEmpty(in_stor_id),StIvtCheckMst::getStor_id,in_stor_id) + .like(ObjectUtil.isNotEmpty(whereJson.get("check_code")),StIvtCheckMst::getCheck_code,whereJson.get("check_code")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("check_type")),StIvtCheckMst::getCheck_type,whereJson.get("check_type")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("create_mode")),StIvtCheckMst::getCreate_mode,whereJson.get("create_mode")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("stor_id")),StIvtCheckMst::getStor_id,whereJson.get("stor_id")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("status")),StIvtCheckMst::getStatus,whereJson.get("status")) + .gt(ObjectUtil.isNotEmpty(whereJson.get("begin_time")),StIvtCheckMst::getInput_time,whereJson.get("begin_time")) + .lt(ObjectUtil.isNotEmpty(whereJson.get("end_time")),StIvtCheckMst::getInput_time,whereJson.get("end_time")) + .orderByDesc(StIvtCheckMst::getCheck_code); - if (ObjectUtil.isNotEmpty(in_stor_id)) { - map.put("in_stor_id", in_stor_id); - } - JSONObject jo = WQL.getWO("QST_IVT_CHECK").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "check_code desc"); - JSONArray content = jo.getJSONArray("content"); - if (content.isEmpty()) { - return jo; - } - // 拼接主表id - String check_id = content.stream() - .map(row -> (JSONObject) row) - .map(row -> row.getString("check_id")) - .collect(Collectors.joining(",")); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); - JSONArray resultJSONArray = WQL.getWO("QST_IVT_CHECK").addParam("flag", "13").addParam("check_id_in", "(" + check_id + ")").process().getResultJSONArray(0); + IPage ret = stIvtCheckMstMapper.selectPage(pages,wrapper); - for (int i = 0; i < content.size(); i++) { - JSONObject json = content.getJSONObject(i); + List list = ret.getRecords(); - // 匹配相同check_id的数据条数 - int pcsn_num = (int) resultJSONArray.stream() - .map(row -> (JSONObject) row) - .filter(row -> row.getString("check_id").equals(json.getString("check_id"))) - .count(); + List strs = list.stream().map(plan -> plan.getCheck_id()).collect(Collectors.toList()); + if(strs.size()>0){ + List sublist = stIvtCheckMstMapper.recordQuery(strs); + for (int i = 0; i < list.size(); i++) { + StIvtCheckMst json = list.get(i); - json.put("pcsn_num", pcsn_num); + // 匹配相同check_id的数据条数 + int pcsn_num = (int) sublist.stream() + .filter(row -> row.equals(json.getCheck_id())) + .count(); + + json.setPcsn_num(pcsn_num); + } } - return jo; + return ret; } @Override @@ -113,21 +117,15 @@ public class CheckServiceImpl extends ServiceImpl getExceptionDispose(Map whereJson, Pageable page) { + public IPage getExceptionDispose(Map whereJson, PageQuery page) { String box_no = MapUtil.getStr(whereJson, "box_no"); String check_code = MapUtil.getStr(whereJson, "check_code"); + OutBillQueryPageParam param = new OutBillQueryPageParam(); + param.setBill_code(check_code); + param.setBox_no(box_no); - JSONObject map = new JSONObject(); - map.put("check_code", check_code); - map.put("flag", "10"); - - if (ObjectUtil.isNotEmpty(box_no)) { - map.put("box_no", "%" + box_no + "%"); - } - - JSONObject json = WQL.getWO("QST_IVT_CHECK").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "dtl.seq_no ASC"); - - return json; + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + return stIvtCheckMstMapper.getExceptionDispose(pages, param); } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql index dc3a056..f653bff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql @@ -64,49 +64,6 @@ # 3、业务主过程 # ########################################## - IF 输入.flag = "1" - PAGEQUERY - SELECT - checkmst.check_id AS id, - checkmst.* - FROM - ST_IVT_CheckMst checkmst - WHERE - checkmst.is_delete = '0' - and checkmst.stor_id in 输入.in_stor_id - - OPTION 输入.check_code <> "" - checkmst.check_code like 输入.check_code - ENDOPTION - - OPTION 输入.check_type <> "" - checkmst.check_type = 输入.check_type - ENDOPTION - - OPTION 输入.stor_id <> "" - checkmst.stor_id = 输入.stor_id - ENDOPTION - - OPTION 输入.create_mode <> "" - checkmst.create_mode = 输入.create_mode - ENDOPTION - - OPTION 输入.status <> "" - checkmst.status = 输入.status - ENDOPTION - - OPTION 输入.begin_time <> "" - checkmst.input_time >= 输入.begin_time - ENDOPTION - - OPTION 输入.end_time <> "" - checkmst.input_time <= 输入.end_time - ENDOPTION - - ENDSELECT - ENDPAGEQUERY - ENDIF - IF 输入.flag = "2" QUERY SELECT @@ -379,22 +336,3 @@ ENDSELECT ENDPAGEQUERY ENDIF - - IF 输入.flag = "13" - QUERY - SELECT - sub.*, - dtl.check_id - FROM - pdm_bi_subpackagerelation sub - LEFT JOIN st_ivt_checkdtl dtl ON sub.package_box_sn = dtl.storagevehicle_code - WHERE - 1 = 1 - - OPTION 输入.check_id_in <> "" - dtl.check_id in 输入.check_id_in - ENDOPTION - - ENDSELECT - ENDQUERY - ENDIF