From b4d595c5d072028f169efc5d10469dd318c56a82 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Tue, 31 Mar 2026 14:57:15 +0800 Subject: [PATCH] =?UTF-8?q?opt=EF=BC=9A=E4=BC=98=E5=8C=96=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E5=A4=9A=E7=89=A9=E6=96=99=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-ui/package.json | 3 +- .../controller/MaterialbaseController.java | 13 ++++ .../service/IMdMeMaterialbaseService.java | 11 +++ .../service/dao/MdPbStoragevehicletype.java | 2 +- .../impl/MdMeMaterialbaseServiceImpl.java | 69 +++++++++++++++++++ .../service/impl/StructattrServiceImpl.java | 31 ++++----- .../service/impl/WmsToIWmsServiceImpl.java | 54 ++++++++++++--- .../main/resources/config/application-dev.yml | 4 +- nladmin-ui/package.json | 1 + .../views/wms/basedata/structattr/index.vue | 2 + 10 files changed, 160 insertions(+), 30 deletions(-) diff --git a/acs/nladmin-ui/package.json b/acs/nladmin-ui/package.json index feeb524..377b6a8 100644 --- a/acs/nladmin-ui/package.json +++ b/acs/nladmin-ui/package.json @@ -5,7 +5,8 @@ "author": "Zheng Jie", "license": "Apache-2.0", "scripts": { - "dev": "vue-cli-service serve", + "dev1": "vue-cli-service serve", + "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", "preview": "node build/index.js --preview", diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java index fa4316b..a77c4d7 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java @@ -7,6 +7,7 @@ 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.common.utils.RedissonUtils; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.springframework.beans.factory.annotation.Autowired; @@ -14,7 +15,10 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; import java.util.Set; @@ -70,4 +74,13 @@ public class MaterialbaseController { } + @PostMapping("/importExcel") + public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { + RedissonUtils.lock(() -> { + iMdMeMaterialbaseService.excelImport(file, request, response); + }, "信息导入", null); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + } + + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java index d9f0253..5dd33b2 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java @@ -5,7 +5,10 @@ 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.MdMeMaterialbase; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; import java.util.Set; @@ -58,4 +61,12 @@ public interface IMdMeMaterialbaseService extends IService { * @return 返回结果 */ MdMeMaterialbase getByCode(String material_code); + + /** + * 导入物料 + * @param file + * @param request + * @param response + */ + void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdPbStoragevehicletype.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdPbStoragevehicletype.java index 8279f5d..b11a0ec 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdPbStoragevehicletype.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdPbStoragevehicletype.java @@ -24,7 +24,7 @@ public class MdPbStoragevehicletype { private String storagevehicle_btype; private String storagevehicle_size; /** - * 1.RT16(3层) 2.PS20(四层) 3.RT16和PS20 + * 1.RT16(4层) 2.PS20(1-3层) 3.RT16和PS20 */ private String suitable_car; private String storagevehicle_name; diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java index e416ff3..cac14c0 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.wms.basedata_manage.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -17,11 +19,17 @@ import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper; import org.nl.wms.ext_manage.service.WmsToErpService; +import org.nl.wms.sch_manage.service.ISchBasePointService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.wbwms.service.IWmsToWmsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -47,6 +55,8 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { // 查询条件 @@ -163,4 +173,63 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl> read = excelReader.read(); + if (read.size() > 1) { + List insertList = new ArrayList<>(); + for (int i = 1; i < read.size(); i++) { + List list = read.get(i); + //仓位 + String m1 = String.valueOf(list.get(0)); + // String m2 = String.valueOf(list.get(1)); + // String m3 = String.valueOf(list.get(2)); + // String m4 = String.valueOf(list.get(3)); + // String m5 = String.valueOf(list.get(4)); + SchBasePoint dao = new SchBasePoint(); + dao.setPoint_code(m1); + dao.setPoint_name(m1); + dao.setRegion_code("RKQ"); + dao.setRegion_name("入库区域"); + // dao.setPoint_type("1"); + //dao.setPoint_status("0"); + // dao.setVehicle_type(m5); + dao.setVehicle_max_qty(0); + dao.setIs_has_workder(false); + dao.setIs_used(true); + dao.setIs_auto(true); + dao.setBlock_num(0); + dao.setRow_num(0); + dao.setCol_num(0); + dao.setLayer_num(0); + dao.setIn_order_seq(0); + dao.setOut_order_seq(0); + dao.setIn_empty_seq(0); + dao.setOut_empty_seq(0); + dao.setParent_point_code(m1); + dao.setWorkshop_code("A1"); + dao.setCreate_id("1"); + dao.setCreate_name("admin"); + dao.setCreate_time(DateUtil.now()); + dao.setUpdate_id("1"); + dao.setUpdate_name("admin"); + dao.setUpdate_time(DateUtil.now()); + dao.setLock_up(false); + insertList.add(dao); + } + iSchBasePointService.saveBatch(insertList); + } + } catch (Exception ex) { + throw new BadRequestException("导入失败" + ex.getMessage()); + } + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index 6c78843..eae1ede 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -6,8 +6,8 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -185,14 +185,13 @@ public class StructattrServiceImpl extends ServiceImpl decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class); QueryWrapper query = new QueryWrapper(); if ("3".equals(param.getSuitable_car())) { - query.eq("is_used", true) - .eq("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")) - .eq("sect_code", param.getSect_code()) - .isNull( "width") - .ne("stor_type",1) + query.eq("is_used", true) + .eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")) + .eq("sect_code", param.getSect_code()) + .isNull("width") + .isNull("stor_type") .and(wrapper -> wrapper.isNull("storagevehicle_code") .or() .eq("storagevehicle_code", " ")); @@ -374,7 +373,7 @@ public class StructattrServiceImpl extends ServiceImpl wrapper.isNull("storagevehicle_code") .or() .eq("storagevehicle_code", " ")); @@ -383,7 +382,7 @@ public class StructattrServiceImpl extends ServiceImpl wrapper.isNull("storagevehicle_code") .or() .eq("storagevehicle_code", " ")); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/wbwms/service/impl/WmsToIWmsServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/wbwms/service/impl/WmsToIWmsServiceImpl.java index 46630e0..a81b11f 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/wbwms/service/impl/WmsToIWmsServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/wbwms/service/impl/WmsToIWmsServiceImpl.java @@ -236,21 +236,55 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService { @Override @Transactional public WmstoIWmsResponse outBillTask(JSONObject parm) { - log.info("WMS出库请求参数参数为:-------------------" + parm.toString()); +// log.info("WMS出库请求参数参数为:-------------------" + parm.toString()); +// WmstoIWmsResponse result = new WmstoIWmsResponse(); +// JSONArray tableData = parm.getJSONArray("tableData"); +// String storage_code=tableData.getJSONObject(0).getString("storage_code"); +// String turnout_struct_code=tableData.getJSONObject(0).getString("turnout_struct_code"); +// Structattr structattr=iStructattrService.getByCode(turnout_struct_code); +// if(ObjectUtil.isEmpty(structattr)){ +// throw new BadRequestException("wms上不存在该点位"); +// } +// if(!storage_code.equals(structattr.getStoragevehicle_code())){ +// throw new BadRequestException("该点位存放托盘与所传托盘的编码不对"); +// } +// if(!structattr.getLock_type().equals("0")){ +// throw new BadRequestException("传入点位有任务"); +// } + log.info("WMS 出库请求参数参数为:-------------------" + parm.toString()); WmstoIWmsResponse result = new WmstoIWmsResponse(); JSONArray tableData = parm.getJSONArray("tableData"); - String storage_code=tableData.getJSONObject(0).getString("storage_code"); - String turnout_struct_code=tableData.getJSONObject(0).getString("turnout_struct_code"); - Structattr structattr=iStructattrService.getByCode(turnout_struct_code); - if(ObjectUtil.isEmpty(structattr)){ - throw new BadRequestException("wms上不存在该点位"); + if (CollectionUtils.isEmpty(tableData)) { + throw new BadRequestException("tableData 不能为空"); } - if(!storage_code.equals(structattr.getStoragevehicle_code())){ - throw new BadRequestException("该点位存放托盘与所传托盘的编码不对"); + List turnoutStructCodes = new ArrayList<>(); + for (int i = 0; i < tableData.size(); i++) { + JSONObject item = tableData.getJSONObject(i); + turnoutStructCodes.add(item.getString("turnout_struct_code")); } - if(!structattr.getLock_type().equals("0")){ - throw new BadRequestException("传入点位有任务"); + List structattrList = iStructattrService.list(new LambdaQueryWrapper() + .in(Structattr::getStruct_code, turnoutStructCodes)); + if (CollectionUtils.isEmpty(structattrList)) { + throw new BadRequestException("wms 上不存在这些点位"); } + java.util.Map structattrMap = structattrList.stream() + .collect(java.util.stream.Collectors.toMap(Structattr::getStruct_code, s -> s)); + for (int i = 0; i < tableData.size(); i++) { + JSONObject jsonObject = tableData.getJSONObject(i); + String storage_code = jsonObject.getString("storage_code"); + String turnout_struct_code = jsonObject.getString("turnout_struct_code"); + Structattr structattr = structattrMap.get(turnout_struct_code); + if (ObjectUtil.isEmpty(structattr)) { + throw new BadRequestException("wms上不存在该点位:" + turnout_struct_code); + } + if (!storage_code.equals(structattr.getStoragevehicle_code())) { + throw new BadRequestException("该点位存放托盘与所传托盘的编码不对:" + turnout_struct_code); + } + if (!"0".equals(structattr.getLock_type())) { + throw new BadRequestException("传入点位有任务:" + turnout_struct_code); + } + } + Structattr structattr = structattrList.get(0); parm.put("sect_id",structattr.getSect_id()); parm.put("stor_id",structattr.getStor_id()); // parm.put("turnout_struct_code",turnout_struct_code); diff --git a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index d46e230..c83da81 100644 --- a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -9,10 +9,10 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://${DB_HOST:192.168.81.251}:${DB_PORT:3306}/${DB_NAME:hyjm_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms_huayu}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false # url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_oulun}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false username: ${DB_USER:root} - password: ${DB_PWD:P@ssw0rd.} + password: ${DB_PWD:123456} # 初始连接数 initial-size: 15 # 最小连接数 diff --git a/nladmin-ui/package.json b/nladmin-ui/package.json index 361f471..6123943 100644 --- a/nladmin-ui/package.json +++ b/nladmin-ui/package.json @@ -6,6 +6,7 @@ "license": "Apache-2.0", "scripts": { "dev": "vue-cli-service serve", + "dev1": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "dev_mac": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", diff --git a/nladmin-ui/src/views/wms/basedata/structattr/index.vue b/nladmin-ui/src/views/wms/basedata/structattr/index.vue index 7cff703..99f7d8c 100644 --- a/nladmin-ui/src/views/wms/basedata/structattr/index.vue +++ b/nladmin-ui/src/views/wms/basedata/structattr/index.vue @@ -286,6 +286,8 @@ + +