From c28d44fbf107d831e7137c601007b5d362c5447b Mon Sep 17 00:00:00 2001 From: zhaoyf <1783123481@qq.com> Date: Tue, 14 Jul 2026 11:04:25 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=90=8C=E6=AD=A5eas=E5=B9=B3=E5=BA=93?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=8A=9F=E8=83=BD=EF=BC=9B=20opt:=E5=87=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E6=8D=AE=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StructIvtController.java | 14 +- .../IMdPbStoragevehicleextService.java | 2 + .../mapper/MdPbStoragevehicleextMapper.java | 2 + .../mapper/MdPbStoragevehicleextMapper.xml | 20 + .../MdPbStoragevehicleextServiceImpl.java | 108 ++++- .../org/nl/wms/ext_manage/util/ErpUtil.java | 6 +- nladmin-ui/package.json | 1 + .../wms/basedata/storagevehicleinfo/index.vue | 96 ++++- .../wms/pm_manage/allocationIn/index.vue | 377 ++++++++++++++++++ .../allocationIn/purchase.js | 2 +- .../{st => pm_manage}/allocationOut/index.vue | 6 +- .../allocationOut/purchase.js | 2 +- .../wms/{st => pm_manage}/otherIn/index.vue | 119 +++++- .../wms/{st => pm_manage}/otherIn/purchase.js | 2 +- .../wms/{st => pm_manage}/otherOut/index.vue | 6 +- .../{st => pm_manage}/otherOut/purchase.js | 2 +- .../{st => pm_manage}/purchase/AddDialog.vue | 2 +- .../{st => pm_manage}/purchase/ViewDialog.vue | 4 +- .../wms/{st => pm_manage}/purchase/index.vue | 110 ++++- .../{st => pm_manage}/purchase/purchase.js | 2 +- .../src/views/wms/st/allocationIn/index.vue | 219 ---------- .../views/wms/statement/structivt/index.vue | 70 +++- 22 files changed, 881 insertions(+), 291 deletions(-) create mode 100644 nladmin-ui/src/views/wms/pm_manage/allocationIn/index.vue rename nladmin-ui/src/views/wms/{st => pm_manage}/allocationIn/purchase.js (92%) rename nladmin-ui/src/views/wms/{st => pm_manage}/allocationOut/index.vue (97%) rename nladmin-ui/src/views/wms/{st => pm_manage}/allocationOut/purchase.js (92%) rename nladmin-ui/src/views/wms/{st => pm_manage}/otherIn/index.vue (67%) rename nladmin-ui/src/views/wms/{st => pm_manage}/otherIn/purchase.js (92%) rename nladmin-ui/src/views/wms/{st => pm_manage}/otherOut/index.vue (97%) rename nladmin-ui/src/views/wms/{st => pm_manage}/otherOut/purchase.js (92%) rename nladmin-ui/src/views/wms/{st => pm_manage}/purchase/AddDialog.vue (99%) rename nladmin-ui/src/views/wms/{st => pm_manage}/purchase/ViewDialog.vue (98%) rename nladmin-ui/src/views/wms/{st => pm_manage}/purchase/index.vue (71%) rename nladmin-ui/src/views/wms/{st => pm_manage}/purchase/purchase.js (92%) delete mode 100644 nladmin-ui/src/views/wms/st/allocationIn/index.vue diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java index db6c359..8cf534d 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java @@ -1,6 +1,7 @@ package org.nl.wms.basedata_manage.controller; +import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.base.ResponseData; @@ -8,8 +9,10 @@ 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.nl.common.base.ResponseData; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +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.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -40,4 +43,11 @@ public class StructIvtController { public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { return ResponseData.build(iMdPbStoragevehicleextService.queryAll(whereJson, page), HttpStatus.OK); } -} + + @PostMapping("/syncStock") + @Log("库存同步") + public ResponseEntity syncStock(@RequestBody JSONObject param) { + String warehouseno = param.getString("warehouseno"); + return ResponseData.build(iMdPbStoragevehicleextService.syncStock(warehouseno), HttpStatus.OK); + } +} \ No newline at end of file diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java index 5d5a4b7..71e862d 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java @@ -36,4 +36,6 @@ public interface IMdPbStoragevehicleextService extends IService queryAll(Map whereJson); + JSONObject syncStock(String warehouseno); + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java index 75bce79..1712e23 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -86,4 +86,6 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper queryAvailableInv(@Param("params") Map whereJson); + + List querySyncByStorCode(@Param("stor_code") String storCode); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 1e04b9f..18a3bfa 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -332,4 +332,24 @@ ORDER BY ext.create_time Desc + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java index 09470a7..e74cdc4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -1,18 +1,34 @@ package org.nl.wms.basedata_manage.service.impl; +import cn.hutool.core.date.DateUtil; 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 org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; +import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; +import org.nl.wms.ext_manage.api.EasApi; +import org.nl.wms.ext_manage.api.request.QueryEasStockRequest; +import org.nl.wms.ext_manage.api.response.QueryEasStockResponse; +import org.nl.wms.warehouse_manage.enums.IOSEnum; +import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_manage.service.dao.GroupPlate; +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.math.BigDecimal; +import java.util.*; /** *

@@ -25,7 +41,14 @@ import java.util.Map; @Service public class MdPbStoragevehicleextServiceImpl extends ServiceImpl implements IMdPbStoragevehicleextService { - + @Autowired + private EasApi easApi; + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + @Autowired + private IStructattrService iStructattrService; + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; @Override public IPage queryAll(Map whereJson, PageQuery page) { @@ -38,5 +61,84 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl() + .eq(Structattr::getSect_code, warehouseno) + .last("LIMIT 1")); + QueryEasStockRequest easRequest = new QueryEasStockRequest(); + easRequest.setOrgno("01.09.14"); + easRequest.setWarehouseno(warehouseno); + List easStocks = easApi.queryStock(easRequest); + + List localStocks = this.baseMapper.querySyncByStorCode(warehouseno); + + Map localMap = new HashMap<>(); + for (JSONObject local : localStocks) { + String key = local.getString("material_code") + "_" + local.getString("pcsn"); + localMap.put(key, local); + } + + Set easKeys = new HashSet<>(); + int updateCount = 0, addCount = 0, deleteCount = 0; + + for (QueryEasStockResponse eas : easStocks) { + String key = eas.getMaterialno() + "_" + eas.getLotnumber(); + easKeys.add(key); + + if (localMap.containsKey(key)) { + JSONObject local = localMap.get(key); + GroupPlate plate = new GroupPlate(); + plate.setGroup_id(local.getString("group_id")); + plate.setQty(new BigDecimal(eas.getQty())); + iMdPbGroupplateService.updateById(plate); + updateCount++; + } else { + GroupPlate plate = new GroupPlate(); + plate.setGroup_id(IdUtil.getStringId()); + plate.setStoragevehicle_code(struct.getStoragevehicle_code()); + plate.setMaterial_code(eas.getMaterialno()); + plate.setPcsn(Optional.ofNullable(eas.getLotnumber()).filter(s -> !s.isEmpty()).orElse("1")); + plate.setQty(new BigDecimal(eas.getQty())); + plate.setQty_unit_name(eas.getUnitname()); + plate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("入库")); + plate.setCreate_time(DateUtil.now()); + plate.setCreate_id(SecurityUtils.getCurrentUserId()); + plate.setCreate_name(SecurityUtils.getCurrentUsername()); + + MdMeMaterialbase material = iMdMeMaterialbaseService.getOne( + new LambdaQueryWrapper() + .eq(MdMeMaterialbase::getMaterial_code, eas.getMaterialno())); + if (material != null) { + plate.setQty_unit_id(material.getQty_unit_id()); + if (plate.getQty_unit_name() == null) { + plate.setQty_unit_name(material.getQty_unit_name()); + } + } + + iMdPbGroupplateService.save(plate); + + addCount++; + } + } + + for (JSONObject local : localStocks) { + String key = local.getString("material_code") + "_" + local.getString("pcsn"); + if (!easKeys.contains(key)) { + iMdPbGroupplateService.removeById(local.getString("group_id")); + deleteCount++; + } + } + + JSONObject result = new JSONObject(); + result.put("updateCount", updateCount); + result.put("addCount", addCount); + result.put("deleteCount", deleteCount); + result.put("easTotal", easStocks.size()); + result.put("localTotal", localStocks.size()); + return result; + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java index ac54e80..773ad8a 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java @@ -87,10 +87,10 @@ public class ErpUtil { Object result = call.invoke(new Object[]{json}); JSONObject resultJson = JSON.parseObject(result.toString()); if (resultJson.getBoolean("status") == false){ - throw new BadRequestException("回传失败:" + resultJson.getString("message")); + throw new BadRequestException("EAS接口请求失败失败:" + resultJson.getString("message")); } - log.error("Eas回传接口请求成功!"); - log.error("Eas回传接口invoke调用结果:" + result); + log.error("Eas接口请求成功!"); + log.error("Eas接口invoke调用结果:" + result); return resultJson; } catch (Exception e) { throw new BadRequestException("erp审核接口请求失败:" + e.getMessage()); diff --git a/nladmin-ui/package.json b/nladmin-ui/package.json index 361f471..700382a 100644 --- a/nladmin-ui/package.json +++ b/nladmin-ui/package.json @@ -61,6 +61,7 @@ "normalize.css": "7.0.0", "nprogress": "0.2.0", "path-to-regexp": "2.4.0", + "qrcode": "^1.5.4", "qrcodejs2": "0.0.2", "qs": "^6.9.1", "screenfull": "4.2.0", diff --git a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue index 9e2f461..635c98a 100644 --- a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue +++ b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue @@ -47,14 +47,14 @@ - 打印 + slot="right" + class="filter-item" + type="success" + icon="el-icon-printer" + size="mini" + @click="handlePrint" + > + 打印 @@ -157,6 +157,19 @@ slot="right" 打印 + +