From de9098f68afeb82b4e10509d95461204f9be16f1 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 22 May 2025 09:34:12 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E4=BB=BB=E5=8A=A1=E9=85=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E7=AE=A1=E7=90=86=EF=BC=8C=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SchBasePointController.java | 78 +++ .../controller/SchBaseRegionController.java | 76 +++ .../wms/sch_manage/enums/PointStatusEnum.java | 29 + .../service/ISchBasePointService.java | 86 +++ .../service/ISchBaseRegionService.java | 73 +++ .../sch_manage/service/dao/SchBasePoint.java | 160 +++++ .../sch_manage/service/dao/SchBaseRegion.java | 64 ++ .../dao/mapper/SchBasePointMapper.java | 47 ++ .../service/dao/mapper/SchBasePointMapper.xml | 66 +++ .../dao/mapper/SchBaseRegionMapper.java | 12 + .../dao/mapper/SchBaseRegionMapper.xml | 5 + .../service/dto/SchBasePointQuery.java | 21 + .../service/impl/SchBasePointServiceImpl.java | 184 ++++++ .../impl/SchBaseRegionServiceImpl.java | 136 +++++ .../sch_manage/service/util/PointUtils.java | 29 + .../src/views/wms/sch/point/PointDialog.vue | 172 ++++++ .../src/views/wms/sch/point/ViewDialog.vue | 217 +++++++ .../src/views/wms/sch/point/index.vue | 548 ++++++++++++++++++ .../src/views/wms/sch/point/schBasePoint.js | 51 ++ .../src/views/wms/sch/region/index.vue | 193 ++++++ .../src/views/wms/sch/region/schBaseRegion.js | 51 ++ .../src/views/wms/sch/taskconfig/index.vue | 13 +- 22 files changed, 2308 insertions(+), 3 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBasePointController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBaseRegionController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/PointStatusEnum.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseRegionService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBasePoint.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseRegion.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dto/SchBasePointQuery.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseRegionServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/PointUtils.java create mode 100644 wms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/sch/point/index.vue create mode 100644 wms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js create mode 100644 wms/nladmin-ui/src/views/wms/sch/region/index.vue create mode 100644 wms/nladmin-ui/src/views/wms/sch/region/schBaseRegion.js diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBasePointController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBasePointController.java new file mode 100644 index 0000000..a71de9e --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBasePointController.java @@ -0,0 +1,78 @@ +package org.nl.wms.sch_manage.controller; + +import com.alibaba.fastjson.JSONObject; +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.sch_manage.service.ISchBasePointService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.sch_manage.service.dto.SchBasePointQuery; +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.Set; + +/** + * @author Liuxy + * @date 2025-05-20 + **/ +@Slf4j +@RestController + +@RequestMapping("/api/schBasePoint") +public class SchBasePointController { + + @Autowired + private ISchBasePointService schBasePointService; + + @GetMapping + @Log("查询点位管理") + public ResponseEntity query(SchBasePointQuery whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(schBasePointService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增点位管理") + public ResponseEntity create(@Validated @RequestBody SchBasePoint entity) { + schBasePointService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改点位管理") + public ResponseEntity update(@Validated @RequestBody SchBasePoint entity) { + schBasePointService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除点位管理") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + schBasePointService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("启动与禁用") + @PostMapping("/changeUsed") + public ResponseEntity changeUsedOn(@RequestBody JSONObject jsonObject) { + schBasePointService.changeUsed(jsonObject); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/getPointList") + @Log("获取区域下拉框") + public ResponseEntity getPointList(@RequestBody(required = false) SchBasePoint region) { + return new ResponseEntity<>(schBasePointService.getPointList(region), HttpStatus.OK); + } + + @Log("锁定与解锁") + @PostMapping("/changeLock") + public ResponseEntity changeLock(@RequestBody JSONObject points) { + schBasePointService.changeLock(points); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBaseRegionController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBaseRegionController.java new file mode 100644 index 0000000..1b4fff5 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/controller/SchBaseRegionController.java @@ -0,0 +1,76 @@ +package org.nl.wms.sch_manage.controller; + + +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.sch_manage.service.ISchBaseRegionService; +import org.nl.wms.sch_manage.service.dao.SchBaseRegion; +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 + * @date 2025-05-20 + **/ +@Slf4j +@RestController + +@RequestMapping("/api/schBaseRegion") +public class SchBaseRegionController { + + @Autowired + private ISchBaseRegionService regionService; + + @GetMapping + @Log("查询区域管理") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(regionService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增区域管理") + public ResponseEntity create(@Validated @RequestBody SchBaseRegion entity) { + regionService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改区域管理") + public ResponseEntity update(@Validated @RequestBody SchBaseRegion entity) { + regionService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除区域管理") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + regionService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getRegionList") + @Log("获取区域下拉框") + public ResponseEntity getRegionList(@RequestBody(required = false) SchBaseRegion region) { + return new ResponseEntity<>(regionService.getRegionList(region), HttpStatus.OK); + } + + @PostMapping("/getPointStatusSelectById") + @Log("获取点位状态下拉框") + public ResponseEntity getPointStatusSelectById(@RequestBody String region_id) { + return new ResponseEntity<>(regionService.getPointStatusSelectById(region_id), HttpStatus.OK); + } + + @PostMapping("/getPointTypeSelectById") + @Log("获取点位类型下拉框") + public ResponseEntity getPointTypeSelectById(@RequestBody String region_id) { + return new ResponseEntity<>(regionService.getPointTypeSelectById(region_id), HttpStatus.OK); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/PointStatusEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/PointStatusEnum.java new file mode 100644 index 0000000..52b2146 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/enums/PointStatusEnum.java @@ -0,0 +1,29 @@ +package org.nl.wms.sch_manage.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Author: Liuxy + * @Description: + * @Date: 2025/5/20 + */ +@Getter +@AllArgsConstructor +public enum PointStatusEnum { + /** + * 空位/无货 + */ + EMPTY_POINT("1", "空位/无货"), + /** + * 有料 + */ + FULL_POINT("3", "有料"), + /** + * 空载具/有货 + */ + EMPTY_VEHICLE("2", "空载具/有货"); + + private final String code; + private final String label; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java new file mode 100644 index 0000000..3a0046d --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java @@ -0,0 +1,86 @@ +package org.nl.wms.sch_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.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.sch_manage.service.dto.SchBasePointQuery; + +import java.util.List; +import java.util.Set; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2025-05-20 + **/ +public interface ISchBasePointService extends IService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(SchBasePointQuery whereJson, PageQuery pageable); + + /** + * 创建 + * + * @param entity / + */ + void create(SchBasePoint entity); + + /** + * 编辑 + * + * @param entity / + */ + void update(SchBasePoint entity); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Set ids); + + /** + * 改变启用状态 + * + * @param jsonObject 参数 + */ + void changeUsed(JSONObject jsonObject); + + /** + * 获取点位 + * + * @param region 参数 + * @return List + */ + List getPointList(SchBasePoint region); + + /** + * 解锁/上锁 + * + * @param points 参数 + */ + void changeLock(JSONObject points); + + /** + * 获取所有未解锁的点位 + * + * @return List + */ + List getAllUnlockAbnormalPoints(); + + /** + * 行锁获取对应点位 + * + * @param id id + * @return SchBasePoint + */ + SchBasePoint selectByIdLock(String id); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseRegionService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseRegionService.java new file mode 100644 index 0000000..6894cb0 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseRegionService.java @@ -0,0 +1,73 @@ +package org.nl.wms.sch_manage.service; + +import com.alibaba.fastjson.JSONArray; +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.sch_manage.service.dao.SchBaseRegion; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2025-05-20 + **/ +public interface ISchBaseRegionService extends IService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * + * @param entity / + */ + void create(SchBaseRegion entity); + + /** + * 编辑 + * + * @param entity / + */ + void update(SchBaseRegion entity); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Set ids); + + /** + * 区域下拉框 + * + * @param region 区域 + * @return / + */ + List getRegionList(SchBaseRegion region); + + /** + * 获取点位状态下拉框 + * + * @param regionId / + * @return / + */ + JSONArray getPointStatusSelectById(String regionId); + + /** + * 获取点位类型下拉框 + * + * @param regionId / + * @return / + */ + JSONArray getPointTypeSelectById(String regionId); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBasePoint.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBasePoint.java new file mode 100644 index 0000000..0916d0f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBasePoint.java @@ -0,0 +1,160 @@ +package org.nl.wms.sch_manage.service.dao; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** + * @author Liuxy + * @description / + * @date 2025-05-20 + **/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sch_base_point") +public class SchBasePoint implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "point_code") + + private String point_code; + + + private String point_name; + + + private String region_code; + + + private String region_name; + + + private String point_type; + + + private String point_status; + + + private String can_material_type; + + + private String can_vehicle_type; + + + private Integer vehicle_max_qty; + + + private String vehicle_type; + + + private String vehicle_code; + + + private Integer vehicle_qty; + + + private Integer block_num; + + + private Integer row_num; + + + private Integer col_num; + + + private Integer layer_num; + + + private Integer in_order_seq; + + + private Integer out_order_seq; + + + private Integer in_empty_seq; + + + private Integer out_empty_seq; + + + private String parent_point_code; + + + private String ext_point_code; + + + private String ing_task_code; + + + private Boolean is_has_workder; + + + private String workshop_code; + + + private Boolean is_auto; + + + private String remark; + + + private Boolean is_used; + + + private String create_id; + + + private String create_name; + + + private String create_time; + + + private String update_id; + + + private String update_name; + + + private String update_time; + + + @TableField(exist = false) + private List can_vehicle_types; + + @TableField(exist = false) + private String point_type_name; + + @TableField(exist = false) + private String point_status_name; + + // 组盘标识 + @TableField(exist = false) + private String group_id; + + @TableField(exist = false) + private String record_id; + + @TableField(exist = false) + private String device_code; + @TableField(exist = false) + private String material_qty; + @TableField(exist = false) + private String material_code; + @TableField(exist = false) + private String material_name; + @TableField(exist = false) + private String material_spec; + @TableField(exist = false) + private String material_model; + @TableField(exist = false) + private String raw_material_code; + @TableField(exist = false) + private String task_warn; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseRegion.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseRegion.java new file mode 100644 index 0000000..88bb0f6 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/SchBaseRegion.java @@ -0,0 +1,64 @@ +package org.nl.wms.sch_manage.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * @author Liuxy + * @description / + * @date 2025-05-20 + **/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sch_base_region") +public class SchBaseRegion implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "region_code") + private String region_code; + + + private String region_name; + + + private String point_type_explain; + + + private String point_status_explain; + + + private Boolean is_has_workder; + + + private String workshop_code; + + + private String remark; + + + private String create_id; + + + private String create_name; + + + private String create_time; + + + private String update_id; + + + private String update_name; + + + private String update_time; + + + private Integer order_seq; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.java new file mode 100644 index 0000000..268d5ec --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.java @@ -0,0 +1,47 @@ +package org.nl.wms.sch_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.sch_manage.service.dto.SchBasePointQuery; + +import java.util.List; + +/** + * @author Liuxy + * @date 2025-05-20 + **/ +public interface SchBasePointMapper extends BaseMapper { + + /** + * 批量禁用启用 + * + * @param pointCodes 参数 + * @param used 参数 + */ + void batchChangeUsed(List pointCodes, Boolean used); + + /** + * 获得所有解锁异常点 + * + * @return List + */ + List getAllUnlockAbnormalPoints(); + + /** + * 行锁获取id的点位 + * + * @param id id + * @return SchBasePoint + */ + SchBasePoint selectByIdLock(String id); + + + /** + * 点位left join查询 + * + * @param pages 参数 + * @return IPage + */ + IPage selectPageLeftJoin(IPage pages, SchBasePointQuery whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.xml new file mode 100644 index 0000000..78579c4 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBasePointMapper.xml @@ -0,0 +1,66 @@ + + + + + + UPDATE sch_base_point + SET is_used = #{used} + + point_code IN + + #{code} + + + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.java new file mode 100644 index 0000000..604219d --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.java @@ -0,0 +1,12 @@ +package org.nl.wms.sch_manage.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.sch_manage.service.dao.SchBaseRegion; + +/** + * @author Liuxy + * @date 2025-05-20 + **/ +public interface SchBaseRegionMapper extends BaseMapper { + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.xml new file mode 100644 index 0000000..2b2ac4d --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseRegionMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dto/SchBasePointQuery.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dto/SchBasePointQuery.java new file mode 100644 index 0000000..5915a56 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dto/SchBasePointQuery.java @@ -0,0 +1,21 @@ +package org.nl.wms.sch_manage.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author Liuxy + * @date 2025-05-20 + **/ +@Data +public class SchBasePointQuery implements Serializable { + private String blurry; + private String workshop_code; + private String region_code; + private String point_type; + private String point_status; + private Boolean is_used; + private Boolean lock_type; + private Boolean parent_point; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java new file mode 100644 index 0000000..f93195e --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java @@ -0,0 +1,184 @@ +package org.nl.wms.sch_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.sch_manage.enums.PointStatusEnum; +import org.nl.wms.sch_manage.service.ISchBasePointService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.sch_manage.service.dao.SchBaseRegion; +import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper; +import org.nl.wms.sch_manage.service.dao.mapper.SchBaseRegionMapper; +import org.nl.wms.sch_manage.service.dto.SchBasePointQuery; +import org.nl.wms.sch_manage.service.util.PointUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * @author Liuxy + * @description 服务实现 + * @date 2025-05-20 + **/ +@Slf4j +@Service +public class SchBasePointServiceImpl extends ServiceImpl implements ISchBasePointService { + + @Autowired + private SchBasePointMapper pointMapper; + + @Autowired + private SchBaseRegionMapper regionMapper; + + @Override + public IPage queryAll(SchBasePointQuery whereJson, PageQuery page) { + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pages = pointMapper.selectPageLeftJoin(pages, whereJson); + // 可以存放的载具类型 + pages.getRecords().forEach(point -> { + if (ObjectUtil.isNotEmpty(point.getCan_vehicle_type())) { + point.setCan_vehicle_types(Arrays.asList(point.getCan_vehicle_type().split(","))); + } + String pointStatus = point.getPoint_status(); // 点位状态 + String pointType = point.getPoint_type(); // 点位类型 + SchBaseRegion regionObj = regionMapper.selectById(point.getRegion_code()); + if (ObjectUtil.isNotEmpty(regionObj)) { + if (ObjectUtil.isNotEmpty(pointStatus) && ObjectUtil.isNotEmpty(regionObj.getPoint_status_explain())) { + // 设置 + point.setPoint_status_name(PointUtils.getStatusOrTypeName( + regionObj.getPoint_status_explain(), pointStatus)); + } + if (ObjectUtil.isNotEmpty(pointType) && ObjectUtil.isNotEmpty(regionObj.getPoint_type_explain())) { + // 设置 + point.setPoint_type_name(PointUtils.getStatusOrTypeName( + regionObj.getPoint_type_explain(), pointType)); + } + } + }); + return pages; + } + + @Override + public void create(SchBasePoint entity) { + String point_code = entity.getPoint_code(); + SchBasePoint pointObj = pointMapper.selectById(point_code); + if (ObjectUtil.isNotEmpty(pointObj) && !pointObj.getPoint_code().equals(entity.getPoint_code())) { + throw new BadRequestException("存在相同的点位编码"); + } + + // 默认父类点位为自身 + if (ObjectUtil.isEmpty(entity.getParent_point_code())) { + entity.setParent_point_code(entity.getPoint_code()); + } + + if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) { + String can_vehicle_type = String.join(",", entity.getCan_vehicle_types()); + entity.setCan_vehicle_type(can_vehicle_type); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + // 获取region_name + SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code()); + entity.setRegion_name(baseRegion.getRegion_name()); + + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + pointMapper.insert(entity); + } + + @Override + public void update(SchBasePoint entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + // 获取region_name + SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code()); + entity.setRegion_name(baseRegion.getRegion_name()); + if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) { + String can_vehicle_type = String.join(",", entity.getCan_vehicle_types()); + entity.setCan_vehicle_type(can_vehicle_type); + } + String pointStatus = entity.getPoint_status(); + // 根据点位状态来判断更新内容 + if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) { + entity.setVehicle_type(""); + entity.setVehicle_code(""); + } + pointMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + pointMapper.deleteBatchIds(ids); + } + + @Override + public void changeUsed(JSONObject jsonObject) { + // 不可能为空 + JSONArray data = jsonObject.getJSONArray("data"); + Boolean used = jsonObject.getBoolean("used"); + Assert.notNull(data, "数据为空!"); + Assert.notNull(used, "数据为空!"); + List schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class); + // 获取所有pointCode + List pointCodes = schBasePoints.stream() + .map(SchBasePoint::getPoint_code) + .collect(Collectors.toList()); + pointMapper.batchChangeUsed(pointCodes, used); + } + + @Override + public List getPointList(SchBasePoint region) { + if (ObjectUtil.isEmpty(region)) { + return this.list(); + } + return pointMapper.selectList(new LambdaQueryWrapper() + .eq(SchBasePoint::getRegion_code, region.getRegion_code()) + .eq(SchBasePoint::getIs_has_workder, true)); + } + + @Override + public void changeLock(JSONObject points) { + JSONArray data = points.getJSONArray("data"); + Boolean lockType = points.getBoolean("lock_type"); + List pointList = data.toJavaList(SchBasePoint.class); + pointList.forEach(point -> point.setIng_task_code(lockType ? "" : "-")); + this.updateBatchById(pointList); + } + + @Override + public List getAllUnlockAbnormalPoints() { + return pointMapper.getAllUnlockAbnormalPoints(); + } + + @Override + public SchBasePoint selectByIdLock(String id) { + return pointMapper.selectByIdLock(id); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseRegionServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseRegionServiceImpl.java new file mode 100644 index 0000000..5d816bf --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseRegionServiceImpl.java @@ -0,0 +1,136 @@ +package org.nl.wms.sch_manage.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.sch_manage.service.ISchBaseRegionService; +import org.nl.wms.sch_manage.service.dao.SchBaseRegion; +import org.nl.wms.sch_manage.service.dao.mapper.SchBaseRegionMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author Liuxy + * @description 服务实现 + * @date 2025-05-20 + **/ +@Slf4j +@Service +public class SchBaseRegionServiceImpl extends ServiceImpl implements ISchBaseRegionService { + + @Autowired + private SchBaseRegionMapper schBaseRegionMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null; + String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null; + Boolean is_has_workder = ObjectUtil.isNotEmpty(whereJson.get("is_has_workder")) ? Boolean.valueOf(whereJson.get("is_has_workder").toString()) : null; + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(workshop_code), SchBaseRegion::getWorkshop_code, workshop_code) + .eq(ObjectUtil.isNotEmpty(is_has_workder), SchBaseRegion::getIs_has_workder, is_has_workder) + .like(ObjectUtil.isNotEmpty(blurry), SchBaseRegion::getRegion_code, blurry) + .or(ObjectUtil.isNotEmpty(blurry), la -> la.like(SchBaseRegion::getRegion_name, blurry)) + .orderByAsc(SchBaseRegion::getOrder_seq); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + schBaseRegionMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(SchBaseRegion entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + schBaseRegionMapper.insert(entity); + } + + @Override + public void update(SchBaseRegion entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + schBaseRegionMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + schBaseRegionMapper.deleteBatchIds(ids); + } + + @Override + public List getRegionList(SchBaseRegion region) { + return schBaseRegionMapper.selectList(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(region), SchBaseRegion::getIs_has_workder, true) + .orderByAsc(SchBaseRegion::getOrder_seq)); + } + + @Override + public JSONArray getPointStatusSelectById(String regionId) { + /** + * label,value + */ + SchBaseRegion schBaseRegion = schBaseRegionMapper.selectById(regionId); + JSONArray res = new JSONArray(); + String pointStatusExplain = schBaseRegion.getPoint_status_explain(); + if (ObjectUtil.isEmpty(pointStatusExplain)) { + return res; + } + String[] explain = pointStatusExplain.split(","); + for (int i = 0; i < explain.length; i++) { + String[] status = explain[i].split("-"); + JSONObject point_status = new JSONObject(); + point_status.put("label", status[1]); + point_status.put("value", status[0]); + res.add(point_status); + } + return res; + } + + @Override + public JSONArray getPointTypeSelectById(String regionId) { + /** + * label,value + */ + SchBaseRegion schBaseRegion = schBaseRegionMapper.selectById(regionId); + JSONArray res = new JSONArray(); + String pointTypeExplain = schBaseRegion.getPoint_type_explain(); + if (ObjectUtil.isEmpty(pointTypeExplain)) { + return res; + } + String[] explain = pointTypeExplain.split(","); + for (int i = 0; i < explain.length; i++) { + String[] types = explain[i].split("-"); + JSONObject point_type = new JSONObject(); + point_type.put("label", types[1]); + point_type.put("value", types[0]); + res.add(point_type); + } + return res; + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/PointUtils.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/PointUtils.java new file mode 100644 index 0000000..7c4e144 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/PointUtils.java @@ -0,0 +1,29 @@ +package org.nl.wms.sch_manage.service.util; + +import com.alibaba.fastjson.JSONObject; + +/** + * @Author: Liuxy + * @Description: 点位工具类 + * @Date: 2025/5/20 + */ +public class PointUtils { + + /** + * 获取状态名或者类型名 + * + * @param explain 参数 + * @param label 参数 + * @return String + */ + public static String getStatusOrTypeName(String explain, String label) { + JSONObject statusArr = new JSONObject(); + String[] split = explain.split(","); + for (int j = 0; j < split.length; j++) { + String[] status = split[j].split("-"); + statusArr.put(status[0], status[1]); + } + // 设置 + return statusArr.getString(label); + } +} diff --git a/wms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue b/wms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue new file mode 100644 index 0000000..5168f86 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue b/wms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue new file mode 100644 index 0000000..c1ff366 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/sch/point/index.vue b/wms/nladmin-ui/src/views/wms/sch/point/index.vue new file mode 100644 index 0000000..6314e8e --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -0,0 +1,548 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js b/wms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js new file mode 100644 index 0000000..aecdb0f --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/schBasePoint', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/schBasePoint/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/schBasePoint', + method: 'put', + data + }) +} + +export function changeUsed(data) { + return request({ + url: 'api/schBasePoint/changeUsed', + method: 'post', + data: data + }) +} + +export function getPointList(data) { + return request({ + url: 'api/schBasePoint/getPointList', + method: 'post', + data + }) +} + +export function changeLock(data) { + return request({ + url: 'api/schBasePoint/changeLock', + method: 'post', + data: data + }) +} + +export default { add, edit, del, changeUsed, getPointList, changeLock } diff --git a/wms/nladmin-ui/src/views/wms/sch/region/index.vue b/wms/nladmin-ui/src/views/wms/sch/region/index.vue new file mode 100644 index 0000000..3f48e4f --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/region/index.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/sch/region/schBaseRegion.js b/wms/nladmin-ui/src/views/wms/sch/region/schBaseRegion.js new file mode 100644 index 0000000..ec87f8a --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/sch/region/schBaseRegion.js @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/schBaseRegion', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/schBaseRegion/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/schBaseRegion', + method: 'put', + data + }) +} + +export function getRegionList(data) { + return request({ + url: 'api/schBaseRegion/getRegionList', + method: 'post', + data + }) +} + +export function getPointStatusSelectById(id) { + return request({ + url: 'api/schBaseRegion/getPointStatusSelectById', + method: 'post', + data: id + }) +} + +export function getPointTypeSelectById(id) { + return request({ + url: 'api/schBaseRegion/getPointTypeSelectById', + method: 'post', + data: id + }) +} + +export default { add, edit, del, getRegionList, getPointStatusSelectById, getPointTypeSelectById } diff --git a/wms/nladmin-ui/src/views/wms/sch/taskconfig/index.vue b/wms/nladmin-ui/src/views/wms/sch/taskconfig/index.vue index cfb886a..2a3fdf9 100644 --- a/wms/nladmin-ui/src/views/wms/sch/taskconfig/index.vue +++ b/wms/nladmin-ui/src/views/wms/sch/taskconfig/index.vue @@ -383,6 +383,7 @@