护理记录增加能量图谱拼接计算

master
382696293@qq.com 2 years ago
parent d437b00a83
commit f58830d3d2

@ -176,7 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="nursingDaysWeek != null">nursing_days_week = #{nursingDaysWeek},</if>
<if test="nursingDaysMonth != null">nursing_days_month = #{nursingDaysMonth},</if>
<if test="nursingDaysYear != null">nursing_days_year = #{nursingDaysYear},</if>
<if test="nursingData != null">nursing_days_year = #{nursingData},</if>
<if test="nursingData != null">nursing_data = #{nursingData},</if>
</trim>
where id = #{id}
</update>

@ -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,

@ -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<SysDictData> 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());
}
}

Loading…
Cancel
Save