From 6af468b14f5d3a07f3e66a7a1c41448fb7a2744c Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 30 May 2025 17:10:29 +0800 Subject: [PATCH 1/4] =?UTF-8?q?add=EF=BC=9A=E7=9B=98=E7=82=B9=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/MdPbStoragevehicleextMapper.xml | 1 + .../controller/CheckController.java | 84 +++++ .../enums/IOSConstant.java | 5 + .../warehouse_management/enums/IOSEnum.java | 9 + .../service/IStIvtCheckdtlService.java | 41 +++ .../service/IStIvtCheckmstService.java | 69 ++++ .../service/IStIvtMoreorlessmstService.java | 2 +- .../service/dao/StIvtCheckdtl.java | 128 +++++++ .../service/dao/StIvtCheckmst.java | 128 +++++++ .../dao/mapper/StIvtCheckdtlMapper.java | 29 ++ .../dao/mapper/StIvtCheckdtlMapper.xml | 27 ++ .../dao/mapper/StIvtCheckmstMapper.java | 15 + .../dao/mapper/StIvtCheckmstMapper.xml | 5 + .../service/dto/CheckInsertDto.java | 75 ++++ .../impl/StIvtCheckdtlServiceImpl.java | 131 +++++++ .../impl/StIvtCheckmstServiceImpl.java | 168 +++++++++ .../impl/StIvtMoreorlessmstServiceImpl.java | 3 +- .../src/views/wms/st/checkbill/AddDialog.vue | 297 +++++++++++++++ .../src/views/wms/st/checkbill/AddDtl.vue | 230 ++++++++++++ .../views/wms/st/checkbill/CheckDialog.vue | 343 +++++++++++++++++ .../src/views/wms/st/checkbill/check.js | 56 +++ .../src/views/wms/st/checkbill/index.vue | 345 ++++++++++++++++++ 22 files changed, 2189 insertions(+), 2 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/CheckController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckdtl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckmst.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/CheckInsertDto.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java create mode 100644 wms/nladmin-ui/src/views/wms/st/checkbill/AddDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/st/checkbill/AddDtl.vue create mode 100644 wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/st/checkbill/check.js create mode 100644 wms/nladmin-ui/src/views/wms/st/checkbill/index.vue diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index f4b0355..4f08dae 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -18,6 +18,7 @@ attr.sect_code AS turnout_sect_code, attr.sect_id, attr.struct_id, + attr.struct_name, attr.struct_code AS turnout_struct_code FROM md_pb_storagevehicleext ext diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/CheckController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/CheckController.java new file mode 100644 index 0000000..1d58b2c --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/CheckController.java @@ -0,0 +1,84 @@ +package org.nl.wms.warehouse_management.controller; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; +import org.nl.wms.warehouse_management.service.dto.CheckInsertDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 盘点 控制层 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/check") +@Slf4j +public class CheckController { + + @Autowired + private IStIvtCheckmstService iStIvtCheckmstService; + + @GetMapping + @Log("查询盘点单") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iStIvtCheckmstService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增盘点单") + public ResponseEntity create(@Validated @RequestBody CheckInsertDto dto) { + iStIvtCheckmstService.create(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改盘点单") + public ResponseEntity update(@Validated @RequestBody CheckInsertDto dto) { + iStIvtCheckmstService.update(dto); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除盘点单") + public ResponseEntity delete(@RequestBody Set ids) { + iStIvtCheckmstService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/getDtl") + @Log("获取明细") + public ResponseEntity getDtl(@RequestParam Map whereJson) { + return new ResponseEntity<>(iStIvtCheckmstService.getDtl(whereJson),HttpStatus.OK); + } + + @PostMapping("/saveCheck") + @Log("保存盘点") + public ResponseEntity saveCheck(@RequestBody CheckInsertDto dto) { + iStIvtCheckmstService.saveCheck(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("确认盘点") + public ResponseEntity confirm(@RequestBody CheckInsertDto dto) { + iStIvtCheckmstService.confirm(dto); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java index ecea478..912671b 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java @@ -17,6 +17,11 @@ public class IOSConstant { */ public final static String IS_DELETE_YES = "1"; + /** + * 创建方式 + */ + public final static String CREATE_TYPE = "1"; + /** * 更新库存状态:加可用(插入数据) */ diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java index b831e77..61ef903 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java @@ -35,12 +35,21 @@ public enum IOSEnum { // 移库单明细状态 MOVE_DTL_STATUS(MapOf.of("生成", "10", "执行中", "20", "完成", "99")), + // 损益单据类型 + MORE_MST_TYPE(MapOf.of("手工损益", "1001", "盘点损益", "1002")), + // 损益单状态 MORE_MST_STATUS(MapOf.of("生成", "10", "审核", "20", "完成", "99")), // 损益类型 MORE_TYPE(MapOf.of("损", "1", "溢", "2")), + // 盘点单主表状态 + CHECK_MST_STATUS(MapOf.of("生成", "10", "盘点中", "20", "完成", "99")), + + // 盘点明细状态 + CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")), + ; private Map code; diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java new file mode 100644 index 0000000..1fbabdd --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckdtlService.java @@ -0,0 +1,41 @@ +package org.nl.wms.warehouse_management.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; +import org.nl.wms.warehouse_management.service.dto.CheckInsertDto; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 服务类 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +public interface IStIvtCheckdtlService extends IService { + + /** + * 新增明细 + * @param dto 新增修改实体dto + */ + void createCheckDtl(CheckInsertDto dto); + + /** + * 获取明细 + * @param whereJson { + * check_id:主表标识 + * } + * @return List + */ + List getDtl(Map whereJson); + + /** + * 创建损益单据 + * @param list 明细实体类集合 + */ + void createMore(List list, String check_id); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java new file mode 100644 index 0000000..b9cbfaf --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCheckmstService.java @@ -0,0 +1,69 @@ +package org.nl.wms.warehouse_management.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckmst; +import org.nl.wms.warehouse_management.service.dto.CheckInsertDto; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 盘点单主表 服务类 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +public interface IStIvtCheckmstService extends IService { + /** + * 分页查询 + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 新增盘点单 + * @param dto 新增修改实体dto + */ + void create(CheckInsertDto dto); + + /** + * 修改盘点单 + * @param dto:新增修改dto实体类 + */ + void update(CheckInsertDto dto); + + /** + * 删除盘点单 + * @param ids 标识集合 + */ + void delete(Set ids); + + /** + * 获取明细 + * @param whereJson { + * check_id: 主表标识 + * } + * @return List + */ + List getDtl(Map whereJson); + + /** + * 到村盘点单 + * @param dto 新增修改dto实体类 + */ + void saveCheck(CheckInsertDto dto); + + /** + * 确认盘点 + * @param dto 新增修改dto实体类 + */ + void confirm(CheckInsertDto dto); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoreorlessmstService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoreorlessmstService.java index 3220d71..eb9f013 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoreorlessmstService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoreorlessmstService.java @@ -33,7 +33,7 @@ public interface IStIvtMoreorlessmstService extends IService * 新增损益单 * @param dto:新增修改dto实体类 */ - void create(MoreOrLessInsertDto dto); + String create(MoreOrLessInsertDto dto); /** * 修改损益单 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckdtl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckdtl.java new file mode 100644 index 0000000..e50fb0b --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckdtl.java @@ -0,0 +1,128 @@ +package org.nl.wms.warehouse_management.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 盘点单明细表 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkdtl") +public class StIvtCheckdtl implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 盘点单明细id + */ + @TableId(value = "checkdtl_id") + private String checkdtl_id; + + /** + * 盘点单标识 + */ + private String check_id; + + /** + * 明细序号 + */ + private BigDecimal seq_no; + + /** + * 盘点库区 + */ + private String sect_code; + + /** + * 盘点货位 + */ + private String struct_code; + + /** + * 盘点站台 + */ + private String checkpoint_code; + + /** + * 存储载具编码 + */ + private String storagevehicle_code; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 库存数量 + */ + private BigDecimal base_qty; + + /** + * 基本计量单位 + */ + private String qty_unit_id; + + /** + * 单位名称 + */ + private String qty_unit_name; + + /** + * 状态 + */ + private String status; + + /** + * 是否已下发 + */ + private String is_down; + + /** + * 盘点数量 + */ + private BigDecimal fac_qty; + + /** + * 盘点结果 + */ + private String check_result; + + /** + * 盘点人 + */ + private String check_optid; + + /** + * 盘点人姓名 + */ + private String check_optname; + + /** + * 盘点时间 + */ + private String check_time; + + /** + * 明细备注 + */ + private String remark; + + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckmst.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckmst.java new file mode 100644 index 0000000..442a58c --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCheckmst.java @@ -0,0 +1,128 @@ +package org.nl.wms.warehouse_management.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 盘点单主表 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkmst") +public class StIvtCheckmst implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 盘点单标识 + */ + @TableId(value = "check_id") + private String check_id; + + /** + * 盘点单号 + */ + private String check_code; + + /** + * 盘点单类型 + */ + private String check_type; + + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 明细数 + */ + private BigDecimal dtl_num; + + /** + * 生成方式 + */ + private String create_mode; + + /** + * 制单人 + */ + private String input_optid; + + /** + * 制单人姓名 + */ + private String input_optname; + + /** + * 制单时间 + */ + private String input_time; + + /** + * 审核人 + */ + private String audit_optid; + + /** + * 审核人姓名 + */ + private String audit_optname; + + /** + * 审核时间 + */ + private String audit_time; + + /** + * 确认人 + */ + private String confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 备注 + */ + private String remark; + + /** + * 状态 + */ + private String status; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 是否已上传 + */ + private String is_upload; + + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java new file mode 100644 index 0000000..166bc69 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.java @@ -0,0 +1,29 @@ +package org.nl.wms.warehouse_management.service.dao.mapper; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 Mapper 接口 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +public interface StIvtCheckdtlMapper extends BaseMapper { + + /** + * 获取明细 + * @param whereJson { + * check_id 主表标识 + * } + * @return List + */ + List getDtl(@Param("param") Map whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml new file mode 100644 index 0000000..f014af8 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckdtlMapper.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.java new file mode 100644 index 0000000..0e1ced3 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.java @@ -0,0 +1,15 @@ +package org.nl.wms.warehouse_management.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckmst; + +/** + *

+ * 盘点单主表 Mapper 接口 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +public interface StIvtCheckmstMapper extends BaseMapper { +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.xml new file mode 100644 index 0000000..9080108 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCheckmstMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/CheckInsertDto.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/CheckInsertDto.java new file mode 100644 index 0000000..5f1c82e --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/CheckInsertDto.java @@ -0,0 +1,75 @@ +package org.nl.wms.warehouse_management.service.dto; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 盘点新增修改dto实体类 + * @author Liuxy + * 2025/5/29 + */ +@Data +public class CheckInsertDto { + + /** + * 单据标识 + */ + private String check_id; + + /** + * 单据类型 + */ + private String check_type; + + /** + * 生成方式 + */ + private String create_mode; + + /** + * 明细数 + */ + private BigDecimal dtl_num; + + /** + * 备注 + */ + private String remark; + + /** + * 状态 + */ + private String status; + + /** + * 仓库id + */ + private String stor_id; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 明细数据: + * { + * sect_code 库区 + * struct_code 货位 + * storagevehicle_code 载具编码 + * material_id 物料id + * material_code 物料编码 + * pcsn 批次 + * base_qty 库存数量 + * fac_qty 盘点数量 + * qty_unit_id 计量单位标识 + * qty_unit_name 计量单位名称 + * status 状态 + * remark 备注 + * } + */ + private List tableData; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java new file mode 100644 index 0000000..bc584b5 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckdtlServiceImpl.java @@ -0,0 +1,131 @@ +package org.nl.wms.warehouse_management.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.utils.IdUtil; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService; +import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; +import org.nl.wms.warehouse_management.service.IStIvtMoreorlessmstService; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckmst; +import org.nl.wms.warehouse_management.service.dao.mapper.StIvtCheckdtlMapper; +import org.nl.wms.warehouse_management.service.dto.CheckInsertDto; +import org.nl.wms.warehouse_management.service.dto.MoreOrLessInsertDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + *

+ * 盘点单明细表 服务实现类 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +@Service +public class StIvtCheckdtlServiceImpl extends ServiceImpl implements IStIvtCheckdtlService { + + /** + * 盘点单主表服务 + */ + @Autowired + private IStIvtCheckmstService iStIvtCheckmstService; + + /** + * 损益单主表服务 + */ + @Autowired + private IStIvtMoreorlessmstService iStIvtMoreorlessmstService; + + @Override + public void createCheckDtl(CheckInsertDto dto) { + // 批量新增集合 + List dtlDaoList = new ArrayList<>(); + for (int i = 0; i < dto.getTableData().size(); i++) { + JSONObject json = dto.getTableData().get(i); + StIvtCheckdtl dao = new StIvtCheckdtl(); + dao.setCheckdtl_id(IdUtil.getStringId()); + dao.setCheck_id(dto.getCheck_id()); + dao.setSeq_no(BigDecimal.valueOf(i+1)); + dao.setSect_code(json.getString("sect_code")); + dao.setStruct_code(json.getString("struct_code")); + dao.setStoragevehicle_code(json.getString("storagevehicle_code")); + dao.setMaterial_id(json.getString("material_id")); + dao.setPcsn(json.getString("pcsn")); + dao.setBase_qty(json.getBigDecimal("base_qty")); + dao.setFac_qty(json.getBigDecimal("fac_qty")); + dao.setQty_unit_id(json.getString("qty_unit_id")); + dao.setQty_unit_name(json.getString("qty_unit_name")); + dao.setStatus(json.getString("status")); + dao.setRemark(json.getString("remark")); + dtlDaoList.add(dao); + } + this.saveBatch(dtlDaoList); + } + + @Override + public List getDtl(Map whereJson) { + return this.baseMapper.getDtl(whereJson); + } + + @Override + public void createMore(List dtlDaoList, String check_id) { + StIvtCheckmst mstDao = iStIvtCheckmstService.getById(check_id); + for (StIvtCheckdtl dao : dtlDaoList) { + // 组织创建损益单据主数据 + MoreOrLessInsertDto moreDto = new MoreOrLessInsertDto(); + moreDto.setMol_inv_type(IOSEnum.MORE_MST_TYPE.code("盘点损益")); + // 根据库存数量以及盘点数量来判断损益类型 + double base_qty = dao.getBase_qty().doubleValue(); + double fac_qty = dao.getFac_qty().doubleValue(); + double mol_qty; + if (base_qty == fac_qty) { + continue; + } else if (base_qty > fac_qty) { + moreDto.setMol_type(IOSEnum.MORE_TYPE.code("损")); + mol_qty = NumberUtil.sub(base_qty, fac_qty); + } else { + moreDto.setMol_type(IOSEnum.MORE_TYPE.code("溢")); + mol_qty = NumberUtil.sub(fac_qty, base_qty); + } + moreDto.setBiz_date(DateUtil.today()); + moreDto.setDtl_num(BigDecimal.valueOf(1)); + moreDto.setStor_id(mstDao.getStor_id()); + moreDto.setRemark("由明细标识【"+dao.getCheck_optid()+"】创建"); + moreDto.setTotal_qty(BigDecimal.valueOf(mol_qty)); + moreDto.setCreate_mode(IOSConstant.CREATE_TYPE); + moreDto.setStatus(IOSEnum.MORE_MST_STATUS.code("生成")); + + // 创建损益单明细数据 + List tableData = new ArrayList<>(); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("material_id", dao.getMaterial_id()); + jsonDtl.put("pcsn", dao.getPcsn()); + jsonDtl.put("ivt_qty", base_qty); + jsonDtl.put("mol_qty", mol_qty); + jsonDtl.put("qty_unit_id", dao.getQty_unit_id()); + jsonDtl.put("qty_unit_name", dao.getQty_unit_name()); + jsonDtl.put("storagevehicle_code", dao.getStoragevehicle_code()); + jsonDtl.put("sect_code", dao.getSect_code()); + jsonDtl.put("struct_code", dao.getStruct_code()); + jsonDtl.put("status", IOSEnum.MORE_MST_STATUS.code("生成")); + jsonDtl.put("remark", "由明细标识【"+dao.getCheck_optid()+"】创建"); + jsonDtl.put("source_bill_code", mstDao.getCheck_code()); + tableData.add(jsonDtl); + moreDto.setTableData(tableData); + //调用创建 + String mol_id = iStIvtMoreorlessmstService.create(moreDto); + // 调用强制确认 + iStIvtMoreorlessmstService.confirm(iStIvtMoreorlessmstService.getById(mol_id)); + } + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java new file mode 100644 index 0000000..a5c09bf --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCheckmstServiceImpl.java @@ -0,0 +1,168 @@ +package org.nl.wms.warehouse_management.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +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.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IStIvtCheckdtlService; +import org.nl.wms.warehouse_management.service.IStIvtCheckmstService; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckdtl; +import org.nl.wms.warehouse_management.service.dao.StIvtCheckmst; +import org.nl.wms.warehouse_management.service.dao.mapper.StIvtCheckmstMapper; +import org.nl.wms.warehouse_management.service.dto.CheckInsertDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 盘点单主表 服务实现类 + *

+ * + * @author Liuxy + * @since 2025-05-29 + */ +@Service +public class StIvtCheckmstServiceImpl extends ServiceImpl implements IStIvtCheckmstService { + + @Autowired + private IStIvtCheckdtlService iStIvtCheckdtlService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + String check_code = MapUtil.getStr(whereJson, "check_code"); + String stor_id = MapUtil.getStr(whereJson, "stor_id"); + String status = MapUtil.getStr(whereJson, "status"); + String check_type = MapUtil.getStr(whereJson, "check_type"); + String create_mode = MapUtil.getStr(whereJson, "create_mode"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + // 查询条件 + LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda(); + queryWrapper.like(ObjectUtil.isNotEmpty(check_code), StIvtCheckmst::getCheck_code, check_code); + queryWrapper.eq(ObjectUtil.isNotEmpty(stor_id), StIvtCheckmst::getStor_id, stor_id); + queryWrapper.eq(ObjectUtil.isNotEmpty(check_type), StIvtCheckmst::getCheck_type, check_type); + queryWrapper.eq(ObjectUtil.isNotEmpty(status), StIvtCheckmst::getStatus, status); + queryWrapper.eq(ObjectUtil.isNotEmpty(create_mode), StIvtCheckmst::getCreate_mode, create_mode); + queryWrapper.ge(ObjectUtil.isNotEmpty(begin_time), StIvtCheckmst::getInput_time, begin_time); + queryWrapper.lt(ObjectUtil.isNotEmpty(end_time), StIvtCheckmst::getInput_time, end_time); + queryWrapper.eq(StIvtCheckmst::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")); + queryWrapper.orderByDesc(StIvtCheckmst::getInput_time); + return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), + queryWrapper + ); + } + + @Override + @Transactional + public void create(CheckInsertDto dto) { + // 主表 + StIvtCheckmst mstDao = new StIvtCheckmst(); + mstDao.setCheck_id(IdUtil.getStringId()); + mstDao.setCheck_code(CodeUtil.getNewCode("CHECK_BILL_CODE")); + mstDao.setCheck_type(dto.getCheck_type()); + mstDao.setStor_id(dto.getStor_id()); + mstDao.setStor_name(dto.getStor_name()); + mstDao.setDtl_num(dto.getDtl_num()); + mstDao.setCreate_mode(dto.getCreate_mode()); + mstDao.setStatus(dto.getStatus()); + mstDao.setRemark(dto.getRemark()); + mstDao.setInput_optid(SecurityUtils.getCurrentUserId()); + mstDao.setInput_optname(SecurityUtils.getCurrentNickName()); + mstDao.setInput_time(DateUtil.now()); + this.save(mstDao); + // 明细 + dto.setCheck_id(mstDao.getCheck_id()); + iStIvtCheckdtlService.createCheckDtl(dto); + } + + @Override + @Transactional + public void update(CheckInsertDto dto) { + StIvtCheckmst mstDao = this.getById(dto.getCheck_id()); + mstDao.setStor_id(dto.getStor_id()); + mstDao.setCheck_type(dto.getCheck_type()); + mstDao.setDtl_num(dto.getDtl_num()); + this.updateById(mstDao); + // 删除老明细 + iStIvtCheckdtlService.remove( + new QueryWrapper().lambda() + .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) + ); + // 新增明细 + iStIvtCheckdtlService.createCheckDtl(dto); + } + + @Override + public void delete(Set ids) { + this.update( + new UpdateWrapper().lambda() + .in(StIvtCheckmst::getCheck_id,ids) + .set(StIvtCheckmst::getIs_delete, IOSConstant.IS_DELETE_YES) + ); + } + + @Override + public List getDtl(Map whereJson) { + return iStIvtCheckdtlService.getDtl(whereJson); + } + + @Override + @Transactional + public void saveCheck(CheckInsertDto dto) { + StIvtCheckmst mstDao = this.getById(dto.getCheck_id()); + mstDao.setStatus(IOSEnum.CHECK_MST_STATUS.code("盘点中")); + this.updateById(mstDao); + // 更新明细 + iStIvtCheckdtlService.remove( + new QueryWrapper().lambda() + .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) + ); + iStIvtCheckdtlService.createCheckDtl(dto); + iStIvtCheckdtlService.update( + new UpdateWrapper().lambda() + .eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id()) + .set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("盘点中")) + ); + } + + @Override + @Transactional + public void confirm(CheckInsertDto dto) { + // 更新主表 + StIvtCheckmst mstDao = this.getById(dto.getCheck_id()); + mstDao.setStatus(IOSEnum.CHECK_MST_STATUS.code("完成")); + mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId()); + mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName()); + mstDao.setConfirm_time(DateUtil.now()); + this.updateById(mstDao); + // 更新明细 + iStIvtCheckdtlService.update( + new UpdateWrapper().lambda() + .eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id()) + .set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成")) + ); + // 创建损益单 + iStIvtCheckdtlService.createMore(iStIvtCheckdtlService.list( + new QueryWrapper().lambda() + .eq(StIvtCheckdtl::getCheck_id,mstDao.getCheck_id()) + ),mstDao.getCheck_id()); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoreorlessmstServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoreorlessmstServiceImpl.java index 91350b1..5c75018 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoreorlessmstServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoreorlessmstServiceImpl.java @@ -59,7 +59,7 @@ public class StIvtMoreorlessmstServiceImpl extends ServiceImpl + + + + + + + + 保存 + 关闭 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 盘点明细 + + + + + + 添加盘点物料 + + + +
+ + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/AddDtl.vue b/wms/nladmin-ui/src/views/wms/st/checkbill/AddDtl.vue new file mode 100644 index 0000000..ee8efce --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/AddDtl.vue @@ -0,0 +1,230 @@ + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue b/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue new file mode 100644 index 0000000..61fb745 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/check.js b/wms/nladmin-ui/src/views/wms/st/checkbill/check.js new file mode 100644 index 0000000..eb11069 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/check.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/check', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/check/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/check', + method: 'put', + data + }) +} + +export function getDtl(params) { + return request({ + url: '/api/check/getDtl', + method: 'get', + params + }) +} +export function getStructIvt(params) { + return request({ + url: '/api/check/getStructIvt', + method: 'get', + params + }) +} + +export function confirm(data) { + return request({ + url: '/api/check/confirm', + method: 'post', + data + }) +} +export function saveCheck(data) { + return request({ + url: '/api/check/saveCheck', + method: 'post', + data + }) +} +export default { add, edit, del, getDtl, getStructIvt, confirm, saveCheck } diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/index.vue b/wms/nladmin-ui/src/views/wms/st/checkbill/index.vue new file mode 100644 index 0000000..f8a9f51 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/index.vue @@ -0,0 +1,345 @@ + + + + From 8426e2a2cbbf5bd6b36f757210b4afa266ba03c5 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 3 Jun 2025 16:46:46 +0800 Subject: [PATCH 2/4] =?UTF-8?q?add=EF=BC=9A=E5=87=BA=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=9B=9E=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/ext/service/WmsToErpService.java | 26 ++ .../ext/service/impl/WmsToErpServiceImpl.java | 54 +++ .../controller/ReturnController.java | 55 +++ .../service/ReturnService.java | 45 +++ .../service/impl/RetrunServiceImpl.java | 197 ++++++++++ .../{XgAgvDeviceDriver.xml => WmsToErp.xml} | 14 +- .../src/main/resources/logback-spring.xml | 4 +- wms/nladmin-ui/src/utils/nladmin.js | 6 +- .../wms/st/inAndOutReturn/inandoutreturn.js | 43 +++ .../src/views/wms/st/inAndOutReturn/index.vue | 355 ++++++++++++++++++ 10 files changed, 783 insertions(+), 16 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToErpService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToErpServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ReturnController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/ReturnService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RetrunServiceImpl.java rename wms/nladmin-system/nlsso-server/src/main/resources/log/{XgAgvDeviceDriver.xml => WmsToErp.xml} (67%) create mode 100644 wms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js create mode 100644 wms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToErpService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToErpService.java new file mode 100644 index 0000000..654023f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToErpService.java @@ -0,0 +1,26 @@ +package org.nl.wms.ext.service; + +import com.alibaba.fastjson.JSONObject; + +/** + *

+ * WMS调用ERP 服务类 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +public interface WmsToErpService { + + /** + * 出入库单据回传 + * @param whereJson { + * data: [] + * } + * @return JSONObject { + * status: 200 / !=200 + * message: 信息 + * } + */ + JSONObject uploadErp(JSONObject whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToErpServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToErpServiceImpl.java new file mode 100644 index 0000000..45bfa41 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToErpServiceImpl.java @@ -0,0 +1,54 @@ +package org.nl.wms.ext.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.ext.service.WmsToErpService; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +/** + *

+ * WMS调用ERP 实现类 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +@Service +@Slf4j +public class WmsToErpServiceImpl implements WmsToErpService { + + @Override + public JSONObject uploadErp(JSONObject whereJson) { + log.info("uploadErp接口输入参数为:-------------------" + whereJson.toString()); + JSONObject result = new JSONObject(); + + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ERP_URL").getValue(); + String api = "CamstarApi/MomRollBakeInBound"; + url = url + api; + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(whereJson)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("uploadErp接口输出参数为:-------------------" + result.toString()); + + + Integer status = result.getInteger("status"); + if (status != HttpStatus.OK.value()) { + throw new BadRequestException(result.getString("message")); + } + + } catch (Exception e) { + throw new BadRequestException("ERP提示错误:" + e.getMessage()); + } + return result; + + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ReturnController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ReturnController.java new file mode 100644 index 0000000..efedaed --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ReturnController.java @@ -0,0 +1,55 @@ +package org.nl.wms.warehouse_management.controller; + + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_management.service.ReturnService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + *

+ * 出入库回传 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/iosReturn") +@Slf4j +public class ReturnController { + + @Autowired + private ReturnService returnService; + + @GetMapping + @Log("查询出入库单") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(returnService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping("/upload") + @Log("回传") + public ResponseEntity upload(@RequestBody JSONObject whereJson) { + returnService.upload(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/disupload") + @Log("不回传") + public ResponseEntity disupload(@RequestBody JSONObject whereJson) { + returnService.disupload(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/ReturnService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/ReturnService.java new file mode 100644 index 0000000..c82cb50 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/ReturnService.java @@ -0,0 +1,45 @@ +package org.nl.wms.warehouse_management.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; + +import java.util.Map; + + +/** + *

+ * 出入库回传 服务类 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +public interface ReturnService extends IService { + + /** + * 分页查询 + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 回传 + * @param whereJson { + * rows: [] + * } + */ + void upload(JSONObject whereJson); + + /** + * 不回传 + * @param whereJson { + * rows: [] + * } + */ + void disupload(JSONObject whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RetrunServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RetrunServiceImpl.java new file mode 100644 index 0000000..32ee0d1 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RetrunServiceImpl.java @@ -0,0 +1,197 @@ +package org.nl.wms.warehouse_management.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +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.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; +import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; +import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; +import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; +import org.nl.wms.ext.service.WmsToErpService; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.ReturnService; +import org.nl.wms.warehouse_management.service.dao.IOStorInv; +import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

+ * 出入库回传 实现类 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +@Service +public class RetrunServiceImpl extends ServiceImpl implements ReturnService { + + /** + * 出入库mapper服务 + */ + @Autowired + private IOStorInvDisMapper ioStorInvDisMapper; + + /** + * 物料基础服务 + */ + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; + + /** + * 计量单位服务 + */ + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; + + /** + * WMS调用ERP服务类 + */ + @Autowired + private WmsToErpService wmsToErpService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + String stor_id = MapUtil.getStr(whereJson, "stor_id"); + String io_type = MapUtil.getStr(whereJson, "io_type"); + String bill_type = MapUtil.getStr(whereJson, "bill_type"); + String bill_code = MapUtil.getStr(whereJson, "bill_code"); + String is_upload = MapUtil.getStr(whereJson, "is_upload"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + + LambdaQueryWrapper lambda = new QueryWrapper().lambda(); + lambda.eq(ObjectUtil.isNotEmpty(stor_id), IOStorInv::getStor_id, stor_id); + lambda.eq(ObjectUtil.isNotEmpty(io_type), IOStorInv::getIo_type, io_type); + lambda.eq(ObjectUtil.isNotEmpty(bill_type), IOStorInv::getBill_type, bill_type); + lambda.like(ObjectUtil.isNotEmpty(bill_code), IOStorInv::getBill_code, bill_code); + lambda.eq(ObjectUtil.isNotEmpty(is_upload), IOStorInv::getIs_upload, is_upload); + lambda.ge(ObjectUtil.isNotEmpty(begin_time), IOStorInv::getInput_time, begin_time); + lambda.lt(ObjectUtil.isNotEmpty(end_time), IOStorInv::getInput_time, end_time); + lambda.eq(IOStorInv::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")); + lambda.eq(IOStorInv::getBill_status, IOSEnum.CHECK_MST_STATUS.code("完成")); + lambda.orderByDesc(IOStorInv::getInput_time); + return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), + lambda + ); + } + + @Override + public void upload(JSONObject whereJson) { + List rows = whereJson.getJSONArray("rows").toJavaList(JSONObject.class); + // 根据主表id查询所有分配明细 + List iosDisList = ioStorInvDisMapper.selectList( + new QueryWrapper().lambda() + .in(IOStorInvDis::getIostorinv_id, rows.stream() + .map(row -> row.getString("iostorinv_id")) + .collect(Collectors.toList()) + ) + ); + // 查询所有物料 + List materList = iMdMeMaterialbaseService.list( + new QueryWrapper().lambda() + .in(MdMeMaterialbase::getMaterial_id, iosDisList.stream() + .map(IOStorInvDis::getMaterial_id) + .distinct() + .collect(Collectors.toList()) + + ) + ); + // 查询所有计量单位 + List unitList = iMdPbMeasureunitService.list( + new QueryWrapper().lambda() + .in(MdPbMeasureunit::getMeasure_unit_id, iosDisList.stream() + .map(IOStorInvDis::getQty_unit_id) + .distinct() + .collect(Collectors.toList())) + ); + + // 需回传数据集合 + List paramList = new ArrayList<>(); + for(IOStorInvDis disDao : iosDisList) { + JSONObject param = new JSONObject(); + // 物料编码 + MdMeMaterialbase materDao = materList.stream() + .filter(row -> row.getMaterial_id().equals(disDao.getMaterial_id())) + .findFirst().orElse(null); + param.put("mater_code", materDao.getExt_id()); + // 批次 + param.put("batch_no", disDao.getPcsn()); + // 数量 + param.put("quantity", disDao.getReal_qty()); + // 计量单位 + MdPbMeasureunit unitDao = unitList.stream() + .filter(row -> row.getMeasure_unit_id().equals(disDao.getQty_unit_id())) + .findFirst().orElse(null); + param.put("unit_code", unitDao.getExt_id()); + // 仓库编码 + JSONObject jsonMst = rows.stream() + .filter(row -> row.getString("iostorinv_id").equals(disDao.getIostorinv_id())) + .findFirst().orElse(null); + param.put("stor_code", jsonMst.getString("stor_code")); + // 货位编码 + param.put("point_code", disDao.getStruct_code()); + // 载具编码 + param.put("pallet_code", disDao.getStoragevehicle_code()); + // 单据号 + param.put("inv_code", jsonMst.getString("bill_code")); + // 业务类型 + param.put("task_type", jsonMst.getString("bill_type")); + paramList.add(param); + } + JSONObject jsonParam = new JSONObject(); + jsonParam.put("data", paramList); + wmsToErpService.uploadErp(jsonParam); + + // 更新主表 + this.update( + new UpdateWrapper().lambda() + .in(IOStorInv::getIostorinv_id, rows.stream() + .map(row -> row.getString("iostorinv_id")) + .collect(Collectors.toList()) + ) + .set(IOStorInv::getIs_upload, IOSConstant.IS_DELETE_YES) + .set(IOStorInv::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(IOStorInv::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(IOStorInv::getUpdate_time, DateUtil.now()) + ); + + } + + @Override + @Transactional + public void disupload(JSONObject whereJson) { + List rows = whereJson.getJSONArray("rows").toJavaList(JSONObject.class); + List idList = rows.stream() + .map(row -> row.getString("iostorinv_id")) + .collect(Collectors.toList()); + // 更新 + this.update( + new UpdateWrapper().lambda() + .in(IOStorInv::getIo_type, idList) + .set(IOStorInv::getIs_upload, IOSConstant.IS_DELETE_YES) + .set(IOStorInv::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(IOStorInv::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(IOStorInv::getUpdate_time, DateUtil.now()) + ); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml b/wms/nladmin-system/nlsso-server/src/main/resources/log/WmsToErp.xml similarity index 67% rename from wms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml rename to wms/nladmin-system/nlsso-server/src/main/resources/log/WmsToErp.xml index c805802..6684b21 100644 --- a/wms/nladmin-system/nlsso-server/src/main/resources/log/XgAgvDeviceDriver.xml +++ b/wms/nladmin-system/nlsso-server/src/main/resources/log/WmsToErp.xml @@ -2,12 +2,11 @@ - - + - ${LOG_HOME}/XgAgvDeviceDriver/${DEVICECODE}/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/WmsToErp/%d{yyyy-MM-dd}.%i.log 15 @@ -22,13 +21,8 @@ - - - - - + + diff --git a/wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index aaedad5..a480500 100644 --- a/wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -15,9 +15,7 @@ https://juejin.cn/post/6844903775631572999 value="%cyan(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %blue(%msg%n)"/> - - + diff --git a/wms/nladmin-ui/src/utils/nladmin.js b/wms/nladmin-ui/src/utils/nladmin.js index fb347e6..e5f7d36 100644 --- a/wms/nladmin-ui/src/utils/nladmin.js +++ b/wms/nladmin-ui/src/utils/nladmin.js @@ -234,14 +234,14 @@ export async function blobValidate(data) { * 注:prop,title有一个必传 */ export function flexWidth(prop, tableData, title, num = 0) { + if (!tableData || tableData.length === 0) { // 表格没数据不做处理 + return + } let flexWidth = 0// 初始化表格列宽 let columnContent = ''// 占位最宽的内容 const canvas = document.createElement('canvas') const context = canvas.getContext('2d') context.font = '14px Microsoft YaHei' - if (tableData.length === 0) { // 表格没数据不做处理 - return context.measureText(title).width + 20 + num + 'px' - } // 获取占位最宽的内容 let index = 0 for (let i = 0; i < tableData.length; i++) { // 循环表格内容,获取表格内容中最长的数据 diff --git a/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js b/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js new file mode 100644 index 0000000..79241b4 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/iosReturn', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/iosReturn/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/iosReturn', + method: 'put', + data + }) +} + +export function upload(data) { + return request({ + url: '/api/iosReturn/upload', + method: 'post', + data + }) +} + +export function disupload(data) { + return request({ + url: '/api/iosReturn/disupload', + method: 'post', + data + }) +} + +export default { add, edit, del, upload, disupload } diff --git a/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue b/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue new file mode 100644 index 0000000..aeb37b3 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue @@ -0,0 +1,355 @@ + + + + From 7615864a66a5d1130c2142111519a17557e2aca6 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 3 Jun 2025 19:10:26 +0800 Subject: [PATCH 3/4] =?UTF-8?q?add=EF=BC=9A=E5=BA=93=E5=AD=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StructIvtController.java | 43 ++++ .../IMdPbStoragevehicleextService.java | 11 ++ .../mapper/MdPbStoragevehicleextMapper.java | 8 + .../mapper/MdPbStoragevehicleextMapper.xml | 54 +++++ .../MdPbStoragevehicleextServiceImpl.java | 10 + .../views/wms/statement/structivt/index.vue | 184 ++++++++++++++++++ .../wms/statement/structivt/structivt.js | 65 +++++++ 7 files changed, 375 insertions(+) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java create mode 100644 wms/nladmin-ui/src/views/wms/statement/structivt/index.vue create mode 100644 wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java new file mode 100644 index 0000000..998d67a --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java @@ -0,0 +1,43 @@ +package org.nl.wms.basedata_manage.controller; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + + +/** + *

+ * 载具扩展属性表 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/structivt") +@Slf4j +public class StructIvtController { + + @Resource + private final IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + @GetMapping + @Log("查询库存") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iMdPbStoragevehicleextService.queryAll(whereJson, page)), HttpStatus.OK); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java index 1615d10..06c3e79 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java @@ -1,10 +1,13 @@ package org.nl.wms.basedata_manage.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import java.util.List; +import java.util.Map; /** *

@@ -16,6 +19,14 @@ import java.util.List; */ public interface IMdPbStoragevehicleextService extends IService { + /** + * 分页查询 + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + /** * 更新库存以及仓位状态 * @param updateIvtList :{ diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java index 1e1cb71..a75734a 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -26,4 +26,12 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper */ IPage getCanuseIvt(Page page, @Param("param") Map whereJson); + + /** + * 分页查询 + * @param page 分页条件 + * @param whereJson 查询条件 + * @return IPage + */ + IPage queryAllByPage(Page page, @Param("param") Map whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 4f08dae..d380e79 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -57,4 +57,58 @@ ORDER BY ext.insert_time Desc + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java index 74b0839..d23b4e0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -1,7 +1,10 @@ package org.nl.wms.basedata_manage.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; @@ -10,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; /** *

@@ -28,6 +32,12 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { + return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), + whereJson); + } + @Override public void updateIvt(List updateIvtList) { for (JSONObject json : updateIvtList) { diff --git a/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue b/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue new file mode 100644 index 0000000..ef17796 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js b/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js new file mode 100644 index 0000000..52927a9 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js @@ -0,0 +1,65 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/structivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/structivt/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/structivt', + method: 'put', + data + }) +} + +export function getStruct() { + return request({ + url: 'api/structivt/getStruct', + method: 'get' + }) +} + +export function getStructById(data) { + return request({ + url: 'api/structivt/getStructById', + method: 'post', + data + }) +} + +export function getUnits() { + return request({ + url: 'api/structivt/getUnits', + method: 'get' + }) +} + +export function save(data) { + return request({ + url: 'api/structivt/save', + method: 'post', + data: data + }) +} + +export function excelImport(data) { + return request({ + url: 'api/structivt/importExcel', + method: 'post', + data + }) +} + +export default { add, edit, del, getStruct, getStructById, getUnits, save, excelImport } From 7a718a53573553dff1aa52c99dd0d9614850f80a Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 4 Jun 2025 13:35:06 +0800 Subject: [PATCH 4/4] =?UTF-8?q?rev=EF=BC=9A=E6=89=8B=E6=8C=81=E7=99=BB?= =?UTF-8?q?=E9=99=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/menu/ISysMenuService.java | 6 +++ .../menu/dao/mapper/SysMenuMapper.java | 10 +++++ .../service/menu/dao/mapper/SysMenuMapper.xml | 39 ++++++++++++++++++ .../service/menu/impl/SysMenuServiceImpl.java | 40 +++++++++++++++++++ .../controller/AuthorizationsController.java | 36 +++++++++++++++++ 5 files changed, 131 insertions(+) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/authorization/controller/AuthorizationsController.java diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java index 122f786..ac81039 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java @@ -158,4 +158,10 @@ public interface ISysMenuService extends IService { */ List getMenusByRole(String roleId, String systemType, String category); + /** + * 获取菜单 + * @param param {} + * @return Map + */ + Map queryAuthority(Map param); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java index 3d7cafc..e1356e1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java @@ -1,5 +1,6 @@ package org.nl.system.service.menu.dao.mapper; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; @@ -80,4 +81,13 @@ public interface SysMenuMapper extends BaseMapper { * @return / */ String findAllChild(String pid); + + /** + * + * @param accountId 用户id + * @param component 组件 + * @param pid 父级id + * @return JSONArray + */ + JSONArray queryPdaAuthority(String accountId, String component, String pid); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml index 2664d38..32ff687 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml @@ -99,4 +99,43 @@ ) t3 where childId != '0' + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index 2fa76ef..ea04c4f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.system.service.menu.impl; import cn.hutool.core.map.MapUtil; 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; @@ -468,4 +470,42 @@ public class SysMenuServiceImpl extends ServiceImpl impl baseMapper.getMenusByRole(systemType,category); return null; } + + @Override + public Map queryAuthority(Map param) { + String accountId = SecurityUtils.getCurrentUserId(); + JSONObject returnjo = new JSONObject(); + if (StrUtil.isEmpty(accountId)) { + returnjo.put("code", "0"); + returnjo.put("desc", "用户id不能为空!"); + returnjo.put("result", new JSONArray()); + } + //查询一级 + JSONArray pa = baseMapper.queryPdaAuthority(accountId, "0", null); + if(ObjectUtil.isEmpty(pa)){ + throw new BadRequestException("当前用户无菜单权限!"); + } + JSONObject result = new JSONObject(); + for (int i = 0; i < pa.size(); i++) { + JSONObject res = pa.getJSONObject(i); + //查询二级 + JSONArray secondResults = baseMapper.queryPdaAuthority(accountId, "1", res.getString("menu_id")); + //查询三级 + JSONArray roleTree = new JSONArray(); + for (int j = 0; j < secondResults.size(); j++) { + JSONObject row = secondResults.getJSONObject(j); + String menu_id = row.getString("menu_id"); + JSONArray ThirdResults = baseMapper.queryPdaAuthority(accountId, "2", menu_id); + row.put("sonTree", ThirdResults); + roleTree.add(row); + } + res.put("sonTree", roleTree); + result.put("rf_menu0", res); + } + + returnjo.put("code", "1"); + returnjo.put("desc", "查询成功!"); + returnjo.put("result", result); + return returnjo; + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/authorization/controller/AuthorizationsController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/authorization/controller/AuthorizationsController.java new file mode 100644 index 0000000..a44d787 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/authorization/controller/AuthorizationsController.java @@ -0,0 +1,36 @@ +package org.nl.wms.pda.authorization.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import lombok.extern.slf4j.Slf4j; +import org.nl.system.service.menu.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + *

+ * 手持端 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-04 + */ +@Slf4j +@RestController +@RequestMapping("/api/pda") +public class AuthorizationsController { + @Autowired + private ISysMenuService menuService; + + @PostMapping(value = "/authority") + @SaIgnore + public ResponseEntity queryAuthority(@RequestBody Map param) { + return new ResponseEntity<>(menuService.queryAuthority(param), HttpStatus.OK); + } +}