From caa7a2327123cc070ae16ad802983c04e296ff11 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 04 二月 2026 13:46:00 +0800
Subject: [PATCH] #1。档案同步2,任务状态上报,3设备状态读取,4心跳,5wms手动完成取消任务
---
src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 168 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java
index 45bbcfe..a6ce423 100644
--- a/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java
@@ -1,17 +1,35 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.Tag;
+import com.zy.asrs.entity.param.MatSyncParam;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.TagService;
+import com.zy.common.config.CoolExceptionHandler;
+import com.zy.erp.kingdee.enums.KingDeeUtilType;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.mapper.MatMapper;
import com.zy.asrs.service.MatService;
+import org.springframework.transaction.annotation.Transactional;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
@Service("matService")
public class MatServiceImpl extends ServiceImpl<MatMapper, Mat> implements MatService {
-
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private TagService tagService;
@Override
public Page<Mat> getPage(Page page, String tagId, Object matnr, Object maktx) {
return page.setRecords(baseMapper.listByPage(page, tagId, matnr, maktx));
@@ -56,11 +74,159 @@
page.setTotal(16);
return page;
};
- @Override
public String getOldMatnr(Long id){
return this.baseMapper.getOldMatnr(id);
}
+ private Tag getOrCreateTag(MatSyncParam.MatParam param) {
+ Tag tag = tagService.selectOne(
+ new EntityWrapper<Tag>()
+ .eq("name", param.getGroupName())
+ .eq("uuid", param.getGroupId())
+ );
+ Tag tagAll = tagService.selectOne(new EntityWrapper<Tag>().eq("name", "鍏ㄩ儴"));
+ if (tag == null) {
+ tag = new Tag();
+ tag.setUuid(param.getGroupId());
+ tag.setName(param.getGroupName());
+ tag.setParentId(tagAll.getId());
+ tag.setParentName("鍏ㄩ儴");
+ tag.setPath(String.valueOf(tagAll.getId()));
+ tag.setPathName("鍏ㄩ儴");
+ tag.setStatus(1);
+ tag.setLevel(2);
+ if (!tagService.insert(tag)) {
+ throw new CoolException("鏂板缓鐩綍澶辫触");
+ }
+ }
+ return tag;
+ }
+
+ @Override
+ public R sync(MatSyncParam matSyncParam) {
+
+ List<String> errors = new ArrayList<>();
+ Date now = new Date();
+
+ for (MatSyncParam.MatParam param : matSyncParam.getMatDetails()) {
+
+ try {
+ if (param.getOperateType() == 1 || param.getOperateType() == 2) {
+
+ Tag tag = getOrCreateTag(param);
+ Mat mat = this.selectOne(
+ new EntityWrapper<Mat>().eq("matnr", param.getMatNr())
+ );
+
+ if (mat == null) {
+ mat = new Mat();
+ mat.setMatnr(param.getMatNr());
+ mat.setStatus(1);
+ fillMat(mat, param, tag);
+ mat.setCreateTime(now);
+
+ if (!this.insert(mat)) {
+ errors.add("鏂板鐗╂枡澶辫触锛�" + param.getMatNr());
+ }
+ } else {
+ if (fillMat(mat, param, tag)) {
+ mat.setUpdateTime(now);
+ if (!this.updateById(mat)) {
+ errors.add("鏇存柊鐗╂枡澶辫触锛�" + param.getMatNr());
+ }
+ }
+ }
+ }
+
+ if (param.getOperateType() == 3 || param.getOperateType() == 4) {
+ Mat mat = this.selectOne(
+ new EntityWrapper<Mat>().eq("matnr", param.getMatNr())
+ );
+ if (mat == null) {
+ errors.add("鐗╂枡涓嶅瓨鍦細" + param.getMatNr());
+ continue;
+ }
+ mat.setStatus(param.getOperateType() == 3 ? 0 : 1);
+ if (!this.updateById(mat)) {
+ errors.add("鐘舵�佹洿鏂板け璐ワ細" + param.getMatNr());
+ }
+ }
+
+ } catch (Exception e) {
+ errors.add("澶勭悊寮傚父锛�" + param.getMatNr());
+ }
+ }
+
+ if (errors.isEmpty()) {
+ return R.ok("鍚屾鎴愬姛");
+ }
+ R r = R.error("鍚屾瀹屾垚锛屽瓨鍦ㄥけ璐ユ暟鎹�");
+ r.put("errors", errors);
+ return r;
+ }
+ private boolean fillMat(Mat mat, MatSyncParam.MatParam param, Tag tag) {
+ boolean changed = false;
+
+ if (!Objects.equals(mat.getMaktx(), param.getMakTx())) {
+ mat.setMaktx(param.getMakTx());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getMemo(), param.getDescrible())) {
+ mat.setMemo(param.getDescrible());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getWeight(), param.getWeight())) {
+ mat.setWeight(param.getWeight());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getSpecs(), param.getSpec())) {
+ mat.setSpecs(param.getSpec());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getModel(), param.getModel())) {
+ mat.setModel(param.getModel());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getColor(), param.getColor())) {
+ mat.setColor(param.getColor());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getBrand(), param.getSize())) {
+ mat.setBrand(param.getSize());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getUnit(), param.getUnit())) {
+ mat.setUnit(param.getUnit());
+ changed = true;
+ }
+
+ if (!Objects.equals(mat.getUuid(), param.getGroupId())) {
+ mat.setUuid(param.getGroupId());
+ changed = true;
+ }
+
+ Long tagId = tag == null ? null : tag.getId();
+ if (!Objects.equals(mat.getTagId(), tagId)) {
+ mat.setTagId(tagId);
+ changed = true;
+ }
+
+ return changed;
+ }
+
+ public void callApiLogSaveMat(Mat mat, String response, Boolean bool) {
+ apiLogService.save("鍟嗗搧妗f鍚屾", "mat/sync", "null", "localhost",
+ "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getMaktx() + "銆佹瘺閲嶏細" + mat.getWeight()
+ + "銆佺姸鎬侊細" + mat.getStatus$(),
+ response, bool);
+ }
}
--
Gitblit v1.9.1