From a891c3b2014feea2a313ffd2d82dd4fd8225dde3 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 5 Jun 2025 10:07:27 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E5=A4=96=E9=83=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MaterialbaseController.java | 9 +++ .../service/IMdMeMaterialbaseService.java | 9 +++ .../mapper/MdPbStoragevehicleextMapper.java | 12 ++++ .../mapper/MdPbStoragevehicleextMapper.xml | 42 ++++++++++- .../impl/MdMeMaterialbaseServiceImpl.java | 51 +++++++++++++ .../ext/controller/ErpToWmsController.java | 48 +++++++++++++ .../org/nl/wms/ext/enuums/EXTConstant.java | 19 +++++ .../nl/wms/ext/service/ErpToWmsService.java | 42 +++++++++++ .../nl/wms/ext/service/WmsToErpService.java | 20 ++++++ .../ext/service/impl/ErpToWmsServiceImpl.java | 45 ++++++++++++ .../ext/service/impl/WmsToErpServiceImpl.java | 36 ++++++++-- .../nl/wms/ext/service/util/ErpResponse.java | 72 +++++++++++++++++++ .../service/IStIvtCheckmstService.java | 2 +- .../service/impl/RetrunServiceImpl.java | 8 +-- .../impl/StIvtCheckdtlServiceImpl.java | 4 ++ .../impl/StIvtCheckmstServiceImpl.java | 39 +++++++--- .../src/main/resources/log/ErpToWms.xml | 28 ++++++++ .../src/main/resources/logback-spring.xml | 1 + .../src/views/wms/basedata/material/index.vue | 19 ++++- .../views/wms/basedata/material/material.js | 10 ++- .../views/wms/st/checkbill/CheckDialog.vue | 2 +- 21 files changed, 496 insertions(+), 22 deletions(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/ErpToWmsController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enuums/EXTConstant.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/ErpResponse.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java index 7b32519..54406b9 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.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.TableDataInfo; @@ -61,4 +62,12 @@ public class MaterialbaseController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/materialSync") + @Log("物料同步") + public ResponseEntity materialSync(@RequestBody JSONObject whereJson) { + iMdMeMaterialbaseService.materialSync(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java index 994de9f..0e36392 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdMeMaterialbaseService.java @@ -1,5 +1,6 @@ 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; @@ -42,4 +43,12 @@ public interface IMdMeMaterialbaseService extends IService { * @param ids 物料标识集合 */ void delete(Set ids); + + /** + * 物料同步 + * @param whereJson { + * -- + * } + */ + void materialSync(JSONObject whereJson); } 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 a75734a..2fa25eb 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 @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import java.util.List; import java.util.Map; /** @@ -34,4 +35,15 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper */ IPage queryAllByPage(Page page, @Param("param") Map whereJson); + + /** + * erp查询库存 + * @param whereJson { + * mater_code: 物料编码 + * stor_code: 仓库编码 + * point_code: 货位编码 + * } + * @return List + */ + List erpQueryIvt(@Param("param") JSONObject 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 d380e79..98ec170 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,7 +57,6 @@ ORDER BY ext.insert_time Desc - + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java index 03d7f46..4e15818 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdMeMaterialbaseServiceImpl.java @@ -3,6 +3,7 @@ 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 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.metadata.IPage; @@ -15,11 +16,16 @@ import org.nl.common.utils.SecurityUtils; 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.service.WmsToErpService; +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.Set; +import java.util.stream.Collectors; /** *

@@ -32,6 +38,12 @@ import java.util.Set; @Service public class MdMeMaterialbaseServiceImpl extends ServiceImpl implements IMdMeMaterialbaseService { + /** + * wms调用erp服务 + */ + @Autowired + private WmsToErpService wmsToErpService; + @Override public IPage queryAll(Map whereJson, PageQuery page) { // 查询条件 @@ -92,4 +104,43 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl ids) { this.baseMapper.deleteBatchIds(ids); } + + @Override + @Transactional + public void materialSync(JSONObject whereJson) { + JSONObject resultJson = wmsToErpService.materialSync(whereJson); + List dataList = resultJson.getJSONArray("data").toJavaList(JSONObject.class); + // 查询是否有相同物料 + List likeMaterList = this.list( + new QueryWrapper().lambda() + .in(MdMeMaterialbase::getMaterial_code, dataList.stream() + .map(row -> row.getString("mater_code")) + .collect(Collectors.toList()) + ) + ); + // 需插入的物料集合 + List materDaoList = new ArrayList<>(); + for (JSONObject json : dataList) { + boolean is_like = likeMaterList.stream() + .anyMatch(row -> row.getMaterial_code().equals(json.getString("mater_code"))); + if (is_like) { + continue; + } + // 组织数据 + MdMeMaterialbase dao = new MdMeMaterialbase(); + dao.setMaterial_id(IdUtil.getStringId()); + dao.setMaterial_code(json.getString("mater_code")); + dao.setMaterial_name(json.getString("mater_name")); + dao.setMaterial_spec(json.getString("spec_dtl")); + dao.setNet_weight(json.getBigDecimal("mater_height")); + dao.setCreate_id(SecurityUtils.getCurrentUserId()); + dao.setCreate_name(SecurityUtils.getCurrentNickName()); + dao.setCreate_time(DateUtil.now()); + dao.setUpdate_optid(SecurityUtils.getCurrentUserId()); + dao.setUpdate_optname(SecurityUtils.getCurrentNickName()); + dao.setUpdate_time(DateUtil.now()); + materDaoList.add(dao); + } + this.saveBatch(materDaoList); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/ErpToWmsController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/ErpToWmsController.java new file mode 100644 index 0000000..69f3d59 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/ErpToWmsController.java @@ -0,0 +1,48 @@ +package org.nl.wms.ext.controller; + + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.ext.service.ErpToWmsService; +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; + +/** + *

+ * ERP调用WMS 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-04 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/lms") +@Slf4j +public class ErpToWmsController { + + @Autowired + private ErpToWmsService erpToWmsService; + + @PostMapping("/inventory") + @Log("erp查询库存") + @SaIgnore + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(erpToWmsService.erpQueryIvt(whereJson),HttpStatus.OK); + } + + @PostMapping("/task") + @Log("下发出库单据") + @SaIgnore + public ResponseEntity sendTask(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(erpToWmsService.sendTask(whereJson),HttpStatus.OK); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enuums/EXTConstant.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enuums/EXTConstant.java new file mode 100644 index 0000000..a16d24f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enuums/EXTConstant.java @@ -0,0 +1,19 @@ +package org.nl.wms.ext.enuums; + +/** + * @author Liuyx + * @date 2025年06月03日 + * @desc 外部系统常量 + */ +public class EXTConstant { + + /** + * 回传ERP接口地址 + */ + public final static String UPLOAD_ERP_API = "CamstarApi/MomRollBakeInBound"; + + /** + * 物料同步ERP接口地址 + */ + public final static String MATERIAL_SYNC_ERP_API = "CamstarApi/MomRollBakeInBound"; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java new file mode 100644 index 0000000..b598858 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java @@ -0,0 +1,42 @@ +package org.nl.wms.ext.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.service.util.ErpResponse; + +/** + *

+ * ERP调用WMS 服务类 + *

+ * + * @author Liuxy + * @since 2025-06-04 + */ +public interface ErpToWmsService { + + /** + * erp查询库存 + * @param whereJson { + * mater_code: 物料编码(可为空) + * stor_code: 仓库编码(可为空) + * point_code: 货位编码(可为空) + * } + * @return ErpResponse + */ + ErpResponse erpQueryIvt(JSONObject whereJson); + + /** + * 下发出库单据 + * @param whereJson: { + * stor_code:仓库编码 + * mater_code:物料编码 + * batch_no:批次号(可为空) + * quantity:数量 + * unit_code:计量单位 + * unit_name:计量单位名称 + * inv_code:单据号(可为空) + * task_type :业务类型(可为空) + * } + * @return ErpResponse + */ + ErpResponse sendTask(JSONObject whereJson); +} 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 index 654023f..523c381 100644 --- 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 @@ -23,4 +23,24 @@ public interface WmsToErpService { * } */ JSONObject uploadErp(JSONObject whereJson); + + /** + * 物料同步 + * @param whereJson { + * -- + * } + * @return JSONObject:{ + * status:状态码 + * message:错误信息 + * data: [ + * mater_code:物料编码 + * mater_name:物料名称 + * type_code:物料类型编码 + * type_name:物料类型名称 + * spec_dtl:物料规格 + * mater_height:物料单重 + * ] + * } + */ + JSONObject materialSync(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java new file mode 100644 index 0000000..c5be9e0 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java @@ -0,0 +1,45 @@ +package org.nl.wms.ext.service.impl; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; +import org.nl.wms.ext.service.ErpToWmsService; +import org.nl.wms.ext.service.util.ErpResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + *

+ * ERP调用WMS 实现类 + *

+ * + * @author Liuxy + * @since 2025-06-04 + */ +@Service +@Slf4j +public class ErpToWmsServiceImpl implements ErpToWmsService { + + /** + * 载具扩展属性mapper + */ + @Autowired + private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper; + + @Override + public ErpResponse erpQueryIvt(JSONObject whereJson) { + log.info("erpQueryIvt查询物料接口输入参数为:-------------------" + whereJson.toString()); + ErpResponse erpResponse = ErpResponse.requestParamOk(mdPbStoragevehicleextMapper.erpQueryIvt(whereJson)); + log.info("erpQueryIvt查询物料接口输出参数为:-------------------" + erpResponse.toString()); + return erpResponse; + } + + @Override + public ErpResponse sendTask(JSONObject whereJson) { + log.info("sendTask下发出库任务接口输入参数为:-------------------" + whereJson.toString()); + + + log.info("sendTask下发出库任务接口输出参数为:-------------------" + ErpResponse.requestOk().toString()); + return ErpResponse.requestOk(); + } +} 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 index 45bfa41..68d0d00 100644 --- 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 @@ -1,12 +1,12 @@ 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.enuums.EXTConstant; import org.nl.wms.ext.service.WmsToErpService; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -25,19 +25,18 @@ public class WmsToErpServiceImpl implements WmsToErpService { @Override public JSONObject uploadErp(JSONObject whereJson) { - log.info("uploadErp接口输入参数为:-------------------" + whereJson.toString()); + 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; + url = url + EXTConstant.UPLOAD_ERP_API; try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(whereJson)) .execute().body(); result = JSONObject.parseObject(resultMsg); - log.info("uploadErp接口输出参数为:-------------------" + result.toString()); + log.info("uploadErp回传接口输出参数为:-------------------" + result.toString()); Integer status = result.getInteger("status"); @@ -51,4 +50,31 @@ public class WmsToErpServiceImpl implements WmsToErpService { return result; } + + @Override + public JSONObject materialSync(JSONObject whereJson) { + log.info("materialSync物料同步接口输入参数为:-------------------" + whereJson.toString()); + JSONObject result = new JSONObject(); + + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ERP_URL").getValue(); + url = url + EXTConstant.MATERIAL_SYNC_ERP_API; + + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(whereJson)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("materialSync物料同步输出参数为:-------------------" + 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/ext/service/util/ErpResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/ErpResponse.java new file mode 100644 index 0000000..653f983 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/util/ErpResponse.java @@ -0,0 +1,72 @@ +package org.nl.wms.ext.service.util; + +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONObject; +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +/** + *

+ * ERP调用WMS 返回结果 + *

+ * + * @author Liuxy + * @since 2025-06-04 + */ +@Data +@Builder +public class ErpResponse { + + /** + * 状态码 + */ + private Integer status; + + /** + * 信息 + */ + private String message; + + /** + * 返回数据 + */ + private List data; + + /** + * 不带数据反馈 + * @return ErpResponse + */ + public static ErpResponse requestOk() { + return ErpResponse.builder() + .status(HttpStatus.HTTP_OK) + .message("请求成功!") + .build(); + } + + /** + * 带数据反馈 + * @return ErpResponse + */ + public static ErpResponse requestParamOk(List list) { + return ErpResponse.builder() + .status(HttpStatus.HTTP_OK) + .message("请求成功!") + .data(list) + .build(); + } + + /** + * 报错信息反馈 + * @return ErpResponse + */ + public static ErpResponse requestError(String message) { + return ErpResponse.builder() + .status(HttpStatus.HTTP_BAD_REQUEST) + .message(message) + .build(); + } + +} + 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 index b9cbfaf..e5e88e7 100644 --- 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 @@ -56,7 +56,7 @@ public interface IStIvtCheckmstService extends IService { List getDtl(Map whereJson); /** - * 到村盘点单 + * 保存盘点单 * @param dto 新增修改dto实体类 */ void saveCheck(CheckInsertDto dto); 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 index 32ee0d1..f6a1394 100644 --- 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 @@ -133,7 +133,7 @@ public class RetrunServiceImpl extends ServiceImpl i 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("mater_code", materDao.getMaterial_code()); // 批次 param.put("batch_no", disDao.getPcsn()); // 数量 @@ -142,7 +142,7 @@ public class RetrunServiceImpl extends ServiceImpl i 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()); + param.put("unit_code", unitDao.getUnit_code()); // 仓库编码 JSONObject jsonMst = rows.stream() .filter(row -> row.getString("iostorinv_id").equals(disDao.getIostorinv_id())) @@ -153,9 +153,9 @@ public class RetrunServiceImpl extends ServiceImpl i // 载具编码 param.put("pallet_code", disDao.getStoragevehicle_code()); // 单据号 - param.put("inv_code", jsonMst.getString("bill_code")); + param.put("inv_code", jsonMst.getString("source_id")); // 业务类型 - param.put("task_type", jsonMst.getString("bill_type")); + param.put("task_type", jsonMst.getString("source_type")); paramList.add(param); } JSONObject jsonParam = new JSONObject(); 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 index bc584b5..a56af43 100644 --- 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 @@ -2,6 +2,7 @@ package org.nl.wms.warehouse_management.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.utils.IdUtil; @@ -52,6 +53,9 @@ public class StIvtCheckdtlServiceImpl extends ServiceImpl dtlDaoList = new ArrayList<>(); for (int i = 0; i < dto.getTableData().size(); i++) { JSONObject json = dto.getTableData().get(i); + if (json.getString("status").equals(IOSEnum.CHECK_DTL_STATUS.code("完成"))) { + continue; + } StIvtCheckdtl dao = new StIvtCheckdtl(); dao.setCheckdtl_id(IdUtil.getStringId()); dao.setCheck_id(dto.getCheck_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 index a5c09bf..9c88a4b 100644 --- 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 @@ -104,7 +104,7 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl().lambda() - .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) + .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) ); // 新增明细 iStIvtCheckdtlService.createCheckDtl(dto); @@ -114,7 +114,7 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl ids) { this.update( new UpdateWrapper().lambda() - .in(StIvtCheckmst::getCheck_id,ids) + .in(StIvtCheckmst::getCheck_id, ids) .set(StIvtCheckmst::getIs_delete, IOSConstant.IS_DELETE_YES) ); } @@ -134,12 +134,14 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl().lambda() .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) + .ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成")) ); iStIvtCheckdtlService.createCheckDtl(dto); iStIvtCheckdtlService.update( new UpdateWrapper().lambda() - .eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id()) - .set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("盘点中")) + .eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id()) + .ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成")) + .set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("盘点中")) ); } @@ -153,16 +155,37 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl().lambda() + .eq(StIvtCheckdtl::getCheck_id, mstDao.getCheck_id()) + .ne(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成")) + ), mstDao.getCheck_id()); // 更新明细 iStIvtCheckdtlService.update( new UpdateWrapper().lambda() .eq(StIvtCheckdtl::getCheck_id, dto.getCheck_id()) .set(StIvtCheckdtl::getStatus, IOSEnum.CHECK_DTL_STATUS.code("完成")) ); - // 创建损益单 - iStIvtCheckdtlService.createMore(iStIvtCheckdtlService.list( + } + + /** + * 更新主表状态 + * @param check_id 主表标识 + */ + private void updateMst(String check_id) { + StIvtCheckmst mstDao = this.getById(check_id); + List dtlDaoList = iStIvtCheckdtlService.list( new QueryWrapper().lambda() - .eq(StIvtCheckdtl::getCheck_id,mstDao.getCheck_id()) - ),mstDao.getCheck_id()); + .eq(StIvtCheckdtl::getCheck_id, check_id) + ); + boolean is_confirm = dtlDaoList.stream() + .allMatch(row -> row.getStatus().equals(IOSEnum.CHECK_DTL_STATUS.code("完成"))); + + mstDao.setStatus(is_confirm ? IOSEnum.CHECK_MST_STATUS.code("完成") : IOSEnum.CHECK_MST_STATUS.code("盘点中")); + mstDao.setConfirm_optid(SecurityUtils.getCurrentUserId()); + mstDao.setConfirm_optname(SecurityUtils.getCurrentNickName()); + mstDao.setConfirm_time(DateUtil.now()); + this.updateById(mstDao); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml b/wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml new file mode 100644 index 0000000..3d60c0e --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml @@ -0,0 +1,28 @@ + + + + + + + + + ${LOG_HOME}/ErpToWms/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + 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 a480500..b7198a8 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 @@ -16,6 +16,7 @@ https://juejin.cn/post/6844903775631572999 + diff --git a/wms/nladmin-ui/src/views/wms/basedata/material/index.vue b/wms/nladmin-ui/src/views/wms/basedata/material/index.vue index b801798..59d16c5 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/material/index.vue +++ b/wms/nladmin-ui/src/views/wms/basedata/material/index.vue @@ -20,7 +20,18 @@ - + + + 物料同步 + + { + this.crud.toQuery() + this.crud.notify('同步成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) + }) + }, // 改变状态 changeEnabled(data, val) { this.$confirm('此操作将 "' + this.dict.label.is_used[val] + '" ' + data.material_name + ', 是否继续?', '提示', { diff --git a/wms/nladmin-ui/src/views/wms/basedata/material/material.js b/wms/nladmin-ui/src/views/wms/basedata/material/material.js index 7d1578f..8e57e4e 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/material/material.js +++ b/wms/nladmin-ui/src/views/wms/basedata/material/material.js @@ -47,4 +47,12 @@ export function getProductSeries() { }) } -export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries } +export function materialSync(data) { + return request({ + url: 'api/Materia/materialSync', + method: 'post', + data + }) +} + +export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries, materialSync } diff --git a/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue b/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue index 61fb745..5fec2de 100644 --- a/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue +++ b/wms/nladmin-ui/src/views/wms/st/checkbill/CheckDialog.vue @@ -95,7 +95,7 @@