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