LocalBusHospitalConfigService.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.coffee.bus.service;
  2. import cn.hutool.json.JSONUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.coffee.bus.entity.BusHospitalConfigEntity;
  5. import com.coffee.bus.enums.ConfigEnum;
  6. import com.coffee.bus.hospital.HospitalManagerRegister;
  7. import com.coffee.bus.hospital.config.bean.*;
  8. import com.coffee.bus.mapper.BusHospitalConfigMapper;
  9. import com.coffee.common.crud.BaseService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.context.annotation.Lazy;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import java.util.Map;
  15. /**
  16. * @author lifang
  17. * @version 1.0.0
  18. * @ClassName LocalBusHospitalService.java
  19. * @Description TODO
  20. * @createTime 2022年03月19日 09:27:00
  21. */
  22. @Service
  23. public class LocalBusHospitalConfigService extends BaseService<BusHospitalConfigMapper, BusHospitalConfigEntity,String> {
  24. @Autowired
  25. @Lazy
  26. private HospitalManagerRegister managerRegister;
  27. @Override
  28. public void validateBeforeSave(BusHospitalConfigEntity entity) {
  29. }
  30. @Override
  31. public void validateBeforeUpdate(BusHospitalConfigEntity entity) {
  32. }
  33. @Override
  34. public void validateBeforeDelete(String id) {
  35. }
  36. @Override
  37. public void postSave(BusHospitalConfigEntity entity) {
  38. BusHospitalConfigEntity configEntity = this.getById(entity.getId());
  39. managerRegister.refresh(configEntity.getTenantId(),false,true);
  40. }
  41. @Override
  42. public void postUpdate(BusHospitalConfigEntity entity) {
  43. BusHospitalConfigEntity configEntity = this.getById(entity.getId());
  44. managerRegister.refresh(configEntity.getTenantId(),false,true);
  45. }
  46. /**
  47. * 描述: 默认配置
  48. * @author lifang
  49. * @date 2022/5/20 11:23
  50. * @param hospitalId
  51. * @return void
  52. */
  53. @Transactional(rollbackFor = Exception.class)
  54. public void setDefaultConfig(String hospitalId, ConfigEnum type){
  55. //找到默认医院的配置
  56. BusHospitalConfigEntity defaultConfig = getDefaultConfig(type);
  57. BusHospitalConfigEntity hospitalConfig = this.getOne(new QueryWrapper<BusHospitalConfigEntity>()
  58. .lambda()
  59. .eq(BusHospitalConfigEntity::getType, type)
  60. .eq(BusHospitalConfigEntity::getTenantId, hospitalId));
  61. BusHospitalConfigEntity saveOrUpdate = new BusHospitalConfigEntity();
  62. if(hospitalConfig!=null){
  63. saveOrUpdate.setId(hospitalConfig.getId());
  64. };
  65. saveOrUpdate.setConfig(defaultConfig.getConfig());
  66. saveOrUpdate.setType(type);
  67. saveOrUpdate.setTenantId(hospitalId);
  68. this.saveOrUpdate(saveOrUpdate);
  69. }
  70. public void saveDefaultConfig(){
  71. BusHospitalConfigEntity otherConfig = new BusHospitalConfigEntity();
  72. otherConfig.setTenantId("1");
  73. otherConfig.setType(ConfigEnum.other);
  74. otherConfig.setConfig(getOtherDefault());
  75. try {
  76. this.save(otherConfig);
  77. } catch (Exception e){
  78. }
  79. BusHospitalConfigEntity undoConfig = new BusHospitalConfigEntity();
  80. undoConfig.setTenantId("1");
  81. undoConfig.setType(ConfigEnum.undo);
  82. undoConfig.setConfig(getUndoDefault());
  83. try {
  84. this.save(undoConfig);
  85. } catch (Exception e){
  86. }
  87. }
  88. public BusHospitalConfigEntity getDefaultConfig( ConfigEnum type){
  89. return this.getOne(new QueryWrapper<BusHospitalConfigEntity>()
  90. .lambda()
  91. .eq(BusHospitalConfigEntity::getType,type)
  92. .eq(BusHospitalConfigEntity::getTenantId, "1"));
  93. }
  94. private Map<String,Object> getOtherDefault(){
  95. FunctionExtraConfig extraConfig=new FunctionExtraConfig();
  96. //不在服务区默认10分钟
  97. extraConfig.setLowInfusion(10);
  98. //低输注时间默认30分钟
  99. extraConfig.setNoSignal(30);
  100. FunctionAnalConfig anal=new FunctionAnalConfig();
  101. //镇痛消失时间默认120分钟
  102. anal.setDisappearTime(120);
  103. //镇痛不足判定次数3次
  104. anal.setInsufficientCount(3);
  105. //镇痛不足判定时间60分钟
  106. anal.setInsufficientTime(60);
  107. //镇痛不足判定类型 有效
  108. anal.setValid(true);
  109. FunctionOtherConfig result = new FunctionOtherConfig();
  110. result.setExtra(extraConfig);
  111. result.setAnal(anal);
  112. return JSONUtil.parseObj(result);
  113. }
  114. private Map<String,Object> getUndoDefault(){
  115. FunctionFinishMonitorConfig finishMonitorConfig = new FunctionFinishMonitorConfig();
  116. finishMonitorConfig.setEnable(true);
  117. //不在服务区到结束时间默认14天
  118. finishMonitorConfig.setNoSignalInterval(14);
  119. //关机到结束时间默认14天
  120. finishMonitorConfig.setShutDownInterval(14);
  121. FunctionAutoUndoConfig autoUndoConfig = new FunctionAutoUndoConfig();
  122. autoUndoConfig.setEnable(true);
  123. autoUndoConfig.setUndoByType(true);
  124. //不在服务区到撤泵时间 默认60分钟
  125. autoUndoConfig.setNoSignalInterval(60);
  126. //关机到撤泵时间 默认60分钟
  127. autoUndoConfig.setShutDownInterval(60);
  128. FunctionManualUndoConfig manualUndoConfig = new FunctionManualUndoConfig();
  129. manualUndoConfig.setEnable(false);
  130. FunctionUndoConfig result = new FunctionUndoConfig();
  131. result.setAuto(autoUndoConfig);
  132. result.setFinishMonitor(finishMonitorConfig);
  133. result.setManual(manualUndoConfig);
  134. return JSONUtil.parseObj(result);
  135. }
  136. }