kami 1 year ago
parent
commit
7a48c807bc
  1. 4
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJJDMapper.java
  2. 18
      src/main/java/com/biutag/supervisiondata/pojo/domain/AiData.java
  3. 19
      src/main/java/com/biutag/supervisiondata/pojo/domain/AiResult.java
  4. 56
      src/main/java/com/biutag/supervisiondata/rest/JJDController.java
  5. 5
      src/main/java/com/biutag/supervisiondata/service/impl/AiServiceImpl.java

4
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<WdpcJJD> {
@Update("truncate table wdpc_jjd")
int truncateTable();
}

18
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;
}

19
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;
}

56
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;
@ -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<WdpcJJDResult> 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 "";

5
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<GBaseJJD> jjdList = jjdRepository.getBaseMapper().selectJJDList(t);
List<WdpcJJD> 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);
}
}

Loading…
Cancel
Save