From 64b131814e08131dee09c2aae36937955065c4d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <8153694@qq.com> Date: Wed, 1 Nov 2023 00:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 +- .../lilosoft/api/bean/receive/ErrorsItem.java | 11 + .../api/bean/receive/FileDataItem.java | 19 ++ .../api/bean/receive/ProjectData.java | 16 ++ .../api/bean/receive/ReceiveMsgInfo.java | 31 +++ .../lilosoft/api/controller/MqConsumer.java | 25 ++- .../lilosoft/api/service/ApplyService.java | 57 ++--- .../lilosoft/api/service/ComplexService.java | 93 ++++++++ .../api/service/complexWindow/CommonData.java | 37 ++++ .../complexWindow/ComplexWindowAbstract.java | 75 +++++++ .../service/complexWindow/WXHXPJYXKFRBG.java | 162 ++++++++++++++ .../complex/AbstractComplexService.java | 54 +++++ .../java/com/lilosoft/complex/BaseReq.java | 13 ++ .../com/lilosoft/complex/ComplexApiRest.java | 96 +++++++++ .../com/lilosoft/complex/IComplexService.java | 10 + src/main/java/com/lilosoft/complex/Rest.java | 99 +++++++++ .../complex/matter/model/req/AcceptReq.java | 18 ++ .../matter/model/req/ApplicantLeagal.java | 12 ++ .../matter/model/req/ApplicantPersonal.java | 12 ++ .../matter/model/req/DeviceLoginReq.java | 8 + .../matter/model/req/HandlingsItem.java | 9 + .../matter/model/req/ImplementationReq.java | 25 +++ .../complex/matter/model/req/InfoMap.java | 9 + .../matter/model/req/MaterialsItem.java | 11 + .../complex/matter/model/req/MatterReq.java | 11 + .../matter/model/req/UploadFileReq.java | 14 ++ .../matter/model/rsp/AcceptRspInfo.java | 154 +++++++++++++ .../matter/model/rsp/HandleAddress.java | 26 +++ .../matter/model/rsp/LoginRspInfo.java | 10 + .../matter/model/rsp/MatterListInfo.java | 12 ++ .../matter/model/rsp/MatterRespInfo.java | 85 ++++++++ .../matter/model/rsp/SelfDeviceInfo.java | 24 +++ .../complex/matter/model/rsp/SysUser.java | 43 ++++ .../matter/model/rsp/matter/ChildrenItem.java | 18 ++ .../model/rsp/matter/MaterialsItem.java | 16 ++ .../model/rsp/matter/MatterWorkInfo.java | 14 ++ .../matter/model/rsp/work/WorkInfo.java | 38 ++++ .../matter/service/IComplexMatterService.java | 80 +++++++ .../impl/ComplexMatterServiceImpl.java | 203 ++++++++++++++++++ .../com/lilosoft/core/enums/TypeEnum.java | 65 ++++++ .../com/lilosoft/core/enums/YesNoEnum.java | 64 ++++++ .../lilosoft/core/exception/AppException.java | 51 +++++ src/main/resources/application.yml | 3 +- 43 files changed, 1808 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/lilosoft/api/bean/receive/ErrorsItem.java create mode 100644 src/main/java/com/lilosoft/api/bean/receive/FileDataItem.java create mode 100644 src/main/java/com/lilosoft/api/bean/receive/ProjectData.java create mode 100644 src/main/java/com/lilosoft/api/bean/receive/ReceiveMsgInfo.java create mode 100644 src/main/java/com/lilosoft/api/service/ComplexService.java create mode 100644 src/main/java/com/lilosoft/api/service/complexWindow/CommonData.java create mode 100644 src/main/java/com/lilosoft/api/service/complexWindow/ComplexWindowAbstract.java create mode 100644 src/main/java/com/lilosoft/api/service/complexWindow/WXHXPJYXKFRBG.java create mode 100644 src/main/java/com/lilosoft/complex/AbstractComplexService.java create mode 100644 src/main/java/com/lilosoft/complex/BaseReq.java create mode 100644 src/main/java/com/lilosoft/complex/ComplexApiRest.java create mode 100644 src/main/java/com/lilosoft/complex/IComplexService.java create mode 100644 src/main/java/com/lilosoft/complex/Rest.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/AcceptReq.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/ApplicantLeagal.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/ApplicantPersonal.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/DeviceLoginReq.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/HandlingsItem.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/ImplementationReq.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/InfoMap.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/MaterialsItem.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/MatterReq.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/req/UploadFileReq.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/AcceptRspInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/HandleAddress.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/LoginRspInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/MatterListInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/MatterRespInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/SelfDeviceInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/SysUser.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/matter/ChildrenItem.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MaterialsItem.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MatterWorkInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/model/rsp/work/WorkInfo.java create mode 100644 src/main/java/com/lilosoft/complex/matter/service/IComplexMatterService.java create mode 100644 src/main/java/com/lilosoft/complex/matter/service/impl/ComplexMatterServiceImpl.java create mode 100644 src/main/java/com/lilosoft/core/enums/TypeEnum.java create mode 100644 src/main/java/com/lilosoft/core/enums/YesNoEnum.java create mode 100644 src/main/java/com/lilosoft/core/exception/AppException.java diff --git a/pom.xml b/pom.xml index e213231..4acc595 100644 --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,8 @@ <profiles.baseUrl>http://10.225.128.55</profiles.baseUrl> <profiles.ocrUrl>http://rocrt.egovrobot.com/</profiles.ocrUrl> <profiles.apiUrl>http://api.egovrobot.com</profiles.apiUrl> - <profiles.mq>sanya</profiles.mq> + <profiles.robertServerUrl>http://localhost:8099/</profiles.robertServerUrl> + <profiles.mq>yibin</profiles.mq> <profiles.activemq.brokerUrl>tcp://59.175.148.30:62818</profiles.activemq.brokerUrl> <profiles.publish.path>/home/publish</profiles.publish.path> </properties> @@ -50,7 +51,7 @@ <profiles.baseUrl>http://10.225.128.55</profiles.baseUrl> <profiles.ocrUrl>http://rocrt.egovrobot.com/</profiles.ocrUrl> <profiles.apiUrl>http://api.egovrobot.com</profiles.apiUrl> - <profiles.mq>sanya</profiles.mq> + <profiles.mq>yibin</profiles.mq> <profiles.activemq.brokerUrl>tcp://8.136.255.30:11044</profiles.activemq.brokerUrl> <profiles.publish.path>/home/publish</profiles.publish.path> </properties> @@ -126,6 +127,14 @@ <artifactId>hutool-all</artifactId> <version>5.8.4</version> </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>1.2.83</version> + </dependency> + + </dependencies> <build> diff --git a/src/main/java/com/lilosoft/api/bean/receive/ErrorsItem.java b/src/main/java/com/lilosoft/api/bean/receive/ErrorsItem.java new file mode 100644 index 0000000..e40a17f --- /dev/null +++ b/src/main/java/com/lilosoft/api/bean/receive/ErrorsItem.java @@ -0,0 +1,11 @@ +package com.lilosoft.api.bean.receive; + +import lombok.Data; + +@Data +public class ErrorsItem{ + private int errorType; + private String name; + private String error; + private String fileId; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/api/bean/receive/FileDataItem.java b/src/main/java/com/lilosoft/api/bean/receive/FileDataItem.java new file mode 100644 index 0000000..29fa6f5 --- /dev/null +++ b/src/main/java/com/lilosoft/api/bean/receive/FileDataItem.java @@ -0,0 +1,19 @@ +package com.lilosoft.api.bean.receive; + +import lombok.Data; + +@Data +public class FileDataItem { + private String fileName; + private String jsonData; + private String fileUrl; + private String id; + private String fileId; + + private String name; + + private byte[] bytes; + + private String downloadUrl; + +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/api/bean/receive/ProjectData.java b/src/main/java/com/lilosoft/api/bean/receive/ProjectData.java new file mode 100644 index 0000000..57861b3 --- /dev/null +++ b/src/main/java/com/lilosoft/api/bean/receive/ProjectData.java @@ -0,0 +1,16 @@ +package com.lilosoft.api.bean.receive; + +import lombok.Data; + +@Data +public class ProjectData{ + private String transactcode; + private int times; + private String extUrl; + private String taskUrl; + private String netUrl; + private String name; + private String replyVoice; + private String localId; + private String isNet; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/api/bean/receive/ReceiveMsgInfo.java b/src/main/java/com/lilosoft/api/bean/receive/ReceiveMsgInfo.java new file mode 100644 index 0000000..1776bad --- /dev/null +++ b/src/main/java/com/lilosoft/api/bean/receive/ReceiveMsgInfo.java @@ -0,0 +1,31 @@ +package com.lilosoft.api.bean.receive; + +import java.util.List; +import lombok.Data; + +@Data +public class ReceiveMsgInfo{ + private String msg; + private String wordUrl; + private String isSkip; + private String itemCode; + private String code; + private String isRpa; + private List<FileDataItem> fileData; + private String type; + private String batchId; + private String isPrintWord; + private List<Object> labels; + private ProjectData projectData; + private String artificialType; + private String rpaData; + private String wordTips; + private String scanUrl; + private Boolean success; + private String fileUrl; + private String pageUrl; + private String enterpriseId; + private String isReceipt; + private String projectId; + private List<ErrorsItem> errors; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/api/controller/MqConsumer.java b/src/main/java/com/lilosoft/api/controller/MqConsumer.java index a7af44c..cebb542 100644 --- a/src/main/java/com/lilosoft/api/controller/MqConsumer.java +++ b/src/main/java/com/lilosoft/api/controller/MqConsumer.java @@ -1,15 +1,15 @@ package com.lilosoft.api.controller; import cn.hutool.core.util.IdUtil; -import cn.hutool.json.JSON; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.lilosoft.api.api.RobotApi; import com.lilosoft.api.bean.RobotCaseRecord; +import com.lilosoft.api.bean.receive.ReceiveMsgInfo; import com.lilosoft.api.service.ApplyService; +import com.lilosoft.api.service.ComplexService; import com.lilosoft.core.utils.ObjectUtils; import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.jms.annotation.JmsListener; @@ -25,6 +25,8 @@ public class MqConsumer { @Autowired private ApplyService applyService; + @Autowired + private ComplexService complexService; @Autowired private RobotApi robotApi; @@ -34,9 +36,7 @@ public class MqConsumer { @JmsListener(destination = "${api.mq}", containerFactory = "jmsListenerContainerQueue") public void receiveMsg(HashMap<String, String> text) { - - log.info("receive msg==>{}", JSONUtil.toJsonStr(text)); - + // log.info("receive msg==>{}", JSONUtil.toJsonStr(text)); RobotCaseRecord caseRecord = new RobotCaseRecord(); caseRecord.setId(IdUtil.simpleUUID()); caseRecord.setContent(text.get("content")); @@ -45,15 +45,20 @@ public class MqConsumer { caseRecord.setUpdateTime(new Date()); try { robotApi.saveRecord(caseRecord); - HashMap<String, Object> entries = JSONUtil.toBean(text.get("content"), HashMap.class); - String apply = applyService.webApply(entries); - if (ObjectUtils.isEmpty(apply)) { + + String content = text.get("content"); + ReceiveMsgInfo receiveMsgInfo = JSON.parseObject(content, ReceiveMsgInfo.class); + + // HashMap<String, Object> entries = JSONUtil.toBean(text.get("content"), HashMap.class); + // String apply = applyService.webApply(entries); + String apply = complexService.windowApply(receiveMsgInfo); +/* if (ObjectUtils.isEmpty(apply)) { caseRecord.setSendFlag("2"); caseRecord.setMsg("success"); } else { caseRecord.setSendFlag("1"); caseRecord.setMsg(apply); - } + }*/ robotApi.saveRecord(caseRecord); } catch (Exception e) { caseRecord.setSendFlag("1"); diff --git a/src/main/java/com/lilosoft/api/service/ApplyService.java b/src/main/java/com/lilosoft/api/service/ApplyService.java index a463c86..286ea1c 100644 --- a/src/main/java/com/lilosoft/api/service/ApplyService.java +++ b/src/main/java/com/lilosoft/api/service/ApplyService.java @@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.lilosoft.api.service.complexWindow.CommonData; +import com.lilosoft.api.service.complexWindow.ComplexWindowAbstract; import com.lilosoft.core.utils.Base64Helper; import org.springframework.stereotype.Service; @@ -20,21 +22,27 @@ public class ApplyService extends PublicService { */ public String webApply(HashMap<String, Object> paramsMap) throws Exception { logger.info(JSONUtil.toJsonStr(paramsMap)); - String itemCode = paramsMap.get("ItemCode").toString(); - if(!paramsMap.containsKey("address")){ + //浜嬮」缂栫爜锛岄€氳繃杩欎釜鑾峰彇闇€瑕佹彁浜ゅ埌缁煎悎绐楀彛鏈嶅姟 绌轰笉鎻愪氦 + String itemCode = (String) paramsMap.getOrDefault("ItemCode", ""); + ComplexWindowAbstract complexWindowAbstract = ComplexWindowAbstract.newType(itemCode); + CommonData commonData = new CommonData(); + complexWindowAbstract.doHandleWork(commonData); + + + if (!paramsMap.containsKey("address")) { paramsMap.put("address", "");//鍔炰簨浜鸿仈绯诲湴鍧€ } HashMap<String, Object> formData = new HashMap<>();//闇€瑕佹彁浜ょ殑琛ㄥ崟鏁版嵁锛堜笉鍚屼簨椤逛笉鍚屽瓧娈碉級锛岄渶鏍规嵁formId鑾峰彇琛ㄥ崟瀛楁 String result = "";//杩斿洖缁撴灉 boolean check = true;//浜嬮」鏄惁鏌ユ壘鍒帮紝榛樿浜嬮」宸茬粡鏌ユ壘鍒� - if("46020400WJ-XK-1104".equals(itemCode)){//鍏叡鍦烘墍鍗敓璁稿彲璇佹敞閿€ + if ("46020400WJ-XK-1104".equals(itemCode)) {//鍏叡鍦烘墍鍗敓璁稿彲璇佹敞閿€ ggcswxxkzx(paramsMap, formData); - }else { + } else { check = false; result = "鏈煡璇㈠埌鐩稿叧浜嬮」;"; logger.error(result + JSONUtil.toJsonStr(paramsMap)); } - if(check){ + if (check) { //閫氱敤涓婁紶鎺ュ彛 result = super.webApply(paramsMap, formData); } @@ -45,7 +53,7 @@ public class ApplyService extends PublicService { /** * 鍏叡鍦烘墍鍗敓璁稿彲璇佹敞閿€ */ - private void ggcswxxkzx(HashMap<String, Object> paramsMap, HashMap<String, Object> formData){ + private void ggcswxxkzx(HashMap<String, Object> paramsMap, HashMap<String, Object> formData) { //缁勮绗笁姝ユ彁浜よ〃鍗曢渶瑕佺殑鏁版嵁锛屾鏁版嵁鏄牴鎹綋鍓嶄簨椤硅〃鍗曞瓧娈佃幏鍙� formData.put("ShenQingRiQi", DateUtil.today());//鐢宠鏃ユ湡 formData.put("XuKeZhengHao", "");//璁稿彲璇佸彿 @@ -55,14 +63,14 @@ public class ApplyService extends PublicService { formData.put("FaDingDaiBiaoRen", paramsMap.get("FaDingDaiBiaoRen"));//娉曞畾浠h〃浜� formData.put("TongYiSheHuiXinYongDaiMa", paramsMap.get("TongYiSheHuiXinYongDaiMa"));//缁熶竴绀句細淇$敤浠g爜 JSONArray materials = JSONUtil.parseArray(paramsMap.get("materials"));//鏉愭枡鍒楄〃 - for (int n = 0, m = materials.size(); n < m ; n++) { + for (int n = 0, m = materials.size(); n < m; n++) { JSONObject jsonObject1 = materials.getJSONObject(n); String fileId = jsonObject1.getStr("fileId");//褰撳墠鏉愭枡缂栫爜 - if("hygiene".equals(fileId) || "business".equals(fileId)){//鍏叡鍦烘墍鍗敓璁稿彲璇�/钀ヤ笟鎵х収褰掍负涓€绫� + if ("hygiene".equals(fileId) || "business".equals(fileId)) {//鍏叡鍦烘墍鍗敓璁稿彲璇�/钀ヤ笟鎵х収褰掍负涓€绫� jsonObject1.putOpt("fileCode", "46020400WJ-XK-1104-00003"); - } else if("applicationForm".equals(fileId) || "applicationText".equals(fileId)){//鍏充簬娉ㄩ攢鍏叡鍦烘墍鍗敓璁稿彲璇佺殑鐢宠涔�/鐢宠琛ㄥ綊涓轰竴绫� + } else if ("applicationForm".equals(fileId) || "applicationText".equals(fileId)) {//鍏充簬娉ㄩ攢鍏叡鍦烘墍鍗敓璁稿彲璇佺殑鐢宠涔�/鐢宠琛ㄥ綊涓轰竴绫� jsonObject1.putOpt("fileCode", "46020400WJ-XK-1104-00002"); - } else if("idcard".equals(fileId)){//澶氫釜韬唤璇佸綊涓轰竴绫� + } else if ("idcard".equals(fileId)) {//澶氫釜韬唤璇佸綊涓轰竴绫� jsonObject1.putOpt("fileCode", "46020400WJ-XK-1104-00001"); } else {//澶氫綑鏉愭枡褰掍负璇佺収绫� jsonObject1.putOpt("fileCode", "46020400WJ-XK-1104-00003"); @@ -80,7 +88,7 @@ public class ApplyService extends PublicService { } //鍗遍櫓鍖栧鍝佺粡钀ヨ鍙瘉鍙樻洿-娉曚汉鍙樻洿 - private void wxhxpjyxkzbg(HashMap<String, Object> paramsMap, HashMap<String, Object> formData){ + private void wxhxpjyxkzbg(HashMap<String, Object> paramsMap, HashMap<String, Object> formData) { String temp = String.valueOf(formData.get("rpaData")); String rpaData = new String(Base64Helper.decode(temp)); @@ -88,26 +96,25 @@ public class ApplyService extends PublicService { List<Map<String, Object>> handlings = new ArrayList<>(); Map<String, Object> handling = new HashMap<>(); - handling.put("eventId","852dcb2bb1aa70255871f75cf4868fa7"); //缁肩獥骞冲彴浜嬮」id - handling.put("objectType","O"); //浜嬮」闈㈠瀵硅薄锛孭鑷劧浜猴紝O娉曚汉 + handling.put("eventId", "852dcb2bb1aa70255871f75cf4868fa7"); //缁肩獥骞冲彴浜嬮」id + handling.put("objectType", "O"); //浜嬮」闈㈠瀵硅薄锛孭鑷劧浜猴紝O娉曚汉 handlings.add(handling); - formData.put("handlings",handlings); - formData.put("infoMap",null); //琛ㄥ崟淇℃伅锛屽姙浠惰绱犳帴鍙h幏鍙栵紝姝や簨椤规棤 + formData.put("handlings", handlings); + formData.put("infoMap", null); //琛ㄥ崟淇℃伅锛屽姙浠惰绱犳帴鍙h幏鍙栵紝姝や簨椤规棤 Map<String, Object> applicantLegal = new HashMap<>(); //鐢宠浜轰俊鎭� - applicantLegal.put("applicantName",null); //濮撳悕 - applicantLegal.put("documentId",null); //璇佷欢绫诲瀷 - applicantLegal.put("applicantIdNumber",null); //璇佷欢鍙风爜 - formData.put("applicantLegal",applicantLegal); + applicantLegal.put("applicantName", null); //濮撳悕 + applicantLegal.put("documentId", null); //璇佷欢绫诲瀷 + applicantLegal.put("applicantIdNumber", null); //璇佷欢鍙风爜 + formData.put("applicantLegal", applicantLegal); Map<String, Object> legalProxy = new HashMap<>(); //娉曚汉淇℃伅锛屾硶浜轰簨椤瑰繀濉� - legalProxy.put("legalName",rpa.getStr("principalName")); //濮撳悕 - legalProxy.put("documentId",null); //璇佷欢绫诲瀷 - legalProxy.put("legalIdNumber",rpa.getStr("principalCardNumber")); //璇佷欢鍙风爜 - formData.put("legalProxy",legalProxy); + legalProxy.put("legalName", rpa.getStr("principalName")); //濮撳悕 + legalProxy.put("documentId", null); //璇佷欢绫诲瀷 + legalProxy.put("legalIdNumber", rpa.getStr("principalCardNumber")); //璇佷欢鍙风爜 + formData.put("legalProxy", legalProxy); List<String> itemsIds = new ArrayList<>(); //鎯呭舰椤筰d闆嗗悎 itemsIds.add("d32d382b1b3ff119378c2813bd581aed"); //缁肩獥骞冲彴鎯呭舰椤筰d - formData.put("itemsIds",itemsIds); + formData.put("itemsIds", itemsIds); } - } diff --git a/src/main/java/com/lilosoft/api/service/ComplexService.java b/src/main/java/com/lilosoft/api/service/ComplexService.java new file mode 100644 index 0000000..f004979 --- /dev/null +++ b/src/main/java/com/lilosoft/api/service/ComplexService.java @@ -0,0 +1,93 @@ +package com.lilosoft.api.service; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.lilosoft.api.api.OcrApi; +import com.lilosoft.api.bean.receive.ReceiveMsgInfo; +import com.lilosoft.api.service.complexWindow.CommonData; +import com.lilosoft.api.service.complexWindow.ComplexWindowAbstract; +import com.lilosoft.core.utils.Base64Helper; +import lombok.extern.slf4j.Slf4j; +import okhttp3.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import retrofit2.Response; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * 缁肩獥澶勭悊绫� + * + * @author: zxfei + * @date: 2023/10/29 10:51 + */ + +@Service +@Slf4j +public class ComplexService extends PublicService { + + + @Autowired + private OcrApi ocrApi; + + @Value("${complex.robertServerUrl:''}") + protected String robertServerUrl; + + /** + * 缁肩獥鐢虫姤 + */ + public String windowApply(ReceiveMsgInfo receiveMsgInfo) throws Exception { + + + logger.info(JSONUtil.toJsonStr(receiveMsgInfo)); + Boolean success = receiveMsgInfo.getSuccess(); + + receiveMsgInfo.getFileData().forEach(item -> { + + Response<ResponseBody> response = ocrApi.downloadFile(item.getFileUrl(), item.getFileName(), "0"); + + boolean successful = response.isSuccessful(); + int code = response.code(); + if (successful && code == 200) { + ResponseBody responseBody = response.body(); + //涓婁紶鍙楃悊骞冲彴 + if (responseBody != null) { + try { + byte[] bytes = responseBody.bytes(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + + }); + + + if (success) { + + ComplexWindowAbstract complexWindowAbstract = ComplexWindowAbstract.newType(receiveMsgInfo.getItemCode()); + CommonData commonData = new CommonData(); + commonData.setRobertServerUrl(robertServerUrl); + commonData.setFileData(receiveMsgInfo.getFileData()); + complexWindowAbstract.doHandleWork(commonData); + + } else { + log.info("棰勫浜嬮」鏈€氳繃"); + } + + String result = "";//杩斿洖缁撴灉 + boolean check = true;//浜嬮」鏄惁鏌ユ壘鍒帮紝榛樿浜嬮」宸茬粡鏌ユ壘鍒� + return result; + + } + +} diff --git a/src/main/java/com/lilosoft/api/service/complexWindow/CommonData.java b/src/main/java/com/lilosoft/api/service/complexWindow/CommonData.java new file mode 100644 index 0000000..03c8675 --- /dev/null +++ b/src/main/java/com/lilosoft/api/service/complexWindow/CommonData.java @@ -0,0 +1,37 @@ +package com.lilosoft.api.service.complexWindow; + + +import com.lilosoft.api.bean.receive.FileDataItem; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 閫氱敤鍙傛暟 + * + * @author: + * @date: 2023/7/31 15:27 + */ +@Data +public class CommonData { + + private String deviceLogo; + + private String robertServerUrl; + + + private List<FileDataItem> fileData; + + + private Date attendanceDate; + + private Long staffId; + //褰撳墠鏃ユ湡 + private String dateStr; + + + + + +} diff --git a/src/main/java/com/lilosoft/api/service/complexWindow/ComplexWindowAbstract.java b/src/main/java/com/lilosoft/api/service/complexWindow/ComplexWindowAbstract.java new file mode 100644 index 0000000..ea11859 --- /dev/null +++ b/src/main/java/com/lilosoft/api/service/complexWindow/ComplexWindowAbstract.java @@ -0,0 +1,75 @@ +package com.lilosoft.api.service.complexWindow; + +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONObject; +import com.lilosoft.core.enums.TypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.ObjectUtils; + +/** + * 缁煎悎绐楀彛鎶借薄绫� + * + * @author: + * @date: 2023/7/31 15:09 + */ +@Slf4j +public abstract class ComplexWindowAbstract { + + + public String url ="/self-device-info/login"; + + public String token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTnVtIjoibGoiLCJoYW5kbGVBZGRyZXNzSWQiOiIxNDE0MTYyODc4OTk3MDIwNjczIiwiZGVwdElkIjoiNTExNTAwMzEiLCJleHAiOjE2OTg2NzIzNzAsInVzZXJJZCI6IjEzMTIiLCJ3aW5kb3dJZCI6IjE1ODUwOTEyNDU4ODgzNjQ1NDUifQ.2a6N9xc2D_X2LSOpeiUPdMWvaLhOefgMr176pmC-X_k"; + + private String type; + + abstract String getType(); + + public abstract void doHandleWork(CommonData commonData); + + + public static ComplexWindowAbstract newType(String type) { + + if (type == TypeEnum.鍗遍櫓鍖栧鍝佺粡钀ヨ鍙硶浜哄彉鏇�.getValue()) { + return new WXHXPJYXKFRBG(type); + } + + +/* if (type == TypeEnum.鍥哄畾鐝埗.getValue()) { + //return new FixWorkAttendance(type); + return new FixWorkOtherAttendance(type); + } else if (type == TypeEnum.鑷敱宸ユ椂.getValue()) { + return new FreedomWorkAttendance(type); + } + if (type == TypeEnum.鎺掔彮鍒�.getValue()) { + return new ScheduleWorkAttendance(type); + } else { + throw new AppException(String.format("鏈煡鐨勭被鍨嬬爜:%s", type)); + }*/ + // throw new Exception(String.format("鏈煡鐨勭被鍨嬬爜:%s", type)); + + return null; + } + + + public String getToken() { + try { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("deviceLogo","5c:1b:f4:e2"); + + String rest = HttpUtil.post(url, jsonObject.toJSONString()); + + log.info("get token==>>{}",rest); + + } catch (Exception e) { + log.error("鑾峰彇TOKEN寮傚父", e); + } + + return this.token; + } + + + public ComplexWindowAbstract(String type) { + this.type = type; + } + +} diff --git a/src/main/java/com/lilosoft/api/service/complexWindow/WXHXPJYXKFRBG.java b/src/main/java/com/lilosoft/api/service/complexWindow/WXHXPJYXKFRBG.java new file mode 100644 index 0000000..cb784a9 --- /dev/null +++ b/src/main/java/com/lilosoft/api/service/complexWindow/WXHXPJYXKFRBG.java @@ -0,0 +1,162 @@ +package com.lilosoft.api.service.complexWindow; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSON; +import com.lilosoft.api.bean.receive.FileDataItem; +import com.lilosoft.complex.Rest; +import com.lilosoft.complex.matter.model.req.*; +import com.lilosoft.complex.matter.model.rsp.AcceptRspInfo; +import com.lilosoft.complex.matter.model.rsp.LoginRspInfo; +import com.lilosoft.complex.matter.model.rsp.MatterListInfo; +import com.lilosoft.complex.matter.model.rsp.MatterRespInfo; +import com.lilosoft.complex.matter.model.rsp.matter.ChildrenItem; +import com.lilosoft.complex.matter.model.rsp.matter.MatterWorkInfo; +import com.lilosoft.complex.matter.service.IComplexMatterService; +import com.lilosoft.core.enums.TypeEnum; +import com.lilosoft.core.enums.YesNoEnum; +import lombok.extern.slf4j.Slf4j; +import okhttp3.ResponseBody; +import org.springframework.beans.BeanUtils; +import org.springframework.util.ObjectUtils; +import retrofit2.Response; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 鍗遍櫓鍖栧鍝佺粡钀ヨ鍙硶浜哄彉鏇� + * + * @author: + * @date: 2023/7/31 15:15 + */ +@Slf4j +public class WXHXPJYXKFRBG extends ComplexWindowAbstract { + + + private IComplexMatterService complexMatterService; + + public static String matterName = "浠庝簨鍓ф瘨銆佹槗鍒剁垎銆佹苯娌瑰姞娌圭珯銆佷笓鐢ㄥ嵄鍖栧搧浠撳偍鐨勪紒涓氾紝涓ぎ浼佷笟鎵€灞炵渷绾�"; + + + public WXHXPJYXKFRBG(String type) { + super(type); + this.complexMatterService = SpringUtil.getBean(IComplexMatterService.class); + + } + + @Override + String getType() { + return TypeEnum.鍗遍櫓鍖栧鍝佺粡钀ヨ鍙硶浜哄彉鏇�.getValue(); + } + + @Override + public void doHandleWork(CommonData commonData) { + //鑾峰彇鏁版嵁璧勬簮 todo + + + //涓嬭浇闄勪欢 + List<FileDataItem> fileCollect = commonData.getFileData().stream().map(item -> { + FileDataItem fileDataItem = new FileDataItem(); + BeanUtils.copyProperties(item, fileDataItem); + String downloadPath = commonData.getRobertServerUrl() + item.getFileUrl(); + + byte[] bytes = HttpUtil.downloadBytes(downloadPath); + fileDataItem.setBytes(bytes); + return fileDataItem; + }).collect(Collectors.toList()); + + //閫氳繃鍚嶇О鏌ヨ + DeviceLoginReq deviceLoginReq = new DeviceLoginReq(); + deviceLoginReq.setDeviceLogo(commonData.getDeviceLogo()); + Rest<LoginRspInfo> loginRspInfoRest = complexMatterService.deviceLogin(deviceLoginReq); + if (loginRspInfoRest.getCode() == YesNoEnum.YES.getValue()) { + //璁惧鐧诲綍鎴愬姛 涓婁紶闄勪欢 + + fileCollect.stream().forEach(item -> { + Rest<String> uploadFileRest = complexMatterService.uploadFile(commonData.getDeviceLogo(), item.getBytes(), item.getFileName()); + if (uploadFileRest.getCode() == YesNoEnum.YES.getValue()) { + item.setDownloadUrl(uploadFileRest.getData()); + } + }); + + + //閫氳繃浜嬮」鏌ヨeventId + ImplementationReq implementationReq = new ImplementationReq(); + implementationReq.setImplementName(matterName); + Rest<MatterListInfo> matterRest = complexMatterService.findMatters(commonData.getDeviceLogo(), implementationReq); + if (matterRest.getCode() == YesNoEnum.YES.getValue()) { + List<MatterRespInfo> matterListInfos = matterRest.getData().getRecords(); + if (!ObjectUtils.isEmpty(matterListInfos)) { + MatterRespInfo matterRespInfo = matterListInfos.get(0); + String eventId = matterRespInfo.getEventId(); + String eventObjectType = matterRespInfo.getEventObjectType(); + + //鏌ヨ鍔炵悊浜嬮」鎯呭舰 + Rest<MatterWorkInfo> matterWorkInfoRest = complexMatterService.doWorkMatterSearch(commonData.getDeviceLogo(), eventId); + if (matterWorkInfoRest.getCode() == YesNoEnum.YES.getValue()) { + MatterWorkInfo matterWorkInfo = matterWorkInfoRest.getData(); + ChildrenItem childrenItem = matterWorkInfo.getChildren().stream().filter(f -> "鍙樻洿娉曚汉".equals(f.getLabel())).findFirst().orElseGet(() -> null); + + if (!ObjectUtils.isEmpty(childrenItem)) { + MaterialsItem materialsItem = new MaterialsItem(); + + //鏋勫缓鍙楃悊鏉愭枡闄勪欢 + List<MaterialsItem> materialsItemList = childrenItem.getMaterials().stream().map(item -> { + String name = item.getName(); + if (StrUtil.contains(name, "鍙樻洿鐢宠琛�")) { + matchUploadFile(fileCollect, materialsItem,"鐢宠涔�"); + }else if(StrUtil.contains(name, "瀹夊叏璧勬牸璇佷功")){ + matchUploadFile(fileCollect, materialsItem,"鍚堟牸璇�"); + }else if(StrUtil.contains(name, "鍖栧鍝佺粡钀ヨ鍙瘉")){ + matchUploadFile(fileCollect, materialsItem,"璁稿彲璇�"); + } + materialsItem.setMaterialForm(item.getFromId()); + materialsItem.setMaterialId(item.getId()); + + return materialsItem; + + }).collect(Collectors.toList()); + + + } + + } + + + //鎻愪氦鍝嶅簲鐨勫彈鐞� + + AcceptReq acceptReq = new AcceptReq(); + + List<HandlingsItem> handlingsItemList = new ArrayList<>(); + HandlingsItem handlingsItem = new HandlingsItem(); + handlingsItem.setEventId(eventId); + handlingsItem.setObjectType(eventObjectType); + handlingsItemList.add(handlingsItem); + acceptReq.setHandlings(handlingsItemList); + + + Rest<AcceptRspInfo> acceptRest = complexMatterService.accept(commonData.getDeviceLogo(), acceptReq); + if (acceptRest.getCode() == YesNoEnum.YES.getValue()) { + log.info("鍙楃悊鎴愬姛==>{}", JSON.toJSONString(acceptRest)); + } + } + + + } + + } + + } + + private static void matchUploadFile(List<FileDataItem> fileCollect, MaterialsItem materialsItem,String fileName) { + FileDataItem fileDataItem = fileCollect.stream().filter(f -> StrUtil.contains(f.getFileName(), fileName)).findFirst().orElseGet(() -> null); + if(!ObjectUtils.isEmpty(fileDataItem)){ + materialsItem.setUploadFileName(fileDataItem.getFileName()); + materialsItem.setMaterialPath(fileDataItem.getDownloadUrl()); + } + } +} diff --git a/src/main/java/com/lilosoft/complex/AbstractComplexService.java b/src/main/java/com/lilosoft/complex/AbstractComplexService.java new file mode 100644 index 0000000..4828063 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/AbstractComplexService.java @@ -0,0 +1,54 @@ +package com.lilosoft.complex; + +import com.lilosoft.complex.matter.model.req.DeviceLoginReq; +import com.lilosoft.complex.matter.model.rsp.LoginRspInfo; +import com.lilosoft.complex.matter.service.IComplexMatterService; +import com.lilosoft.core.exception.AppException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.ObjectUtils; + +import java.util.Map; + + +@Slf4j +public abstract class AbstractComplexService implements IComplexMatterService { + + //缁肩獥璁块棶鍦板潃 + @Value("${complex.host:}") + protected String host; + + //缁肩獥璁惧缂栫爜 澶氫釜閫楀彿鍒嗗壊 + @Value("${complex.deviceCode:''}") + protected String deviceCode; + + @Value("${hik.appSecret:''}") + protected String appSecret; + + //缁肩獥鎺ヤ欢token deviceCode--瀵瑰簲tokenMap + public Map<String, String> tokenMap; + + //缁肩獥鎺ヤ欢token + public String token; + + + @Override + public String getToken(String deviceLogo) { + try { + + String deviceToken = tokenMap.getOrDefault(deviceLogo, ""); + if (ObjectUtils.isEmpty(deviceToken)) { + DeviceLoginReq loginReq = new DeviceLoginReq(); + loginReq.setDeviceLogo(deviceLogo); + Rest<LoginRspInfo> loginRspInfoRest = this.deviceLogin(loginReq); + return loginRspInfoRest.getData().getToken(); + } else { + return deviceToken; + } + } catch (Exception e) { + log.error("鑾峰彇TOKEN寮傚父", e); + throw new AppException(e.getMessage()); + } + } + +} diff --git a/src/main/java/com/lilosoft/complex/BaseReq.java b/src/main/java/com/lilosoft/complex/BaseReq.java new file mode 100644 index 0000000..1af09f1 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/BaseReq.java @@ -0,0 +1,13 @@ +package com.lilosoft.complex; + +import lombok.Data; + +/** + * 娴峰悍璇锋眰鍩虹绫� + * @author: + * @date: 2023/4/12 17:57 + */ +@Data +public class BaseReq { + +} diff --git a/src/main/java/com/lilosoft/complex/ComplexApiRest.java b/src/main/java/com/lilosoft/complex/ComplexApiRest.java new file mode 100644 index 0000000..bf6282c --- /dev/null +++ b/src/main/java/com/lilosoft/complex/ComplexApiRest.java @@ -0,0 +1,96 @@ + + +package com.lilosoft.complex; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONPObject; +import com.alibaba.fastjson.TypeReference; +import com.lilosoft.complex.matter.model.rsp.LoginRspInfo; +import com.lilosoft.core.utils.Json; +import lombok.Data; + +@Data +public class ComplexApiRest<T> { + private T result; + private Integer code; + private String message; + private Boolean success; + + private Long timestamp; + + + public static void main(String[] args) { + String str="{\n" + + " \"success\": true,\n" + + " \"message\": \"鎿嶄綔鎴愬姛锛乗",\n" + + " \"code\": 200,\n" + + " \"result\": {\n" + + " \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTnVtIjoiZ29uZ2ppIiwic2VsZkRldmljZUlkIjoiNiIsImhhbmRsZUFkZHJlc3NJZCI6IjE0OTk2NTA0ODgyMzEwNzE3NDYiLCJleHAiOjE2OTUyMjk5MTksInVzZXJJZCI6IjExMTIiLCJ3aW5kb3dJZCI6IjE0OTk2NTA1NTM0MTA1NTU5MDYifQ.ADZQR8AIo8OHtuUJBskBx3w2yaqHHsQLMSBamYvf6YE\",\n" + + " \"sysUser\": {\n" + + " \"createBy\": 1,\n" + + " \"createTime\": \"2021-08-16 16:38:17\",\n" + + " \"updateBy\": null,\n" + + " \"updateTime\": \"2023-08-12 10:40:34\",\n" + + " \"delFlag\": \"N\",\n" + + " \"userId\": 1112,\n" + + " \"userName\": \"涓囬潚闈抃",\n" + + " \"sex\": \"鐢穃",\n" + + " \"loginName\": null,\n" + + " \"userNumber\": \"gongji\",\n" + + " \"dept\": null,\n" + + " \"deptId\": 306,\n" + + " \"email\": \"56462@qq.com\",\n" + + " \"address\": null,\n" + + " \"idCard\": \"522121199208022252\",\n" + + " \"phoneNumber\": \"18888888888\",\n" + + " \"workPhone\": \"17778445521\",\n" + + " \"avatar\": \"/mnt/jpg/2023-08-12/3bf75fd4301da7469c83e8e35e233c65.jpg\",\n" + + " \"startNumber\": null,\n" + + " \"userType\": null,\n" + + " \"password\": \"632a02caecc0bb7b\",\n" + + " \"passwordState\": \"Y\",\n" + + " \"salt\": \"ZGimxeDr\",\n" + + " \"status\": \"Y\",\n" + + " \"remark\": \"\",\n" + + " \"areaCode\": \"510100000000\",\n" + + " \"hometown\": null,\n" + + " \"windowId\": null,\n" + + " \"centerUserId\": \"123456789\",\n" + + " \"value\": null,\n" + + " \"label\": null,\n" + + " \"dkUserId\": null,\n" + + " \"dkUnionId\": null,\n" + + " \"changePwTime\": \"2023-08-25 10:03:46\",\n" + + " \"sysRole\": null,\n" + + " \"isWaiter\": \"N\"\n" + + " },\n" + + " \"selfDeviceInfo\": {\n" + + " \"selfDeviceId\": \"6\",\n" + + " \"deviceLogo\": \"uutest\",\n" + + " \"note\": \"寮犺繙娴穃",\n" + + " \"userId\": \"1112\",\n" + + " \"windowId\": \"1499650553410555906\",\n" + + " \"createBy\": \"1\",\n" + + " \"createTime\": \"2023-08-25 15:11:41\",\n" + + " \"updateBy\": null,\n" + + " \"updateTime\": null,\n" + + " \"delFlag\": \"N\",\n" + + " \"coordinate\": \"104.090953,30.767351\",\n" + + " \"ticketTitle\": null,\n" + + " \"tips\": null,\n" + + " \"workHours\": null,\n" + + " \"telephone\": \"9528\",\n" + + " \"floorId\": \"1499650525505851393\",\n" + + " \"handleAddressId\": \"1499650488231071746\"\n" + + " }\n" + + " },\n" + + " \"timestamp\": 1695193919663\n" + + "}\n"; + + ComplexApiRest<LoginRspInfo> loginRspInfoComplexApiRest = JSON.parseObject(str, new TypeReference<ComplexApiRest<LoginRspInfo>>() { + }); + + System.out.println(JSON.toJSONString(loginRspInfoComplexApiRest)); + + } +} diff --git a/src/main/java/com/lilosoft/complex/IComplexService.java b/src/main/java/com/lilosoft/complex/IComplexService.java new file mode 100644 index 0000000..f0fc144 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/IComplexService.java @@ -0,0 +1,10 @@ +package com.lilosoft.complex; + +/** + * 缁肩獥鍩虹鎺ュ彛绫� + * @author: zxfei + * @date: 2023/10/31 11:36 + */ +public interface IComplexService { + String getToken(String deviceLogo); +} diff --git a/src/main/java/com/lilosoft/complex/Rest.java b/src/main/java/com/lilosoft/complex/Rest.java new file mode 100644 index 0000000..4217090 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/Rest.java @@ -0,0 +1,99 @@ + + +package com.lilosoft.complex; + +public class Rest<T> { + + /** + * 鎴愬姛 + */ + public static final int SUCCESS = 1; + + /** + * 澶辫触 + */ + public static final int FAIL = -1; + + private T data; + private Integer code; + private String msg; + + private Object dict; + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Object getDict() { + return dict; + } + + public void setDict(Object dict) { + this.dict = dict; + } + + public static <T> Rest<T> ok() { + return restResult(null, SUCCESS, "鎿嶄綔鎴愬姛"); + } + + public static <T> Rest<T> ok(T data) { + return restResult(data, SUCCESS, "鎿嶄綔鎴愬姛"); + } + + public static <T> Rest<T> ok(String msg) { + return restResult(null, SUCCESS, msg); + } + + public static <T> Rest<T> ok(String msg, T data) { + return restResult(data, SUCCESS, msg); + } + + public static <T> Rest<T> fail() { + return restResult(null, FAIL, "鎿嶄綔澶辫触"); + } + + public static <T> Rest<T> fail(String msg) { + return restResult(null, FAIL, msg); + } + + public static <T> Rest<T> fail(T data) { + return restResult(data, FAIL, "鎿嶄綔澶辫触"); + } + + public static <T> Rest<T> fail(String msg, T data) { + return restResult(data, FAIL, msg); + } + + public static <T> Rest<T> fail(int code, String msg) { + return restResult(null, code, msg); + } + + + private static <T> Rest<T> restResult(T data, int code, String msg) { + Rest<T> rest = new Rest<>(); + rest.setCode(code); + rest.setData(data); + rest.setMsg(msg); + return rest; + } +} diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/AcceptReq.java b/src/main/java/com/lilosoft/complex/matter/model/req/AcceptReq.java new file mode 100644 index 0000000..56b6a51 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/AcceptReq.java @@ -0,0 +1,18 @@ +package com.lilosoft.complex.matter.model.req; + +import java.util.List; +import lombok.Data; + +@Data +public class AcceptReq{ + private ApplicantLeagal applicantLegal; + private Object agency; + private List<String> itemsIds; + private List<MaterialsItem> materials; + private String isStaging; + private ApplicantPersonal applicantPersonal; + private List<HandlingsItem> handlings; + private InfoMap infoMap; + private Object legalProxy; + private Object thingId; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantLeagal.java b/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantLeagal.java new file mode 100644 index 0000000..44710d3 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantLeagal.java @@ -0,0 +1,12 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class ApplicantLeagal { + private String phone; + private String applicantSex; + private String documentId; + private String applicantName; + private String applicantIdNumber; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantPersonal.java b/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantPersonal.java new file mode 100644 index 0000000..d58c463 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/ApplicantPersonal.java @@ -0,0 +1,12 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class ApplicantPersonal{ + private String phone; + private String applicantSex; + private String documentId; + private String applicantName; + private String applicantIdNumber; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/DeviceLoginReq.java b/src/main/java/com/lilosoft/complex/matter/model/req/DeviceLoginReq.java new file mode 100644 index 0000000..13b8492 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/DeviceLoginReq.java @@ -0,0 +1,8 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class DeviceLoginReq { + private String deviceLogo; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/HandlingsItem.java b/src/main/java/com/lilosoft/complex/matter/model/req/HandlingsItem.java new file mode 100644 index 0000000..86a3d76 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/HandlingsItem.java @@ -0,0 +1,9 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class HandlingsItem{ + private String eventId; + private String objectType; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/ImplementationReq.java b/src/main/java/com/lilosoft/complex/matter/model/req/ImplementationReq.java new file mode 100644 index 0000000..ecb2eb1 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/ImplementationReq.java @@ -0,0 +1,25 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +/** + * 浜嬮」鏌ヨ + * + * @author: zxfei + * @date: 2023/10/30 16:50 + */ +@Data +public class ImplementationReq { + + private Integer currentPage; + + private Integer pageSize; + + private String eventObjectType; + + private String crossFlag; + + private String implementName; + + +} diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/InfoMap.java b/src/main/java/com/lilosoft/complex/matter/model/req/InfoMap.java new file mode 100644 index 0000000..5ef2639 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/InfoMap.java @@ -0,0 +1,9 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class InfoMap{ + private String sjrdz; + private String rqkdata; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/MaterialsItem.java b/src/main/java/com/lilosoft/complex/matter/model/req/MaterialsItem.java new file mode 100644 index 0000000..41eeec3 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/MaterialsItem.java @@ -0,0 +1,11 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +@Data +public class MaterialsItem{ + private String uploadFileName; + private String materialForm; + private String materialPath; + private String materialId; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/MatterReq.java b/src/main/java/com/lilosoft/complex/matter/model/req/MatterReq.java new file mode 100644 index 0000000..f2c2d26 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/MatterReq.java @@ -0,0 +1,11 @@ +package com.lilosoft.complex.matter.model.req; + + +import lombok.Data; + +@Data +public class MatterReq { + + //浜嬩欢id + private String eventIds; +} diff --git a/src/main/java/com/lilosoft/complex/matter/model/req/UploadFileReq.java b/src/main/java/com/lilosoft/complex/matter/model/req/UploadFileReq.java new file mode 100644 index 0000000..a99f03d --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/req/UploadFileReq.java @@ -0,0 +1,14 @@ +package com.lilosoft.complex.matter.model.req; + +import lombok.Data; + +import java.io.File; + +@Data +public class UploadFileReq { + private String conversionImage = "Y"; + + + private File file; + +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/AcceptRspInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/AcceptRspInfo.java new file mode 100644 index 0000000..b62f5ec --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/AcceptRspInfo.java @@ -0,0 +1,154 @@ +package com.lilosoft.complex.matter.model.rsp; + +import java.util.List; +import lombok.Data; + +@Data +public class AcceptRspInfo{ + private Object handler; + private Object deptName; + private Object btsName; + private String handleAddressId; + private String isOneThing; + private Object cycleAndSteps; + private Object endDate; + private Object functionRole; + private Object printCorrectionReceipt; + private Object handleDeptName; + private Object createUserName; + private Object handlerName; + private List<Object> areas; + private String acceptAreaCode; + private Object tokenUser; + private Object businessTacheName; + private Object floorId; + private String implementName; + private Object stateName; + private Object areaName; + private String acceptObjectType; + private boolean orderByLimitTime; + private String isTongBan; + private String state; + private String applicantId; + private String unifyCode; + private Object deptId; + private Object isIssue; + private Object suspendSecond; + private Object eventType; + private Object packages; + private Object waitHandlingSearch; + private Object replyPrintLicence; + private Object eventIds; + private Object applicantIdNumber; + private Object extend; + private Object itemId; + private Object registerAddress; + private Object hotNum; + private String phone; + private String sourceType; + private Object handlingIds; + private String doSource; + private Object infoMap; + private Object applyCode; + private Object situationItems; + private int btsOrder; + private String startDate; + private Object printNoAccept; + private Object timeLimitState; + private String businessTacheId; + private String submitType; + private Object btsIds; + private Object eventIdAndTacheIds; + private Object timingStartTime; + private String acceptIsPrint; + private Object thingHandlingId; + private Object conditionTime; + private Object situationId; + private Object stepResult; + private Object printFinishBook; + private String delFlag; + private Object auditState; + private Object search; + private Object rightsDeptName; + private Object commAddress; + private Object handlerPhone; + private String isDissolve; + private String handlingId; + private Object situations; + private Object printUpload; + private Object printAccept; + private Object updateTime; + private String currentArea; + private String userId; + private Object applicant; + private Object thingId; + private String legalPersonId; + private Object dealAreaCode; + private Object rightsDeptId; + private String createTime; + private String ecId; + private String handlingCode; + private Object situationItemIds; + private Object eventTypeName; + private Object warningTimeAll; + private int num; + private String implementCoding; + private Object acceptDeptName; + private Object limitDay; + private String businessTacheCode; + private Object selectSituationItems; + private String eventObjectType; + private Object handlingUseTime; + private Object situationIds; + private int handlingVersion; + private Object processName; + private Object windowName; + private Object deptIds; + private Object dealAreaName; + private String endIsPrint; + private String eventId; + private Object acceptDeptId; + private HandleAddress handleAddress; + private String applicantName; + private Object printLicence; + private Object acceptAreaName; + private Object eventHandleKind; + private String windowId; + private Object areaCode; + private Object materials; + private Object windowUserId; + private Object timingEndTime; + private Object ecName; + private Object areaLinkCode; + private Object beyondTime; + private Object note; + private List<Object> areaLinks; + private Object auditAreaCode; + private String btsId; + private Object cycleAndStep; + private Object stepId; + private Object tenantCode; + private Object states; + private Object tenantName; + private Object updateBy; + private String handlerId; + private Object legalPerson; + private Object eventImplementation; + private Object warningTime; + private Object areaOrder; + private Object eventIdAndTacheId; + private Object handleDept; + private String resultsHandlingType; + private Object isStaging; + private Object thingName; + private Object printDocument; + private Object userName; + private Object timeLimit; + private Object areaCodeList; + private Object oneThingExampleId; + private String createBy; + private Object systemCode; + private Object beyondTimeAll; + private Object isTimeout; + private Object bjlx; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/HandleAddress.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/HandleAddress.java new file mode 100644 index 0000000..343799a --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/HandleAddress.java @@ -0,0 +1,26 @@ +package com.lilosoft.complex.matter.model.rsp; + +import java.util.List; +import lombok.Data; + +@Data +public class HandleAddress{ + private String handleAddressDetail; + private int isCenter; + private List<String> callNotification; + private Object eventId; + private String handleAddressId; + private int distance; + private double latitude; + private int userId; + private String areaCode; + private String queueNumberRule; + private String areaName; + private String areaLevel; + private String state; + private String stateDate; + private int timeCost; + private int kilometre; + private String queuingRules; + private double longitude; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/LoginRspInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/LoginRspInfo.java new file mode 100644 index 0000000..4262cd2 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/LoginRspInfo.java @@ -0,0 +1,10 @@ +package com.lilosoft.complex.matter.model.rsp; + +import lombok.Data; + +@Data +public class LoginRspInfo{ + private SelfDeviceInfo selfDeviceInfo; + private SysUser sysUser; + private String token; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterListInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterListInfo.java new file mode 100644 index 0000000..300f424 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterListInfo.java @@ -0,0 +1,12 @@ +package com.lilosoft.complex.matter.model.rsp; + +import lombok.Data; + +import java.util.List; + +@Data +public class MatterListInfo { + + private List<MatterRespInfo> records; + +} diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterRespInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterRespInfo.java new file mode 100644 index 0000000..fae9234 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/MatterRespInfo.java @@ -0,0 +1,85 @@ +package com.lilosoft.complex.matter.model.rsp; + +import lombok.Data; + +@Data +public class MatterRespInfo{ + private Object factSheet; + private Object sourceId; + private String deptName; + private Object endDate; + private String onlineReservation; + private Object afternoonStartTime; + private String implementCoding; + private Object runNumbers; + private String typeIdFr; + private String eventObjectType; + private String crossFlag; + private String selfServiceTerminals; + private Object dfjha; + private String implementName; + private Object electronicSealPath; + private Object classificationDfZrr; + private String depthId; + private Object afternoonEndTime; + private String state; + private String handlingItemCode; + private String logisticeExpress; + private Object limitNum; + private String eventId; + private int useId; + private Object legalLimitTime; + private int deptId; + private String eventType; + private String eventHandleKind; + private Object extend; + private Object contrastRatio; + private Object xsfs; + private String typeIdZrr; + private String areaCode; + private Object hotNum; + private Object thingEventId; + private Object promiseLimitTime; + private Object sourceType; + private Object classificationDfFr; + private String eventHandleKindDesc; + private Object formData; + private Object checkInExplanation; + private Object accessGrant; + private Object startDate; + private Object dfjhaType; + private Object integrationMatterName; + private Object integrationInputName; + private Object includeIntegration; + private Object remark; + private Object thingSituation; + private Object delFlag; + private Object morningEndTime; + private Object isApproval; + private Object localAndIntegrationIdentical; + private Object fullOnlineHandle; + private int businessFlowId; + private String parentEventId; + private Object assHandle; + private String onlinePayment; + private Object requestType; + private String resultsHandlingType; + private String enterHall; + private Object onlineHandleSystem; + private Object eventTypeDetail; + private Object optionalWeek; + private Object eventCharacterMap; + private Object morningStartTime; + private Object thingId; + private Object schedulingRules; + private Object specifyTime; + private Object checkIn; + private String ecId; + private Object eventTypeName; + private String networkOffice; + private Object settledFilePath; + private String bjlx; + private String stateDate; + private Object unitOfLimitTime; + private Object resultsDefines; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/SelfDeviceInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/SelfDeviceInfo.java new file mode 100644 index 0000000..730a52b --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/SelfDeviceInfo.java @@ -0,0 +1,24 @@ +package com.lilosoft.complex.matter.model.rsp; + +import lombok.Data; + +@Data +public class SelfDeviceInfo{ + private String note; + private Object ticketTitle; + private String selfDeviceId; + private String handleAddressId; + private String coordinate; + private Object workHours; + private Object updateTime; + private String telephone; + private String delFlag; + private String deviceLogo; + private String userId; + private Object tips; + private String windowId; + private String floorId; + private String createBy; + private String createTime; + private Object updateBy; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/SysUser.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/SysUser.java new file mode 100644 index 0000000..dd34a25 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/SysUser.java @@ -0,0 +1,43 @@ +package com.lilosoft.complex.matter.model.rsp; + +import lombok.Data; + +@Data +public class SysUser{ + private Object sysRole; + private Object startNumber; + private String idCard; + private String remark; + private String delFlag; + private String centerUserId; + private String password; + private Object updateBy; + private Object loginName; + private String userNumber; + private Object value; + private String email; + private Object hometown; + private Object address; + private String salt; + private String sex; + private int deptId; + private String updateTime; + private String isWaiter; + private Object dept; + private String avatar; + private Object label; + private String userName; + private int userId; + private Object dkUserId; + private Object windowId; + private int createBy; + private String areaCode; + private String phoneNumber; + private String createTime; + private String passwordState; + private Object dkUnionId; + private String changePwTime; + private String workPhone; + private Object userType; + private String status; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/ChildrenItem.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/ChildrenItem.java new file mode 100644 index 0000000..735382f --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/ChildrenItem.java @@ -0,0 +1,18 @@ +package com.lilosoft.complex.matter.model.rsp.matter; + +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/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MaterialsItem.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MaterialsItem.java new file mode 100644 index 0000000..a87b818 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MaterialsItem.java @@ -0,0 +1,16 @@ +package com.lilosoft.complex.matter.model.rsp.matter; + +import lombok.Data; + +@Data +public class MaterialsItem{ + private String name; + private String pid; + private int 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/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MatterWorkInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MatterWorkInfo.java new file mode 100644 index 0000000..002b556 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/matter/MatterWorkInfo.java @@ -0,0 +1,14 @@ +package com.lilosoft.complex.matter.model.rsp.matter; + +import java.util.List; +import lombok.Data; + +@Data +public class MatterWorkInfo{ + 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/src/main/java/com/lilosoft/complex/matter/model/rsp/work/WorkInfo.java b/src/main/java/com/lilosoft/complex/matter/model/rsp/work/WorkInfo.java new file mode 100644 index 0000000..bfc40ef --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/model/rsp/work/WorkInfo.java @@ -0,0 +1,38 @@ +package com.lilosoft.complex.matter.model.rsp.work; + +import java.util.List; +import lombok.Data; + +@Data +public class WorkInfo{ + private String fieldGenerateRules; + private String commonCharacterName; + private Object defaultValue; + private String hcFillRule; + private String defaultValueRules; + private Object xpath; + private Object regularName; + private String handlingCharacterPackage; + private int hcOrder; + private int elCol; + private String state; + private Object commonCharacterComment; + private Object parentValue; + private String commonCharacterCode; + private String commonCharacterId; + private String commonCharacterType; + private int userId; + private String assType; + private Object parentId; + private String regularId; + private String tacheStep; + private Object checkTrictly; + private String handlingCharacterTemplateId; + private Object parentMovement; + private Object regularVal; + private String allowModify; + private String stateDate; + private int commonCharacterLength; + private List<Object> items; + private String dataInterfaceType; +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/complex/matter/service/IComplexMatterService.java b/src/main/java/com/lilosoft/complex/matter/service/IComplexMatterService.java new file mode 100644 index 0000000..dbdbfd7 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/service/IComplexMatterService.java @@ -0,0 +1,80 @@ +package com.lilosoft.complex.matter.service; + + +import com.lilosoft.complex.IComplexService; +import com.lilosoft.complex.Rest; +import com.lilosoft.complex.matter.model.req.AcceptReq; +import com.lilosoft.complex.matter.model.req.ImplementationReq; +import com.lilosoft.complex.matter.model.req.DeviceLoginReq; +import com.lilosoft.complex.matter.model.rsp.AcceptRspInfo; +import com.lilosoft.complex.matter.model.rsp.LoginRspInfo; +import com.lilosoft.complex.matter.model.rsp.MatterListInfo; +import com.lilosoft.complex.matter.model.rsp.MatterRespInfo; +import com.lilosoft.complex.matter.model.rsp.matter.MatterWorkInfo; +import com.lilosoft.complex.matter.model.rsp.work.WorkInfo; + +import java.util.List; + +/** + * 缁煎悎绐楀彛涓氬姟澶勭悊绫� + * + * @author: zxfei + * @date: 2023/10/30 14:52 + */ +public interface IComplexMatterService extends IComplexService { + + /** + * 鑷姪璁惧鐧诲綍 + * + * @param deviceLoginReq + * @return + */ + Rest<LoginRspInfo> deviceLogin(DeviceLoginReq deviceLoginReq); + + /** + * 闄勪欢涓婁紶 + * + * @param bytes + * @param fileName + * @return + */ + Rest<String> uploadFile(String deviceLogo,byte[] bytes, String fileName); + + + /** + * 鑷姪璁惧鎺ヤ欢 + * + * @param acceptReq + * @return + */ + Rest<AcceptRspInfo> accept(String deviceLogo,AcceptReq acceptReq); + + /** + * 鏌ヨ鍙彈鐞嗕簨椤� + * + * @param implementationReq + * @return + */ + Rest<MatterListInfo> findMatters(String deviceLogo, ImplementationReq implementationReq); + + + /** + * 鏌ヨ鍔炵悊浜嬮」鎯呭舰 + * + * @param eventIds + * @return + */ + Rest<MatterWorkInfo> doWorkMatterSearch(String deviceLogo, String eventIds); + + + /** + * 鑾峰彇鍔炰欢瑕佺礌 + * @param deviceLogo + * @param eventIds + * @return + */ + Rest<WorkInfo> getWorkMatter(String deviceLogo, String eventIds); + + + +} diff --git a/src/main/java/com/lilosoft/complex/matter/service/impl/ComplexMatterServiceImpl.java b/src/main/java/com/lilosoft/complex/matter/service/impl/ComplexMatterServiceImpl.java new file mode 100644 index 0000000..42ce6b6 --- /dev/null +++ b/src/main/java/com/lilosoft/complex/matter/service/impl/ComplexMatterServiceImpl.java @@ -0,0 +1,203 @@ +package com.lilosoft.complex.matter.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.lilosoft.complex.AbstractComplexService; +import com.lilosoft.complex.ComplexApiRest; +import com.lilosoft.complex.Rest; +import com.lilosoft.complex.matter.model.req.AcceptReq; +import com.lilosoft.complex.matter.model.req.ImplementationReq; +import com.lilosoft.complex.matter.model.req.DeviceLoginReq; +import com.lilosoft.complex.matter.model.rsp.AcceptRspInfo; +import com.lilosoft.complex.matter.model.rsp.LoginRspInfo; +import com.lilosoft.complex.matter.model.rsp.MatterListInfo; +import com.lilosoft.complex.matter.model.rsp.MatterRespInfo; +import com.lilosoft.complex.matter.model.rsp.matter.MatterWorkInfo; +import com.lilosoft.complex.matter.model.rsp.work.WorkInfo; +import com.lilosoft.complex.matter.service.IComplexMatterService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 缁煎悎绐楀彛涓氬姟瀹炵幇绫� + * + * @author: zxfei + * @date: 2023/10/30 14:53 + */ +@Service("complexMatterService") +@Slf4j +public class ComplexMatterServiceImpl extends AbstractComplexService implements IComplexMatterService { + + //token鏈夋晥鏈� 10灏忔椂 + @Override + public Rest<LoginRspInfo> deviceLogin(DeviceLoginReq loginReq) { + String deviceLoginApi = host + "self-device-info/login"; + String rest = HttpUtil.post(deviceLoginApi, JSON.toJSONString(loginReq)); + ComplexApiRest<LoginRspInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<LoginRspInfo>>() { + }); + if (complexApiRest.getCode() == 200) { + //鏇存柊token + String deviceLoginToken = complexApiRest.getResult().getToken(); + String deviceLogo = complexApiRest.getResult().getSelfDeviceInfo().getDeviceLogo(); + this.tokenMap.put(deviceLogo, deviceLoginToken); + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + @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); + + request.form("file", bytes, fileName); + String uploadRest = request.header("X-Access-Token", deviceToken).execute().body(); + ComplexApiRest<String> complexApiRest = JSON.parseObject(uploadRest, new TypeReference<ComplexApiRest<String>>() { + }); + if (complexApiRest.getCode() == 200) { + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + @Override + public Rest<AcceptRspInfo> accept(String deviceLogo, AcceptReq acceptReq) { + String deviceLoginApi = host + "self-device-info/acceptHandling"; + + String deviceToken = checkToken(deviceLogo); + String rest = HttpUtil.createPost(deviceLoginApi) + .header("X-Access-Token", deviceToken) + .body(JSON.toJSONString(acceptReq)) + .execute().body(); + ComplexApiRest<AcceptRspInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<AcceptRspInfo>>() { + }); + if (complexApiRest.getCode() == 200) { + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + + @Override + public Rest<MatterListInfo> findMatters(String deviceLogo, ImplementationReq implementationReq) { + String mattersApi = host + "event-implementation/list"; + + Map<String, String> paramMap = new HashMap<>(); + // 灏哅ap涓殑灞炴€у€艰浆涓哄瓧绗︿覆 + for (Map.Entry<String, Object> entry : BeanUtil.beanToMap(implementationReq, false, true).entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + String stringValue = String.valueOf(value); + paramMap.put(key, stringValue); + } + + String deviceToken = checkToken(deviceLogo); + + String rest = HttpUtil.createGet(mattersApi) + .header("X-Access-Token", deviceToken) + .headerMap(paramMap, true) + .execute().body(); + + ComplexApiRest<MatterListInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<MatterListInfo>>() { + }); + if (complexApiRest.getCode() == 200) { + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + @Override + public Rest<MatterWorkInfo> doWorkMatterSearch(String deviceLogo, String eventIds) { + String mattersApi = host + "bus-situation-material/getSituationMaterialTreeByEventIds"; + + Map<String, String> paramMap = new HashMap<>(); + paramMap.put("eventIds", eventIds); + + String deviceToken = checkToken(deviceLogo); + String rest = HttpUtil.createGet(mattersApi) + .header("X-Access-Token", deviceToken) + .headerMap(paramMap, true) + .execute().body(); + + ComplexApiRest<MatterWorkInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<MatterWorkInfo>>() { + }); + if (complexApiRest.getCode() == 200) { + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + @Override + public Rest<WorkInfo> getWorkMatter(String deviceLogo, String eventIds) { + String mattersApi = host + "event-implementation/getDynamicFormByEventIds"; + + ArrayList<String> list = new ArrayList<>(); + list.add(eventIds); + + String deviceToken = checkToken(deviceLogo); + + String rest = HttpUtil.createPost(mattersApi) + .header("X-Access-Token", deviceToken) + .body(JSON.toJSONString(list)) + .execute().body(); + + ComplexApiRest<WorkInfo> complexApiRest = JSON.parseObject(rest, new TypeReference<ComplexApiRest<WorkInfo>>() { + }); + if (complexApiRest.getCode() == 200) { + return Rest.ok(complexApiRest.getMessage(), complexApiRest.getResult()); + } + return Rest.fail(complexApiRest.getMessage()); + } + + + private String checkToken(String deviceLogo) { + String deviceToken = tokenMap.getOrDefault(deviceLogo, ""); + if (ObjectUtils.isEmpty(deviceToken)) { + deviceToken = getToken(deviceLogo); + } + return deviceToken; + } + + public static void main(String[] args) { + // Define the URL where you want to upload the file + String uploadUrl = "http://example.com/upload"; + + // Define the path of the file you want to upload + String filePath = "/path/to/your/file.txt"; + + byte[] bytes = "111".getBytes(); + + // Create an HTTP request + HttpRequest request = HttpRequest.post(uploadUrl); + + // Attach the file to the request + request.form("file", bytes, "1.png"); + + // Send the request and get the response + HttpResponse response = request.execute(); + + String body = request.execute().body(); + + // Check the response status + int status = response.getStatus(); + if (status == 200) { + System.out.println("File uploaded successfully!"); + } else { + System.out.println("File upload failed. Status code: " + status); + } + + } +} diff --git a/src/main/java/com/lilosoft/core/enums/TypeEnum.java b/src/main/java/com/lilosoft/core/enums/TypeEnum.java new file mode 100644 index 0000000..d56ae12 --- /dev/null +++ b/src/main/java/com/lilosoft/core/enums/TypeEnum.java @@ -0,0 +1,65 @@ +package com.lilosoft.core.enums; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 缁肩獥浜嬮」澶勭悊绫� + * + * @author zxfei + */ +public enum TypeEnum { + 鍗遍櫓鍖栧鍝佺粡钀ヨ鍙硶浜哄彉鏇�("wxhxpjyxkfrbg20231007", "鍗遍櫓鍖栧鍝佺粡钀ヨ鍙硶浜哄彉鏇�"), + ; + private String value; + private String desc; + + TypeEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return this.value; + } + + public String getDesc() { + return this.desc; + } + + public static TypeEnum getByValue(String value) { + for (TypeEnum typeEnum : TypeEnum.values()) { + if (typeEnum.getValue() == value) { + return typeEnum; + } + } + return null; + } + + /** + * 鑾峰彇Map闆嗗悎 + * + * @param eItem 涓嶅寘鍚」 + * @return + */ + public static Map<String, String> getEnumMap(String... eItem) { + Map<String, String> resultMap = new LinkedHashMap<>(); + for (TypeEnum item : TypeEnum.values()) { + try { + boolean hasE = false; + for (String e : eItem) { + if (item.getValue() == e) { + hasE = true; + break; + } + } + if (!hasE) { + resultMap.put(item.getValue() + "", item.getDesc()); + } + } catch (Exception ex) { + + } + } + return resultMap; + } +} \ No newline at end of file diff --git a/src/main/java/com/lilosoft/core/enums/YesNoEnum.java b/src/main/java/com/lilosoft/core/enums/YesNoEnum.java new file mode 100644 index 0000000..d4ec051 --- /dev/null +++ b/src/main/java/com/lilosoft/core/enums/YesNoEnum.java @@ -0,0 +1,64 @@ +package com.lilosoft.core.enums; + + +import java.util.LinkedHashMap; +import java.util.Map; + +public enum YesNoEnum { + + NO(0, "鍚�"), + YES(1, "鏄�"); + + private int value; + private String desc; + + YesNoEnum(int value, String desc) { + this.value = value; + this.desc = desc; + } + + public int getValue() { + return this.value; + } + + public String getDesc() { + return desc; + } + + public static YesNoEnum getByValue(int value) { + for (YesNoEnum YesNoEnum : YesNoEnum.values()) { + if (YesNoEnum.getValue() == value) { + return YesNoEnum; + } + } + return null; + } + + + /** + * 鑾峰彇Map闆嗗悎 + * + * @param eItem 涓嶅寘鍚」 + * @return + */ + public static Map<String, String> getEnumMap(int... eItem) { + Map<String, String> resultMap = new LinkedHashMap<String, String>(); + for (YesNoEnum item : YesNoEnum.values()) { + try { + boolean hasE = false; + for (int e : eItem) { + if (item.getValue() == e) { + hasE = true; + break; + } + } + if (!hasE) { + resultMap.put(item.getValue() + "", item.getDesc()); + } + } catch (Exception ex) { + } + } + return resultMap; + } + +} diff --git a/src/main/java/com/lilosoft/core/exception/AppException.java b/src/main/java/com/lilosoft/core/exception/AppException.java new file mode 100644 index 0000000..254870f --- /dev/null +++ b/src/main/java/com/lilosoft/core/exception/AppException.java @@ -0,0 +1,51 @@ +package com.lilosoft.core.exception; + +public class AppException extends RuntimeException { + private static final long serialVersionUID = 3770580067312032700L; + private int code = 99999; + private String message = ""; + + public AppException() { + } + + public AppException(String message) { + this(-1, message); + } + + public AppException(int code) { + this.code = code; + } + + public AppException(int code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public AppException(Throwable e) { + super(e); + } + + public AppException(String message, Throwable e) { + super(message, e); + this.message = message; + } + + public int getCode() { + return this.code; + } + + public void setCode(int code) { + this.code = code; + } + + @Override + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } +} + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ef3d8b1..8469a52 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,9 +2,10 @@ api: xss-open: true #鏄惁寮€鍚痻ss璺ㄧ珯鑴氭湰鏀诲嚮闃叉姢鏀寔 (true/false) requestLimit: 30 #鎺ュ彛姣忕璇锋眰闄愬埗 - baseUrl: @profiles.baseUrl@ #瀹℃壒绯荤粺鍦板潃 + baseUrl: @profiles.baseUrl@ #棰勫绯荤粺鍦板潃 ocrUrl: @profiles.ocrUrl@ #璧勬枡棰勫鎺ュ彛鍦板潃 apiUrl: @profiles.apiUrl@ #璧勬枡棰勫閰嶇疆鎺ュ彛鍦板潃 + robertServerUrl: @profiles.robertServerUrl@ #鏈哄櫒浜洪瀹″湴鍧€ mq: @profiles.mq@ #mq鐩戝惉闃熷垪鍚嶇О scheduled: #瀹氭椂浠诲姟鎺ㄩ€� monitorCron: 0 0/5 * * * ? -- 2.24.3