From e275e91030a13f5627e21e7e44d308cee78fb31c Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 28 十一月 2025 11:04:40 +0800
Subject: [PATCH] 原材料报检:同一批次号不是第一次报检,企业微信通知格式调整 原材料下单:待下单的订单批次号重复的高亮显示
---
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java | 6 +-
basic-server/src/main/resources/mapper/StandardTreeMapper.xml | 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java | 16 +++++++-
ruoyi-admin/src/main/resources/application-test.yml | 6 +++
basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java | 6 +++
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 9 ++--
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 45 ++++++++++++++++++----
ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java | 2
inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java | 11 +++--
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java | 3 -
10 files changed, 79 insertions(+), 27 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
index d824587..a743522 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -6,9 +6,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.*;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
-import com.ruoyi.basic.pojo.StandardMethodList;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.basic.pojo.StandardTree;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -47,8 +47,8 @@
List<FactoryDto> selectStandardTreeListByPartNo(@Param("partNo") String partNo);
- IPage<IfsInventoryQuantity> selectIfsPage(IPage<IfsInventoryQuantity> page,
- @Param("ew") QueryWrapper<IfsInventoryQuantity> ew);
+ IPage<IfsInventoryQuantityVO> selectIfsPage(IPage<IfsInventoryQuantity> page,
+ @Param("ew") QueryWrapper<IfsInventoryQuantity> ew);
IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page,
@Param("ew") QueryWrapper<IfsInventoryQuantityDto> ew);
diff --git a/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java b/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
index a7cc348..5de8544 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
@@ -28,4 +28,10 @@
@ApiModelProperty(value = "鍚屾鐘舵�侊紙0锛氭湭鍚屾锛�1锛氬凡鍚屾锛�")
private Integer syncStatus;
+ /**
+ * 鎵规鍙锋槸鍚﹂噸澶嶆姤妫�
+ */
+ @ApiModelProperty("鎵规鍙锋槸鍚﹂噸澶嶆姤妫�")
+ private Boolean lotBatchNoHasRepeat;
+
}
diff --git a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
index 61812e8..aca179c 100644
--- a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
+++ b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -317,7 +317,7 @@
order by send_time desc
</select>
- <select id="selectIfsPage" resultType="com.ruoyi.basic.pojo.IfsInventoryQuantity">
+ <select id="selectIfsPage" resultType="com.ruoyi.basic.vo.IfsInventoryQuantityVO">
SELECT * from ifs_inventory_quantity ifs
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
index 5644cdc..ae17b0d 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -141,7 +141,6 @@
@ApiOperation(value = "鎶ユ")
@PostMapping("/inspectionReportOne")
public Result<?> inspectionReportOne(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
-
return Result.success(rawMaterialOrderService.inspectionReportOne(ifsInventoryQuantity));
}
@@ -178,7 +177,7 @@
@ApiOperation(value = "浠撳簱鎶ユ鏌ヨ")
@GetMapping("/getWarehouseSubmit")
- public Result getWarehouseSubmit(Page page, IfsInventoryQuantity ifsInventoryQuantity) throws Exception {
+ public Result getWarehouseSubmit(Page page, IfsInventoryQuantity ifsInventoryQuantity) {
return Result.success(rawMaterialOrderService.getWarehouseSubmit(page, ifsInventoryQuantity));
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
index e6ceea9..3cc8a95 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
@@ -2,21 +2,22 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.dto.*;
+import com.ruoyi.basic.dto.IfsInventoryQuantityCheckDto;
+import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
+import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.dto.CopperInsOrderDto;
import com.ruoyi.inspect.dto.OrderSplitDTO;
import com.ruoyi.inspect.dto.SampleProductDto;
import com.ruoyi.inspect.pojo.InsOrder;
-import com.ruoyi.inspect.dto.CopperInsOrderDto;
-import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.util.List;
-import java.util.Map;
/**
* @Author zhuo
@@ -32,7 +33,7 @@
* @param ifsInventoryQuantity
* @return
*/
- IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
+ IPage<IfsInventoryQuantityVO> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
/**
* 鏌ヨ妫�楠屽��
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index d3f2274..3899218 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -638,11 +638,12 @@
if(isSplitOrder){
ifsInventoryQuantity.setIsSplitOrder(1);
}
+ //todo:涓嶆竻妤氱敤閫旓紝鏆傛椂灞忚斀鎺�
// 鏌ヨ浜т笟閾炬娴嬫暟鎹�
- String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(),
- ifsInventoryQuantity.getLineNo(),
- ifsInventoryQuantity.getReleaseNo());
- ifsInventoryQuantity.setIndustryChain(industryChainAttrFields);
+// String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(),
+// ifsInventoryQuantity.getLineNo(),
+// ifsInventoryQuantity.getReleaseNo());
+// ifsInventoryQuantity.setIndustryChain(industryChainAttrFields);
ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 50a5633..f95862f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -50,6 +50,7 @@
import com.ruoyi.inspect.service.RawMaterialOrderService;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
import com.ruoyi.system.mapper.UserMapper;
@@ -146,8 +147,15 @@
}
@Override
- public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
- return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+ public IPage<IfsInventoryQuantityVO> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+ IPage<IfsInventoryQuantityVO> ifsInventoryQuantityIPage = standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+ ifsInventoryQuantityIPage.getRecords().forEach(f->{
+ Long count = ifsInventoryQuantityMapper.selectCount(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+ .ne(IfsInventoryQuantity::getId,f.getId())
+ .eq(IfsInventoryQuantity::getUpdateBatchNo, f.getUpdateBatchNo()));
+ f.setLotBatchNoHasRepeat(count>0);
+ });
+ return ifsInventoryQuantityIPage;
}
@Override
@@ -241,13 +249,32 @@
threadPoolTaskExecutor.execute(() -> {
IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
- // 浼佷笟寰俊閫氱煡
- String message = "";
- message += "鏂板鎶ユ閫氱煡";
- message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
- message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
- message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
- WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+ //鏌ヨ鐩稿悓鎵瑰彿鐨勫巻鍙瞚fs璁㈠崟
+ List<IfsInventoryQuantity> historyRecords = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+ .ne(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
+ .eq(IfsInventoryQuantity::getIsInspect, 1)
+ .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
+ );
+ if(CollUtil.isEmpty(historyRecords)){
+ // 浼佷笟寰俊閫氱煡
+ String message = "";
+ message += "鏂板鎶ユ閫氱煡";
+ message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
+ message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
+ message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+ WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+ }else{
+ //鑾峰彇鍘嗗彶鎶佃揪鏁伴噺
+ double sum = historyRecords.stream().map(IfsInventoryQuantity::getQtyArrived).mapToDouble(BigDecimal::doubleValue).sum();
+ String historyQuantity = sum + inventoryQuantity.getBuyUnitMeas();
+ String messageMarkdown = "";
+ messageMarkdown += "鏂板鎶ユ閫氱煡";
+ messageMarkdown += "\n鎵规鍙�: <font color='warning'>" + inventoryQuantity.getUpdateBatchNo() + "</font>";
+ messageMarkdown += "\n闆朵欢鎻忚堪: "+ inventoryQuantity.getPartDesc();
+ messageMarkdown += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+ messageMarkdown += "\n鍘嗗彶鎶佃揪鏁伴噺: " + historyQuantity;
+ WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), messageMarkdown,"markdown");
+ }
});
return 1;
}
diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml
index 95840c7..15072c7 100644
--- a/ruoyi-admin/src/main/resources/application-test.yml
+++ b/ruoyi-admin/src/main/resources/application-test.yml
@@ -150,6 +150,12 @@
# 璐ㄩ噺鎶ユ閫氱煡
examiningUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=21993616-9966-4fe4-81b0-68e99a40c964
+mes:
+ ztzb:
+ ip: http://192.168.7.48:8100
+ user: chen
+ password: u3QMBneOYFqgWoMYdWzjjg==
+
ifs:
contract: ZTZB
contract-key-get: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
index b3620ee..1547e9d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
@@ -11,7 +11,7 @@
//璇锋眰琛ㄥ崟璐﹀彿
private static final String USERNAME = "ZTKJ-N002096";
//璇锋眰琛ㄥ崟瀵嗙爜
- private static final String PASSWORD = "Abc12345@";
+ private static final String PASSWORD = "Comp&52316167";
//Base64鏍煎紡缂栫爜
private static final String PWDBASE64 = Base64.encode(PASSWORD);
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
index 32266bf..9651311 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
@@ -100,9 +100,21 @@
* @throws Exception
*/
public static String informWebHook(String webHook, String content) {
+ return informWebHook(webHook, content,"text");
+ }
+
+ /**
+ * 鎺ㄩ�佺兢娑堟伅
+ *
+ * @param webHook 浼佷笟寰俊鏈哄櫒浜哄湴鍧�
+ * @param content 鏁版嵁
+ * @param msgType 娑堟伅绫诲瀷
+ * @throws Exception
+ */
+ public static String informWebHook(String webHook, String content,String msgType) {
JSONObject jsonObject = new JSONObject()
- .accumulate("msgtype", "text")
- .accumulate("text", new JSONObject()
+ .accumulate("msgtype", msgType)
+ .accumulate(msgType, new JSONObject()
.accumulate("content", content));
return HttpRequest.post(webHook).header("Content-Type", "application/json").body(jsonObject.toString()).execute().body();
}
--
Gitblit v1.9.3