diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java index 7af5e1c..b80458b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java @@ -119,7 +119,13 @@ public interface IschBaseTaskService extends IService { */ List getTaskingByFk(String iostorinvId); - JSONObject getTaskObject(LambdaQueryWrapper taskLam); + /** + * 根据条件获取任务数据 + * @param taskLam 条件 + * @param flag 是否抛出异常 {@code true} 查询到多条会抛出异常,{@code false} 查询多条获取第一条 + * @return 一条数据SchBaseTask 或 {@code null} + */ + JSONObject getTaskObject(LambdaQueryWrapper taskLam, boolean flag); /** * 根据ids获取任务 @@ -136,6 +142,7 @@ public interface IschBaseTaskService extends IService { * @return */ List getTaskByIdsToObject(List taskIds, boolean flag); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java index 6140f06..d7a9d33 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -218,8 +218,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl taskLam) { - SchBaseTask one = getOne(taskLam); + public JSONObject getTaskObject(LambdaQueryWrapper taskLam, boolean flag) { + SchBaseTask one = getOne(taskLam, flag); if (ObjectUtil.isEmpty(one)){ return null; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java index 5bed927..065d7d5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java @@ -5,8 +5,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis; import org.nl.common.domain.query.PageQuery; +import org.nl.wms.st.outbill.service.dto.AllBoxInfoDto; import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; +import org.nl.wms.st.outbill.service.dto.OutManageParam; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; +import org.nl.wms.st.outbill.service.vo.OutManageExportVo; import org.nl.wms.stat.service.dto.InBillPageParam; import org.nl.wms.stat.service.dto.OutBillPageParam; import org.nl.wms.stat.service.vo.InBillPageVo; @@ -103,5 +106,14 @@ public interface IStIvtIostorinvdisService extends IService { List getBillDisByDtlId(String iostorinvdtlId); List getAllOverdueByDtlId(String iostorinvdtlId); + + /** + * 出库管理导出的数据 + * @param paramMap + * @return + */ + List getOutManageExportData(OutManageParam paramMap); + + List getAllBoxWeightAndDtlId(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtMoveinvService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtMoveinvService.java new file mode 100644 index 0000000..96a7e4c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtMoveinvService.java @@ -0,0 +1,12 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv; + +/** + * 移库单据 + * @Author: lyd + * @Date: 2025/7/2 + */ +public interface IStIvtMoveinvService extends IService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtMoveinv.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtMoveinv.java new file mode 100644 index 0000000..8ebbe5e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtMoveinv.java @@ -0,0 +1,68 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 衣裤单据 + * + * @Author: lyd + * @Date: 2025/7/2 + */ +@Data +@TableName("st_ivt_moveinv") +public class StIvtMoveinv { + /** 移库单标识 */ + private String moveinv_id; + /** 单据编号 */ + private String bill_code; + /** 业务类型 */ + private String buss_type; + /** 单据类型 */ + private String bill_type; + /** 业务日期 */ + private String biz_date; + /** 仓库标识 */ + private String stor_id; + /** 仓库编码 */ + private String stor_code; + /** 仓库名称 */ + private String stor_name; + /** 总数量 */ + private String total_qty; + /** 明细数 */ + private String detail_count; + /** 单据状态 */ + private String bill_status; + /** 备注 */ + private String remark; + /***/ + private String create_mode; + /***/ + private String input_optid; + /***/ + private String input_optname; + /***/ + private String input_time; + /***/ + private String update_optid; + /***/ + private String update_optname; + /***/ + private String update_time; + /***/ + private String confirm_optid; + /***/ + private String confirm_optname; + /***/ + private String confirm_time; + /***/ + private String confirm_info; + /***/ + private String sysdeptid; + /***/ + private String syscompanyid; + /***/ + private String is_delete; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java index a8a1927..17f03e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java @@ -8,8 +8,11 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis; +import org.nl.wms.st.outbill.service.dto.AllBoxInfoDto; import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; +import org.nl.wms.st.outbill.service.dto.OutManageParam; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; +import org.nl.wms.st.outbill.service.vo.OutManageExportVo; import org.nl.wms.stat.service.dto.InBillPageParam; import org.nl.wms.stat.service.dto.OutBillPageParam; import org.nl.wms.stat.service.vo.InBillPageVo; @@ -93,4 +96,8 @@ public interface StIvtIostorinvdisMapper extends BaseMapper { List getOutBillData(@Param("paramMap") OutBillPageParam paramMap); List getOutBillTask2(@Param("param") OutBillTaskParam param); + + List getOutManageExportData(@Param("paramMap") OutManageParam paramMap); + + List getAllBoxWeightAndDtlId(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml index c58bd1a..df4f933 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.xml @@ -912,8 +912,8 @@ AND CONCAT(record.width,'*',record.thickness) = #{paramMap.with} - AND (record.customer_name LIKE #{paramMap.customer_name} OR record.customer_description LIKE - #{paramMap.customer_name}) + AND (record.customer_name LIKE '%${paramMap.customer_name}%' OR record.customer_description LIKE + '%${paramMap.customer_name}%') GROUP BY record.bill_code, @@ -1036,8 +1036,8 @@ AND CONCAT(record.width,'*',record.thickness) = #{paramMap.with} - AND (record.customer_name LIKE #{paramMap.customer_name} OR record.customer_description LIKE - #{paramMap.customer_name}) + AND (record.customer_name LIKE '%${paramMap.customer_name}%' OR record.customer_description LIKE + '%${paramMap.customer_name}%') GROUP BY record.bill_code, @@ -1116,6 +1116,142 @@ AND mst.is_delete = '0' AND mst.bill_status '99' + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.java new file mode 100644 index 0000000..0593be9 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.java @@ -0,0 +1,11 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv; + +/** + * @Author: lyd + * @Date: 2025/7/2 + */ +public interface StIvtMoveinvMapper extends BaseMapper { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.xml new file mode 100644 index 0000000..a21ee2e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtMoveinvMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 681c902..c84723b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -44,14 +44,16 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.InventoryQueryParam import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService; -import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService; +import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; import org.nl.b_lms.storage_manage.st.service.StIvtSectattrService; import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService; import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.common.utils.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.system.service.param.ISysParamService; @@ -72,7 +74,6 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import java.util.function.Function; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -156,6 +157,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl row.getBigDecimal("plan_qty")) .reduce(BigDecimal.ZERO, BigDecimal::add) .doubleValue(); - whereJson.put("total_qty",total_qty); + whereJson.put("total_qty", total_qty); StIvtIostorinv mstDao = updataMst(whereJson, null); this.save(mstDao); @@ -277,6 +286,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl dtlQuery = new QueryWrapper().lambda(); @@ -321,7 +331,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disArr = outBussManageService.divIvt(dtlDao,ivtList); + List disArr = outBussManageService.divIvt(dtlDao, ivtList); disDaoList.addAll(disArr); } @@ -339,7 +349,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl dtlDaoList = iStIvtIostorinvdtlService.list( new QueryWrapper().lambda() .eq(StIvtIostorinvdtl::getIostorinv_id, mstDao.getIostorinv_id()) - .eq(StIvtIostorinvdtl::getIostorinvdtl_id,jsonDtl.getString("iostorinvdtl_id")) + .eq(StIvtIostorinvdtl::getIostorinvdtl_id, jsonDtl.getString("iostorinvdtl_id")) .le(StIvtIostorinvdtl::getBill_status, IOSEnum.BILL_STATUS.code("分配中")) .gt(StIvtIostorinvdtl::getUnassign_qty, 0) .orderByAsc(StIvtIostorinvdtl::getSeq_no) @@ -397,7 +407,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl ivtList = WQL.getWO("BST_OUTDIV").addParam("flag", "1").addParam("stor_id", mstDao.getStor_id().toString()) - .addParam("box_in", "('"+box_in+"')") + .addParam("box_in", "('" + box_in + "')") .process().getResultJSONArray(0).toJavaList(JSONObject.class); if (ObjectUtil.isEmpty(ivtList)) { @@ -429,7 +439,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskIds = disList.stream() + List taskIds = disList.stream() .map(row -> row.getString("task_id")) .distinct() .collect(Collectors.toList()); @@ -617,7 +627,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl> compositeKey = row -> Arrays.asList(row.getString("box_length"), row.getString("box_width"), - row.getString("box_high"),row.getString("sale_order_name"), - row.getString("material_id") + row.getString("box_high"), row.getString("sale_order_name"), + row.getString("material_id") ); Map, List> groupingDisMap = @@ -669,10 +679,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disLikeList : groupingDisMap.values()) { // 调用任务生成处理 - List taskMangeList = createTaskMange(disLikeList,mstDao.getIostorinv_id().toString()); + List taskMangeList = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString()); // 创建任务并下发一组任务 - createTask(taskMangeList,disLikeList,whereJson.getString("point_code")); + createTask(taskMangeList, disLikeList, whereJson.getString("point_code")); } // 下发任务:判断当前单据是否有正在执行的的任务 @@ -722,7 +732,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl> compositeKey = row -> Arrays.asList(row.getString("box_length"), row.getString("box_width"), - row.getString("box_high"),row.getString("sale_order_name"), + row.getString("box_high"), row.getString("sale_order_name"), row.getString("material_id") ); @@ -737,10 +747,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disLikeList : groupingDisMap.values()) { // 调用任务生成处理 (有移库直接下发去做,最后返回出库仓位数组) - List taskMangeList = createTaskMange2(disLikeList,mstDao.getIostorinv_id().toString(),allTransactionConsumer); + List taskMangeList = createTaskMange2(disLikeList, mstDao.getIostorinv_id().toString(), allTransactionConsumer); // 创建任务并下发一组任务 - createTask2(taskMangeList,disLikeList,whereJson.getString("point_code"),allTransactionConsumer); + createTask2(taskMangeList, disLikeList, whereJson.getString("point_code"), allTransactionConsumer); allTransactionConsumer.accept("finish"); } @@ -846,7 +856,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl paramLockList = new ArrayList<>(); @@ -1044,7 +1054,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl map = new HashMap<>(); @@ -1127,7 +1137,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disDaoList, StIvtIostorinv mstDao) { - // 仓库表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); - - // 子卷包装表 - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); - // 插入调拨入库单参数 Map paramMap = new HashMap<>(); @@ -1155,9 +1160,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl BigDecimal.valueOf(row.getPlan_qty().doubleValue())) + .map(StIvtIostorinvdis::getPlan_qty) .reduce(BigDecimal.ZERO, BigDecimal::add); - paramMap.put("stor_id",jsonAttr.getString("stor_id")); - paramMap.put("bill_status",IOSEnum.BILL_STATUS.code("分配中")); - paramMap.put("total_qty",total_qty); - paramMap.put("detail_count",disDaoList.size()); - paramMap.put("bill_type",IOSEnum.IN_TYPE.code("调拨入库")); - paramMap.put("biz_date",DateUtil.today()); - paramMap.put("out_stor_id",mstDao.getStor_id()); - paramMap.put("source_id",dtlDao.getVbeln()); + paramMap.put("stor_id", ivtBsrealstorattr.getStor_id()); + paramMap.put("bill_status", IOSEnum.BILL_STATUS.code("分配中")); + paramMap.put("total_qty", total_qty); + paramMap.put("detail_count", disDaoList.size()); + paramMap.put("bill_type", IOSEnum.IN_TYPE.code("调拨入库")); + paramMap.put("biz_date", DateUtil.today()); + paramMap.put("out_stor_id", mstDao.getStor_id()); + paramMap.put("source_id", dtlDao.getVbeln()); paramMap.put("remark", ""); // 明细数据 - String pcsn_in = disDaoList.stream() + List pcsns = disDaoList.stream() .map(StIvtIostorinvdis::getPcsn) - .collect(Collectors.joining("','")); + .collect(Collectors.toList()); - List subList = subTab.query("container_name IN ('" + pcsn_in + "')") - .getResultJSONArray(0).toJavaList(JSONObject.class); + List subList = subpackagerelationService.getSubPackageInfoBySubRolls(pcsns); // 明细集合 ArrayList tableData = new ArrayList<>(); @@ -1222,24 +1225,26 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl subLam = new LambdaUpdateWrapper<>(); + subLam.set(PdmBiSubpackagerelation::getStatus, SUBEnum.STATUS.code("包装")) + .in(PdmBiSubpackagerelation::getContainer_name, pcsns); + subpackagerelationService.update(subLam); } /** * 生成任务前处理 - * @param disLikeList: 相同规格木箱、订单、物料的分配明细集合 + * + * @param disLikeList: 相同规格木箱、订单、物料的分配明细集合 * @param iostorinv_id: 单据标识 * @return List 生成任务的集合 */ - private List createTaskMange(List disLikeList, String iostorinv_id) { + private List createTaskMange(List disLikeList, String iostorinv_id) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); @@ -1275,7 +1280,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl 生成任务的集合 */ - private List createTaskMange2(List disLikeList, String iostorinv_id, Consumer allTransactionConsumer) { + private List createTaskMange2(List disLikeList, String iostorinv_id, Consumer allTransactionConsumer) { // 获取仓位集合 List structCodes = disLikeList.stream() @@ -1329,7 +1335,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().lambda() - .ne(StIvtIostorinvdis::getWork_status,IOSEnum.BILL_STATUS.code("完成")) + .ne(StIvtIostorinvdis::getWork_status, IOSEnum.BILL_STATUS.code("完成")) .eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code")) ).get(0); @@ -1452,7 +1459,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl attrRowList, String iostorinv_id, Consumer allTransactionConsumer) { - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - // 子卷包装关系表 - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); - // 任务表 - WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); - // 载具扩展属性表 - WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); - JSONObject result = new JSONObject(); // 获取要出库仓位所对应的浅货位 @@ -1546,7 +1545,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().lambda() - .ne(StIvtIostorinvdis::getWork_status,IOSEnum.BILL_STATUS.code("完成")) + .ne(StIvtIostorinvdis::getWork_status, IOSEnum.BILL_STATUS.code("完成")) .eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code")) ).get(0); @@ -1593,10 +1592,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskMangeList,List disLikeList, String point_code) { + private void createTask(List taskMangeList, List disLikeList, String point_code) { // 任务表 WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); // 点位表 @@ -1675,9 +1673,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { @@ -1773,11 +1770,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl出库口:IOSEnum#OUT_POINT/2

+ * @see IOSEnum#OUT_POINT2 + * @see IOSEnum#OUT_POINT * @param taskMangeList:仓位集合 * @param disLikeList:分配明细集合 - * @param point_code : 终点 + * @param point_code : 终点 */ - private void createTask2(List taskMangeList,List disLikeList, String point_code, Consumer allTransactionConsumer) { + private void createTask2(List taskMangeList, List disLikeList, String point_code, Consumer allTransactionConsumer) { // 查询异常货位任务集合 List taskIds = taskMangeList.stream() .filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) @@ -1793,7 +1793,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { @@ -1909,6 +1908,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disDaoList) { - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - // 任务表 - WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); - // 获取仓位集合 - String structCodeIn = disDaoList.stream() + List structCodes = disDaoList.stream() .map(StIvtIostorinvdis::getStruct_code) - .distinct().collect(Collectors.joining("','")); - - List attrList = attrTab.query("struct_code IN ('" + structCodeIn + "')") - .getResultJSONArray(0).toJavaList(JSONObject.class); + .distinct().collect(Collectors.toList()); + List attrList = structattrService.getAttributeByCodesToObject(structCodes); // 过滤异常货位 List attrExcepList = attrList.stream() @@ -1944,32 +1938,31 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskIds = attrExcepList.stream() .map(row -> row.getString("task_code")) - .distinct().collect(Collectors.joining("','")); + .distinct().collect(Collectors.toList()); - List taskList = taskService.query("task_id IN ('" + taskCodeIn + "')") - .getResultJSONArray(0).toJavaList(JSONObject.class); + List taskList = ischBaseTaskService.getTaskByIds(taskIds, false); // 更新异常货位 List structCodeInList = new ArrayList<>(); for (int i = 0; i < taskList.size(); i++) { - JSONObject json = taskList.get(0); - - structCodeInList.add(json.getString("point_code1")); - structCodeInList.add(json.getString("point_code2")); + SchBaseTask task = taskList.get(i); + structCodeInList.add(task.getPoint_code1()); + structCodeInList.add(task.getPoint_code2()); } - JSONObject jsonUpdate = new JSONObject(); - jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); - jsonUpdate.put("task_code", ""); - - attrTab.update(jsonUpdate,"struct_code IN ('"+String.join("','",structCodeInList)+"')"); + LambdaUpdateWrapper strattLam = new LambdaUpdateWrapper<>(); + strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getTask_code, "") + .in(StIvtStructattr::getStruct_code, structCodeInList); + structattrService.update(strattLam); } /** * 更新主表状态 + * * @param iostorinv_id 主表标识 */ public void updateMstStatus(String iostorinv_id) { @@ -2101,19 +2094,25 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disDaoList) { - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - WQLObject TaskTab = WQLObject.getWQLObject("sch_base_task"); - String result = ""; // 查找库内是否有异常货位(主存区) - List attrExceptionList = attrTab - .query("sect_code = 'BZC01' AND is_delete = '0' AND is_used = '1' and lock_type = '" + IOSEnum.LOCK_TYPE.code("出库异常锁") + "' and zdepth = '"+IOSEnum.ZDEPTH_STRUCT.code("浅")+"'") - .getResultJSONArray(0).toJavaList(JSONObject.class); - +// List attrExceptionList = attrTab +// .query("sect_code = 'BZC01' AND is_delete = '0' AND is_used = '1' and lock_type = '" +// + IOSEnum.LOCK_TYPE.code("出库异常锁") + "' and zdepth = '" +// +IOSEnum.ZDEPTH_STRUCT.code("浅")+"'") +// .getResultJSONArray(0).toJavaList(JSONObject.class); + LambdaQueryWrapper structAttyLam = new LambdaQueryWrapper<>(); + structAttyLam.eq(StIvtStructattr::getSect_code, "BZC01") + .eq(StIvtStructattr::getIs_delete, "0") + .eq(StIvtStructattr::getIs_used, "1") + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库异常锁")) + .eq(StIvtStructattr::getZdepth, IOSEnum.ZDEPTH_STRUCT.code("浅")); + List attrExceptionList = structattrService.getAttributesByConditionsToObject(structAttyLam); if (ObjectUtil.isEmpty(attrExceptionList)) { return null; } @@ -2121,12 +2120,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl exceptionList = new ArrayList<>(); // 查询异常货位对应的深货位 attrExceptionList.forEach(row -> { - JSONObject json = attrTab.query("row_num = '" + row.getString("row_num") + "' AND col_num = '" + row.getString("col_num") + "' AND " + - "layer_num = '" + row.getString("layer_num") + "' AND zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("深") + "'" - ).uniqueResult(0); - - if (ObjectUtil.isNotEmpty(json)) { - exceptionList.add(json); + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(StIvtStructattr::getRow_num, row.getString("row_num")) + .eq(StIvtStructattr::getCol_num, row.getString("col_num")) + .eq(StIvtStructattr::getLayer_num, row.getString("layer_num")) + .eq(StIvtStructattr::getZdepth, IOSEnum.ZDEPTH_STRUCT.code("深")); + JSONObject attribute = structattrService.getAttributeByConditionsToObject(lam, true); +// JSONObject json = attrTab.query("row_num = '" + row.getString("row_num") +// + "' AND col_num = '" + row.getString("col_num") + "' AND " + +// "layer_num = '" + row.getString("layer_num") + "' AND zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("深") + "'" +// ).uniqueResult(0); + + if (ObjectUtil.isNotEmpty(attribute)) { + exceptionList.add(attribute); } }); @@ -2152,15 +2158,22 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskLam = new QueryWrapper().lambda(); + taskLam.eq(SchBaseTask::getHandle_class, TwoOutExceptionalTask.class.getName()) + .eq(SchBaseTask::getIs_delete, "0") + .eq(SchBaseTask::getPoint_code2, expJson.getString("struct_code")) + .orderByDesc(SchBaseTask::getCreate_time); + SchBaseTask task = ischBaseTaskService.getOne(taskLam, false); + result = "请先下发木箱号为【" + task.getVehicle_code() + "】的出库任务!"; } return result; @@ -2168,6 +2181,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().eq("package_box_sn", packageIn).eq("status", SUBEnum.STATUS.code("生成"))); } - return mstDao.getIostorinv_id().toString(); + return mstDao.getIostorinv_id(); } @Override @@ -362,7 +362,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id", jsonAttr.getString("sect_id"))); +// JSONObject jsonSect = sectTab.query("sect_id = '" + jsonAttr.getString("sect_id") + "'").uniqueResult(0); + JSONObject jsonSect = sectTab.query("sect_id = '" + 1 + "'").uniqueResult(0); +// StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper().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("虚拟区"))) { // 虚拟区:执行状态为完成 work_status = IOSEnum.WORK_STATUS.code("完成"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java index 8524b85..f636176 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java @@ -23,8 +23,11 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.CollectionUtils; import org.nl.common.utils.IdUtil; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.st.outbill.service.dto.AllBoxInfoDto; import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; +import org.nl.wms.st.outbill.service.dto.OutManageParam; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; +import org.nl.wms.st.outbill.service.vo.OutManageExportVo; import org.nl.wms.stat.service.dto.InBillPageParam; import org.nl.wms.stat.service.dto.OutBillPageParam; import org.nl.wms.stat.service.vo.InBillPageVo; @@ -333,4 +336,14 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl list = list(lam); return CollectionUtils.mapList(list, dis -> (JSONObject) JSON.toJSON(dis)); } + + @Override + public List getOutManageExportData(OutManageParam paramMap) { + return stIvtIostorinvdisMapper.getOutManageExportData(paramMap); + } + + @Override + public List getAllBoxWeightAndDtlId() { + return stIvtIostorinvdisMapper.getAllBoxWeightAndDtlId(); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtMoveinvImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtMoveinvImpl.java new file mode 100644 index 0000000..3e7deac --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtMoveinvImpl.java @@ -0,0 +1,17 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtMoveinvMapper; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Date: 2025/7/2 + */ +@Slf4j +@Service +public class StIvtMoveinvImpl extends ServiceImpl implements IStIvtMoveinvService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index 8f0de94..5a6de03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -147,6 +147,7 @@ public class OutBussManageServiceImpl implements OutBussManageService { @Override public List divIvt(StIvtIostorinvdtl dtlDao, List ivtList) { + // dtl -> dis StIvtIostorinv mstDao = stIvtIostorinvOutService.getById(dtlDao.getIostorinv_id()); @@ -162,8 +163,10 @@ public class OutBussManageServiceImpl implements OutBussManageService { // 未分配重量 double unassign_qty = dtlDao.getUnassign_qty().doubleValue(); + // hint: 区分有无订单号 if (ObjectUtil.isNotEmpty(dtlDao.getSource_bill_code())) { // 有订单号: 找相同物料、订单号的库存,并根据仓位分组、即木箱分组 + // mark: likeMaterOrderMap -> 同物料、同订单号的库存信息(key(仓位编码) : value(库存实体)),也就是一个仓位对应所有的子卷 Map> likeMaterOrderMap = ivtList.stream() .filter(row -> row.getString("material_id").equals(dtlDao.getMaterial_id().toString()) && row.getString("sale_order_name").equals(dtlDao.getSource_bill_code())) 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 614db25..d16bf07 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 @@ -85,10 +85,10 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { .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() +// if (){ +// +// } +// stIvtStructattrMapper.selectList() diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtBsrealstorattr.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtBsrealstorattr.java index b7f2af8..51709ff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtBsrealstorattr.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtBsrealstorattr.java @@ -16,7 +16,7 @@ public class StIvtBsrealstorattr { * 仓库标识 */ @TableId(value = "stor_id", type = IdType.NONE) - private Long stor_id; + private String stor_id; /** * 仓库编码 @@ -166,7 +166,7 @@ public class StIvtBsrealstorattr { * 创建人 */ @TableField("create_id") - private Long create_id; + private String create_id; /** * 创建人姓名 @@ -184,7 +184,7 @@ public class StIvtBsrealstorattr { * 修改人 */ @TableField("update_optid") - private Long update_optid; + private String update_optid; /** * 修改人姓名 @@ -202,19 +202,19 @@ public class StIvtBsrealstorattr { * 拥有者ID */ @TableField("sysownerid") - private Long sysownerid; + private String sysownerid; /** * 部门ID */ @TableField("sysdeptid") - private Long sysdeptid; + private String sysdeptid; /** * 公司ID */ @TableField("syscompanyid") - private Long syscompanyid; + private String syscompanyid; /** * 是否删除 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java index 9d51e20..59e8b48 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructattrService.java @@ -1,6 +1,7 @@ package org.nl.b_lms.storage_manage.st.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; @@ -45,4 +46,31 @@ public interface StIvtStructattrService extends IService { * @return */ List getRowsAttributeToObject(String stor, List rows); + + /** + * 根据条件获取数据 + * @param structAttyLam + * @return List + */ + List getAttributesByConditions(LambdaQueryWrapper structAttyLam); + /** + * 根据条件获取数据 -> List + * @param structAttyLam + * @return List + */ + List getAttributesByConditionsToObject(LambdaQueryWrapper structAttyLam); + /** + * 根据条件获取数据 + * @param structAttyLam 条件 + * @param flag 是否抛出异常 + * @return StIvtStructattr + */ + StIvtStructattr getAttributeByConditions(LambdaQueryWrapper structAttyLam, boolean flag); + /** + * 根据条件获取数据 -> JSONObject + * @param structAttyLam 条件 + * @param flag 是否抛出异常 + * @return JSONObject + */ + JSONObject getAttributeByConditionsToObject(LambdaQueryWrapper structAttyLam, boolean flag); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java index 43a7748..508e533 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructattrServiceImpl.java @@ -76,4 +76,28 @@ public class StIvtStructattrServiceImpl extends ServiceImpl (JSONObject) JSON.toJSON(attr)); } + + @Override + public List getAttributesByConditions(LambdaQueryWrapper structAttyLam) { + return list(structAttyLam); + } + + @Override + public List getAttributesByConditionsToObject(LambdaQueryWrapper structAttyLam) { + return CollectionUtils.mapList(getAttributesByConditions(structAttyLam), sta -> (JSONObject) JSON.toJSON(sta)); + } + + @Override + public StIvtStructattr getAttributeByConditions(LambdaQueryWrapper structAttyLam, boolean flag) { + return getOne(structAttyLam, flag); + } + + @Override + public JSONObject getAttributeByConditionsToObject(LambdaQueryWrapper structAttyLam, boolean flag) { + StIvtStructattr attributeByConditions = getAttributeByConditions(structAttyLam, flag); + if (ObjectUtil.isEmpty(attributeByConditions)) { + return null; + } + return (JSONObject) JSON.toJSON(attributeByConditions); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index ee235a5..951e316 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -11,6 +11,8 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; @@ -37,6 +39,8 @@ import java.util.*; @Slf4j public class HandMoveStorServiceImpl implements HandMoveStorService { private final StorPublicService storPublicService; + /** 移库主表 */ + private final IStIvtMoveinvService moveinvService; @Override public Map pageQuery(Map whereJson, Pageable page) { @@ -277,8 +281,6 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { @Override @Transactional(rollbackFor = Exception.class) public String insertDtl2(JSONObject json) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_MoveInv"); JSONArray rows = json.getJSONArray("tableData"); json.remove("tableData"); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -305,7 +307,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { JSONObject ret = this.insertDtlByRows2(json, rows); json.put("detail_count", ret.getString("detail_count")); json.put("total_qty", ret.getString("total_qty")); - wo_mst.insert(json); + moveinvService.save(json.toJavaObject(StIvtMoveinv.class)); return moveinv_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index 8341fab..aa13c41 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -9,15 +9,14 @@ import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.system.service.dict.ISysDictService; import org.nl.wms.st.outbill.service.CheckOutBillService; -import org.nl.wms.st.outbill.service.dto.OutBillDtlQueryParam; -import org.nl.wms.st.outbill.service.dto.OutBillQueryPageParam; -import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; -import org.nl.wms.st.outbill.service.dto.StockMaterialQueryParam; +import org.nl.wms.st.outbill.service.dto.*; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Map; /** @@ -120,4 +119,15 @@ public class CheckOutBillController { iStIvtIostorinvOutService.confirm(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @Log("导出数据") + @GetMapping(value = "/download") + public void exportExcel(OutManageParam param, HttpServletResponse response) throws IOException { + checkOutBillService.exportExcel(param, response); + } + @PostMapping("/outReturn") + @Log("销售出库回传mes-sap") + public ResponseEntity outReturn(@RequestBody JSONObject whereJson) { + checkOutBillService.outReturn(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java index 4096454..0c8efe9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java @@ -5,14 +5,13 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.st.outbill.service.dto.OutBillDtlQueryParam; -import org.nl.wms.st.outbill.service.dto.OutBillQueryPageParam; -import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; -import org.nl.wms.st.outbill.service.dto.StockMaterialQueryParam; +import org.nl.wms.st.outbill.service.dto.*; import org.nl.wms.st.outbill.service.vo.OutBillDtlVo; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; import org.nl.wms.st.outbill.service.vo.StockMaterialVo; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -69,4 +68,17 @@ public interface CheckOutBillService { * } */ JSONObject updataIsOverdue(JSONObject whereJson); + + /** + * 导出数据 + * @param param + * @param response + */ + void exportExcel(OutManageParam param, HttpServletResponse response) throws IOException; + + /** + * 回传mes-sap + * @param whereJson + */ + void outReturn(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/AllBoxInfoDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/AllBoxInfoDto.java new file mode 100644 index 0000000..cdb1caa --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/AllBoxInfoDto.java @@ -0,0 +1,16 @@ +package org.nl.wms.st.outbill.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 木箱信息VO + * @Author: lyd + * @Date: 2025/7/3 + */ +@Data +public class AllBoxInfoDto implements Serializable { + private Double box_weight; + private String iostorinvdtl_id; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/OutManageParam.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/OutManageParam.java new file mode 100644 index 0000000..fe24a2e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/dto/OutManageParam.java @@ -0,0 +1,34 @@ +package org.nl.wms.st.outbill.service.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 出库管理请求参数 + * @Author: lyd + * @Date: 2025/7/2 + */ +@Data +public class OutManageParam implements Serializable { + private List stor_id; + private List bill_status; + private List bill_type; + private List vbelns; + private List pcsns; + private List sap_pcsns; + private List box_nos; + private String begin_time; + private String end_time; + private String bill_code; + private String vbeln; + private String box_no; + private String pcsn; + private String sap_pcsn; + private String cust_code; + private String width; + private String is_upload; + private String io_type; + private String create_mode; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index ec1a308..c7e3030 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -1,9 +1,9 @@ package org.nl.wms.st.outbill.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; @@ -17,22 +17,21 @@ import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.StringDealUtils; -import org.nl.modules.wql.WQL; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.FileUtil; import org.nl.wms.st.outbill.service.CheckOutBillService; -import org.nl.wms.st.outbill.service.dto.OutBillDtlQueryParam; -import org.nl.wms.st.outbill.service.dto.OutBillQueryPageParam; -import org.nl.wms.st.outbill.service.dto.OutBillTaskParam; -import org.nl.wms.st.outbill.service.dto.StockMaterialQueryParam; +import org.nl.wms.st.outbill.service.dto.*; import org.nl.wms.st.outbill.service.vo.OutBillDtlVo; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; +import org.nl.wms.st.outbill.service.vo.OutManageExportVo; import org.nl.wms.st.outbill.service.vo.StockMaterialVo; +import org.nl.wms.stat.service.enums.OutBillTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; /** * @Author: lyd @@ -167,4 +166,113 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { result.put("mst", jsonMst); return result; } + + @Override + public void exportExcel(OutManageParam paramMap, HttpServletResponse response) throws IOException { + // 空格查询 + doLikeOrInParam(paramMap); + List billList = iostorinvdisService.getOutManageExportData(paramMap); + List boxInfoDtoList = iostorinvdisService.getAllBoxWeightAndDtlId(); + List> list = new ArrayList<>(); + for (OutManageExportVo exportVo : billList) { + Map mp = new LinkedHashMap<>(); + mp.put("单据号", exportVo.getBill_code()); + mp.put("仓库", exportVo.getStor_name()); + mp.put("业务类型", OutBillTypeEnum.getNameByCode(exportVo.getBill_type())); + String boxWeight = boxInfoDtoList.stream() + .filter(row -> row.getIostorinvdtl_id().equals(exportVo.getIostorinvdtl_id())) + .map(AllBoxInfoDto::getBox_weight) + .reduce(Double::sum).orElse(0.00).toString(); + //计划重量、实际重量、实际毛重、车号、箱数、收货地址(调拨显示到货仓库)、单据状态 + mp.put("业务日期", exportVo.getBiz_date()); + mp.put("计划重量", exportVo.getQty()); + mp.put("实际重量", exportVo.getPlan_qty()); + mp.put("实际毛重", boxWeight); + mp.put("车号", exportVo.getOrder_number()); + mp.put("箱数", exportVo.getBox_count()); + if (StrUtil.equals(exportVo.getBill_type(), "1004")) { + mp.put("收货地址", exportVo.getOut_stor_name()); + } else { + mp.put("收货地址", exportVo.getReceiptaddress()); + } + mp.put("单据状态", exportVo.getBill_status()); + mp.put("客户编码", exportVo.getCust_code()); + mp.put("客户名称", exportVo.getCust_name()); + mp.put("交货单号", exportVo.getVbeln()); + mp.put("订单及行号", exportVo.getSale_order_name()); + mp.put("规格", exportVo.getSpec()); + mp.put("物流公司", exportVo.getWl_cust_name()); + mp.put("运费", exportVo.getEstimated_freight()); + list.add(mp); + } + FileUtil.downloadExcel(list, response); + } + + @Override + public void outReturn(JSONObject whereJson) { + throw new BadRequestException("功能待开发!"); +// WQLObject mstTab = WQLObject.getWQLObject("st_ivt_iostorinv"); +// +// JSONObject jsonMst = mstTab.query("iostorinv_id = '" + whereJson.getString("iostorinv_id") + "'").uniqueResult(0); +// +// if (!StrUtil.equals(jsonMst.getString("bill_type"), "1001")) { +// throw new BadRequestException("请选择发货出库单据!"); +// } +// +// // 调用mes接口回传 +// JSONObject param = new JSONObject(); +// JSONArray array = new JSONArray(); +// array.add(jsonMst); +// param.put("rows", array); +// +// InAndOutRetrunServiceImpl bean = SpringContextHolder.getBean(InAndOutRetrunServiceImpl.class); +// bean.uploadMES(param); + } + + private void doLikeOrInParam(OutManageParam paramMap) { + if (StrUtil.isNotEmpty(paramMap.getVbeln())){ + // 判断是否有空格 + boolean matches = paramMap.getVbeln().matches(".*\\s.*"); + List vbelnList = new ArrayList<>(); + if (matches) { + String[] vbeln = paramMap.getVbeln().split(" "); + vbelnList.addAll(Arrays.asList(vbeln)); + paramMap.setVbelns(vbelnList); + paramMap.setVbeln(""); + } + } + if (StrUtil.isNotEmpty(paramMap.getBox_no())){ + // 判断是否有空格 + boolean matches = paramMap.getBox_no().matches(".*\\s.*"); + List boxList = new ArrayList<>(); + if (matches) { + String[] boxs = paramMap.getBox_no().split(" "); + boxList.addAll(Arrays.asList(boxs)); + paramMap.setBox_nos(boxList); + paramMap.setBox_no(""); + } + } + if (StrUtil.isNotEmpty(paramMap.getPcsn())){ + // 判断是否有空格 + boolean matches = paramMap.getPcsn().matches(".*\\s.*"); + List pcsnList = new ArrayList<>(); + if (matches) { + String[] pcsns = paramMap.getPcsn().split(" "); + pcsnList.addAll(Arrays.asList(pcsns)); + paramMap.setPcsns(pcsnList); + paramMap.setPcsn(""); + } + } + if (StrUtil.isNotEmpty(paramMap.getSap_pcsn())){ + // 判断是否有空格 + boolean matches = paramMap.getSap_pcsn().matches(".*\\s.*"); + List pcsnList = new ArrayList<>(); + if (matches) { + String[] pcsns = paramMap.getSap_pcsn().split(" "); + pcsnList.addAll(Arrays.asList(pcsns)); + paramMap.setSap_pcsns(pcsnList); + paramMap.setSap_pcsn(""); + } + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/OutManageExportVo.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/OutManageExportVo.java new file mode 100644 index 0000000..d64450c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/OutManageExportVo.java @@ -0,0 +1,35 @@ +package org.nl.wms.st.outbill.service.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 出库管理导出数据 + * + * @Author: lyd + * @Date: 2025/7/3 + */ +@Data +public class OutManageExportVo implements Serializable { + private String bill_code; + private String stor_name; + private String out_stor_name; + private String bill_type; + private String biz_date; + private String qty; + private String cust_code; + private String cust_name; + private String vbeln; + private String sale_order_name; + private String spec; + private String wl_cust_name; + private String estimated_freight; + private String plan_qty; + private String box_weight; + private String order_number; + private String receiptaddress; + private String bill_status; + private String box_count; + private String iostorinvdtl_id; +}