From f58830d3d2cf26588005dd4f27b5714a60d0ac72 Mon Sep 17 00:00:00 2001
From: "382696293@qq.com" <382696293@qq.com>
Date: Thu, 21 Mar 2024 11:50:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8A=A4=E7=90=86=E8=AE=B0=E5=BD=95=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E8=83=BD=E9=87=8F=E5=9B=BE=E8=B0=B1=E6=8B=BC=E6=8E=A5?=
=?UTF-8?q?=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/mapper/WxNursingLogMapper.xml | 2 +-
.../controller/WxNursingLogController.java | 4 +-
.../service/impl/WxNursingLogServiceImpl.java | 74 +++++++++++++++----
3 files changed, 61 insertions(+), 19 deletions(-)
diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml
index c994c05..afd5547 100644
--- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml
+++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml
@@ -176,7 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
nursing_days_week = #{nursingDaysWeek},
nursing_days_month = #{nursingDaysMonth},
nursing_days_year = #{nursingDaysYear},
- nursing_days_year = #{nursingData},
+ nursing_data = #{nursingData},
where id = #{id}
diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java
index 9e48123..d9b77cd 100644
--- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java
+++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java
@@ -29,9 +29,9 @@ public class WxNursingLogController extends BaseController {
/**
* 查询用户护理记录
- * @param instrumentId 当在护理报告中,查询某个仪器的列表使用
- * @param queryDate 当在护理报告中,查询某个历史之前的仪器的列表使用
*
+ * @param instrumentId 当在护理报告中,查询某个仪器的列表使用
+ * @param queryDate 当在护理报告中,查询某个历史之前的仪器的列表使用
*/
@GetMapping("/record")
public TableDataInfo record(@RequestParam(value = "instrumentId", required = false) Long instrumentId,
diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java
index 4c99c77..faa7fad 100644
--- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java
+++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java
@@ -7,7 +7,9 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.flossom.common.core.domain.entity.*;
import com.flossom.common.core.domain.req.WxNursingLogReq;
import com.flossom.common.core.domain.ret.WxNursingStatisticsRet;
@@ -175,25 +177,65 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService {
throw new ServiceException("请求数据有误");
}
String modeType = wxMode.getModeType();
- // 水分测试
- if (StringUtils.equals(modeType, "moistureTest")) {
- updateNursingLog.setNursingData(wxNursingLogReq.getNursingData());
+ // 判断当前模式是否设置了能量图谱
+ int maxEnergySize = 0;// 能量图谱最大值
+ Boolean isEnergyAtlas = false;//是否设置了最大值
+ List fr200EnergyAtlas = DictUtils.getDictCache("fr200_energy_atlas");
+ for (SysDictData energyAtlas : fr200EnergyAtlas) {
+ if (StringUtils.equals(modeType, energyAtlas.getDictType())) {
+ maxEnergySize = Integer.valueOf(energyAtlas.getDictValue());
+ isEnergyAtlas = true;
+ }
}
- // 能量图谱
- if (StringUtils.equals(modeType, "face") || StringUtils.equals(modeType, "eyes")
- || StringUtils.equals(modeType, "nasolabialFold") || StringUtils.equals(modeType, "mandibularLine")
- || StringUtils.equals(modeType, "headLiftingPro")) {
- String nursingData = wxNursingLog.getNursingData();
- if (StringUtils.isBlank(nursingData)) {
- updateNursingLog.setNursingData(wxNursingLogReq.getNursingData());
+ if (isEnergyAtlas) {
+ String oldNursingData = wxNursingLog.getNursingData(); // 旧的能量图谱
+ if (StringUtils.isBlank(oldNursingData)) {
+ // 第一次上传仪器护理记录,需要判断能量图片是否超过规定
+ String newNursingData = wxNursingLogReq.getNursingData();
+ if (StringUtils.isNotBlank(newNursingData)) {
+ JSONObject newJsonObject = JSON.parseObject(newNursingData);
+ String newGearData = newJsonObject.get("GearData").toString();
+ if (StringUtils.isNotBlank(newGearData)) {
+ JSONArray newGearDataJsonArray = JSON.parseArray(newGearData);
+ newJsonObject.put("GearData", newGearDataJsonArray.subList(0, Math.min(maxEnergySize, newGearDataJsonArray.size())));
+ updateNursingLog.setNursingData(newJsonObject.toJSONString());
+ }
+ }
} else {
- JSONObject nursingDatajsonObject = JSONObject.parseObject(nursingData);
- Object o = (Object[])nursingDatajsonObject.get("GearData");
- if (nursingDatajsonObject.get("GearData") != null) {
-
-
+ String newNursingData = wxNursingLogReq.getNursingData();
+ JSONObject newJsonObject = JSON.parseObject(newNursingData);
+ String newGearData = newJsonObject.get("GearData").toString();
+ JSONObject oldNursingDataJsonObject = JSON.parseObject(oldNursingData);
+ String oldGearData = oldNursingDataJsonObject.get("GearData").toString();
+ if (StringUtils.isBlank(newGearData)) {
+ if (StringUtils.isBlank(oldGearData)) {
+ // 1、两个都是空的,直接保存最新的
+ updateNursingLog.setNursingData(wxNursingLog.getNursingData());
+ } else {
+ // 2、新的是空的,旧的不是空的,将旧的补充过来
+ JSONArray oldGearDataJsonArray = JSON.parseArray(oldGearData);
+ newJsonObject.put("GearData", oldGearDataJsonArray.subList(0, Math.min(maxEnergySize, oldGearDataJsonArray.size())));
+ updateNursingLog.setNursingData(newJsonObject.toJSONString());
+ }
+ } else {
+ if (StringUtils.isBlank(oldGearData)) {
+ // 4、新的不是空的,旧的是空的,直接保存新的(判断新的是否符合规定)
+ JSONArray newGearDataJsonArray = JSON.parseArray(newGearData);
+ newJsonObject.put("GearData", newGearDataJsonArray.subList(0, Math.min(maxEnergySize, newGearDataJsonArray.size())));
+ updateNursingLog.setNursingData(newJsonObject.toJSONString());
+ } else {
+ // 3、新的不是空的,旧的不是空的,将旧的补充过来
+ JSONArray newGearDataJsonArray = JSON.parseArray(newGearData);
+ JSONArray oldGearDataJsonArray = JSON.parseArray(oldGearData);
+ oldGearDataJsonArray.addAll(newGearDataJsonArray.subList(0, Math.min(maxEnergySize - oldGearDataJsonArray.size(), newGearDataJsonArray.size())));
+ newJsonObject.put("GearData", oldGearDataJsonArray);
+ updateNursingLog.setNursingData(newJsonObject.toJSONString());
+ }
}
}
+ } else {
+ // 其他模式取最新的
+ updateNursingLog.setNursingData(wxNursingLogReq.getNursingData());
}
}