From 7a48c807bc05360ec51d44bcc10e21846d247af4 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Wed, 18 Dec 2024 14:23:31 +0800 Subject: [PATCH] Ai --- .../mapper/wdpc2/WdpcJJDMapper.java | 4 ++ .../supervisiondata/pojo/domain/AiData.java | 18 ++++++ .../supervisiondata/pojo/domain/AiResult.java | 19 ++++++ .../supervisiondata/rest/JJDController.java | 58 +++++++++++++++++-- .../service/impl/AiServiceImpl.java | 5 ++ 5 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/domain/AiData.java create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/domain/AiResult.java diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJJDMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJJDMapper.java index a2ae788..b1f20b4 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJJDMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJJDMapper.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.mapper.wdpc2; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJJD; +import org.apache.ibatis.annotations.Update; /** * @author kami on 2024-12-17 15:39:15 @@ -9,4 +10,7 @@ import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJJD; * @since 1.8 */ public interface WdpcJJDMapper extends BaseMapper { + + @Update("truncate table wdpc_jjd") + int truncateTable(); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/domain/AiData.java b/src/main/java/com/biutag/supervisiondata/pojo/domain/AiData.java new file mode 100644 index 0000000..77f419f --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/domain/AiData.java @@ -0,0 +1,18 @@ +package com.biutag.supervisiondata.pojo.domain; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author kami on 2024-12-17 16:05:03 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class AiData implements Serializable { + + String id; + + String content; +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/domain/AiResult.java b/src/main/java/com/biutag/supervisiondata/pojo/domain/AiResult.java new file mode 100644 index 0000000..d2e5fc3 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/domain/AiResult.java @@ -0,0 +1,19 @@ +package com.biutag.supervisiondata.pojo.domain; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author kami on 2024-12-17 16:07:56 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class AiResult implements Serializable { + + String id; + + String result; + +} diff --git a/src/main/java/com/biutag/supervisiondata/rest/JJDController.java b/src/main/java/com/biutag/supervisiondata/rest/JJDController.java index f234c3c..231f122 100644 --- a/src/main/java/com/biutag/supervisiondata/rest/JJDController.java +++ b/src/main/java/com/biutag/supervisiondata/rest/JJDController.java @@ -7,9 +7,14 @@ import com.biutag.supervisiondata.common.response.RS; import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.pojo.constants.Prompt; import com.biutag.supervisiondata.pojo.constants.RedisKey; +import com.biutag.supervisiondata.pojo.domain.AiData; +import com.biutag.supervisiondata.pojo.domain.AiResult; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDInstance; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJJD; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJJDResult; import com.biutag.supervisiondata.repository.WdpcJJDInstanceRepository; +import com.biutag.supervisiondata.repository.WdpcJJDResultRepository; import com.biutag.supervisiondata.service.AiService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -50,7 +55,7 @@ public class JJDController { RedisDao.getInstance().set("jjd_instance:".concat(jjd.getJjdbh()), res, 3600L); return JSONObject.of("id", jjd.getJjdbh(), "data", String.format(Prompt.NORMAL, - Optional.ofNullable(jjd.getBjrxm()).orElse(" - ")), + Optional.ofNullable(jjd.getBjrxm()).orElse(" - ")), Optional.ofNullable(jjd.getBjrzjhm()).orElse(" - "), Optional.ofNullable(jjd.getBjdh()).orElse(" - "), Optional.ofNullable(jjd.getBjnr()).orElse(" - "), @@ -68,20 +73,63 @@ public class JJDController { return RS.success(); } + @GetMapping("/ai/get") + public String aiGet() { + String data = (String) RedisDao.getInstance().leftPop(RedisKey.JJD_CACHE); + WdpcJJD jjd = JSON.parseObject(data, WdpcJJD.class); + AiData aiData = new AiData(); + aiData.setContent(String.format(Prompt.NORMAL, + Optional.ofNullable(jjd.getBjrxm()).orElse(" - "), + Optional.ofNullable(jjd.getBjrzjhm()).orElse(" - "), + Optional.ofNullable(jjd.getBjdh()).orElse(" - "), + Optional.ofNullable(jjd.getBjnr()).orElse(" - "), + Optional.ofNullable(jjd.getCjqk()).orElse(" - "))); + aiData.setId(jjd.getJjdbh()); + return JSON.toJSONString(aiData); + } + + private final WdpcJJDResultRepository resultRepository; + + @CrossOrigin + @PostMapping("/ai/set") + public String aiSet(@RequestBody AiResult result) { + String res = result.getResult().replaceFirst("```json", "").replaceAll("```", "").replaceAll("\n", ""); + JSONObject jb = JSON.parseObject(res); + JSONArray array = jb.getJSONArray("informations"); + Integer modelId = jb.getInteger("type"); + if (array.isEmpty()) { + return ""; + } + log.info("{}", array); + List aiList = new ArrayList<>(); + for (int i = 0; i < array.size(); i++) { + JSONObject obj = array.getJSONObject(i); + WdpcJJDResult instance = new WdpcJJDResult(); + instance.setModelId(modelId); + instance.setJjdbh(result.getId()); + instance.setMobile(Optional.ofNullable(obj.getString("mobile")).orElse("")); + instance.setName(Optional.ofNullable(obj.getString("name")).orElse("")); + instance.setIdCode(Optional.ofNullable(obj.getString("idCode")).orElse("")); + aiList.add(instance); + } + resultRepository.saveBatch(aiList); + return ""; + } + @CrossOrigin @PostMapping("/instance/set") public String instanceSet(@RequestBody JSONObject data) { String str = (String) RedisDao.getInstance().get("jjd_instance:".concat(data.getString("id"))); - if(str == null) { + if (str == null) { return ""; } GBaseJJD jjd = JSON.parseObject(str, GBaseJJD.class); String res = data.getString("content"); - res = res.replaceFirst("```json","").replaceAll("```", "").replaceAll("\n",""); + res = res.replaceFirst("```json", "").replaceAll("```", "").replaceAll("\n", ""); JSONObject jb = JSON.parseObject(res); JSONArray array = jb.getJSONArray("informations"); - if(array.isEmpty()) { + if (array.isEmpty()) { return ""; } log.info("{}", array); @@ -103,7 +151,7 @@ public class JJDController { instance.setIdCode(Optional.ofNullable(obj.getString("idCode")).orElse("")); aiList.add(instance); } - if(!aiList.isEmpty()) { + if (!aiList.isEmpty()) { wdpcJJDInstanceRepository.saveBatch(aiList); } return ""; diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/AiServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/AiServiceImpl.java index 5894f73..053d984 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/AiServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/AiServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; /** @@ -34,10 +35,12 @@ public class AiServiceImpl implements AiService { @Override public void pullContradict(LocalDateTime time) { RedisDao.getInstance().removeListAll(RedisKey.JJD_CACHE); + wdpcJJDRepository.getBaseMapper().truncateTable(); String t = time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); List jjdList = jjdRepository.getBaseMapper().selectJJDList(t); + List wdpcJJDS = new ArrayList<>(); RedisDao.getInstance().pipeLineExec((connection, key, value) -> jjdList.forEach(gBaseJJD -> { WdpcJJD jjd = new WdpcJJD(); jjd.setJjdbh(gBaseJJD.getJjdbh()); @@ -46,10 +49,12 @@ public class AiServiceImpl implements AiService { jjd.setBjdh(gBaseJJD.getBjdh()); jjd.setBjrxm(gBaseJJD.getBjrxm()); jjd.setBjrzjhm(gBaseJJD.getBjrzjhm()); + wdpcJJDS.add(jjd); try { jjd.setBjsj(gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); } catch (Exception e) {} connection.rPush(key.serialize(RedisKey.JJD_CACHE), value.serialize(JSON.toJSONString(jjd))); })); + wdpcJJDRepository.saveBatch(wdpcJJDS, 10000); } }