|
@@ -25,6 +25,7 @@ import thyyxxk.webserver.config.exception.ExceptionEnum;
|
|
|
import thyyxxk.webserver.dao.his.medicaladvice.nursing.NursingManagementDao;
|
|
|
import thyyxxk.webserver.dao.his.medicaladvice.nursing.YzHlMbDao;
|
|
|
import thyyxxk.webserver.dao.his.medicaladvice.nursing.YzTemperatureMapper;
|
|
|
+import thyyxxk.webserver.dao.his.medicalinsurance.UpIdCollectionDao;
|
|
|
import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuPublicDao;
|
|
|
import thyyxxk.webserver.entity.ResultVo;
|
|
|
import thyyxxk.webserver.entity.datamodify.YzTemperature;
|
|
@@ -77,9 +78,16 @@ public class NursingManagementService {
|
|
|
private YzHlMbDao yzHlMbDao;
|
|
|
@Autowired
|
|
|
private YiZhuPublicDao yiZhuPublicDao;
|
|
|
+ @Autowired
|
|
|
+ private UpIdCollectionDao upIdCollectionDao;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
private static final String separator = "_";
|
|
|
private static final Map<String,String> recTimeMap = new HashMap<>();
|
|
|
+ //替代 1901-01-01 这里 1901-01-01 08:00:00 转date 有5分钟误差 用以下先代替(兼容老系统)
|
|
|
+ private static final String XIU_ZHEN_DATE = "1991-01-01";
|
|
|
+
|
|
|
|
|
|
static {
|
|
|
recTimeMap.put("3", "03:00");
|
|
@@ -460,14 +468,11 @@ public class NursingManagementService {
|
|
|
StringBuilder condition = new StringBuilder();
|
|
|
condition.append("1=1");
|
|
|
if("1".equals(yzTemperature.getTypeFlag())){
|
|
|
- if(StrUtil.isNotBlank(yzTemperature.getRecDateStr())){
|
|
|
- condition.append(" and rec_date='"+yzTemperature.getRecDateStr()+"'");
|
|
|
- }
|
|
|
if(yzTemperature.getStartRecTime() != null){
|
|
|
- condition.append(" and rec_time >= '1900-01-01 "+DateUtil.format(yzTemperature.getStartRecTime(),"HH:mm")+":00'");
|
|
|
+ condition.append(StrUtil.format(" and convert(char(11),rec_date,121)+CONVERT(char(8), rec_time, 108) >='{}' ", DateUtil.formatDateTime(yzTemperature.getStartRecTime())));
|
|
|
}
|
|
|
if(yzTemperature.getEndRecTime() != null){
|
|
|
- condition.append(" and rec_time <= '1900-01-01 "+DateUtil.format(yzTemperature.getEndRecTime(),"HH:mm")+":00'");
|
|
|
+ condition.append(StrUtil.format(" and convert(char(11),rec_date,121)+CONVERT(char(8), rec_time, 108) <='{}' ", DateUtil.formatDateTime(yzTemperature.getEndRecTime())));
|
|
|
}
|
|
|
}
|
|
|
if(StrUtil.isNotBlank(yzTemperature.getWard())){
|
|
@@ -478,7 +483,7 @@ public class NursingManagementService {
|
|
|
CommonUtil.BeanTrim(yzTemperatures);
|
|
|
if(CollUtil.isNotEmpty(yzTemperatures)){
|
|
|
Map<String, List<YzTemperature>> groupMap = yzTemperatures.stream().collect(Collectors.groupingBy(item -> {
|
|
|
- return item.getInpatientNo() + item.getAdmissTimes() + DateUtil.format(item.getRecDate(), "yyyy-MM-dd") + DateUtil.format(item.getRecTime(), "HH:mm");
|
|
|
+ return item.getInpatientNo() + item.getAdmissTimes() + DateUtil.format(item.getRecDate(), "yyyy-MM-dd") + item.getToStringRecTime();
|
|
|
}));
|
|
|
List<YzTemperature> temp = new ArrayList<>();
|
|
|
for (String key : groupMap.keySet()) {
|
|
@@ -486,29 +491,29 @@ public class NursingManagementService {
|
|
|
List<String> otherInfos = groupMap.get(key).stream().map(item -> item.getOtherInfo()).collect(Collectors.toList());
|
|
|
String join = CollUtil.join(otherInfos, "");
|
|
|
yzTemperature1.setOtherInfo(join);
|
|
|
+ yzTemperature1.setRecTime(DateUtil.parseDateTime(XIU_ZHEN_DATE+" "+yzTemperature1.getToStringRecTime()));
|
|
|
yzTemperature1.setToStringRecDate(DateUtil.format(yzTemperature1.getRecDate(),"yyyy-MM-dd"));
|
|
|
- yzTemperature1.setToStringRecTime(DateUtil.format(yzTemperature1.getRecTime(),"HH:mm:ss"));
|
|
|
yzTemperature1.setRecDateStr(DateUtil.format(yzTemperature1.getRecDate(),"MM-dd"));
|
|
|
- yzTemperature1.setRecTimeStr(DateUtil.format(yzTemperature1.getRecTime(),"HH:mm"));
|
|
|
+ yzTemperature1.setRecTimeStr(yzTemperature1.getToStringRecTime().substring(0,5));
|
|
|
yzTemperature1.setPressureAmPm(yzTemperature1.getPressure1AmAndPm());
|
|
|
yzTemperature1.setUseridName(redisLikeService.getEmployeeName(yzTemperature1.getUserid()));
|
|
|
temp.add(yzTemperature1);
|
|
|
}
|
|
|
- List<YzTemperature> collect = temp.stream().sorted(Comparator.comparing(item ->DateUtil.parseDateTime(DateUtil.formatDate(item.getRecDate()) + " "+ DateUtil.format(item.getRecTime(),"HH:mm")+":00"))).collect(Collectors.toList());
|
|
|
+ List<YzTemperature> collect = temp.stream().sorted(Comparator.comparing(item ->DateUtil.parseDateTime(DateUtil.formatDate(item.getRecDate()) + " "+ item.getToStringRecTime()))).collect(Collectors.toList());
|
|
|
if(yzTemperature.getPrintFlag() !=null && yzTemperature.getPrintFlag()){
|
|
|
List<YzTemperature> result = new ArrayList<>();
|
|
|
+ int subLength= getSubLength(yzTemperature.getHldType());
|
|
|
for (YzTemperature item : collect) {
|
|
|
- int subLength= getSubLength(yzTemperature.getHldType());
|
|
|
- if(item.getOtherInfo() !=null && item.getOtherInfo().length()>subLength){
|
|
|
- List<String> infos = usingSubstringMethod(item.getOtherInfo(), subLength);
|
|
|
+ if (item.getOtherInfo() != null && item.getOtherInfo().getBytes().length > subLength) {
|
|
|
+ List<String> infos = subStringBytes(item.getOtherInfo(), subLength);
|
|
|
item.setOtherInfo(infos.get(0));
|
|
|
result.add(item);
|
|
|
- for (int i = 1; i <infos.size() ; i++) {
|
|
|
+ for (int i = 1; i < infos.size(); i++) {
|
|
|
YzTemperature tempTemperature = new YzTemperature();
|
|
|
tempTemperature.setOtherInfo(infos.get(i));
|
|
|
result.add(tempTemperature);
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
result.add(item);
|
|
|
}
|
|
|
}
|
|
@@ -531,13 +536,24 @@ public class NursingManagementService {
|
|
|
* @return: int
|
|
|
**/
|
|
|
private int getSubLength(String hldType) {
|
|
|
- int result = 18;
|
|
|
- if ("2".equals(hldType)) {
|
|
|
- result = 16;
|
|
|
- } else if ("6".equals(hldType)) {
|
|
|
- result = 14;
|
|
|
+ String hldTypeLen = upIdCollectionDao.getDictValueByDictName("1.7", "hld_type_len");
|
|
|
+ String[] resultArr;
|
|
|
+ try {
|
|
|
+ if(StrUtil.isNotBlank(hldTypeLen)){
|
|
|
+ resultArr = hldTypeLen.split(",");
|
|
|
+ }else {
|
|
|
+ resultArr = new String[]{"36","32","36","36","36","30"};
|
|
|
+ }
|
|
|
+ for (int i = 0; i <resultArr.length ; i++) {
|
|
|
+ if (Convert.toInt(hldType) == (i + 1)) {
|
|
|
+ return Convert.toInt(resultArr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("[getSubLength]报错:",e);
|
|
|
+ return 36;
|
|
|
}
|
|
|
- return result;
|
|
|
+ return 36;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -554,8 +570,9 @@ public class NursingManagementService {
|
|
|
public ResultVo<String> saveYzTemperature(YzTemperatureVO query) {
|
|
|
AssertUtil.isnotBlank(query.getRecTime(),"时间不能为空!");
|
|
|
//先查询是否存在
|
|
|
- query.setRecTimeStr(DateUtil.format(query.getRecTime(),"HH:mm"));
|
|
|
- query.setRecTime(DateUtil.parseDateTime("1900-01-01 "+query.getRecTimeStr()+":00"));
|
|
|
+ query.setRecTimeStr(DateUtil.format(query.getRecTime(),"HH:mm:ss"));
|
|
|
+ query.setToStringRecTime(query.getRecTimeStr());
|
|
|
+ //query.setRecTime(DateUtil.parseDateTime(XIU_ZHEN_DATE +" "+query.getRecTimeStr()));
|
|
|
query.setRecDate(DateUtil.parseDate(query.getToStringRecDate()));
|
|
|
query.setScdFlag(0);
|
|
|
String code = redisLikeService.getUserInfoByToken().getCode();
|
|
@@ -571,9 +588,9 @@ public class NursingManagementService {
|
|
|
query.setModifyTime(now);
|
|
|
YzTemperature yzTemperature = new YzTemperature();
|
|
|
BeanUtil.copyProperties(query,yzTemperature);
|
|
|
- //兼容老系统 将措施 字符大于18个分成几条
|
|
|
- if(StrUtil.isNotBlank(yzTemperature.getOtherInfo()) && yzTemperature.getOtherInfo().length() > 18){
|
|
|
- List<String> strList = usingSubstringMethod(yzTemperature.getOtherInfo(), 18);
|
|
|
+ //兼容老系统 将措施 字符大于36个分成几条
|
|
|
+ if(StrUtil.isNotBlank(yzTemperature.getOtherInfo()) && yzTemperature.getOtherInfo().getBytes().length >36){
|
|
|
+ List<String> strList = subStringBytes(yzTemperature.getOtherInfo(),36);
|
|
|
for (int i = 0; i < strList.size(); i++) {
|
|
|
YzTemperature temp = new YzTemperature();
|
|
|
if(i == 0){
|
|
@@ -594,6 +611,8 @@ public class NursingManagementService {
|
|
|
}else {
|
|
|
yzTemperatureMapper.insert(yzTemperature);
|
|
|
}
|
|
|
+ //修正时间 1900-01-01 08:00:00 转date 有五分钟误差 修改下
|
|
|
+ yzTemperatureMapper.updateRecTime(query,StrUtil.format("1900-01-01 {}",query.getToStringRecTime()));
|
|
|
//保存过敏信息
|
|
|
saveGm(query);
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION,"保存成功");
|
|
@@ -617,6 +636,30 @@ public class NursingManagementService {
|
|
|
return results;
|
|
|
}
|
|
|
|
|
|
+ private List<String> subStringBytes(String text,int bytesLen){
|
|
|
+ List<String> results = new ArrayList<>();
|
|
|
+ int length = text.length();
|
|
|
+ int len = 0;
|
|
|
+ String str = "" ;
|
|
|
+ for (int i = 0; i < length; i++) {
|
|
|
+ int tempLen = String.valueOf(text.charAt(i)).getBytes().length;
|
|
|
+ int temp = tempLen == 3 ? 2 : tempLen;
|
|
|
+ String tempStr = text.charAt(i) + "";
|
|
|
+ if(len >= bytesLen){
|
|
|
+ results.add(str);
|
|
|
+ len = temp;
|
|
|
+ str = tempStr;
|
|
|
+ }else {
|
|
|
+ len += temp;
|
|
|
+ str += tempStr;
|
|
|
+ }
|
|
|
+ if(i == length-1){
|
|
|
+ results.add(str);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return results;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|