From 44e608f7d29a0e7b862e17148a98aba6dacba1b0 Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期六, 16 八月 2025 11:11:00 +0800
Subject: [PATCH] art: WebService启动加载问题修正
---
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java | 186 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 184 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
index 04db58b..c895470 100644
--- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
@@ -1,22 +1,204 @@
package org.jeecg.modules.andon.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.modules.andon.dto.AndonButtonDTO;
+import org.jeecg.modules.andon.entity.AndonButtonConfig;
+import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import org.jeecg.modules.andon.mapper.AndonResponseConfigMapper;
+import org.jeecg.modules.andon.service.IAndonButtonConfigService;
+import org.jeecg.modules.andon.service.IAndonOrderService;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
+import org.jeecg.modules.base.entity.Factory;
+import org.jeecg.modules.base.service.IFactoryService;
+import org.jeecg.modules.feishu.service.FeishuUserService;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
/**
* @Description: 瀹夌伅鍝嶅簲閰嶇疆
* @Author: jeecg-boot
- * @Date: 2025-07-10
+ * @Date: 2025-07-10
* @Version: V1.0
*/
@Service
public class AndonResponseConfigServiceImpl extends ServiceImpl<AndonResponseConfigMapper, AndonResponseConfig> implements IAndonResponseConfigService {
+ @Autowired
+ private IFactoryService factoryService;
+
+ @Autowired
+ private ISysUserService iSysUserService;
+
+ @Autowired
+ private FeishuUserService feishuUserService;
+ @Autowired
+ private IAndonButtonConfigService andonButtonConfigService;
+
+ @Autowired
+ private IAndonOrderService andonOrderService;
@Override
public AndonResponseConfig getAndonResponseConfigByFactoryIdAndButtonId(String factoryId, String buttonId) {
- return baseMapper.getAndonResponseConfigByFactoryIdAndButtonId(factoryId,buttonId);
+ return baseMapper.getAndonResponseConfigByFactoryIdAndButtonId(factoryId, buttonId);
}
+
+ @Override
+ public List<AndonButtonDTO> queryAndonButtonList(String factoryId) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public void sendAndonNotification(AndonButtonDTO andonButtonDTO) {
+ /**
+ * 1. 楠岃瘉宸ュ崟鐘舵��
+ */
+ if (andonButtonDTO == null) {
+ log.warn("璇锋眰鍙傛暟涓虹┖");
+ throw new IllegalArgumentException("璇锋眰鍙傛暟涓嶈兘涓虹┖");
+ }
+ /**
+ * 2. 鑾峰彇鍝嶅簲閰嶇疆
+ */
+ AndonResponseConfig andonResponseConfig = this.getById(andonButtonDTO.getId());
+
+ AndonOrder andonOrder = andonOrderService.getById(andonButtonDTO.getOrderIds());
+ if (andonOrder == null) {
+ log.warn("鏈壘鍒癐D涓篬{}]鐨勫畨鐏鍗�");
+ throw new IllegalArgumentException("鏈壘鍒板搴旂殑瀹夌伅璁㈠崟");
+ }
+ String orderStatus = andonOrder.getOrderStatus();
+ andonButtonDTO.setOrderStatus(orderStatus);
+ if (andonResponseConfig == null) {
+ log.warn("鏈壘鍒癐D涓篬{}]鐨勫搷搴旈厤缃�");
+ throw new IllegalArgumentException("鏈壘鍒板搴旂殑鍝嶅簲閰嶇疆");
+ }
+ /**
+ * 3. 璁剧疆浜岀骇鍝嶅簲浜�
+ */
+ String secondResponder = andonResponseConfig.getSecondResponder();
+ if (StringUtils.isNotBlank(secondResponder)) {
+ andonButtonDTO.setSecondResponder(secondResponder);
+ }
+
+ /**
+ * 4. 鑾峰彇宸ュ巶淇℃伅
+ */
+
+ String factoryId = andonResponseConfig.getFactoryId();
+ if (factoryId == null || factoryId.isEmpty()) {
+ log.warn("鍝嶅簲閰嶇疆[{}]鏈缃伐鍘侷D");
+ throw new IllegalArgumentException("鍝嶅簲閰嶇疆鏈缃伐鍘備俊鎭�");
+ }
+
+ Factory factory = factoryService.getOne(new QueryWrapper<Factory>()
+ .eq("id", factoryId)
+ .eq("del_flag", 0));
+
+ if (factory == null) {
+ log.warn("鏈壘鍒癐D涓篬{}]鐨勫伐鍘�");
+ throw new IllegalArgumentException("鏈壘鍒板搴旂殑宸ュ巶淇℃伅");
+ }
+
+ /**
+ * 鑾峰彇浜х嚎鍚嶇О
+ */
+ String factoryName = factory.getFactoryName();
+ andonButtonDTO.setFactoryName(factoryName);
+ /**
+ * 6. 璁剧疆宸ュ巶鍚嶇О
+ */
+ String parentId = factory.getParentId();
+ if (parentId != null && !parentId.isEmpty()) {
+ Factory parentFactory = factoryService.getOne(new QueryWrapper<Factory>()
+ .eq("id", parentId)
+ .eq("del_flag", 0));
+ if (parentFactory != null) {
+ andonButtonDTO.setParentFactoryName(parentFactory.getFactoryName());
+ }
+ }
+ /**
+ * 6. 鑾峰彇瀹夌伅鎸夐挳閰嶇疆
+ */
+ AndonButtonConfig andonButtonById = andonButtonConfigService.getAndonButtonById(andonButtonDTO.getButtonId());
+ if (andonButtonById == null) {
+ log.warn("鏈壘鍒癐D涓篬{}]鐨勫畨鐏寜閽�");
+ throw new IllegalArgumentException("鏈壘鍒板搴旂殑瀹夌伅鎸夐挳淇℃伅");
+ }
+ /**
+ * 7. 璁剧疆鍝嶅簲鏃堕棿
+ */
+ Integer upgradeResponseDuration = andonButtonById.getUpgradeResponseDuration();
+ andonButtonDTO.setUpgradeResponseDuration(upgradeResponseDuration);
+
+ Integer secondUpgradeResponseDuration = andonButtonById.getSecondUpgradeResponseDuration();
+ andonButtonDTO.setSecondUpgradeResponseDuration(secondUpgradeResponseDuration);
+
+ /**
+ * 8. 鑾峰彇鍝嶅簲浜轰俊鎭�
+ */
+ String firstResponder = andonResponseConfig.getFirsterResponder();
+ String threeResponder = andonResponseConfig.getThirdResponder();
+ SysUser thirdUser = iSysUserService.getUserByName(threeResponder);
+ SysUser userByName = iSysUserService.getUserByName(firstResponder);
+ SysUser secondUser = null;
+
+ if (StringUtils.isNotBlank(secondResponder)) {
+ secondUser = iSysUserService.getUserByName(secondResponder);
+ }
+ /**
+ * 9. 楠岃瘉骞惰缃搷搴斾汉淇℃伅
+ */
+
+ if (userByName == null) {
+ log.warn("鐢ㄦ埛[{}]鏈壘鍒帮紝鏃犳硶鍙戦�侀�氱煡");
+ throw new IllegalArgumentException("鐢ㄦ埛[{}]鏈壘鍒帮紝鏃犳硶鍙戦�侀�氱煡");
+ }
+
+ if (secondUser == null && StringUtils.isNotBlank(secondResponder)) {
+ log.warn("鐢ㄦ埛[{}]鏈壘鍒帮紝鏃犳硶鍙戦�侀�氱煡");
+ throw new IllegalArgumentException("鐢ㄦ埛[{}]鏈壘鍒帮紝鏃犳硶鍙戦�侀�氱煡");
+ }
+
+ if (threeResponder == null) {
+ StringUtils.isNotBlank(null);
+ }
+ //
+ /**
+ * 10. 璁剧疆鍝嶅簲浜虹浉鍏充俊鎭�
+ */
+
+ andonButtonDTO.setResponderOpenId(userByName.getOpenId());
+ andonButtonDTO.setResponder(userByName.getRealname());
+ log.warn("鐢ㄦ埛[{}]宸叉壘鍒帮紝寮�濮嬪彂閫侀�氱煡");
+
+ if (secondUser != null) {
+ andonButtonDTO.setSecondResponderOpenId(secondUser.getOpenId());
+ andonButtonDTO.setSecondResponder(secondUser.getRealname());
+ log.warn("鐢ㄦ埛[{}]宸叉壘鍒帮紝寮�濮嬪彂閫侀�氱煡");
+ }
+ if (thirdUser != null) {
+ andonButtonDTO.setThirdResponderOpenId(thirdUser.getOpenId());
+ andonButtonDTO.setThirdResponder(thirdUser.getRealname());
+ log.warn("鐢ㄦ埛[{}]宸叉壘鍒帮紝寮�濮嬪彂閫侀�氱煡");
+ }
+
+ /**
+ * 11. 鍙戦�侀涔﹂�氱煡
+ */
+ if (StringUtils.isNotBlank(firstResponder)) {
+ String feishuAccessToken = feishuUserService.getFeishuAccessToken();
+ feishuUserService.sendAndonNotification(feishuAccessToken, andonButtonDTO);
+ } else {
+ log.warn("宸ュ崟[{}]鏈壘鍒板搴斿搷搴斾汉锛屾棤娉曞彂閫侀�氱煡");
+ }
+ }
+
+
}
--
Gitblit v1.9.3