From f862349a78adeb6352cdb7218b9fcceff7731435 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 31 May 2023 17:22:12 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=88=90=E5=93=81=E7=9B=98=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/xml/MdPbBucketrecordMapper.xml | 3 + .../check/StIvtCheckmstCpController.java | 103 +++- .../check/IStIvtCheckdtlCpService.java | 10 + .../check/IStIvtCheckmstCpService.java | 39 ++ .../service/check/dao/StIvtCheckdtlCp.java | 4 +- .../service/check/dao/StIvtCheckmstCp.java | 4 +- .../dao/mapper/StIvtCheckdtlCpMapper.java | 6 + .../dao/mapper/StIvtCheckdtlCpMapper.xml | 34 +- .../service/check/dto/CheckQueryMst.java | 35 ++ .../impl/StIvtCheckdtlCpServiceImpl.java | 92 ++++ .../impl/StIvtCheckmstCpServiceImpl.java | 454 ++++++++++++++++++ .../structIvt/StIvtStructivtYlController.java | 7 + .../structIvt/IStIvtStructivtYlService.java | 8 + .../dao/mapper/StIvtStructivtYlMapper.java | 2 + .../dao/mapper/xml/StIvtStructivtYlMapper.xml | 36 ++ .../impl/StIvtStructivtYlServiceImpl.java | 9 + .../product/productCheck/AddDialog.vue | 76 +-- .../product/productCheck/CheckDialog.vue | 48 +- .../product/productCheck/ProcessDialog.vue | 49 +- .../product/productCheck/ReCheckDialog.vue | 105 ++-- .../productCheck}/StructIvt.vue | 39 +- .../product/productCheck/check.js | 133 +++-- .../product/productCheck/index.vue | 68 +-- .../product/productMoreOrless/index.vue | 2 +- 24 files changed, 1113 insertions(+), 253 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dto/CheckQueryMst.java rename mes/qd/src/views/wms/storage_manage/{semiproduct/semiproductout => product/productCheck}/StructIvt.vue (76%) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml index ce376b97..7456c19c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/mapper/xml/MdPbBucketrecordMapper.xml @@ -21,6 +21,9 @@ and re.status = #{status} + + and re.storagevehicle_code = #{storagevehicle_code} + and ( re.bucketunique like '{bucketunique}%$' ) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java index 9cd8d2e7..7c77a392 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java @@ -1,8 +1,18 @@ package org.nl.wms.storage_manage.productmanage.controller.check; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; +import org.nl.wms.storage_manage.productmanage.service.check.dto.CheckQueryMst; +import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckmstYlService; +import org.nl.wms.storage_manage.rawmanage.service.check.dto.CheckQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,8 +23,95 @@ import org.springframework.web.bind.annotation.RestController; * @since 2023-05-04 */ @RestController -@RequestMapping("/stIvtCheckmstCp") +@RequestMapping("/api/stIvtCheckmstCp") public class StIvtCheckmstCpController { + @Autowired + private IStIvtCheckmstCpService iStIvtCheckmstCpService; + + @GetMapping + @Log("查询盘点单主表") + @ApiOperation("查询盘点单主表") + public ResponseEntity query(CheckQueryMst query, PageQuery page) { + return new ResponseEntity<>(iStIvtCheckmstCpService.pageQuery(query, page), HttpStatus.OK); + } + + @PostMapping + @Log("创建盘点单") + @ApiOperation("创建盘点单") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.create(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getCheckDtl") + @Log("查询盘点明细") + @ApiOperation("查询盘点明细") + public ResponseEntity getCheckDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(iStIvtCheckmstCpService.getCheckDtl(whereJson), HttpStatus.OK); + } + + @PostMapping("/update") + @Log("修改盘点单") + @ApiOperation("修改盘点单") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.update(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/delete") + @Log("删除盘点单") + @ApiOperation("删除盘点单") + public ResponseEntity delete(@RequestBody Long[] ids){ + iStIvtCheckmstCpService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/saveCheck") + @Log("盘点保存") + @ApiOperation("盘点保存") + public ResponseEntity saveCheck(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.saveCheck(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/confirm") + @Log("盘点强制确认") + @ApiOperation("盘点强制确认") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.confirm(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/process1") + @Log("实盘为准,生成损溢单修改库存") + @ApiOperation("实盘为准,生成损溢单修改库存") + public ResponseEntity process1(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.process1(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/process0") + @Log("账务为准") + @ApiOperation("账务为准") + public ResponseEntity process0(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.process0(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/getBucketrecord") + @Log("获取箱") + @ApiOperation("获取箱") + public ResponseEntity getBucketrecord(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(iStIvtCheckmstCpService.getBucketrecord(whereJson),HttpStatus.OK); + } + + @PostMapping("/processBox") + @Log("拆箱盘点保存") + @ApiOperation("拆箱盘点保存") + public ResponseEntity processBox(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.processBox(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckdtlCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckdtlCpService.java index 921f3300..030f5b4b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckdtlCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckdtlCpService.java @@ -1,7 +1,14 @@ package org.nl.wms.storage_manage.productmanage.service.check; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; +import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; + +import java.util.List; +import java.util.Map; /** *

@@ -13,4 +20,7 @@ import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp */ public interface IStIvtCheckdtlCpService extends IService { + double create(JSONArray row, StIvtCheckmstCp mst); + + List getCheckDtl(JSONObject map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java index 8ad652fa..b039d4bd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java @@ -1,7 +1,14 @@ package org.nl.wms.storage_manage.productmanage.service.check; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; +import org.nl.wms.storage_manage.productmanage.service.check.dto.CheckQueryMst; +import org.nl.wms.storage_manage.rawmanage.service.check.dto.CheckQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -12,5 +19,37 @@ import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp * @since 2023-05-04 */ public interface IStIvtCheckmstCpService extends IService { + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(CheckQueryMst query, PageQuery page); + void create(JSONObject jo); + + List getCheckDtl(JSONObject map); + + void update(JSONObject map); + + /** + * 删除 + * @param ids + * { + * 主表id.. + * } + */ + void delete(Long[] ids); + + void saveCheck(JSONObject jo); + + void confirm(JSONObject jo); + + void process0(JSONObject jo); + + void process1(JSONObject jo); + + Object getBucketrecord(JSONObject whereJson); + + void processBox(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java index 4fcc9b32..435c56d2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.productmanage.service.check.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,6 +26,7 @@ public class StIvtCheckdtlCp implements Serializable { /** * 盘点单明细id */ + @TableId private String checkdtl_id; /** @@ -115,7 +117,7 @@ public class StIvtCheckdtlCp implements Serializable { /** * 盘点结果 */ - private Boolean check_result; + private String check_result; /** * 盘点人 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckmstCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckmstCp.java index fc8b70b6..bc70e8cd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckmstCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckmstCp.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.productmanage.service.check.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,6 +27,7 @@ public class StIvtCheckmstCp implements Serializable { /** * 盘点单标识 */ + @TableId private String check_id; /** @@ -76,7 +78,7 @@ public class StIvtCheckmstCp implements Serializable { /** * 创建时间 */ - private LocalDateTime create_time; + private String create_time; /** * 审核人 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java index 5895150f..1ef5b4e6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java @@ -1,8 +1,13 @@ package org.nl.wms.storage_manage.productmanage.service.check.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; +import java.util.List; +import java.util.Map; + /** *

* 盘点单明细表 Mapper 接口 @@ -13,4 +18,5 @@ import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp */ public interface StIvtCheckdtlCpMapper extends BaseMapper { + List getCheckDtl(@Param("map") Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml index db74fdf1..36fb345f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml @@ -1,5 +1,37 @@ - + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dto/CheckQueryMst.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dto/CheckQueryMst.java new file mode 100644 index 00000000..af2312a9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dto/CheckQueryMst.java @@ -0,0 +1,35 @@ +package org.nl.wms.storage_manage.productmanage.service.check.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class CheckQueryMst extends BaseQuery { + + + private String stor_id; + + private String status; + + private String check_type; + + private String check_code; + + private Boolean is_delete = false; + + + @Override + public void paramMapping() { + super.doP.put("check_code", QParam.builder().k(new String[]{"check_code"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckdtlCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckdtlCpServiceImpl.java index 6be30fdf..ce12448a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckdtlCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckdtlCpServiceImpl.java @@ -1,11 +1,35 @@ package org.nl.wms.storage_manage.productmanage.service.check.impl; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.CHECKEnum; +import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckdtlCpService; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; +import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; import org.nl.wms.storage_manage.productmanage.service.check.dao.mapper.StIvtCheckdtlCpMapper; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckdtlYl; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + /** *

* 盘点单明细表 服务实现类 @@ -17,4 +41,72 @@ import org.springframework.stereotype.Service; @Service public class StIvtCheckdtlCpServiceImpl extends ServiceImpl implements IStIvtCheckdtlCpService { + @Autowired + private IStIvtSectattrService sectattrService; // 库区服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息服务 + + @Override + public double create(JSONArray rows, StIvtCheckmstCp mst) { + double total_qty = 0; + + if (rows.size() > 0 && ObjectUtil.isNotEmpty(mst)) { + // 先删除在插入 + this.remove(new QueryWrapper().eq("check_id", mst.getCheck_id())); + + for (int i = 0; i < rows.size(); i++) { + String checkdtl_id = IdUtil.getStringId(); + StIvtCheckdtlCp row = rows.getJSONObject(i).toJavaObject(StIvtCheckdtlCp.class); + row.setCheckdtl_id(checkdtl_id); + row.setCheck_id(mst.getCheck_id()); + row.setCheck_code(mst.getCheck_code()); + row.setSeq_no(BigDecimal.valueOf(i + 1)); + + // 获取库区信息 + QueryWrapper sect_wrapper = new QueryWrapper<>(); + sect_wrapper.eq("sect_id", row.getSect_id()); + sect_wrapper.eq("is_used", true); + StIvtSectattr sectDao = sectattrService.getOne(sect_wrapper); + if (ObjectUtil.isEmpty(sectDao)) throw new BadRequestException("库区不存在或未启用!"); + row.setSect_name(sectDao.getSect_name()); + + // 获取仓位信息 + QueryWrapper struct_wrapper = new QueryWrapper<>(); + struct_wrapper.eq("struct_id", row.getStruct_id()); + struct_wrapper.eq("is_used", true); + StIvtStructattr structDao = structattrService.getOne(struct_wrapper); + if (ObjectUtil.isEmpty(structDao)) throw new BadRequestException("仓位不存在或未启用!"); + row.setStruct_name(structDao.getStruct_name()); + + // 获取载具信息 + MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne( + new QueryWrapper().lambda() + .eq(MdPbStoragevehicleinfo::getStoragevehicle_code, row.getStoragevehicle_code()) + ); + + row.setStoragevehicle_id(vehicleDao.getStoragevehicle_id()); + row.setStoragevehicle_code(vehicleDao.getStoragevehicle_code()); + row.setStatus(CHECKEnum.DTL_STATUS.code("生成")); + this.save(row); + + //锁定货位 + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("盘点锁")) + .set(StIvtStructattr::getInv_code,mst.getCheck_code()) + .eq(StIvtStructattr::getStruct_id, row.getStruct_id()) + ); + } + } + return total_qty; + } + + @Override + public List getCheckDtl(JSONObject map) { + return this.baseMapper.getCheckDtl(map); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java index 019b09f7..cf4edfd3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java @@ -1,10 +1,51 @@ package org.nl.wms.storage_manage.productmanage.service.check.impl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.mapper.MdPbBucketrecordMapper; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.CHECKEnum; +import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckdtlCpService; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; +import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; import org.nl.wms.storage_manage.productmanage.service.check.dao.mapper.StIvtCheckmstCpMapper; +import org.nl.wms.storage_manage.productmanage.service.check.dto.CheckQueryMst; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIvtMoreorlessmstCpService; +import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckdtlYlService; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckdtlYl; +import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; +import org.nl.wms.storage_manage.rawmanage.service.check.dto.CheckQuery; +import org.nl.wms.storage_manage.rawmanage.service.moveOrLess.IStIvtMoreorlessmstYlService; +import org.nl.wms.storage_manage.semimanage.MLEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.List; +import java.util.Map; /** *

@@ -17,4 +58,417 @@ import org.springframework.stereotype.Service; @Service public class StIvtCheckmstCpServiceImpl extends ServiceImpl implements IStIvtCheckmstCpService { + @Autowired + private IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 实物属性服务 + + @Autowired + private IStIvtCheckdtlCpService iStIvtCheckdtlCpService; // 盘点明细服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private IStIvtMoreorlessmstCpService iStIvtMoreorlessmstCpService; // 损益主表服务 + + @Autowired + private IMdPbBucketrecordService iMdPbBucketrecordService; // 箱服务 + + @Autowired(required = false) + private MdPbBucketrecordMapper mdPbBucketrecordMapper; // 箱mapper服务 + + @Override + public Object pageQuery(CheckQueryMst query, PageQuery page) { + // 查询条件 + page.setSort("check_code,DESC"); + // 分页查询 + Page pageQuery = this.page(page.build(), query.build()); + TableDataInfo build = TableDataInfo.build(pageQuery); + return build; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject form) { + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + + // 调用主表 插入/更新方法 + StIvtCheckmstCp checkmstCp = packageMstForm(new StIvtCheckmstCp(), form); + this.save(checkmstCp); + + //调用明细表 插入方法 + iStIvtCheckdtlCpService.create(rows, checkmstCp); + + } + + @Override + public List getCheckDtl(JSONObject map) { + return iStIvtCheckdtlCpService.getCheckDtl(map); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("check_id")}, "请求参数不能为空"); + StIvtCheckmstCp mst = form.toJavaObject(StIvtCheckmstCp.class); + this.updateById(mst); + + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + // 调用明细表 插入/更新方法 + iStIvtCheckdtlCpService.create(rows, mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveCheck(JSONObject whereJson) { + JSONObject form = whereJson.getJSONObject("row"); + JSONArray rows = whereJson.getJSONArray("rows"); + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"10", "30"})); + if (jo_mst == null) { + throw new BadRequestException("盘点单状态异常!"); + } + iStIvtCheckdtlCpService.remove(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"01", "04"})); + for (int i = 0; i < rows.size(); i++) { + JSONObject jo = rows.getJSONObject(i); + String status = jo.getString("status"); + StIvtCheckdtlCp dtl = jo.toJavaObject(StIvtCheckdtlCp.class); + double base_qty = jo.getDoubleValue("base_qty"); + dtl.setSeq_no(BigDecimal.valueOf(i + 1)); + //已盘点过的明细不再处理 + if ("05,06,07,99".contains(status)) { + iStIvtCheckdtlCpService.updateById(dtl); + continue; + } + dtl.setStatus(CHECKEnum.DTL_STATUS.code("盘点中")); + dtl.setCheck_optid(SecurityUtils.getCurrentUserId()); + dtl.setCheck_optname(SecurityUtils.getCurrentNickName()); + dtl.setCheck_time(DateUtil.now()); + double fac_qty = jo.getDoubleValue("fac_qty"); + //判断盈亏 + if (fac_qty > base_qty) { + dtl.setCheck_result("2"); + } else if (fac_qty < base_qty) { + dtl.setCheck_result("1"); + } else { + dtl.setCheck_result("0"); + } + if (StrUtil.isEmpty(jo.getString("checkdtl_id"))) { + jo.put("checkdtl_id", IdUtil.getStringId()); + } + iStIvtCheckdtlCpService.save(dtl); + } + jo_mst.setDtl_num(BigDecimal.valueOf(rows.size())); + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("盘点中")); + jo_mst.setIs_nok(false); + List dtl_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).ne("check_result", "0")); + if (dtl_list.size() != 0) { + jo_mst.setIs_nok(true); + } + this.updateById(jo_mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void confirm(JSONObject whereJson) { + + JSONObject form = whereJson.getJSONObject("row"); + JSONArray rows = whereJson.getJSONArray("rows"); + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"10", "30"})); + if (jo_mst == null) { + throw new BadRequestException("盘点单状态异常!"); + } + iStIvtCheckdtlCpService.remove(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"01", "04"})); + //定义需要需要更新的的点位集合 + HashSet set = new HashSet<>(); + for (int i = 0; i < rows.size(); i++) { + JSONObject jo = rows.getJSONObject(i); + String status = jo.getString("status"); + StIvtCheckdtlCp dtl = jo.toJavaObject(StIvtCheckdtlCp.class); + double base_qty = jo.getDoubleValue("base_qty"); + dtl.setSeq_no(BigDecimal.valueOf(i + 1)); + //已盘点过的明细不再处理 + if ("05,06,07,99".contains(status)) { + iStIvtCheckdtlCpService.updateById(dtl); + continue; + } + dtl.setStatus(CHECKEnum.DTL_STATUS.code("已盘点")); + dtl.setCheck_optid(SecurityUtils.getCurrentUserId()); + dtl.setCheck_optname(SecurityUtils.getCurrentNickName()); + dtl.setCheck_time(DateUtil.now()); + double fac_qty = jo.getDoubleValue("fac_qty"); + //判断盈亏 + if (fac_qty > base_qty) { + dtl.setCheck_result("2"); + } else if (fac_qty < base_qty) { + dtl.setCheck_result("1"); + } else { + dtl.setCheck_result("0"); + dtl.setStatus(CHECKEnum.DTL_STATUS.code("确认完成")); + } + if (StrUtil.isEmpty(jo.getString("checkdtl_id"))) { + jo.put("checkdtl_id", IdUtil.getStringId()); + } + iStIvtCheckdtlCpService.save(dtl); + set.add(dtl.getStruct_id()); + } + jo_mst.setDtl_num(BigDecimal.valueOf(rows.size())); + + jo_mst.setIs_nok(false); + List dtl_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).ne("check_result", "0")); + if (dtl_list.size() != 0) { + jo_mst.setIs_nok(true); + } + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("盘点中")); + List finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); + //说明全部确认 + if (finish_list.size() == jo_mst.getDtl_num().intValue()) { + iStIvtCheckdtlCpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //锁定起点点位、仓位 + set.forEach(struct_id -> structattrService.update(new UpdateWrapper().set("lock_type", "0").set("inv_code", "").eq("struct_id", struct_id))); + } + this.updateById(jo_mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void process0(JSONObject whereJson) { + JSONObject form = whereJson.getJSONObject("form"); + JSONObject row = whereJson.getJSONObject("row"); + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", form.getString("check_id")).ne("status", "99")); + if (jo_mst == null) { + throw new BadRequestException("盘点单状态异常!"); + } + StIvtCheckdtlCp dtl = row.toJavaObject(StIvtCheckdtlCp.class); + dtl.setStatus(CHECKEnum.DTL_STATUS.code("确认完成")); + dtl.setProcess_optid(SecurityUtils.getCurrentUserId()); + dtl.setProcess_time(DateUtil.now()); + dtl.setProcess_type(CHECKEnum.PROCESS_TYPE.code("账务为准")); + dtl.setIs_process(true); + iStIvtCheckdtlCpService.updateById(dtl); + List finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); + //说明全部确认 + if (finish_list.size() == jo_mst.getDtl_num().intValue()) { + iStIvtCheckdtlCpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } + this.updateById(jo_mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void process1(JSONObject whereJson) { + JSONObject form = whereJson.getJSONObject("form"); + JSONObject row = whereJson.getJSONObject("row"); + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", form.getString("check_id")).ne("status", "99")); + StIvtCheckdtlCp dtl = row.toJavaObject(StIvtCheckdtlCp.class); + if (jo_mst == null) { + throw new BadRequestException("盘点单状态异常!"); + } + + //创建损溢单 + JSONObject mol_jo = new JSONObject(); + mol_jo.put("buss_type", MLEnum.BILL_TYPE.code("盘点损溢")); + if (row.getString("check_result").equals("1")) { + mol_jo.put("mol_type", MLEnum.MOL_TYPE.code("损")); + } else { + mol_jo.put("mol_type", MLEnum.MOL_TYPE.code("溢")); + } + mol_jo.put("stor_id", jo_mst.getStor_id()); + mol_jo.put("remark", "盘点单:" + jo_mst.getCheck_code() + "生成的损溢单"); + + //创建明细 + JSONObject dtl_jo = new JSONObject(); + dtl_jo.put("sect_id", dtl.getSect_id()); + dtl_jo.put("material_id", dtl.getMaterial_id()); + dtl_jo.put("struct_id", dtl.getStruct_id()); + dtl_jo.put("qty_unit_id", dtl.getQty_unit_id()); + dtl_jo.put("qty_unit_name", dtl.getQty_unit_name()); + dtl_jo.put("mol_qty", row.getString("check_result").equals("1") ? NumberUtil.sub(dtl.getBase_qty(), dtl.getFac_qty()) : NumberUtil.sub(dtl.getFac_qty(), dtl.getBase_qty())); + dtl_jo.put("source_billdtl_id", dtl.getCheckdtl_id()); + dtl_jo.put("source_bill_type", jo_mst.getCheck_type()); + dtl_jo.put("source_bill_code", jo_mst.getCheck_code()); + dtl_jo.put("source_bill_table", "ST_IVT_CheckMst_CP"); + dtl_jo.put("storagevehicle_id", dtl.getStoragevehicle_id()); + dtl_jo.put("storagevehicle_code", dtl.getStoragevehicle_code()); + JSONArray mol_rows = new JSONArray(); + mol_rows.add(dtl_jo); + mol_jo.put("tableData", mol_rows); + mol_jo.put("auto_confirm", "1"); + //创建损溢单 + iStIvtMoreorlessmstCpService.create(mol_jo); + + + dtl.setStatus(CHECKEnum.DTL_STATUS.code("确认完成")); + dtl.setProcess_optid(SecurityUtils.getCurrentUserId()); + dtl.setProcess_time(DateUtil.now()); + dtl.setProcess_type(CHECKEnum.PROCESS_TYPE.code("实盘为准")); + dtl.setIs_process(true); + iStIvtCheckdtlCpService.updateById(dtl); + List finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); + //说明全部确认 + if (finish_list.size() == jo_mst.getDtl_num().intValue()) { + iStIvtCheckdtlCpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } + this.updateById(jo_mst); + } + + @Override + public Object getBucketrecord(JSONObject whereJson) { + return mdPbBucketrecordMapper.queryAll(whereJson); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void processBox(JSONObject whereJson) { + JSONObject form = whereJson.getJSONObject("form"); + JSONArray row = whereJson.getJSONArray("row"); + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", form.getString("check_id")).ne("status", "99")); + + StIvtCheckdtlCp dtl = iStIvtCheckdtlCpService.getById(form.getString("checkdtl_id")); + if (jo_mst == null) { + throw new BadRequestException("盘点单状态异常!"); + } + + //创建损溢单 + JSONObject mol_jo = new JSONObject(); + mol_jo.put("buss_type", MLEnum.BILL_TYPE.code("盘点损溢")); + if (dtl.getCheck_result().equals("1")) { + mol_jo.put("mol_type", MLEnum.MOL_TYPE.code("损")); + } else { + mol_jo.put("mol_type", MLEnum.MOL_TYPE.code("溢")); + } + mol_jo.put("stor_id", jo_mst.getStor_id()); + mol_jo.put("remark", "盘点单:" + jo_mst.getCheck_code() + "生成的损溢单"); + + //创建明细 + JSONArray mol_rows = new JSONArray(); + for (int i = 0; i < row.size(); i++) { + JSONObject json = row.getJSONObject(i); + JSONObject dtl_jo = new JSONObject(); + dtl_jo.put("sect_id", dtl.getSect_id()); + dtl_jo.put("material_id", dtl.getMaterial_id()); + dtl_jo.put("struct_id", dtl.getStruct_id()); + dtl_jo.put("qty_unit_id", dtl.getQty_unit_id()); + dtl_jo.put("qty_unit_name", dtl.getQty_unit_name()); + dtl_jo.put("bucketunique", json.getString("bucketunique")); + dtl_jo.put("mol_qty", dtl.getCheck_result().equals("1") ? NumberUtil.sub(json.getBigDecimal("storage_qty"), json.getBigDecimal("ivt_qty_ck")) : NumberUtil.sub(json.getBigDecimal("ivt_qty_ck"), json.getBigDecimal("storage_qty"))); + dtl_jo.put("source_billdtl_id", dtl.getCheckdtl_id()); + dtl_jo.put("source_bill_type", jo_mst.getCheck_type()); + dtl_jo.put("source_bill_code", jo_mst.getCheck_code()); + dtl_jo.put("source_bill_table", "ST_IVT_CheckMst_CP"); + dtl_jo.put("storagevehicle_id", dtl.getStoragevehicle_id()); + dtl_jo.put("storagevehicle_code", dtl.getStoragevehicle_code()); + mol_rows.add(dtl_jo); + + } + mol_jo.put("tableData", mol_rows); + mol_jo.put("auto_confirm", "1"); + //创建损溢单 + iStIvtMoreorlessmstCpService.create(mol_jo); + + dtl.setStatus(CHECKEnum.DTL_STATUS.code("确认完成")); + dtl.setProcess_optid(SecurityUtils.getCurrentUserId()); + dtl.setProcess_time(DateUtil.now()); + dtl.setProcess_type(CHECKEnum.PROCESS_TYPE.code("实盘为准")); + dtl.setIs_process(true); + iStIvtCheckdtlCpService.updateById(dtl); + List finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); + //说明全部确认 + if (finish_list.size() == jo_mst.getDtl_num().intValue()) { + iStIvtCheckdtlCpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } + this.updateById(jo_mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(Long[] ids) { + for (Long id : ids) { + StIvtCheckmstCp dao = this.getOne(new QueryWrapper().eq("check_id", id)); + dao.setIs_delete(true); + + //获取所有明细下的仓位解锁 + List dtl_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", id)); + dtl_list.stream() + .map(dtl -> dtl.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + this.updateById(dao); + } + } + + @NotNull + private StIvtCheckmstCp packageMstForm(StIvtCheckmstCp checkmstCp, JSONObject whereJson) { + JSONArray rows = whereJson.getJSONArray("tableData"); + // 新增 + checkmstCp.setCheck_id(IdUtil.getStringId()); + checkmstCp.setCheck_code(CodeUtil.getNewCode("PD_CODE")); + checkmstCp.setBuss_type(whereJson.getString("check_type")); + checkmstCp.setCheck_type(checkmstCp.getBuss_type()); + + // 获取仓库信息 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("stor_id", whereJson.getString("stor_id")); + wrapper.eq("is_used", true); + StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper); + if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!"); + + checkmstCp.setStor_id(bsrealDao.getStor_id()); + checkmstCp.setStor_name(bsrealDao.getStor_name()); + checkmstCp.setDtl_num(BigDecimal.valueOf(rows.size())); + checkmstCp.setCreate_mode(CHECKEnum.CREATE_MODE.code("PC产生")); + checkmstCp.setStatus(CHECKEnum.BILL_STATUS.code("生成")); + checkmstCp.setCreate_id(SecurityUtils.getCurrentUserId()); + checkmstCp.setCreate_name(SecurityUtils.getCurrentNickName()); + checkmstCp.setCreate_time(DateUtil.now()); + checkmstCp.setIs_delete(false); + checkmstCp.setIs_upload(true); + // TODO 暂时写死 + checkmstCp.setSysdeptid("111"); + checkmstCp.setSyscompanyid("111"); + + checkmstCp.setRemark(whereJson.getString("remark")); + + return checkmstCp; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/structIvt/StIvtStructivtYlController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/structIvt/StIvtStructivtYlController.java index 0b03c860..43caf5a1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/structIvt/StIvtStructivtYlController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/structIvt/StIvtStructivtYlController.java @@ -36,6 +36,13 @@ public class StIvtStructivtYlController { return new ResponseEntity<>(structivtYlService.getRawIvt(query, page), HttpStatus.OK); } + @GetMapping("/getProductIvt") + @Log("查询可用的成品库存") + @ApiOperation("查询可用的成品库存") + public ResponseEntity getProductIvt(StructIvtYLQuery query, PageQuery page) { + return new ResponseEntity<>(structivtYlService.getProductIvt(query,page), HttpStatus.OK); + } + @PostMapping("/getStructIvt") @Log("查询库存") @ApiOperation("查询库存") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/IStIvtStructivtYlService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/IStIvtStructivtYlService.java index 4c3cda74..46bf7420 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/IStIvtStructivtYlService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/IStIvtStructivtYlService.java @@ -28,4 +28,12 @@ public interface IStIvtStructivtYlService extends IService { Object getRawIvt(StructIvtYLQuery query, PageQuery page); List getStructIvt(StructIvtYLQuery query); + + /** + * 分页查询可用的成品库存 + * + * @param query / + * @return JSONObject + */ + Object getProductIvt(StructIvtYLQuery query, PageQuery page); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java index 74c92292..5d236d49 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/StIvtStructivtYlMapper.java @@ -22,5 +22,7 @@ public interface StIvtStructivtYlMapper extends BaseMapper { List getRawIvt(@Param("query") StructIvtYLQuery query, @Param("pageQuery") PageQuery pageQuery); + List getProductIvt(@Param("query") StructIvtYLQuery query, @Param("pageQuery") PageQuery pageQuery); + List getStructIvt(@Param("query") StructIvtYLQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml index 1b88c84d..b7f1092c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/structIvt/dao/mapper/xml/StIvtStructivtYlMapper.xml @@ -37,6 +37,42 @@ + +