From 860be1009363d5c0c2832f2ccc8ec6f6bac47eae Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 12 Jun 2025 16:59:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A5=E5=BA=93=E5=86=B2=E9=94=80?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iostorInv/IStIvtIostorinvService.java | 16 +- .../iostorInv/IStIvtIostorinvdisService.java | 7 + .../iostorInv/IStIvtIostorinvdtlService.java | 7 + .../iostorInv/dao/StIvtIostorinvdis.java | 7 +- .../dao/mapper/StIvtIostorinvMapper.java | 13 +- .../dao/mapper/StIvtIostorinvMapper.xml | 119 ++++++++++++ .../impl/StIvtIostorinvServiceImpl.java | 15 +- .../impl/StIvtIostorinvdisServiceImpl.java | 7 + .../impl/StIvtIostorinvdtlServiceImpl.java | 8 + .../system/service/dict/ISysDictService.java | 3 + .../dict/dao/mapper/SysDictMapper.java | 4 + .../service/dict/dao/mapper/SysDictMapper.xml | 11 ++ .../service/dict/impl/SysDictServiceImpl.java | 6 + .../st/inbill/rest/InchargeController.java | 33 +++- .../st/inbill/rest/OutChargeController.java | 7 +- .../st/inbill/service/InchargeService.java | 15 ++ .../st/inbill/service/OutChargeService.java | 7 +- ...rgePageParam.java => ChargePageParam.java} | 4 +- .../service/impl/InchargeServiceImpl.java | 173 +++++++++++++++++- .../service/impl/OutChargeServiceImpl.java | 19 +- .../{OutWriteOffVo.java => WriteOffVo.java} | 2 +- .../outbill/rest/CheckOutBillController.java | 9 +- .../wms/st/outbill/service/vo/SelectVo.java | 13 ++ .../src/views/wms/st/outbill/ViewDialog.vue | 20 +- .../src/views/wms/st/outbill/checkoutbill.js | 2 +- 25 files changed, 469 insertions(+), 58 deletions(-) rename lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/{OutChargePageParam.java => ChargePageParam.java} (83%) rename lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/{OutWriteOffVo.java => WriteOffVo.java} (98%) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/SelectVo.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java index 74aa843..fa2cd4e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java @@ -1,13 +1,11 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import netscape.javascript.JSObject; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; -import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; +import org.nl.wms.st.inbill.service.vo.WriteOffVo; import org.springframework.data.domain.Pageable; import java.util.Map; @@ -153,5 +151,13 @@ public interface IStIvtIostorinvService extends IService { * @param page * @return */ - IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page); + IPage outWriteOffPageDatas(ChargePageParam paramMap, PageQuery page); + + /** + * 查询入库冲销分页查询 + * @param paramMap + * @param page + * @return + */ + IPage inWriteOffPageDatas(ChargePageParam paramMap, PageQuery page); } 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 7c1ae94..dc73fa0 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 @@ -94,5 +94,12 @@ public interface IStIvtIostorinvdisService extends IService { * @return */ List getOutBillTask2(OutBillTaskParam param); + + /** + * 根据明细di获取分配数据 + * @param iostorinvdtlId 明细id + * @return + */ + List getBillDisByDtlId(String iostorinvdtlId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdtlService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdtlService.java index 792036d..d25e18d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdtlService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdtlService.java @@ -84,4 +84,11 @@ public interface IStIvtIostorinvdtlService extends IService { * @return */ List getOutBillDtl(OutBillDtlQueryParam param); + + /** + * 根据出入库单据id获取明细数据 + * @param id: 出入库id + * @return + */ + List getBillDtlByInvId(String id); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java index c1dbd2c..b1b9a09 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java @@ -2,10 +2,7 @@ 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.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.*; import java.io.Serializable; import java.math.BigDecimal; @@ -22,6 +19,8 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_iostorinvdis") @Builder +@AllArgsConstructor +@NoArgsConstructor public class StIvtIostorinvdis implements Serializable { private static final long serialVersionUID = 1L; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java index 1d85932..2787155 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java @@ -7,9 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.IostorInvQuery; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; import org.nl.wms.st.inbill.service.dto.RawAssistIStorDto; -import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; +import org.nl.wms.st.inbill.service.vo.WriteOffVo; import org.springframework.data.domain.Pageable; import java.util.List; @@ -60,5 +60,12 @@ public interface StIvtIostorinvMapper extends BaseMapper { * @param paramMap * @return */ - IPage outWriteOffPageDatas(IPage pages, OutChargePageParam paramMap); + IPage outWriteOffPageDatas(IPage pages, ChargePageParam paramMap); + /** + * 入库冲销分页查询 + * @param pages + * @param paramMap + * @return + */ + IPage inWriteOffPageDatas(IPage pages, ChargePageParam paramMap); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml index e9b255e..ee7b81b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml @@ -370,5 +370,124 @@ ) dis2 ON dis2.iostorinv_id = ios2.iostorinv_id order by iostorinv_id desc + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index c558007..e36a969 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -51,10 +51,9 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; import org.nl.wms.sch.service.dto.PointDto; import org.nl.wms.st.inbill.service.StorPublicService; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; -import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; +import org.nl.wms.st.inbill.service.vo.WriteOffVo; import org.nl.wms.st.returns.service.impl.InAndOutRetrunServiceImpl; -import org.nl.wms.stat.service.vo.InBillPageVo; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -677,13 +676,21 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) { + public IPage outWriteOffPageDatas(ChargePageParam paramMap, PageQuery page) { List userStores = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); paramMap.setIn_stor_id(userStores); IPage pages = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPage() + 1, page.getSize()); return stIvtIostorinvMapper.outWriteOffPageDatas(pages, paramMap); } + @Override + public IPage inWriteOffPageDatas(ChargePageParam paramMap, PageQuery page) { + List userStores = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); + paramMap.setIn_stor_id(userStores); + IPage pages = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPage() + 1, page.getSize()); + return stIvtIostorinvMapper.inWriteOffPageDatas(pages, paramMap); + } + /** * 组织主表数据 * 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 bd25825..8968330 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 @@ -315,4 +315,11 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl getBillDisByDtlId(String iostorinvdtlId) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(StIvtIostorinvdis::getIostorinvdtl_id, iostorinvdtlId); + return list(lam); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java index 2c847da..5aca36c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdtlServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; 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.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -325,6 +326,13 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl getBillDtlByInvId(String id) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(StIvtIostorinvdtl::getIostorinv_id, id); + return list(lam); + } + /** * 组织分配明细所需数据 * @param dtlDao: 明细实体类 diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java index f70fd51..8f571d9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dto.DictQuery; +import org.nl.wms.st.outbill.service.vo.SelectVo; import java.util.List; import java.util.Map; @@ -101,4 +102,6 @@ public interface ISysDictService extends IService { * @return */ List queryDetailsPost(String code); + + List getInvTypes(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java index 5bffec6..472477a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java @@ -2,6 +2,9 @@ package org.nl.system.service.dict.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.system.service.dict.dao.Dict; +import org.nl.wms.st.outbill.service.vo.SelectVo; + +import java.util.List; /** *

@@ -13,4 +16,5 @@ import org.nl.system.service.dict.dao.Dict; */ public interface SysDictMapper extends BaseMapper { + List getInvTypes(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.xml index d4acd65..d04a2c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.xml @@ -2,4 +2,15 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java index f35cfc0..76a0811 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java @@ -16,6 +16,7 @@ import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.dict.dto.DictQuery; +import org.nl.wms.st.outbill.service.vo.SelectVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -219,4 +220,9 @@ public class SysDictServiceImpl extends ServiceImpl impleme return sysDictMapper.selectList(lam); } + @Override + public List getInvTypes() { + return sysDictMapper.getInvTypes(); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/InchargeController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/InchargeController.java index 6d8fc09..56699c1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/InchargeController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/InchargeController.java @@ -4,8 +4,12 @@ package org.nl.wms.st.inbill.rest; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.wms.st.inbill.service.InchargeService; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; import org.nl.wms.st.vehiclebill.service.dto.EmptyvehiclerecordDto; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -28,12 +32,17 @@ public class InchargeController { private final InchargeService inchargeService; +// @GetMapping +// @Log("查询入库冲销") +// +// //@PreAuthorize("@el.check('emptyvehiclerecord:list')") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(inchargeService.queryAll(whereJson, page), HttpStatus.OK); +// } @GetMapping @Log("查询入库冲销") - - //@PreAuthorize("@el.check('emptyvehiclerecord:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(inchargeService.queryAll(whereJson, page), HttpStatus.OK); + public ResponseEntity query(ChargePageParam paramMap, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(inchargeService.inWriteOffPageDatas(paramMap, page)), HttpStatus.OK); } @PostMapping @@ -63,12 +72,18 @@ public class InchargeController { return new ResponseEntity<>(HttpStatus.OK); } - @PostMapping("/charge") - @Log("冲销") +// @PostMapping("/charge") +// @Log("冲销") +// public ResponseEntity charge(@RequestBody JSONObject whereJson) { +// inchargeService.charge(whereJson); +// return new ResponseEntity<>(HttpStatus.OK); +// } - public ResponseEntity charge(@RequestBody JSONObject whereJson) { - inchargeService.charge(whereJson); - return new ResponseEntity<>(HttpStatus.OK); + @PostMapping("/charge") + @Log("出库冲销 - 做出库") + public ResponseEntity inWriteOffCharge(@RequestBody StIvtIostorinv paramMap) { + inchargeService.inWriteOffCharge(paramMap); + return new ResponseEntity<>(HttpStatus.CREATED); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java index d763ef6..58fa9ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java @@ -8,14 +8,11 @@ import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.wms.st.inbill.service.OutChargeService; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; -import org.springframework.data.domain.Pageable; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.Map; - /** * @author Liuxy * @date 2022-08-11 @@ -39,7 +36,7 @@ public class OutChargeController { @GetMapping @Log("出库冲销查询") - public ResponseEntity query(OutChargePageParam paramMap, PageQuery page) { + public ResponseEntity query(ChargePageParam paramMap, PageQuery page) { return new ResponseEntity<>(TableDataInfo.build(outChargeService.outWriteOffPageDatas(paramMap, page)), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/InchargeService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/InchargeService.java index 75f41d3..9684b4d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/InchargeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/InchargeService.java @@ -1,6 +1,11 @@ package org.nl.wms.st.inbill.service; 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.inbill.service.dto.ChargePageParam; +import org.nl.wms.st.inbill.service.vo.WriteOffVo; import org.nl.wms.st.vehiclebill.service.dto.EmptyvehiclerecordDto; import org.springframework.data.domain.Pageable; @@ -75,4 +80,14 @@ public interface InchargeService { * @param whereJson / */ void charge(JSONObject whereJson); + + /** + * 查询入库冲销 + * @param paramMap + * @param page + * @return + */ + IPage inWriteOffPageDatas(ChargePageParam paramMap, PageQuery page); + + void inWriteOffCharge(StIvtIostorinv paramMap); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java index 7322cee..b9976da 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java @@ -1,12 +1,9 @@ package org.nl.wms.st.inbill.service; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; -import netscape.javascript.JSObject; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; -import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.RequestBody; @@ -43,7 +40,7 @@ public interface OutChargeService { * @param page * @return */ - IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page); + IPage outWriteOffPageDatas(ChargePageParam paramMap, PageQuery page); /** * 冲销出库 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/ChargePageParam.java similarity index 83% rename from lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java rename to lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/ChargePageParam.java index 3f4f794..443a710 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/ChargePageParam.java @@ -6,12 +6,12 @@ import java.io.Serializable; import java.util.List; /** - * 出库冲销分页参数 + * 冲销分页参数 * @Author: lyd * @Date: 2025/6/10 */ @Data -public class OutChargePageParam implements Serializable { +public class ChargePageParam implements Serializable { private String bill_code; private String stor_id; private List in_stor_id; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java index ff07bb6..a020699 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InchargeServiceImpl.java @@ -9,26 +9,50 @@ 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 lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl; +import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +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.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.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.st.inbill.service.InchargeService; import org.nl.wms.st.inbill.service.StorPublicService; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; +import org.nl.wms.st.inbill.service.vo.WriteOffVo; import org.nl.wms.st.vehiclebill.service.dto.EmptyvehiclerecordDto; +import org.nl.wms.stat.service.enums.OutBillTypeEnum; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import static org.nl.common.utils.IdUtil.getStringId; + /** * @author Liuxy * @description 服务实现 @@ -40,6 +64,16 @@ import java.util.Map; public class InchargeServiceImpl implements InchargeService { private final StorPublicService storPublicService; + /** 出入库单分配表 */ + private final IStIvtIostorinvService iStIvtIostorinvService; + private final IStIvtIostorinvdisService iostorinvdisService; + /** 出入库单明细表 */ + private final IStIvtIostorinvdtlService iostorinvdtlService; + /** 仓位库存表 */ + private final StIvtStructivtService structivtService; + private final IpdmBiSubpackagerelationService subpackagerelationService; + private final StIvtStructattrService structattrService; + private final StIvtSectattrService sectattrService; @Override public Map queryAll(Map whereJson, Pageable page) { @@ -336,4 +370,141 @@ public class InchargeServiceImpl implements InchargeService { mstTab.update(jsonInMst); } + @Override + public IPage inWriteOffPageDatas(ChargePageParam paramMap, PageQuery page) { + return iStIvtIostorinvService.inWriteOffPageDatas(paramMap, page); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void inWriteOffCharge(StIvtIostorinv inbound) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + Long deptId = SecurityUtils.getDeptId(); + // 根据入库单创建出库单 + String oldInOrderId = inbound.getIostorinv_id(); + StIvtIostorinv oldInOrder = iStIvtIostorinvService.getById(oldInOrderId); + StIvtIostorinv outOrder = new StIvtIostorinv(); + outOrder.setIostorinv_id(getStringId()); + outOrder.setBill_code(CodeUtil.getNewCode("IO_CODE")); + outOrder.setIo_type("1"); + outOrder.setBuss_type(OutBillTypeEnum.MANUAL_OUT.getCode()); + outOrder.setBill_type(OutBillTypeEnum.MANUAL_OUT.getCode()); + outOrder.setBiz_date(DateUtil.today()); + outOrder.setStor_id(oldInOrder.getStor_id()); + outOrder.setStor_code(oldInOrder.getStor_code()); + outOrder.setStor_name(oldInOrder.getStor_name()); + outOrder.setTotal_qty(oldInOrder.getTotal_qty()); + outOrder.setTotal_weight(oldInOrder.getTotal_weight()); + outOrder.setDetail_count(oldInOrder.getDetail_count()); + outOrder.setBill_status("40"); + outOrder.setInput_optid(currentUserId); + outOrder.setInput_optname(nickName); + outOrder.setInput_time(DateUtil.now()); + outOrder.setUpdate_optid(currentUserId); + outOrder.setUpdate_optname(nickName); + outOrder.setUpdate_time(DateUtil.now()); + outOrder.setDis_optid(currentUserId); + outOrder.setDis_optname(nickName); + outOrder.setDis_time(DateUtil.now()); + outOrder.setConfirm_optid(""); + outOrder.setConfirm_optname(""); + outOrder.setConfirm_time(""); + outOrder.setSysdeptid(deptId); + outOrder.setSyscompanyid(deptId); + iStIvtIostorinvService.save(outOrder); + // 根据入库明细生成出库明细 + List needSaveOutDisList = new ArrayList<>(); + List needSaveOutDtlList = new ArrayList<>(); + List needLockStructIds = new ArrayList<>(); + // 获取入库明细 + List inDtls = iostorinvdtlService.getBillDtlByInvId(oldInOrderId); + for (int i = 0; i < inDtls.size(); i++) { + StIvtIostorinvdtl inDtl = inDtls.get(i); + StIvtIostorinvdtl outDtl = new StIvtIostorinvdtl(); + outDtl.setIostorinvdtl_id(getStringId()); + outDtl.setIostorinv_id(outOrder.getIostorinv_id()); + outDtl.setSeq_no(inDtl.getSeq_no()); + outDtl.setMaterial_id(inDtl.getMaterial_id()); + outDtl.setPcsn(inDtl.getPcsn()); + outDtl.setBox_no(inDtl.getBox_no()); + outDtl.setQuality_scode("01"); + outDtl.setBill_status("40"); + outDtl.setQty_unit_id(inDtl.getQty_unit_id()); + outDtl.setQty_unit_name(inDtl.getQty_unit_name()); + outDtl.setPlan_qty(inDtl.getPlan_qty()); + outDtl.setSource_billdtl_id(inDtl.getSource_billdtl_id()); + outDtl.setAssign_qty(inDtl.getAssign_qty()); + outDtl.setUnassign_qty(inDtl.getUnassign_qty()); + outDtl.setVbeln(inDtl.getVbeln()); + outDtl.setPosnr(inDtl.getPosnr()); + needSaveOutDtlList.add(outDtl); + // 根据入库分配明细生成出库分配明细 + List inDiss = iostorinvdisService.getBillDisByDtlId(inDtl.getIostorinvdtl_id()); + for (int j = 0; j < inDiss.size(); j++) { + StIvtIostorinvdis inDis = inDiss.get(j); + StIvtIostorinvdis outDis = new StIvtIostorinvdis(); + outDis.setIostorinvdis_id(getStringId()); + outDis.setIostorinv_id(outOrder.getIostorinv_id()); + outDis.setIostorinvdtl_id(outDtl.getIostorinvdtl_id()); + outDis.setSeq_no(inDis.getSeq_no()); + outDis.setSect_id(inDis.getSect_id()); + outDis.setSect_code(inDis.getSect_code()); + outDis.setSect_name(inDis.getSect_name()); + outDis.setStruct_id(inDis.getStruct_id()); + outDis.setStruct_code(inDis.getStruct_code()); + outDis.setStruct_name(inDis.getStruct_name()); + outDis.setMaterial_id(inDis.getMaterial_id()); + outDis.setPcsn(inDis.getPcsn()); + outDis.setBox_no(inDis.getBox_no()); + outDis.setPoint_id(0L); + outDis.setTask_id(""); + outDis.setQuality_scode("01"); + // 如果是虚拟库区则将执行状态改为生成:01 + StIvtSectattr sectattr = sectattrService.getById(inDis.getSect_id()); + if ("09".equals(sectattr.getSect_type_attr())) { + outDis.setWork_status("01"); + } else { + outDis.setWork_status("00"); + } + outDis.setQty_unit_id(inDis.getQty_unit_id()); + outDis.setQty_unit_name(inDis.getQty_unit_name()); + outDis.setPlan_qty(inDis.getPlan_qty()); + outDis.setReal_qty(inDis.getReal_qty()); + needSaveOutDisList.add(outDis); + StIvtStructivt structivt = structivtService.getOne(new LambdaQueryWrapper() + .eq(StIvtStructivt::getPcsn, outDis.getPcsn()) + .eq(StIvtStructivt::getCanuse_qty, inDis.getReal_qty()), false); + if (ObjectUtil.isEmpty(structivt)) { + throw new BadRequestException("库存不存在或库存数量不正确"); + } + + // todo: 原来的方法 + JSONObject jsonIvt = JSON.parseObject(JSON.toJSONString(structivt)); + jsonIvt.put("bill_type_scode", outOrder.getBill_type()); + jsonIvt.put("inv_id", outOrder.getIostorinv_id()); + jsonIvt.put("bill_code", outOrder.getBill_code()); + jsonIvt.put("bill_table", "ST_IVT_IOStorInv"); + jsonIvt.put("change_qty", inDis.getReal_qty()); + storPublicService.IOStor(jsonIvt, "11"); + + needLockStructIds.add(jsonIvt.getString("struct_id")); + + } + + } + iostorinvdtlService.updateBatchById(needSaveOutDtlList); + iostorinvdisService.updateBatchById(needSaveOutDisList); + LambdaUpdateWrapper upLam = new LambdaUpdateWrapper<>(); + upLam.set(StIvtStructattr::getLock_type, "3") + .in(StIvtStructattr::getStruct_id, needLockStructIds); + structattrService.update(upLam); + + // 修改入库单 是否冲销为 是 + oldInOrder.setIs_writeoff(SlitterConstant.SLITTER_YES); + oldInOrder.setWriteoff_optid(currentUserId); + oldInOrder.setWriteoff_time(DateUtil.now()); + iStIvtIostorinvService.updateById(oldInOrder); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java index c70689e..e85e7c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java @@ -31,7 +31,7 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.st.inbill.service.OutChargeService; -import org.nl.wms.st.inbill.service.dto.OutChargePageParam; +import org.nl.wms.st.inbill.service.dto.ChargePageParam; import org.nl.wms.stat.service.enums.InBillTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; @@ -194,10 +194,7 @@ public class OutChargeServiceImpl implements OutChargeService { whereJson.put("writeoff_time", ""); whereJson.put("upload_mes", ""); whereJson.put("upload_sap", ""); -// mst_wql.insert(whereJson); -// if (true) { -// throw new BadRequestException("测试中..."); -// } + mst_wql.insert(whereJson); ArrayList ivtList = new ArrayList<>(); // 存在库存的集合 for (int i = 0; i < dis_rows.size(); i++) { @@ -228,7 +225,7 @@ public class OutChargeServiceImpl implements OutChargeService { dis_row.put("assign_qty", dis_row.getString("plan_qty")); dis_row.put("unassign_qty", "0"); //插入手工入库明细表 -// dtl_wql.insert(dis_row); + dtl_wql.insert(dis_row); dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); dis_row.put("seq_no", 1); @@ -243,7 +240,7 @@ public class OutChargeServiceImpl implements OutChargeService { dis_row.put("point_id", ""); dis_row.put("task_id", ""); //插入分配表 -// dis_wql.insert(dis_row); + dis_wql.insert(dis_row); //将包装关系中对应的记录状态改为包装 HashMap map = new HashMap<>(); @@ -264,7 +261,7 @@ public class OutChargeServiceImpl implements OutChargeService { } @Override - public IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) { + public IPage outWriteOffPageDatas(ChargePageParam paramMap, PageQuery page) { return iStIvtIostorinvService.outWriteOffPageDatas(paramMap, page); } @@ -371,7 +368,13 @@ public class OutChargeServiceImpl implements OutChargeService { } subpackagerelationService.update(upLam); } + // 判断是否存在库存 + if (ivtList.size() > 0) { + String msg = String.join(",", ivtList); + throw new BadRequestException("此子卷已存在库存:" + msg); + } iostorinvdtlService.updateBatchById(needSaveDtlList); iostorinvdisService.updateBatchById(needSaveDisList); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/WriteOffVo.java similarity index 98% rename from lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java rename to lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/WriteOffVo.java index 4c95d08..7738a9d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/WriteOffVo.java @@ -7,7 +7,7 @@ import lombok.Data; * @Date: 2025/6/10 */ @Data -public class OutWriteOffVo { +public class WriteOffVo { private String trans_code; private String is_writeoff; private String input_optname; 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 2250ca2..44504ad 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 @@ -2,6 +2,7 @@ package org.nl.wms.st.outbill.rest; import lombok.extern.slf4j.Slf4j; 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.OutBillTaskParam; @@ -10,7 +11,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.Map; /** * @Author: lyd @@ -22,6 +22,8 @@ import java.util.Map; public class CheckOutBillController { @Resource private CheckOutBillService checkOutBillService; + @Resource + private ISysDictService dictService; @GetMapping("/getOutBillDtl") @Log("查询出库明细") public ResponseEntity getOutBillDtl(OutBillDtlQueryParam param) { @@ -32,4 +34,9 @@ public class CheckOutBillController { public ResponseEntity getOutBillTask2(@RequestBody OutBillTaskParam param) { return new ResponseEntity<>(checkOutBillService.getOutBillTask2(param), HttpStatus.OK); } + @GetMapping("/getInvTypes") + @Log("查询单据字段") + public ResponseEntity getInvTypes() { + return new ResponseEntity<>(dictService.getInvTypes(), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/SelectVo.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/SelectVo.java new file mode 100644 index 0000000..f3bc702 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/vo/SelectVo.java @@ -0,0 +1,13 @@ +package org.nl.wms.st.outbill.service.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Date: 2025/6/11 + */ +@Data +public class SelectVo { + private String CODE; + private String NAME; +} diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue index 963a101..2eccaf7 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/ViewDialog.vue @@ -84,7 +84,7 @@ - + - + @@ -135,7 +135,7 @@ - + @@ -149,8 +149,8 @@ - + - - + + @@ -191,7 +191,7 @@ export default { name: 'ViewDialog', components: { }, mixins: [crud()], - dicts: ['io_bill_status', 'work_status', 'task_status', 'SCH_TASK_TYPE_DTL','ST_INV_OUT_TYPE', 'INANDOUT_BILL_TYPE', 'IS_OR_NOT'], + dicts: ['io_bill_status', 'work_status', 'task_status', 'SCH_TASK_TYPE_DTL', 'ST_INV_OUT_TYPE', 'INANDOUT_BILL_TYPE', 'IS_OR_NOT'], props: { dialogShow: { type: Boolean, @@ -244,6 +244,8 @@ export default { this.currentdtl = null this.tableDtl = [] this.tabledis = [] + this.loading2 = false + this.loading = true this.$emit('AddChanged') }, bill_statusFormat(row) { diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js index e20aaea..bc41b9b 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js +++ b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js @@ -63,7 +63,7 @@ export function getOutBillTask(params) { } export function getInvTypes() { return request({ - url: '/api/check/getInvTypes', + url: '/api/checkoutbill/getInvTypes', method: 'get' }) }