From 13f90b77369bdcc3e1619ef6a6456351709cad00 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 17 Jul 2025 17:19:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B9=E5=88=87=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IStIvtProductplandtlService.java | 11 + .../IStIvtProductplanmstService.java | 19 ++ .../iostorInv/dao/StIvtProductplandtl.java | 72 ++++++ .../iostorInv/dao/StIvtProductplanmst.java | 123 ++++++++++ .../dao/mapper/StIvtProductplandtlMapper.java | 11 + .../dao/mapper/StIvtProductplandtlMapper.xml | 4 + .../dao/mapper/StIvtProductplanmstMapper.java | 19 ++ .../dao/mapper/StIvtProductplanmstMapper.xml | 92 +++++++ .../impl/StIvtProductplandtlServiceImpl.java | 17 ++ .../impl/StIvtProductplanmstServiceImpl.java | 31 +++ .../st/instor/rest/RecutPlanController.java | 12 +- .../st/instor/service/RecutPlanService.java | 6 +- .../service/dto/RecutPlanPageParam.java | 23 ++ .../service/impl/HandMoveStorServiceImpl.java | 49 ++-- .../service/impl/RecutPlanServiceImpl.java | 224 ++++++++---------- .../wms/st/instor/wql/QST_IVT_PRODUCTPLAN.wql | 5 +- 16 files changed, 565 insertions(+), 153 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplandtlService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplanmstService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplandtl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplanmst.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplandtlServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplanmstServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/dto/RecutPlanPageParam.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplandtlService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplandtlService.java new file mode 100644 index 0000000..5b5400e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplandtlService.java @@ -0,0 +1,11 @@ +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.StIvtProductplandtl; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +public interface IStIvtProductplandtlService extends IService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplanmstService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplanmstService.java new file mode 100644 index 0000000..d292705 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtProductplanmstService.java @@ -0,0 +1,19 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv; + +import com.alibaba.fastjson.JSONArray; +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.StIvtProductplanmst; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; + +import java.util.Map; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +public interface IStIvtProductplanmstService extends IService { + IPage returnCutplanPage(IPage pages, RecutPlanPageParam param); + + JSONArray getOutBillDtl(Map param); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplandtl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplandtl.java new file mode 100644 index 0000000..029054c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplandtl.java @@ -0,0 +1,72 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +@Data +@TableName("st_ivt_productplandtl") +public class StIvtProductplandtl implements Serializable { + /** + * 改切计划明细标识 + */ + @TableId + private String plandtl_id; + + /** + * 改切计划标识 + */ + private String plan_id; + + /** + * 明细序号 + */ + private BigDecimal seq_no; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 木箱唯一码 + */ + private String package_box_sn; + + /** + * 数量计量单位标识 + */ + private String qty_unit_id; + + /** + * 数量计量单位名称 + */ + private String qty_unit_name; + + /** + * 重量 + */ + private BigDecimal qty; + + /** + * 状态 + */ + private String status; + + /** + * 不合格描述 + */ + private String remark; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplanmst.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplanmst.java new file mode 100644 index 0000000..5513a73 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtProductplanmst.java @@ -0,0 +1,123 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 改切计划主表实体类 + * @Author: lyd + * @Date: 2025/7/17 + */ +@TableName("st_ivt_productplanmst") +@Data +public class StIvtProductplanmst implements Serializable { + /** + * 改切计划标识 + */ + @TableId + private String plan_id; + + /** + * 改切计划编号 + */ + private String plan_code; + + /** + * 业务日期 + */ + private String biz_date; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 仓库编码 + */ + private String stor_code; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 总数量 + */ + private BigDecimal total_qty; + + /** + * 明细数 + */ + private BigDecimal detail_count; + + /** + * 单据状态 + */ + private String bill_status; + + /** + * 备注 + */ + private String remark; + + /** + * 制单人 + */ + 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 is_delete = "0"; + + /** + * 外部标识 + */ + private String ext_code; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.java new file mode 100644 index 0000000..d79f121 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.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.StIvtProductplandtl; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +public interface StIvtProductplandtlMapper extends BaseMapper { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.xml new file mode 100644 index 0000000..8be5f7e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplandtlMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.java new file mode 100644 index 0000000..f2535fe --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.java @@ -0,0 +1,19 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper; + +import com.alibaba.fastjson.JSONArray; +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.StIvtProductplanmst; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; + +import java.util.Map; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +public interface StIvtProductplanmstMapper extends BaseMapper { + IPage returnCutplanPage(IPage pages, RecutPlanPageParam param); + + JSONArray getOutBillDtl(Map param); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.xml new file mode 100644 index 0000000..f45675f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtProductplanmstMapper.xml @@ -0,0 +1,92 @@ + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplandtlServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplandtlServiceImpl.java new file mode 100644 index 0000000..ad5cebd --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplandtlServiceImpl.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.IStIvtProductplandtlService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplandtlMapper; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +@Service +@Slf4j +public class StIvtProductplandtlServiceImpl extends ServiceImpl implements IStIvtProductplandtlService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplanmstServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplanmstServiceImpl.java new file mode 100644 index 0000000..abac6fd --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtProductplanmstServiceImpl.java @@ -0,0 +1,31 @@ +package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplanmstService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * @Author: lyd + * @Date: 2025/7/17 + */ +@Slf4j +@Service +public class StIvtProductplanmstServiceImpl extends ServiceImpl implements IStIvtProductplanmstService { + @Override + public IPage returnCutplanPage(IPage pages, RecutPlanPageParam param) { + return this.baseMapper.returnCutplanPage(pages, param); + } + + @Override + public JSONArray getOutBillDtl(Map param) { + return this.baseMapper.getOutBillDtl(param); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/RecutPlanController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/RecutPlanController.java index 5c87a0f..54549ca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/RecutPlanController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/RecutPlanController.java @@ -3,8 +3,11 @@ package org.nl.wms.st.instor.rest; 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.RecutPlanService; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -22,9 +25,8 @@ public class RecutPlanController { @GetMapping @Log("查询改切计划") - - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(recutPlanService.pageQuery(whereJson, page), HttpStatus.OK); + public ResponseEntity query(RecutPlanPageParam whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(recutPlanService.pageQuery(whereJson, page)), HttpStatus.OK); } @GetMapping("/getOutBillDtl") @@ -59,8 +61,7 @@ public class RecutPlanController { } @PostMapping("/createBill") - @Log("创建出库单") - + @Log("改切审核-创建出库单") public ResponseEntity createBill(@RequestBody JSONObject whereJson) { recutPlanService.createBill(whereJson); return new ResponseEntity<>(HttpStatus.CREATED); @@ -68,7 +69,6 @@ public class RecutPlanController { @PostMapping("/confirm") @Log("强制确认") - public ResponseEntity auditOut(@RequestBody JSONObject whereJson) { recutPlanService.auditOut(whereJson); return new ResponseEntity<>(HttpStatus.CREATED); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/RecutPlanService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/RecutPlanService.java index e99f5e5..064c628 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/RecutPlanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/RecutPlanService.java @@ -2,6 +2,10 @@ 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 org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; import org.springframework.data.domain.Pageable; import java.util.Map; @@ -14,7 +18,7 @@ public interface RecutPlanService { * @param page 分页参数 * @return Map */ - Map pageQuery(Map whereJson, Pageable page); + IPage pageQuery(RecutPlanPageParam whereJson, PageQuery page); /** * 多选删除 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/dto/RecutPlanPageParam.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/dto/RecutPlanPageParam.java new file mode 100644 index 0000000..8d34abf --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/dto/RecutPlanPageParam.java @@ -0,0 +1,23 @@ +package org.nl.wms.st.instor.service.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 改切分页查询对象 + * + * @Author: lyd + * @Date: 2025/7/17 + */ +@Data +public class RecutPlanPageParam implements Serializable { + private List in_stor_id; + private String bill_code; + private String stor_id; + private String bill_status; + private String begin_time; + private String end_time; + private String pcsn; +} 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 2e94b60..c6bb0cc 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 @@ -1,7 +1,6 @@ package org.nl.wms.st.instor.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -9,7 +8,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -18,8 +16,12 @@ import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtMoveinvdtlService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinv; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtMoveinvdtl; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; @@ -31,10 +33,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; import org.nl.system.service.dict.ISysDictService; -import org.nl.system.service.dict.dao.Dict; -import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.st.inbill.service.StorPublicService; import org.nl.wms.st.instor.service.HandMoveStorService; @@ -42,7 +41,6 @@ import org.nl.wms.st.instor.service.dto.MoveInvPageParam; import org.nl.wms.st.instor.service.dto.MoveStockInfoDto; import org.nl.wms.st.instor.service.vo.MoveChooseMaterialVo; import org.nl.wms.st.instor.task.HandMoveStorAcsTask; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -73,6 +71,8 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { private final IStIvtMoveinvdtlService moveinvdtlService; private final IMdPbStoragevehicleextService storagevehicleextService; private final ISysDictService dictService; + private final IStIvtIostorinvService iostorinvService; + private final IStIvtIostorinvdtlService iostorinvdtlService; @Override public IPage pageQuery(MoveInvPageParam param, PageQuery page) { @@ -678,6 +678,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { from_start.put("lock_type", "1"); from_start.put("storagevehicle_code", jo.getString("storagevehicle_code")); from_start.put("struct_id", jo.getString("turnout_struct_id")); + // hint: 修改???? if (jo.getString("turnout_sect_code").equals("BZC01")) { storPublicService.updateStructAndPointTwo(from_start); } else { @@ -689,6 +690,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { from_end.put("struct_id", jo.getString("turnin_struct_id")); from_end.put("is_free", "0"); from_end.put("storagevehicle_code", jo.getString("storagevehicle_code")); + // hint: 修改???? if (jo.getString("turnout_sect_code").equals("BZC01")) { storPublicService.updateStructAndPointTwo(from_end); } else { @@ -929,6 +931,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { for (int i = 0; i < stockTaskInfo.size(); i++) { MoveStockInfoDto moveStockInfoDto = stockTaskInfo.get(i); String task_id = moveStockInfoDto.getTask_id(); + // 将任务更新为起点终点确定,准备下发ACS boolean update = taskService.update(new LambdaUpdateWrapper() .set(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) .eq(SchBaseTask::getTask_id, task_id)); @@ -987,40 +990,38 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { * @param iostorinv_id */ void updateMststatus(String iostorinv_id) { - //出库主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv"); - //出库明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl"); - String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); //查询主表信息 - JSONObject jo_mst = wo_mst.query("iostorinv_id = '" + iostorinv_id + "'").uniqueResult(0); - jo_mst.put("update_optid", currentUserId + ""); - jo_mst.put("update_optname", nickName); - jo_mst.put("update_time", now); + StIvtIostorinv jo_mst = iostorinvService.getById(iostorinv_id); + jo_mst.setUpdate_optid(currentUserId); + jo_mst.setUpdate_optname(nickName); + jo_mst.setUpdate_time(now); //更新主表状态 - JSONArray dtls_40 = wo_dtl.query("bill_status='40' and iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0); + List dtls_40 = iostorinvdtlService.list(new LambdaQueryWrapper() + .eq(StIvtIostorinvdtl::getBill_status, "40") + .eq(StIvtIostorinvdtl::getIostorinv_id, iostorinv_id)); //已分配完明细数小于总明细数 - if (dtls_40.size() < jo_mst.getInteger("detail_count")) { - - JSONArray dtls_30 = wo_dtl.query("bill_status='30' and iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0); + if (dtls_40.size() < jo_mst.getDetail_count().intValue()) { + List dtls_30 = iostorinvdtlService.list(new LambdaQueryWrapper() + .eq(StIvtIostorinvdtl::getBill_status, "30") + .eq(StIvtIostorinvdtl::getIostorinv_id, iostorinv_id)); //存在分配完的明细 if (dtls_40.size() != 0) {//分配中明细数不为0 - jo_mst.put("bill_status", "30"); + jo_mst.setBill_status("30"); } else if (dtls_40.size() == 0) { //不存在分配中和分配完的明细 if (dtls_30.size() == 0) { - jo_mst.put("bill_status", "10"); + jo_mst.setBill_status("10"); }//存在分配中的明细 else if (dtls_30.size() != 0) { - jo_mst.put("bill_status", "30"); + jo_mst.setBill_status("30"); } } } else {//已分配完明细数等于总明细数 - jo_mst.put("bill_status", "40"); + jo_mst.setBill_status("40"); } - wo_mst.update(jo_mst); + iostorinvService.updateById(jo_mst); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java index 88d9341..9f7c9e9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/RecutPlanServiceImpl.java @@ -6,27 +6,42 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; 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 lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplandtlService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtProductplanmstService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplandtl; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtProductplanmst; +import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase; +import org.nl.b_lms.storage_manage.md.dao.MdPbMeasureunit; +import org.nl.b_lms.storage_manage.md.service.MaterialbaseService; +import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; +import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.CodeUtil; 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.modules.wql.util.WqlUtil; -import org.nl.system.service.user.ISysUserService; -import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.st.instor.service.RecutPlanService; +import org.nl.wms.st.instor.service.dto.RecutPlanPageParam; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; import java.util.Map; /** @@ -42,52 +57,41 @@ public class RecutPlanServiceImpl implements RecutPlanService { private IStIvtIostorinvOutService iStIvtIostorinvOutService; @Autowired - private ISysUserService iSysUserService; - - @Override - public Map pageQuery(Map whereJson, Pageable page) { - HashMap map = new HashMap<>(whereJson); - map.put("flag", "1"); - if (StrUtil.isNotEmpty(map.get("bill_code"))) { - map.put("bill_code", "%" + map.get("bill_code") + "%"); - } - if (StrUtil.isNotEmpty(map.get("material_code"))) { - map.put("material_code", "%" + map.get("material_code") + "%"); - } - if (StrUtil.isNotEmpty(map.get("pcsn"))) { - map.put("pcsn", (String) whereJson.get("pcsn")); - } + private StIvtBsrealstorattrService bsrealstorattrService; - //获取人员对应的仓库 - UserStorServiceImpl userStorService = new UserStorServiceImpl(); - String in_stor_id = userStorService.getInStor(); - - if (ObjectUtil.isNotEmpty(in_stor_id)) { - map.put("in_stor_id", in_stor_id); - } + @Autowired + private IStIvtProductplanmstService productplanmstService; + @Autowired + private IStIvtProductplandtlService productplandtlService; + @Autowired + private IpdmBiSubpackagerelationService subpackagerelationService; + @Autowired + private StIvtStructivtService structivtService; + @Autowired + private MaterialbaseService materialbaseService; + @Autowired + private MdPbMeasureunitService measureunitService; - JSONObject jo = WQL.getWO("QST_IVT_PRODUCTPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "plan_id desc"); - return jo; + @Override + public IPage pageQuery(RecutPlanPageParam param, PageQuery page) { + List storeForUser = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); + param.setIn_stor_id(storeForUser); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pages = productplanmstService.returnCutplanPage(pages, param); + return pages; } @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(Long[] ids) { - WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst"); - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("is_delete", "1"); - for (Long plan_id : ids) { - wo_mst.update(jsonObject, "plan_id = '" + plan_id + "'"); - } + productplanmstService.update(new LambdaUpdateWrapper() + .set(StIvtProductplanmst::getIs_delete, "1") + .in(StIvtProductplanmst::getPlan_id, Arrays.asList(ids))); } @Override @Transactional(rollbackFor = Exception.class) public void insertDtl(JSONObject map) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst"); - JSONArray rows = map.getJSONArray("tableData"); map.remove("tableData"); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -111,7 +115,7 @@ public class RecutPlanServiceImpl implements RecutPlanService { //调用明细处理方法 JSONObject ret = this.insertDtlByRows(mst_jo, rows); mst_jo.put("total_qty", ret.getDoubleValue("total_qty")); - wo_mst.insert(mst_jo); + productplanmstService.save(mst_jo.toJavaObject(StIvtProductplanmst.class)); } /** @@ -121,7 +125,6 @@ public class RecutPlanServiceImpl implements RecutPlanService { */ @Transactional(rollbackFor = Exception.class) public JSONObject insertDtlByRows(JSONObject jsonMst, JSONArray rows) { - WQLObject wo_dtl = WQLObject.getWQLObject("st_ivt_productplandtl"); //定义返回数据 JSONObject ret = new JSONObject(); @@ -141,7 +144,7 @@ public class RecutPlanServiceImpl implements RecutPlanService { jsonDtl.put("qty", json.getDoubleValue("qty")); jsonDtl.put("remark", json.getString("remark")); jsonDtl.put("status", "10"); - wo_dtl.insert(jsonDtl); + productplandtlService.save(jsonDtl.toJavaObject(StIvtProductplandtl.class)); total_qty = NumberUtil.add(total_qty, json.getDoubleValue("qty")); @@ -152,54 +155,40 @@ public class RecutPlanServiceImpl implements RecutPlanService { @Override public JSONArray getOutBillDtl(Map whereJson) { - whereJson.put("flag", "2"); - JSONArray jo = WQL.getWO("QST_IVT_PRODUCTPLAN") - .addParamMap((HashMap) whereJson) - .process() - .getResultJSONArray(0); - return jo; + return productplanmstService.getOutBillDtl(whereJson); } @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject whereJson) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_productplanmst"); - //主表 - WQLObject wo_dtl = WQLObject.getWQLObject("st_ivt_productplandtl"); - String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String plan_id = (String) whereJson.get("plan_id"); + String plan_id = whereJson.getString("plan_id"); //查询主表 - JSONObject jo_mst = wo_mst.query("plan_id='" + plan_id + "'").uniqueResult(0); - + StIvtProductplanmst productplanmst = productplanmstService.getById(plan_id); //删除所有明细 - wo_dtl.delete("plan_id = '" + plan_id + "'"); + productplandtlService.remove(new LambdaQueryWrapper() + .eq(StIvtProductplandtl::getPlan_id, plan_id)); //获取明细 JSONArray rows = whereJson.getJSONArray("tableData"); //调用明细处理方法 - JSONObject ret = this.insertDtlByRows(jo_mst, rows); - jo_mst.put("remark", whereJson.get("remark")); - jo_mst.put("biz_date", whereJson.get("biz_date")); - jo_mst.put("detail_count", rows.size()); - jo_mst.put("total_qty", ret.getString("total_qty")); - jo_mst.put("update_optid", currentUserId + ""); - jo_mst.put("update_optname", nickName); - jo_mst.put("update_time", now); + JSONObject ret = this.insertDtlByRows((JSONObject) JSON.toJSON(productplanmst), rows); + productplanmst.setRemark(whereJson.getString("remark")); + productplanmst.setBiz_date(whereJson.getString("biz_date")); + productplanmst.setDetail_count(BigDecimal.valueOf(rows.size())); + productplanmst.setTotal_qty(ret.getBigDecimal("total_qty")); + productplanmst.setUpdate_optid(currentUserId); + productplanmst.setUpdate_optname(nickName); + productplanmst.setUpdate_time(now); //更新主表 - wo_mst.update(jo_mst); + productplanmstService.updateById(productplanmst); } @Override @Transactional(rollbackFor = Exception.class) public void createBill(JSONObject whereJson) { - - WQLObject dtl_wo = WQLObject.getWQLObject("st_ivt_productplandtl"); - WQLObject mst_wo = WQLObject.getWQLObject("st_ivt_productplanmst"); - JSONArray rows = whereJson.getJSONArray("rows"); JSONObject mst_jo = whereJson.getJSONObject("mst_jo"); @@ -221,73 +210,70 @@ public class RecutPlanServiceImpl implements RecutPlanService { if (StrUtil.isEmpty("sap_pcsn")) { throw new BadRequestException("请求参数SAP批次不能为空!"); } - JSONObject sub_jo = WQLObject.getWQLObject("PDM_BI_SubPackageRelation").query("sap_pcsn = '" + sap_pcsn + "'").uniqueResult(0); + PdmBiSubpackagerelation sub_jo = subpackagerelationService.getOne( + new LambdaQueryWrapper() + .eq(PdmBiSubpackagerelation::getSap_pcsn, sap_pcsn), false); if (ObjectUtil.isEmpty(sub_jo)) { throw new BadRequestException("LMS中不存在SAP批次为【" + sap_pcsn + "】的包装关系"); } - String container_name = sub_jo.getString("container_name"); - JSONObject struct_ivt = WQLObject.getWQLObject("st_ivt_structivt").query("pcsn = '" + container_name + "'").uniqueResult(0); + String container_name = sub_jo.getContainer_name(); + StIvtStructivt struct_ivt = structivtService.getOneByPcsn(container_name, false); if (ObjectUtil.isEmpty(struct_ivt)) { throw new BadRequestException("SAP批次为【" + sap_pcsn + "】的成品卷不存在或已经出库!"); } else { - if (struct_ivt.getDoubleValue("frozen_qty") > 0) { + if (struct_ivt.getFrozen_qty().doubleValue() > 0) { throw new BadRequestException("SAP批次为【" + sap_pcsn + "】的成品卷已经被分配或出库中"); } else { JSONObject dtl = new JSONObject(); //查询该物料 - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + sub_jo.getString("product_name") + "'").uniqueResult(0); + MdMeMaterialBase mater_jo = materialbaseService.getOne(new LambdaQueryWrapper() + .eq(MdMeMaterialBase::getMaterial_code, sub_jo.getProduct_name()), false); if (ObjectUtil.isEmpty(mater_jo)) { - throw new BadRequestException("未查询到物料:" + sub_jo.getString("product_name") + ",信息!"); + throw new BadRequestException("未查询到物料:" + sub_jo.getProduct_name() + ",信息!"); } - dtl.put("material_id", mater_jo.getString("material_id")); + dtl.put("material_id", mater_jo.getMaterial_id()); dtl.put("pcsn", container_name); - dtl.put("box_no", sub_jo.getString("package_box_sn")); - JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); + dtl.put("box_no", sub_jo.getPackage_box_sn()); + MdPbMeasureunit unit = measureunitService.getById(mater_jo.getBase_unit_id()); if (ObjectUtil.isEmpty(unit)) { - throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getString("base_unit_id") + ",信息!"); + throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getBase_unit_id() + ",信息!"); } - dtl.put("qty_unit_id", unit.getString("measure_unit_id")); - dtl.put("qty_unit_name", unit.getString("unit_name")); - dtl.put("plan_qty", sub_jo.getString("net_weight")); + dtl.put("qty_unit_id", unit.getMeasure_unit_id()); + dtl.put("qty_unit_name", unit.getUnit_name()); + dtl.put("plan_qty", sub_jo.getNet_weight()); dtls.add(dtl); } } //将已经生成的明细状态变更为完成 - HashMap map = new HashMap<>(); - map.put("status", "99"); - dtl_wo.update(map, "plan_id = '" + mst_jo.getString("plan_id") + "' AND pcsn = '" + sap_pcsn + "'"); + productplandtlService.update(new LambdaUpdateWrapper() + .set(StIvtProductplandtl::getStatus, "99") + .eq(StIvtProductplandtl::getPlan_id, mst_jo.getString("plan_id")) + .eq(StIvtProductplandtl::getPcsn, sap_pcsn)); //判断是否全部变更为99 - JSONArray dtl_rows = dtl_wo.query("plan_id = '" + mst_jo.getString("plan_id") + "' AND status < '99' ").getResultJSONArray(0); + List dtl_rows = productplandtlService.list(new LambdaQueryWrapper() + .eq(StIvtProductplandtl::getPlan_id, mst_jo.getString("plan_id")) + .lt(StIvtProductplandtl::getStatus, "99")); if (dtl_rows.size() > 0) { //主表更新为出库中 - HashMap mst_map = new HashMap<>(); - mst_map.put("bill_status", "20"); - mst_wo.update(mst_map, "plan_id = '" + mst_jo.getString("plan_id") + "'"); + productplanmstService.update(new LambdaUpdateWrapper() + .set(StIvtProductplanmst::getBill_status, "20") + .eq(StIvtProductplanmst::getPlan_id, mst_jo.getString("plan_id"))); } else { - HashMap mst_map = new HashMap<>(); - mst_map.put("bill_status", "99"); - mst_map.put("confirm_optid", SecurityUtils.getCurrentUserId()); - mst_map.put("confirm_optname", SecurityUtils.getCurrentNickName()); - mst_map.put("confirm_time", DateUtil.now()); - mst_wo.update(mst_map, "plan_id = '" + mst_jo.getString("plan_id") + "'"); + productplanmstService.update(new LambdaUpdateWrapper() + .set(StIvtProductplanmst::getBill_status, "99") + .set(StIvtProductplanmst::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(StIvtProductplanmst::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(StIvtProductplanmst::getUpdate_time, DateUtil.now()) + .eq(StIvtProductplanmst::getPlan_id, mst_jo.getString("plan_id"))); } } if (!dtls.isEmpty()) { - // 判断仓库是否是二期仓库 - if (mst_jo.getString("stor_id").equals(IOSEnum.STOR_ID.code("二期"))) { - jsonMst.put("tableData", dtls); - String iostorinv_id = iStIvtIostorinvOutService.insertMst(jsonMst); - - //调用自动分配 - JSONObject out_jo = new JSONObject(); - out_jo.put("iostorinv_id", iostorinv_id); - out_jo.put("div_type", "1"); - // 改为手动分配 - // iStIvtIostorinvOutService.allDiv(out_jo); - } + jsonMst.put("tableData", dtls); + iStIvtIostorinvOutService.insertMst(jsonMst); + // hint: 手动分配,不自动分配 } else { throw new BadRequestException("推送失败!SAP推送的子卷明细不符合出库状态!"); @@ -298,14 +284,12 @@ public class RecutPlanServiceImpl implements RecutPlanService { @Override @Transactional(rollbackFor = Exception.class) public void auditOut(JSONObject whereJson) { - WQLObject mst = WQLObject.getWQLObject("st_ivt_productplanmst"); - // 更新主表为完成 - JSONObject param = new JSONObject(); - param.put("bill_status", "99"); - param.put("confirm_optid", SecurityUtils.getCurrentUserId()); - param.put("confirm_optname", SecurityUtils.getCurrentNickName()); - param.put("confirm_time", DateUtil.now()); - mst.update(param, "plan_id = '" + whereJson.getString("plan_id") + "'"); + productplanmstService.update(new LambdaUpdateWrapper() + .set(StIvtProductplanmst::getBill_status, "99") + .set(StIvtProductplanmst::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(StIvtProductplanmst::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(StIvtProductplanmst::getUpdate_time, DateUtil.now()) + .eq(StIvtProductplanmst::getPlan_id, whereJson.getString("plan_id"))); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTPLAN.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTPLAN.wql index c410896..8aaffe1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTPLAN.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTPLAN.wql @@ -1,6 +1,7 @@ [交易说明] 交易名: 成品报废审核分页查询 - 所属模块: + 所属模块:flag1见:org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper.returnCutplanPage + flag2见:org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtProductplanmstMapper.getOutBillDtl 功能简述: 版权所有: 表引用: @@ -121,4 +122,4 @@ order by sub.package_box_sn ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF