From 44e1167d1f62f5bec950ca51cdcbca9e23f7d275 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <8153694@qq.com>
Date: Fri, 1 Dec 2023 15:01:53 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8B=E9=A1=B9=E6=9D=90?=
 =?UTF-8?q?=E6=96=99=E4=B8=8E=E6=83=85=E5=BD=A2=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../busiz/req/ComplexImplementationReq.java   |   8 +
 .../implement/ComplexImplementDetailInfo.java |  86 ++++++++++
 .../rsp/implement/EventCharacterMap.java      | 147 ++++++++++++++++++
 .../rsp/material/ComplexMaterialInfo.java     |  49 ++++++
 .../xhx/busiz/rsp/material/PointsItem.java    |  16 ++
 .../xhx/busiz/rsp/situation/ChildrenItem.java |  18 +++
 .../rsp/situation/ComplexStituationInfo.java  |  14 ++
 .../busiz/rsp/situation/MaterialsItem.java    |  16 ++
 .../xhx/busiz/web/ComplexApiController.java   | 137 +++++++++++++++-
 .../com/mortals/xhx/common/key/RedisKey.java  |   2 +-
 .../complex/matter/model/req/BaseReq.java     |   7 +
 .../model/rsp/material/MaterialInfo.java      |  49 ++++++
 .../matter/model/rsp/material/PointsItem.java |  16 ++
 .../matter/service/IComplexMatterService.java |  25 +++
 .../impl/ComplexMatterServiceImpl.java        |  60 ++++++-
 .../xhx/thread/EventAndSituationSendTask.java |  52 +++++++
 .../xhx/thread/ImplementDetailSendTask.java   |  50 ++++++
 .../xhx/thread/ImplementMaterialSendTask.java |  52 +++++++
 .../thread/ImplementSituationSendTask.java    |  50 ++++++
 .../com/mortals/xhx/thread/SendThread.java    |  18 ++-
 20 files changed, 856 insertions(+), 16 deletions(-)
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/ComplexImplementDetailInfo.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/EventCharacterMap.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/ComplexMaterialInfo.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/PointsItem.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ChildrenItem.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ComplexStituationInfo.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/MaterialsItem.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/MaterialInfo.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/PointsItem.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/thread/EventAndSituationSendTask.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementDetailSendTask.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementMaterialSendTask.java
 create mode 100644 complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementSituationSendTask.java

diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/req/ComplexImplementationReq.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/req/ComplexImplementationReq.java
index 54b7a1e..21639f4 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/req/ComplexImplementationReq.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/req/ComplexImplementationReq.java
@@ -3,6 +3,8 @@ package com.mortals.xhx.busiz.req;
 import com.mortals.xhx.busiz.BaseApiReq;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * 浜嬮」鏌ヨ
  *
@@ -18,5 +20,11 @@ public class ComplexImplementationReq extends BaseApiReq {
 
     private String implementName;
 
+    private String eventId;
+
+    private List<String> itemsIds;
+
+
+
 
 }
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/ComplexImplementDetailInfo.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/ComplexImplementDetailInfo.java
new file mode 100644
index 0000000..890843c
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/ComplexImplementDetailInfo.java
@@ -0,0 +1,86 @@
+package com.mortals.xhx.busiz.rsp.implement;
+
+import lombok.Data;
+
+@Data
+public class ComplexImplementDetailInfo{
+	private String factSheet;
+	private String sourceId;
+	private Object deptName;
+	private Object endDate;
+	private String onlineReservation;
+	private Object afternoonStartTime;
+	private String implementCoding;
+	private String runNumbers;
+	private Object typeIdFr;
+	private String eventObjectType;
+	private String crossFlag;
+	private String selfServiceTerminals;
+	private Object dfjha;
+	private String implementName;
+	private Object electronicSealPath;
+	private Object classificationDfZrr;
+	private Object depthId;
+	private Object afternoonEndTime;
+	private String state;
+	private String handlingItemCode;
+	private String logisticeExpress;
+	private Integer limitNum;
+	private String eventId;
+	private Integer useId;
+	private Object legalLimitTime;
+	private Integer deptId;
+	private String eventType;
+	private String eventHandleKind;
+	private Object extend;
+	private Object contrastRatio;
+	private String xsfs;
+	private Object typeIdZrr;
+	private String areaCode;
+	private Object hotNum;
+	private Object thingEventId;
+	private Object promiseLimitTime;
+	private String sourceType;
+	private Object classificationDfFr;
+	private Object eventHandleKindDesc;
+	private Object formData;
+	private String checkInExplanation;
+	private Object accessGrant;
+	private Object startDate;
+	private Object dfjhaType;
+	private String integrationMatterName;
+	private String integrationInputName;
+	private String includeIntegration;
+	private String remark;
+	private Object thingSituation;
+	private String delFlag;
+	private Object morningEndTime;
+	private Object isApproval;
+	private String localAndIntegrationIdentical;
+	private String fullOnlineHandle;
+	private Integer businessFlowId;
+	private String parentEventId;
+	private Object assHandle;
+	private String onlinePayment;
+	private Object isSecondsDo;
+	private Object requestType;
+	private String resultsHandlingType;
+	private String enterHall;
+	private String onlineHandleSystem;
+	private Object eventTypeDetail;
+	private Object optionalWeek;
+	private EventCharacterMap eventCharacterMap;
+	private Object morningStartTime;
+	private Object thingId;
+	private Object schedulingRules;
+	private Object specifyTime;
+	private String checkIn;
+	private String ecId;
+	private Object eventTypeName;
+	private String networkOffice;
+	private Object settledFilePath;
+	private Object bjlx;
+	private String stateDate;
+	private Object unitOfLimitTime;
+	private Object resultsDefines;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/EventCharacterMap.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/EventCharacterMap.java
new file mode 100644
index 0000000..1e3f223
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/implement/EventCharacterMap.java
@@ -0,0 +1,147 @@
+package com.mortals.xhx.busiz.rsp.implement;
+
+import lombok.Data;
+
+@Data
+public class EventCharacterMap{
+	private String lbjg;
+	private String sdnbyqdyj;
+	private String bmjdtsfs;
+	private String bllcsm;
+	private String yyqd;
+	private String gdxzxkcxdyj;
+	private String gbslxzdzqdw;
+	private String sfxmmc;
+	private String zslxztjxssxzxkdfs;
+	private String sdqd;
+	private String xzxkzmc;
+	private String fwdx;
+	private String fwdtbldd;
+	private String state;
+	private String bmzxfs;
+	private String xzxkzjdyxdyfw;
+	private String jsjdsfdjdddd;
+	private String sfqzsx;
+	private String fwdtblsj;
+	private String sfxyzjpd;
+	private Integer userId;
+	private String sfqxhf;
+	private String gdzslxztjxssxzxkfsdyj;
+	private String yywz;
+	private String bsqtfl;
+	private String yddsfdjdddd;
+	private String sfxyzbpmgpjy;
+	private String ifWorkingDayTimed;
+	private String zjfwsxmc;
+	private String autoLimitTimeAlertPercent;
+	private String jdxbl;
+	private String tbcx;
+	private String gkwsnr;
+	private String njsfsf;
+	private String cnbjsxdw;
+	private String yxxt;
+	private String sfyjwj;
+	private String gdxzxkzyxdyfwdyj;
+	private Integer dbsxccs;
+	private String sfyxjm;
+	private String xzxkzdyxqxdw;
+	private String ywzjfwsx;
+	private String bllc;
+	private String nsnj;
+	private String bljgsdfs;
+	private String eventId;
+	private String yxjmyj;
+	private String spjgyb;
+	private String bmbldd;
+	private String gkfs;
+	private String xzxksxlx;
+	private String njzqqtsm;
+	private String gdxzxktjdyj;
+	private String ywxzxkslxz;
+	private String bmblsj;
+	private String xzgxd;
+	private String tbfw;
+	private String xzxkzjdyxdyfwqtsm;
+	private String tgnjdzmhbz;
+	private Integer yxsj;
+	private String zslxztjxssxzxkdqtfssm;
+	private String sfyj;
+	private String gbslxzdqtfssm;
+	private String sdzjfwsxdyij;
+	private String sflhbl;
+	private String fwqd;
+	private String wbdz;
+	private String ywblxkzm;
+	private String gknr;
+	private String yydd;
+	private String xscj;
+	private String zjfwsxsfxz;
+	private Integer legalLimitTime;
+	private String scbz;
+	private String sfsxgzcnbl;
+	private String cjsqmc;
+	private String zjmllx;
+	private String sfxyxcky;
+	private String qzsxmc;
+	private String yddbldd;
+	private String gdxzxkzjyxqxdyj;
+	private String nbzqqtsm;
+	private String ssztbm;
+	private String blxzxkzjyxsxdyq;
+	private String njsfxybscl;
+	private String sfzcrzhy;
+	private String cnbjsxsm;
+	private String sltj;
+	private String gbslxzdfs;
+	private String njzq;
+	private String sfszbz;
+	private String bllct;
+	private String gkqd;
+	private String xsnr;
+	private String ywnjyq;
+	private String sfxyxshgs;
+	private String sfzcyy;
+	private String sfxyzztz;
+	private String sdnjyqdyj;
+	private String ywnbyq;
+	private String fwdtzxfs;
+	private String wzhxtmc;
+	private String unitOfLimitTime;
+	private String fdbjsxdw;
+	private String sfsf;
+	private String fwdtjdtsfs;
+	private String zyxzxkdtj;
+	private String ssztxz;
+	private String jgyblx;
+	private String nbzq;
+	private String yddz;
+	private String jsjdzxbltzdd;
+	private Integer legalTransferLimitTime;
+	private String legalTransferLimitTimeIllustrate;
+	private String qlly;
+	private String sfxyjd;
+	private String sfbz;
+	private Integer promiseLimitTime;
+	private String xzxkzdyxqx;
+	private String smzqfl;
+	private String qxhfbz;
+	private String nbbsclmc;
+	private String fdbjsxsm;
+	private String spjgmc;
+	private String bxxcblyysm;
+	private Double limitTimeAlertPercent;
+	private String sfcqyx;
+	private String blxs;
+	private String xzjddm;
+	private String cjsqbm;
+	private String chargeNoticeTemplate;
+	private String eventImplementationDynamicCharacterId;
+	private String sdxgyq;
+	private String stateDate;
+	private String blsjd;
+	private String sfxyjyjcjy;
+	private String tgzjfwsxdjg;
+	private String bjlx;
+	private String sjr;
+	private String xzjdmc;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/ComplexMaterialInfo.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/ComplexMaterialInfo.java
new file mode 100644
index 0000000..f2e8c83
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/ComplexMaterialInfo.java
@@ -0,0 +1,49 @@
+package com.mortals.xhx.busiz.rsp.material;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class ComplexMaterialInfo{
+	private Object isPaper;
+	private String materialDefineId;
+	private Integer materialTypeId;
+	private Object materialPath;
+	private String acceptanceCtiteria;
+	private String highCameraNoBasisExplain;
+	private List<PointsItem> points;
+	private Object implementName;
+	private Object materialForm;
+	private String goRepeatId;
+	private String updateBy;
+	private Object notation;
+	private Object materialExampleInstances;
+	private String fillNotice;
+	private String channelId;
+	private Object materialApprovalResult;
+	private Object formId;
+	private String eventId;
+	private Object materialPaths;
+	private String sampleTableUrl;
+	private String channelExplain;
+	private String highCameraIsBasis;
+	private String deptId;
+	private Integer paperCopies;
+	private String updateTime;
+	private String materialId;
+	private Integer fromId;
+	private String materialName;
+	private String createBy;
+	private Object examples;
+	private String paperSpecifications;
+	private String createTime;
+	private String ythId;
+	private Object mrpIds;
+	private List<Object> regulations;
+	private Boolean hasForm;
+	private String blankFormUrl;
+	private Object resultsId;
+	private String necessity;
+	private String remarks;
+	private Object isPointsAll;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/PointsItem.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/PointsItem.java
new file mode 100644
index 0000000..53b12c1
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/material/PointsItem.java
@@ -0,0 +1,16 @@
+package com.mortals.xhx.busiz.rsp.material;
+
+import lombok.Data;
+
+@Data
+public class PointsItem{
+	private Object mrpOrder;
+	private String mrpId;
+	private String businessTacheId;
+	private String mrpDetails;
+	private String state;
+	private String stateDate;
+	private String materialId;
+	private Integer userId;
+	private Object businessTacheCode;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ChildrenItem.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ChildrenItem.java
new file mode 100644
index 0000000..2711314
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ChildrenItem.java
@@ -0,0 +1,18 @@
+package com.mortals.xhx.busiz.rsp.situation;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class ChildrenItem{
+	private String situationItemId;
+	private List<MaterialsItem> materials;
+	private String situationDefineId;
+	private String situationItemName;
+	private String label;
+	private String id;
+	private String situationItemType;
+	private String type;
+	private String parentId;
+	private String key;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ComplexStituationInfo.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ComplexStituationInfo.java
new file mode 100644
index 0000000..fccf5e1
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/ComplexStituationInfo.java
@@ -0,0 +1,14 @@
+package com.mortals.xhx.busiz.rsp.situation;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class ComplexStituationInfo{
+	private List<ChildrenItem> children;
+	private String name;
+	private String id;
+	private String label;
+	private String type;
+	private String key;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/MaterialsItem.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/MaterialsItem.java
new file mode 100644
index 0000000..2c1a96d
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/rsp/situation/MaterialsItem.java
@@ -0,0 +1,16 @@
+package com.mortals.xhx.busiz.rsp.situation;
+
+import lombok.Data;
+
+@Data
+public class MaterialsItem{
+	private String name;
+	private String pid;
+	private Integer paperCopies;
+	private String id;
+	private String label;
+	private String type;
+	private String fromId;
+	private String parentId;
+	private String key;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/web/ComplexApiController.java b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/web/ComplexApiController.java
index 54e5710..6af549f 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/busiz/web/ComplexApiController.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/busiz/web/ComplexApiController.java
@@ -15,6 +15,9 @@ import com.mortals.xhx.busiz.req.ComplexImplementationReq;
 import com.mortals.xhx.busiz.rsp.ApiResp;
 import com.mortals.xhx.busiz.rsp.ComplexApiResp;
 import com.mortals.xhx.busiz.rsp.ImplementEventInfo;
+import com.mortals.xhx.busiz.rsp.implement.ComplexImplementDetailInfo;
+import com.mortals.xhx.busiz.rsp.material.ComplexMaterialInfo;
+import com.mortals.xhx.busiz.rsp.situation.ComplexStituationInfo;
 import com.mortals.xhx.common.code.ApiRespCodeEnum;
 import com.mortals.xhx.protocol.complex.ComplexApiRest;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.MatterListInfo;
@@ -25,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 import static com.mortals.xhx.common.key.Constant.HTTP_TIMEOUT;
 import static com.mortals.xhx.common.key.RedisKey.*;
 
@@ -57,21 +62,143 @@ public class ComplexApiController {
         rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
         rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
         try {
-            //鍔犲叆璇锋眰鍙戦€侀槦鍒楋紝骞朵笖闃诲鑾峰彇寮傛绾跨▼缁撴灉
-
             req.setNonce(RandomUtil.randomNumbers(6));
-            //灏嗚姹傚姞鍏ラ槦鍒�
             cacheService.lpush(KEY_COMPLEX_REQ, JSONObject.toJSONString(req));
-            //鑾峰彇寮傛鍝嶅簲缁撴灉
             String rest = cacheService.blpop(KEY_EVENT_IMPLEMENTATION_RESP + req.getNonce(), HTTP_TIMEOUT, String.class);
-            //String rest ="";
             if (ObjectUtil.isEmpty(rest)) {
                 throw new AppException("璇锋眰璁块棶瓒呮椂");
             }
             Rest<ImplementEventInfo> eventListRest = JSON.parseObject(rest, new TypeReference<Rest<ImplementEventInfo>>() {
             });
             return JSON.toJSONString(eventListRest);
+        } catch (Exception e) {
+            log.error("鎺ユ敹鏁版嵁澶辫触", e);
+            rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
+            rsp.setMsg(e.getMessage());
+            return JSON.toJSONString(rsp);
+        }
+    }
 
+    /**
+     * 浜嬮」璇︾粏鏌ヨ
+     *
+     * @param req
+     * @return
+     */
+    @PostMapping("event-implementation/get-by-id")
+    @UnAuth
+    public String implementationGetById(@RequestBody ComplexImplementationReq req) {
+        log.info("銆愪簨椤硅缁嗘煡璇€€戙€愯姹備綋銆�-->  " + JSONObject.toJSONString(req));
+        req.setUrlPath("event-implementation/get-by-id");
+        ApiResp<String> rsp = new ApiResp<>();
+        rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
+        rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
+        try {
+            req.setNonce(RandomUtil.randomNumbers(6));
+            cacheService.lpush(KEY_COMPLEX_REQ, JSONObject.toJSONString(req));
+            String rest = cacheService.blpop(KEY_EVENT_IMPLEMENTATION_RESP + req.getNonce(), HTTP_TIMEOUT, String.class);
+            if (ObjectUtil.isEmpty(rest)) {
+                throw new AppException("璇锋眰璁块棶瓒呮椂");
+            }
+            Rest<ComplexImplementDetailInfo> eventRest = JSON.parseObject(rest, new TypeReference<Rest<ComplexImplementDetailInfo>>() {
+            });
+            return JSON.toJSONString(eventRest);
+        } catch (Exception e) {
+            log.error("鎺ユ敹鏁版嵁澶辫触", e);
+            rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
+            rsp.setMsg(e.getMessage());
+            return JSON.toJSONString(rsp);
+        }
+    }
+
+    /**
+     * 鏌ヨ鍔炵悊浜嬮」鎯呭舰
+     *
+     * @param req
+     * @return
+     */
+    @PostMapping("bus-situation-material/getSituationMaterialTreeByEventIds")
+    @UnAuth
+    public String getSituationMaterialTreeByEventIds(@RequestBody ComplexImplementationReq req) {
+        log.info("銆愭煡璇㈠姙鐞嗕簨椤规儏褰€€戙€愯姹備綋銆�-->  " + JSONObject.toJSONString(req));
+        req.setUrlPath("bus-situation-material/getSituationMaterialTreeByEventIds");
+        ApiResp<String> rsp = new ApiResp<>();
+        rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
+        rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
+        try {
+            req.setNonce(RandomUtil.randomNumbers(6));
+            cacheService.lpush(KEY_COMPLEX_REQ, JSONObject.toJSONString(req));
+            String rest = cacheService.blpop(KEY_EVENT_IMPLEMENTATION_RESP + req.getNonce(), HTTP_TIMEOUT, String.class);
+            if (ObjectUtil.isEmpty(rest)) {
+                throw new AppException("璇锋眰璁块棶瓒呮椂");
+            }
+            Rest<ComplexStituationInfo> eventRest = JSON.parseObject(rest, new TypeReference<Rest<ComplexStituationInfo>>() {
+            });
+            return JSON.toJSONString(eventRest);
+        } catch (Exception e) {
+            log.error("鎺ユ敹鏁版嵁澶辫触", e);
+            rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
+            rsp.setMsg(e.getMessage());
+            return JSON.toJSONString(rsp);
+        }
+    }
+
+    /**
+     * 鏍规嵁浜嬮」涓庢儏褰㈡煡璇㈠姙鐞嗕簨椤规潗鏂�
+     *
+     * @param req
+     * @return
+     */
+    @PostMapping("consulting-service/getMaterialByEventAndSituation")
+    @UnAuth
+    public String getMaterialByEventAndSituation(@RequestBody ComplexImplementationReq req) {
+        log.info("銆愭牴鎹簨椤逛笌鎯呭舰鏌ヨ鍔炵悊浜嬮」鏉愭枡銆戙€愯姹備綋銆�-->  " + JSONObject.toJSONString(req));
+        req.setUrlPath("consulting-service/getMaterialByEventAndSituation");
+        ApiResp<String> rsp = new ApiResp<>();
+        rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
+        rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
+        try {
+            req.setNonce(RandomUtil.randomNumbers(6));
+            cacheService.lpush(KEY_COMPLEX_REQ, JSONObject.toJSONString(req));
+            String rest = cacheService.blpop(KEY_EVENT_IMPLEMENTATION_RESP + req.getNonce(), HTTP_TIMEOUT, String.class);
+            if (ObjectUtil.isEmpty(rest)) {
+                throw new AppException("璇锋眰璁块棶瓒呮椂");
+            }
+            Rest<List<ComplexMaterialInfo>> eventRest = JSON.parseObject(rest, new TypeReference<Rest<List<ComplexMaterialInfo>>>() {
+            });
+            return JSON.toJSONString(eventRest);
+        } catch (Exception e) {
+            log.error("鎺ユ敹鏁版嵁澶辫触", e);
+            rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
+            rsp.setMsg(e.getMessage());
+            return JSON.toJSONString(rsp);
+        }
+    }
+
+    /**
+     * 鏍规嵁浜嬮」鏌ヨ鍔炵悊浜嬮」鏉愭枡
+     *
+     * @param req
+     * @return
+     */
+    @PostMapping("material/findList")
+    @UnAuth
+    public String materialFindList(@RequestBody ComplexImplementationReq req) {
+        log.info("銆愭牴鎹簨椤规煡璇㈠姙鐞嗕簨椤规潗鏂欍€戙€愯姹備綋銆�-->  " + JSONObject.toJSONString(req));
+        req.setUrlPath("material/findList");
+        ApiResp<String> rsp = new ApiResp<>();
+        rsp.setMsg(ApiRespCodeEnum.SUCCESS.getLabel());
+        rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
+        try {
+            req.setNonce(RandomUtil.randomNumbers(6));
+            cacheService.lpush(KEY_COMPLEX_REQ, JSONObject.toJSONString(req));
+            String rest = cacheService.blpop(KEY_EVENT_IMPLEMENTATION_RESP + req.getNonce(), HTTP_TIMEOUT, String.class);
+            if (ObjectUtil.isEmpty(rest)) {
+                throw new AppException("璇锋眰璁块棶瓒呮椂");
+            }
+            Rest<ComplexMaterialInfo> eventRest = JSON.parseObject(rest, new TypeReference<Rest<ComplexMaterialInfo>>() {
+            });
+            return JSON.toJSONString(eventRest);
         } catch (Exception e) {
             log.error("鎺ユ敹鏁版嵁澶辫触", e);
             rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java b/complex-window-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java
index b1db53d..250ab93 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java
@@ -12,7 +12,7 @@ public class RedisKey {
 
 
     /**
-     * 浜嬩欢寮傛鍝嶅簲闃熷垪
+     * 浜嬩欢鍒楄〃寮傛鍝嶅簲闃熷垪
      */
     public static final String KEY_EVENT_IMPLEMENTATION_RESP = "complex:event:implementation:resp:";
 
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/req/BaseReq.java b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/req/BaseReq.java
index eda95b5..3b137f7 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/req/BaseReq.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/req/BaseReq.java
@@ -3,9 +3,16 @@ package com.mortals.xhx.protocol.complex.matter.model.req;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class BaseReq implements Serializable {
 
     private String nonce;
+
+    private String eventId;
+
+    private String eventIds;
+
+    private List<String> itemsIds;
 }
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/MaterialInfo.java b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/MaterialInfo.java
new file mode 100644
index 0000000..e9f121a
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/MaterialInfo.java
@@ -0,0 +1,49 @@
+package com.mortals.xhx.protocol.complex.matter.model.rsp.material;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class MaterialInfo{
+	private Object isPaper;
+	private String materialDefineId;
+	private Integer materialTypeId;
+	private Object materialPath;
+	private String acceptanceCtiteria;
+	private String highCameraNoBasisExplain;
+	private List<PointsItem> points;
+	private Object implementName;
+	private Object materialForm;
+	private String goRepeatId;
+	private String updateBy;
+	private Object notation;
+	private Object materialExampleInstances;
+	private String fillNotice;
+	private String channelId;
+	private Object materialApprovalResult;
+	private Object formId;
+	private String eventId;
+	private Object materialPaths;
+	private String sampleTableUrl;
+	private String channelExplain;
+	private String highCameraIsBasis;
+	private String deptId;
+	private Integer paperCopies;
+	private String updateTime;
+	private String materialId;
+	private Integer fromId;
+	private String materialName;
+	private String createBy;
+	private Object examples;
+	private String paperSpecifications;
+	private String createTime;
+	private String ythId;
+	private Object mrpIds;
+	private List<Object> regulations;
+	private Boolean hasForm;
+	private String blankFormUrl;
+	private Object resultsId;
+	private String necessity;
+	private String remarks;
+	private Object isPointsAll;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/PointsItem.java b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/PointsItem.java
new file mode 100644
index 0000000..f842f2f
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/model/rsp/material/PointsItem.java
@@ -0,0 +1,16 @@
+package com.mortals.xhx.protocol.complex.matter.model.rsp.material;
+
+import lombok.Data;
+
+@Data
+public class PointsItem{
+	private Object mrpOrder;
+	private String mrpId;
+	private String businessTacheId;
+	private String mrpDetails;
+	private String state;
+	private String stateDate;
+	private String materialId;
+	private Integer userId;
+	private Object businessTacheCode;
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/IComplexMatterService.java b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/IComplexMatterService.java
index a20a1d8..718bfb4 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/IComplexMatterService.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/IComplexMatterService.java
@@ -10,6 +10,7 @@ import com.mortals.xhx.protocol.complex.matter.model.rsp.AcceptRspInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.LoginRspInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.MatterListInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.implement.ImplementDetailInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.material.MaterialInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.matter.MatterWorkInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.work.WorkInfo;
 
@@ -58,6 +59,30 @@ public interface IComplexMatterService extends IComplexService {
     Rest<MatterListInfo> findMatters(String deviceLogo, ImplementationReq implementationReq);
 
 
+
+    /**
+     * 鏌ヨ浜嬮」鎵€闇€鏉愭枡鏍规嵁浜嬮」涓庢儏褰d
+     *
+     * @param deviceLogo
+     * @param implementationReq
+     * @return
+     */
+    Rest<List<MaterialInfo>> getMaterialByEventAndSituation(String deviceLogo, ImplementationReq implementationReq);
+
+
+
+    /**
+     * 鏌ヨ浜嬮」鎵€闇€鏉愭枡
+     *
+     * @param deviceLogo
+     * @param eventId
+     * @return
+     */
+    Rest<List<MaterialInfo>> getMaterialByEvent(String deviceLogo, String eventId);
+
+
+
+
     /**
      * 鏌ヨ鍔炵悊浜嬮」鎯呭舰
      *
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/impl/ComplexMatterServiceImpl.java b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/impl/ComplexMatterServiceImpl.java
index d5942fa..2760ed6 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/impl/ComplexMatterServiceImpl.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/protocol/complex/matter/service/impl/ComplexMatterServiceImpl.java
@@ -5,6 +5,7 @@ import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.mortals.framework.common.Rest;
 import com.mortals.xhx.protocol.complex.AbstractComplexService;
@@ -16,6 +17,7 @@ import com.mortals.xhx.protocol.complex.matter.model.rsp.AcceptRspInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.LoginRspInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.MatterListInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.implement.ImplementDetailInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.material.MaterialInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.matter.MatterWorkInfo;
 import com.mortals.xhx.protocol.complex.matter.model.rsp.work.WorkInfo;
 import com.mortals.xhx.protocol.complex.matter.service.IComplexMatterService;
@@ -47,7 +49,7 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("deviceLoginApi resp:{}", rest);
         ComplexApiRest<LoginRspInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<LoginRspInfo>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
             //鏇存柊token
             String deviceLoginToken = complexApiRest.getResult().getToken();
             String deviceLogo = complexApiRest.getResult().getSelfDeviceInfo().getDeviceLogo();
@@ -59,7 +61,6 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
 
     @Override
     public Rest<String> uploadFile(String deviceLogo, byte[] bytes, String fileName) {
-
         String uploadApi = host + "common/uploadFileToFtp?conversionImage=Y";
         HttpRequest request = HttpRequest.post(uploadApi);
         String deviceToken = checkToken(deviceLogo);
@@ -68,7 +69,7 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("uploadApi resp:{}", uploadRest);
         ComplexApiRest<String> complexApiRest = JSON.parseObject(uploadRest, new TypeReference<ComplexApiRest<String>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
             return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
         }
         return Rest.fail(complexApiRest.getMessage());
@@ -86,7 +87,7 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("accept resp==>{}", rest);
         ComplexApiRest<List<AcceptRspInfo>> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<List<AcceptRspInfo>>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
             return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
         }
         return Rest.fail(complexApiRest.getMessage());
@@ -112,7 +113,27 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("complexApiRest resp:{}", rest);
         ComplexApiRest<MatterListInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<MatterListInfo>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
+            return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
+        }
+        return Rest.fail(complexApiRest.getMessage());
+    }
+
+
+    @Override
+    public Rest<List<MaterialInfo>> getMaterialByEvent(String deviceLogo, String eventId) {
+        String mattersApi = host + "material/findList";
+        Map<String, String> paramMap = new HashMap<>();
+        paramMap.put("eventId", eventId);
+        String deviceToken = checkToken(deviceLogo);
+        String rest = HttpUtil.createGet(mattersApi)
+                .header("X-Access-Token", deviceToken)
+                .formStr(paramMap)
+                .execute().body();
+        log.info("mattersApi resp:{}", rest);
+        ComplexApiRest<List<MaterialInfo>> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<List<MaterialInfo>>>() {
+        });
+        if (complexApiRest.getSuccess()) {
             return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
         }
         return Rest.fail(complexApiRest.getMessage());
@@ -131,7 +152,7 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("mattersApi resp:{}", rest);
         ComplexApiRest<List<MatterWorkInfo>> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<List<MatterWorkInfo>>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
             if (!ObjectUtils.isEmpty(complexApiRest.getResult())) {
                 return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult().get(0));
             } else {
@@ -154,7 +175,7 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         ComplexApiRest<WorkInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<WorkInfo>>() {
         });
         log.info("getDynamicFormByEventIds resp:{}", rest);
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
             return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
         }
         return Rest.fail(complexApiRest.getMessage());
@@ -169,7 +190,30 @@ public class ComplexMatterServiceImpl extends AbstractComplexService implements
         log.info("implementDetailApi resp:{}", rest);
         ComplexApiRest<ImplementDetailInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<ImplementDetailInfo>>() {
         });
-        if (complexApiRest.getCode() == 200) {
+        if (complexApiRest.getSuccess()) {
+            return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
+        }
+        return Rest.fail(complexApiRest.getMessage());
+    }
+
+
+    @Override
+    public Rest<List<MaterialInfo>> getMaterialByEventAndSituation(String deviceLogo, ImplementationReq implementationReq) {
+        String mattersApi = host + "consulting-service/getMaterialByEventAndSituation";
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("eventId", implementationReq.getEventId());
+        jsonObject.put("itemsIds", implementationReq.getItemsIds());
+
+        String deviceToken = checkToken(deviceLogo);
+        String rest = HttpUtil.createPost(mattersApi)
+                .header("X-Access-Token", deviceToken)
+                .body(jsonObject.toJSONString())
+                .execute().body();
+        log.info("getMaterialByEventAndSituation resp==>{}", rest);
+        ComplexApiRest<List<MaterialInfo>> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<List<MaterialInfo>>>() {
+        });
+        if (complexApiRest.getSuccess()) {
             return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult());
         }
         return Rest.fail(complexApiRest.getMessage());
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/thread/EventAndSituationSendTask.java b/complex-window-manager/src/main/java/com/mortals/xhx/thread/EventAndSituationSendTask.java
new file mode 100644
index 0000000..c4ba222
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/thread/EventAndSituationSendTask.java
@@ -0,0 +1,52 @@
+package com.mortals.xhx.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
+import com.mortals.framework.service.ICacheService;
+import com.mortals.xhx.protocol.complex.matter.model.req.ImplementationReq;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.material.MaterialInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.matter.MatterWorkInfo;
+import com.mortals.xhx.protocol.complex.matter.service.IComplexMatterService;
+import com.mortals.xhx.utils.SpringUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+import static com.mortals.xhx.common.key.Constant.REDIS_RESP_TIMEOUT;
+import static com.mortals.xhx.common.key.RedisKey.KEY_EVENT_IMPLEMENTATION_RESP;
+
+@Slf4j
+public class EventAndSituationSendTask implements Runnable {
+
+    private ImplementationReq implementationReq;
+
+    private String deviceLogo;
+
+    private IComplexMatterService complexMatterService;
+
+    private ICacheService cacheService;
+
+
+    public EventAndSituationSendTask(String deviceLogo, ImplementationReq implementationReq) {
+        this.implementationReq = implementationReq;
+        this.deviceLogo = deviceLogo;
+        complexMatterService = SpringUtils.getBean(IComplexMatterService.class);
+        cacheService = SpringUtils.getBean(ICacheService.class);
+    }
+
+    @Override
+    public void run() {
+        try {
+            log.info("鍚姩鍙戦€�");
+            Rest<List<MaterialInfo>> rest = complexMatterService.getMaterialByEventAndSituation(deviceLogo, implementationReq);
+            log.info("鍙戦€佸畬鎴�==>{}", JSONObject.toJSONString(rest));
+            cacheService.lpushForTime(KEY_EVENT_IMPLEMENTATION_RESP + implementationReq.getNonce(), REDIS_RESP_TIMEOUT, JSONObject.toJSONString(rest));
+
+        } catch (Exception e) {
+            log.error("鍙戦€佸紓甯革細" + e);
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementDetailSendTask.java b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementDetailSendTask.java
new file mode 100644
index 0000000..d719072
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementDetailSendTask.java
@@ -0,0 +1,50 @@
+package com.mortals.xhx.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
+import com.mortals.framework.service.ICacheService;
+import com.mortals.xhx.protocol.complex.matter.model.req.ImplementationReq;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.MatterListInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.implement.ImplementDetailInfo;
+import com.mortals.xhx.protocol.complex.matter.service.IComplexMatterService;
+import com.mortals.xhx.utils.SpringUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.mortals.xhx.common.key.Constant.REDIS_RESP_TIMEOUT;
+import static com.mortals.xhx.common.key.RedisKey.KEY_EVENT_IMPLEMENTATION_RESP;
+
+@Slf4j
+public class ImplementDetailSendTask implements Runnable {
+
+    private ImplementationReq implementationReq;
+
+    private String deviceLogo;
+
+    private IComplexMatterService complexMatterService;
+
+    private ICacheService cacheService;
+
+
+    public ImplementDetailSendTask(String deviceLogo, ImplementationReq implementationReq) {
+        this.implementationReq = implementationReq;
+        this.deviceLogo = deviceLogo;
+        complexMatterService = SpringUtils.getBean(IComplexMatterService.class);
+        cacheService = SpringUtils.getBean(ICacheService.class);
+    }
+
+    @Override
+    public void run() {
+        try {
+            log.info("鍚姩鍙戦€�");
+            Rest<ImplementDetailInfo> rest = complexMatterService.getImplement(deviceLogo, implementationReq.getEventId());
+            log.info("鍙戦€佸畬鎴�==>{}", JSONObject.toJSONString(rest));
+            cacheService.lpushForTime(KEY_EVENT_IMPLEMENTATION_RESP + implementationReq.getNonce(), REDIS_RESP_TIMEOUT, JSONObject.toJSONString(rest));
+
+        } catch (Exception e) {
+            log.error("鍙戦€佸紓甯革細" + e);
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementMaterialSendTask.java b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementMaterialSendTask.java
new file mode 100644
index 0000000..a3ba578
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementMaterialSendTask.java
@@ -0,0 +1,52 @@
+package com.mortals.xhx.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
+import com.mortals.framework.service.ICacheService;
+import com.mortals.xhx.protocol.complex.matter.model.req.ImplementationReq;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.material.MaterialInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.matter.MatterWorkInfo;
+import com.mortals.xhx.protocol.complex.matter.service.IComplexMatterService;
+import com.mortals.xhx.utils.SpringUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+import static com.mortals.xhx.common.key.Constant.REDIS_RESP_TIMEOUT;
+import static com.mortals.xhx.common.key.RedisKey.KEY_EVENT_IMPLEMENTATION_RESP;
+
+@Slf4j
+public class ImplementMaterialSendTask implements Runnable {
+
+    private ImplementationReq implementationReq;
+
+    private String deviceLogo;
+
+    private IComplexMatterService complexMatterService;
+
+    private ICacheService cacheService;
+
+
+    public ImplementMaterialSendTask(String deviceLogo, ImplementationReq implementationReq) {
+        this.implementationReq = implementationReq;
+        this.deviceLogo = deviceLogo;
+        complexMatterService = SpringUtils.getBean(IComplexMatterService.class);
+        cacheService = SpringUtils.getBean(ICacheService.class);
+    }
+
+    @Override
+    public void run() {
+        try {
+            log.info("鍚姩鍙戦€�");
+            Rest<List<MaterialInfo>> rest = complexMatterService.getMaterialByEvent(deviceLogo, implementationReq.getEventId());
+            log.info("鍙戦€佸畬鎴�==>{}", JSONObject.toJSONString(rest));
+            cacheService.lpushForTime(KEY_EVENT_IMPLEMENTATION_RESP + implementationReq.getNonce(), REDIS_RESP_TIMEOUT, JSONObject.toJSONString(rest));
+
+        } catch (Exception e) {
+            log.error("鍙戦€佸紓甯革細" + e);
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementSituationSendTask.java b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementSituationSendTask.java
new file mode 100644
index 0000000..9ba0092
--- /dev/null
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/thread/ImplementSituationSendTask.java
@@ -0,0 +1,50 @@
+package com.mortals.xhx.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
+import com.mortals.framework.service.ICacheService;
+import com.mortals.xhx.protocol.complex.matter.model.req.ImplementationReq;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.implement.ImplementDetailInfo;
+import com.mortals.xhx.protocol.complex.matter.model.rsp.matter.MatterWorkInfo;
+import com.mortals.xhx.protocol.complex.matter.service.IComplexMatterService;
+import com.mortals.xhx.utils.SpringUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.mortals.xhx.common.key.Constant.REDIS_RESP_TIMEOUT;
+import static com.mortals.xhx.common.key.RedisKey.KEY_EVENT_IMPLEMENTATION_RESP;
+
+@Slf4j
+public class ImplementSituationSendTask implements Runnable {
+
+    private ImplementationReq implementationReq;
+
+    private String deviceLogo;
+
+    private IComplexMatterService complexMatterService;
+
+    private ICacheService cacheService;
+
+
+    public ImplementSituationSendTask(String deviceLogo, ImplementationReq implementationReq) {
+        this.implementationReq = implementationReq;
+        this.deviceLogo = deviceLogo;
+        complexMatterService = SpringUtils.getBean(IComplexMatterService.class);
+        cacheService = SpringUtils.getBean(ICacheService.class);
+    }
+
+    @Override
+    public void run() {
+        try {
+            log.info("鍚姩鍙戦€�");
+            Rest<MatterWorkInfo> rest = complexMatterService.doWorkMatterSearch(deviceLogo, implementationReq.getEventId());
+            log.info("鍙戦€佸畬鎴�==>{}", JSONObject.toJSONString(rest));
+            cacheService.lpushForTime(KEY_EVENT_IMPLEMENTATION_RESP + implementationReq.getNonce(), REDIS_RESP_TIMEOUT, JSONObject.toJSONString(rest));
+
+        } catch (Exception e) {
+            log.error("鍙戦€佸紓甯革細" + e);
+        }
+
+
+    }
+
+}
\ No newline at end of file
diff --git a/complex-window-manager/src/main/java/com/mortals/xhx/thread/SendThread.java b/complex-window-manager/src/main/java/com/mortals/xhx/thread/SendThread.java
index b122ca9..64213d6 100644
--- a/complex-window-manager/src/main/java/com/mortals/xhx/thread/SendThread.java
+++ b/complex-window-manager/src/main/java/com/mortals/xhx/thread/SendThread.java
@@ -55,8 +55,22 @@ public class SendThread extends AbstractThread {
                 ImplementationReq implementationReq = JSONObject.parseObject(reqStr, ImplementationReq.class);
                 ImplementListSendTask implementListSendTask = new ImplementListSendTask(deviceCode, implementationReq);
                 ThreadPool.getInstance().execute(implementListSendTask);
-            }else if("".equals(urlPath)){
-
+            }else if("event-implementation/get-by-id".equals(urlPath)){
+                ImplementationReq implementationReq = JSONObject.parseObject(reqStr, ImplementationReq.class);
+                ImplementDetailSendTask implementSendTask = new ImplementDetailSendTask(deviceCode, implementationReq);
+                ThreadPool.getInstance().execute(implementSendTask);
+            }else if("bus-situation-material/getSituationMaterialTreeByEventIds".equals(urlPath)){
+                ImplementationReq implementationReq = JSONObject.parseObject(reqStr, ImplementationReq.class);
+                ImplementSituationSendTask implementSendTask = new ImplementSituationSendTask(deviceCode, implementationReq);
+                ThreadPool.getInstance().execute(implementSendTask);
+            }else if("consulting-service/getMaterialByEventAndSituation".equals(urlPath)){
+                ImplementationReq implementationReq = JSONObject.parseObject(reqStr, ImplementationReq.class);
+                EventAndSituationSendTask implementSendTask = new EventAndSituationSendTask(deviceCode, implementationReq);
+                ThreadPool.getInstance().execute(implementSendTask);
+            }else if("material/findList".equals(urlPath)){
+                ImplementationReq implementationReq = JSONObject.parseObject(reqStr, ImplementationReq.class);
+                ImplementMaterialSendTask implementSendTask = new ImplementMaterialSendTask(deviceCode, implementationReq);
+                ThreadPool.getInstance().execute(implementSendTask);
             }
 
         }
-- 
2.24.3