Commit 8fd7a3474f3fb205beb0ae731143e28ab5013972

Authored by dongqin
1 parent f30a7f6565

健康统计-结算管理

Showing 7 changed files with 413 additions and 92 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/HealthChargeModel.java View file @ 8fd7a34
... ... @@ -21,7 +21,7 @@
21 21 //医院id
22 22 private String hospitalId;
23 23  
24   - // 1体重 2 血糖 3 血压
  24 + // 1体重 2 血糖 3 血压 4妊高症 5-儿童
25 25 private Integer healthType;
26 26  
27 27 //建档id或者临时档案id
platform-dal/src/main/java/com/lyms/platform/query/HealthChargeQuery.java View file @ 8fd7a34
... ... @@ -62,6 +62,16 @@
62 62 */
63 63 private String doctorId;
64 64  
  65 + private List<String> ids;
  66 +
  67 + public List<String> getIds() {
  68 + return ids;
  69 + }
  70 +
  71 + public void setIds(List<String> ids) {
  72 + this.ids = ids;
  73 + }
  74 +
65 75 public String getBabyNutritionId() {
66 76 return babyNutritionId;
67 77 }
... ... @@ -137,6 +147,9 @@
137 147 condition = condition.and("babyNutritionId", babyNutritionId, MongoOper.IS);
138 148 }
139 149  
  150 + if (CollectionUtils.isNotEmpty(ids)) {
  151 + condition = condition.and("id", ids, MongoOper.IN);
  152 + }
140 153 Criteria c = null;
141 154  
142 155 if (null != createdStart && createdEnd != null) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyNutritionController.java View file @ 8fd7a34
... ... @@ -13,6 +13,7 @@
13 13 import org.springframework.web.bind.annotation.*;
14 14  
15 15 import javax.servlet.http.HttpServletRequest;
  16 +import javax.servlet.http.HttpServletResponse;
16 17 import javax.validation.Valid;
17 18  
18 19  
... ... @@ -144,6 +145,47 @@
144 145 public BaseResponse unSettleList(@Valid @RequestBody BabyNutritionSettleRequest request,
145 146 HttpServletRequest httpServletRequest) {
146 147 return babyNutritionFacade.unSettleList(request, getUserId(httpServletRequest));
  148 + }
  149 +
  150 + /**
  151 + * 结算操作
  152 + *
  153 + * @param request
  154 + * @return
  155 + */
  156 + @RequestMapping(method = RequestMethod.POST, value = "/settle/status")
  157 + @ResponseBody
  158 + @TokenRequired
  159 + public BaseResponse settleStatus(@Valid @RequestBody BabyNutritionSettleRequest request,
  160 + HttpServletRequest httpServletRequest) {
  161 + return babyNutritionFacade.settleStatus(request, getUserId(httpServletRequest));
  162 + }
  163 +
  164 + /**
  165 + * 结算历史
  166 + *
  167 + * @param request
  168 + * @return
  169 + */
  170 + @RequestMapping(method = RequestMethod.POST, value = "/settle/list")
  171 + @ResponseBody
  172 + @TokenRequired
  173 + public BaseResponse settleHistoryList(@Valid @RequestBody BabyNutritionSettleRequest request,
  174 + HttpServletRequest httpServletRequest) {
  175 + return babyNutritionFacade.settleHistoryList(request, getUserId(httpServletRequest));
  176 + }
  177 +
  178 + /**
  179 + * 导出
  180 + *
  181 + * @param request
  182 + * @return
  183 + */
  184 + @RequestMapping(method = RequestMethod.POST, value = "/settleHistory/export")
  185 + @TokenRequired
  186 + public void settleHistoryExport(@Valid @RequestBody BabyNutritionSettleRequest request,
  187 + HttpServletResponse response) {
  188 + babyNutritionFacade.settleHistoryExport(request,response);
147 189 }
148 190  
149 191 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HealthChargeController.java View file @ 8fd7a34
... ... @@ -127,6 +127,7 @@
127 127  
128 128 /**
129 129 * 导出
  130 + *
130 131 * @param id
131 132 * @param request
132 133 * @param response
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java View file @ 8fd7a34
... ... @@ -9,12 +9,10 @@
9 9 import com.lyms.platform.common.result.BaseObjectResponse;
10 10 import com.lyms.platform.common.result.BaseResponse;
11 11 import com.lyms.platform.common.utils.*;
12   -import com.lyms.platform.common.utils.StringUtils;
13 12 import com.lyms.platform.operate.web.request.BabyNutritionRequest;
14 13 import com.lyms.platform.operate.web.request.BabyNutritionSettleRequest;
15 14 import com.lyms.platform.operate.web.result.*;
16 15 import com.lyms.platform.operate.web.service.PatientWeightService;
17   -
18 16 import com.lyms.platform.permission.model.Organization;
19 17 import com.lyms.platform.permission.model.Users;
20 18 import com.lyms.platform.permission.service.MeasureDataInfoService;
21 19  
22 20  
... ... @@ -23,15 +21,15 @@
23 21 import com.lyms.platform.pojo.*;
24 22 import com.lyms.platform.query.*;
25 23 import org.apache.commons.collections.CollectionUtils;
26   -import org.apache.commons.lang.*;
27 24 import org.springframework.beans.factory.annotation.Autowired;
28   -
29 25 import org.springframework.data.domain.Sort;
30 26 import org.springframework.data.mongodb.core.MongoTemplate;
31 27 import org.springframework.data.mongodb.core.query.Criteria;
32 28 import org.springframework.data.mongodb.core.query.Query;
33 29 import org.springframework.stereotype.Component;
34 30  
  31 +import javax.servlet.http.HttpServletResponse;
  32 +import java.io.OutputStream;
35 33 import java.util.*;
36 34  
37 35 @Component
... ... @@ -87,6 +85,9 @@
87 85 @Autowired
88 86 private AreaCountFacade areaCountFacade;
89 87  
  88 + @Autowired
  89 + private ChargeRecordService chargeRecordService;
  90 +
90 91 public BaseObjectResponse queryBabyNutritionRecord(String babyId) {
91 92 Map<String, Object> resMap = new HashMap<>();
92 93 BabyBasicResult base = new BabyBasicResult();
93 94  
94 95  
95 96  
96 97  
97 98  
98 99  
99 100  
100 101  
... ... @@ -257,65 +258,78 @@
257 258 Integer currentSettleStatus = getSettleStatus(model);
258 259 if (settleStatus != null) {
259 260 if (currentSettleStatus != null && (currentSettleStatus == Integer.parseInt(settleStatus))) {
260   - Map map = new HashMap();
261   - map.put("id", model.getId());
262   - map.put("babyId", model.getBabyId());
  261 + // 组织数据格式
  262 + Map mapData = getMapData(model, currentSettleStatus);
  263 + list.add(mapData);
  264 + }
  265 + } else {
  266 + // 组织数据格式
  267 + Map mapData = getMapData(model, currentSettleStatus);
  268 + list.add(mapData);
  269 + }
  270 + }
  271 + }
263 272  
264   - BabyModel baby = babyBookbuildingService.queryBabyBuildById(model.getBabyId());
265   - map.put("babyName", baby.getName());
266   - map.put("babySex", SexEnum.getTextById(baby.getSex()));
267   - map.put("monthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(baby.getBirth(), new Date())));
268   - map.put("motherName", baby.getMname());
269   - map.put("phone", baby.getMphone());
270   - map.put("vcCardNo", baby.getVcCardNo());
271 273  
272   - String highRiskInfos = basicConfigFacade.queryBaseInfoByStr(baby.getHighRiskInfo());
273   - map.put("highRiskInfos", highRiskInfos);
  274 + objectResponse.setData(list);
  275 + objectResponse.setPageInfo(babyQuery.getPageInfo());
  276 + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
  277 + objectResponse.setErrormsg("成功");
  278 + return objectResponse;
  279 + }
274 280  
275   - String diagnose = "";
276   - if (StringUtils.isNotEmpty(baby.getPid())) {
277   - List diagList = babyCheckFacade.getBabyLastDiagnose(baby.getPid());
278   - if (CollectionUtils.isNotEmpty(diagList)) {
279   - for (Object obj : diagList) {
280   - BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj);
281   - if (basicConfig != null) {
282   - diagnose += basicConfig.getName() + " ";
283   - }
284   - }
285   - }
286   - }
  281 + private Map getMapData(BabyNutritionModel model, Integer currentSettleStatus) {
  282 + Map map = new HashMap();
  283 + map.put("id",model.getId());
  284 + map.put("babyId",model.getBabyId());
287 285  
288   - map.put("diagnose", StringUtils.emptyDeal(diagnose));
  286 + BabyModel baby = babyBookbuildingService.queryBabyBuildById(model.getBabyId());
  287 + map.put("babyName",baby.getName());
  288 + map.put("babySex", SexEnum.getTextById(baby.getSex()));
  289 + map.put("monthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(baby.getBirth(), new Date())));
  290 + map.put("motherName", baby.getMname());
  291 + map.put("phone", baby.getMphone());
  292 + map.put("vcCardNo", baby.getVcCardNo());
289 293  
290   - map.put("weight", model.getWeight());
291   - map.put("height", model.getHeight());
292   - map.put("recordTime", DateUtil.getyyyy_MM_dd(model.getNutritiTime()));
  294 + String highRiskInfos = basicConfigFacade.queryBaseInfoByStr(baby.getHighRiskInfo());
  295 + map.put("highRiskInfos",highRiskInfos);
293 296  
294   - // 新增报表解读人和结算状态
295   - String currInterpretDoctorId = model.getInterpretDoctorId();
296   - String interpretDoctorName = "";
297   - if (StringUtils.isNotEmpty(currInterpretDoctorId)) {
298   - Users users = usersService.getUsers(Integer.parseInt(currInterpretDoctorId));
299   - if (users != null) {
300   - interpretDoctorName = users.getName();
301   - }
302   - }
303   - String settleStatusName = currentSettleStatus == 1 ? "未结算" : "已结算";
304   - map.put("interpretDoctorName", interpretDoctorName);
305   - map.put("settleStatusName", settleStatusName);
306   -
307   - list.add(map);
  297 + String diagnose = "";
  298 + if (StringUtils.isNotEmpty(baby.getPid())) {
  299 + List diagList = babyCheckFacade.getBabyLastDiagnose(baby.getPid());
  300 + if (CollectionUtils.isNotEmpty(diagList)) {
  301 + for (Object obj : diagList) {
  302 + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById((String) obj);
  303 + if (basicConfig != null) {
  304 + diagnose += basicConfig.getName() + " ";
308 305 }
309 306 }
310 307 }
311 308 }
312 309  
  310 + map.put("diagnose", StringUtils.emptyDeal(diagnose));
313 311  
314   - objectResponse.setData(list);
315   - objectResponse.setPageInfo(babyQuery.getPageInfo());
316   - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
317   - objectResponse.setErrormsg("成功");
318   - return objectResponse;
  312 + map.put("weight", model.getWeight());
  313 + map.put("height", model.getHeight());
  314 + map.put("recordTime", DateUtil.getyyyy_MM_dd(model.getNutritiTime()));
  315 +
  316 + // 新增报表解读人和结算状态
  317 + String currInterpretDoctorId = model.getInterpretDoctorId();
  318 + String interpretDoctorName = "";
  319 + if (StringUtils.isNotEmpty(currInterpretDoctorId)){
  320 + Users users = usersService.getUsers(Integer.parseInt(currInterpretDoctorId));
  321 + if (users != null){
  322 + interpretDoctorName = users.getName();
  323 + }
  324 + }
  325 + String settleStatusName = "";
  326 + if (currentSettleStatus != null){
  327 + settleStatusName = currentSettleStatus == 1 ? "未结算" : "已结算";
  328 + }
  329 + map.put("interpretDoctorName", interpretDoctorName);
  330 + map.put("settleStatusName", settleStatusName);
  331 +
  332 + return map;
319 333 }
320 334  
321 335 /**
... ... @@ -632,7 +646,7 @@
632 646  
633 647 data.put("wlysitems", wlysitems);
634 648  
635   - healthChargeFacade.addHealthCharge(hospitalId, 4, baby.getId(), null, null,
  649 + healthChargeFacade.addHealthCharge(hospitalId, 5, baby.getId(), null, null,
636 650 userId, model.getInterpretDoctorId(), true, model.getId());
637 651 }
638 652 BaseObjectResponse objectResponse = new BaseObjectResponse();
639 653  
... ... @@ -902,11 +916,12 @@
902 916 * @return
903 917 */
904 918 public BaseResponse unSettleList(BabyNutritionSettleRequest request, Integer userId) {
905   - HealthChargeQuery healthChargeQuery = new HealthChargeQuery();
  919 +
  920 + HealthChargeQuery healthChargeQuery = new HealthChargeQuery();
906 921 healthChargeQuery.setPage(request.getPage());
907 922 healthChargeQuery.setLimit(request.getLimit());
908 923 healthChargeQuery.setNeed("true");
909   - healthChargeQuery.setHealthType(4);
  924 + healthChargeQuery.setHealthType(5);
910 925 healthChargeQuery.setYn(YnEnums.YES.getId());
911 926 healthChargeQuery.setHospitalId(request.getHospitalId());
912 927 healthChargeQuery.setStatus(1);
913 928  
914 929  
915 930  
916 931  
917 932  
918 933  
919 934  
920 935  
... ... @@ -914,58 +929,105 @@
914 929 Date startDate = areaCountFacade.getStartDate();
915 930 healthChargeQuery.setCreatedStart(startDate);
916 931 healthChargeQuery.setCreatedEnd(new Date());
917   - if (request.getStartTime() != null) {
  932 + if (request.getStartTime() != null){
918 933 healthChargeQuery.setCreatedStart(request.getStartTime());
919 934 healthChargeQuery.setCreatedEnd(request.getEndTime());
920 935 }
921 936 String findNo = request.getNumber();
922 937 String keyword = request.getKeyword();
  938 + List<String> arrayList = new ArrayList<String>() {};
  939 + BaseListResponse objectResponse = new BaseListResponse();
923 940  
924   - List<HealthChargeModel> list = healthChargeService.queryHealthChargeList(healthChargeQuery);
925   - List<HealthChargeModel> resultList = new LinkedList<>();
926   - if (CollectionUtils.isNotEmpty(list)) {
927   - for (HealthChargeModel model : list) {
928   - String babyForeignId = model.getBabyForeignId();
929   -
930   - if (StringUtils.isNotEmpty(findNo) && StringUtils.isNotEmpty(keyword)) {
931   - List<BabyModel> babyModels = getBabyModels(findNo, babyForeignId);
932   - if (CollectionUtils.isNotEmpty(babyModels)) {
933   - BabyModel babyModel = babyModels.get(0);
934   - String name = babyModel.getName();
935   - if (name.contains(keyword)) {
936   - resultList.add(model);
937   - }
  941 + if (StringUtils.isNotEmpty(findNo) && StringUtils.isNotEmpty(keyword)){
  942 + List<BabyModel> babyModels = getBabyModels(findNo, null);
  943 + if (CollectionUtils.isNotEmpty(babyModels)){
  944 + for (BabyModel model: babyModels){
  945 + String name = model.getName();
  946 + if (name.contains(keyword)){
  947 + String modelId = model.getId();
  948 + arrayList.add(modelId);
938 949 }
939 950 }
940   -
941   - if (StringUtils.isNotEmpty(findNo)) {
942   - List<BabyModel> babyModels = getBabyModels(findNo, babyForeignId);
943   - if (CollectionUtils.isNotEmpty(babyModels)) {
944   - resultList.add(model);
945   - }
  951 + }
  952 + }else if (StringUtils.isNotEmpty(findNo)){
  953 + List<BabyModel> babyModels = getBabyModels(findNo, null);
  954 + if (CollectionUtils.isNotEmpty(babyModels)){
  955 + for (BabyModel model: babyModels){
  956 + String modelId = model.getId();
  957 + arrayList.add(modelId);
946 958 }
947   -
948   - if (StringUtils.isNotEmpty(keyword)) {
949   - BabyModelQuery babyQuery = new BabyModelQuery();
950   - babyQuery.setId(babyForeignId);
951   - babyQuery.setQueryNo(findNo);
952   - babyQuery.setYn(YnEnums.YES.getId());
  959 + }
  960 + }else if (StringUtils.isNotEmpty(keyword)){
  961 + List<BabyModel> babyModels = mongoTemplate.find(Query.query(Criteria.where("name").regex(keyword)), BabyModel.class);
  962 + if (CollectionUtils.isNotEmpty(babyModels)){
  963 + for (BabyModel babyModel : babyModels){
  964 + arrayList.add(babyModel.getId());
953 965 }
954   -
955   - if (StringUtils.isEmpty(findNo) && StringUtils.isEmpty(keyword)) {
956   - resultList.add(model);
957   - }
958 966 }
959 967 }
960   - BaseListResponse objectResponse = new BaseListResponse();
961   - objectResponse.setData(list);
  968 + if (arrayList.size() > 0){
  969 + healthChargeQuery.setIds(arrayList);
  970 + }
  971 + List<LinkedHashMap<String, Object>> healthChargeModels = getHealthChargeModels(healthChargeQuery);
  972 + objectResponse.setData(healthChargeModels);
962 973 objectResponse.setPageInfo(healthChargeQuery.getPageInfo());
963 974 objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
964 975 objectResponse.setErrormsg("成功");
  976 +
965 977 return objectResponse;
966 978 }
967 979  
968 980 /**
  981 + * 根据添加查询
  982 + *
  983 + * @param healthChargeQuery
  984 + * @return
  985 + */
  986 + private List<LinkedHashMap<String, Object>> getHealthChargeModels(HealthChargeQuery healthChargeQuery) {
  987 + List<LinkedHashMap<String, Object>> list = new LinkedList<>();
  988 + List<HealthChargeModel> healthChargeModels = healthChargeService.queryHealthChargeList(healthChargeQuery);
  989 + for (HealthChargeModel healthChargeModel : healthChargeModels){
  990 +
  991 + String foreignId = healthChargeModel.getBabyForeignId();
  992 + BabyModel mongoTemplateOne = mongoTemplate.findOne(Query.query(Criteria.where("id").is(foreignId)), BabyModel.class);
  993 + if (mongoTemplateOne != null) {
  994 + String babayName = "";
  995 +
  996 + String babyNutritionId = healthChargeModel.getBabyNutritionId();
  997 + Date createTime = null;
  998 + if (babyNutritionId != null){
  999 + BabyNutritionModel nutritionModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(babyNutritionId)), BabyNutritionModel.class);
  1000 + createTime = nutritionModel.getCreated();
  1001 +
  1002 + }
  1003 + String doctorId = healthChargeModel.getDoctorId();
  1004 + String doctorName = "";
  1005 + if (doctorId != null){
  1006 + Users users = mongoTemplate.findOne(Query.query(Criteria.where("id")), Users.class);
  1007 + if (users != null){
  1008 + doctorName = users.getName();
  1009 + }
  1010 + }
  1011 + LinkedHashMap<String, Object> hashMap = new LinkedHashMap<>();
  1012 +
  1013 + babayName = mongoTemplateOne.getName();
  1014 + Integer sex = mongoTemplateOne.getSex();
  1015 + hashMap.put("babyName", babayName);
  1016 + hashMap.put("gender", sex != null ? sex == 1 ? "男" : "女" : "");
  1017 + hashMap.put("phone", mongoTemplateOne.getMphone());
  1018 + hashMap.put("cardNo", mongoTemplateOne.getCardNo());
  1019 + hashMap.put("weight", mongoTemplateOne.getBabyWeight());
  1020 + hashMap.put("babyHeight", mongoTemplateOne.getBabyHeight());
  1021 + hashMap.put("createTime", createTime);
  1022 + hashMap.put("interpretDoctorName", doctorName);
  1023 + hashMap.put("id", babyNutritionId);
  1024 + list.add(hashMap);
  1025 + }
  1026 + }
  1027 + return list;
  1028 + }
  1029 +
  1030 + /**
969 1031 * 获取儿童
970 1032 *
971 1033 * @param findNo
972 1034  
973 1035  
... ... @@ -974,10 +1036,213 @@
974 1036 */
975 1037 private List<BabyModel> getBabyModels(String findNo, String babyForeignId) {
976 1038 BabyModelQuery babyQuery = new BabyModelQuery();
977   - babyQuery.setId(babyForeignId);
978 1039 babyQuery.setQueryNo(findNo);
979 1040 babyQuery.setYn(YnEnums.YES.getId());
  1041 + if (babyForeignId != null){
  1042 + babyQuery.setId(babyForeignId);
  1043 + }
980 1044 return babyBookbuildingService.queryBabyBuildByCond(babyQuery);
  1045 + }
  1046 +
  1047 +
  1048 + /**
  1049 + * 结算操作
  1050 + *
  1051 + * @param request
  1052 + * @param userId
  1053 + * @return
  1054 + */
  1055 + public BaseResponse settleStatus(BabyNutritionSettleRequest request, Integer userId) {
  1056 + HealthChargeQuery healthChargeQuery = new HealthChargeQuery();
  1057 + healthChargeQuery.setHealthType(5);
  1058 + healthChargeQuery.setYn(YnEnums.YES.getId());
  1059 + healthChargeQuery.setHospitalId(request.getHospitalId());
  1060 + healthChargeQuery.setStatus(1);
  1061 + Date startTime = request.getStartTime();
  1062 + Date endTime = request.getEndTime();
  1063 + if (startTime == null || endTime == null){
  1064 + return new BaseResponse("请填写起始时间", ErrorCodeConstants.PARAMETER_ERROR);
  1065 + }
  1066 + healthChargeQuery.setCreatedStart(startTime);
  1067 + healthChargeQuery.setCreatedEnd(endTime);
  1068 +
  1069 + ChargeRecordModel recordModel = new ChargeRecordModel();
  1070 + recordModel.setStartDate(startTime);
  1071 + recordModel.setEndDate(endTime);
  1072 +
  1073 + int chargeCount = healthChargeService.queryHealthChargeCount(healthChargeQuery);
  1074 +
  1075 + recordModel.setOperateUserId(String.valueOf(userId));
  1076 + recordModel.setHealthType(5);
  1077 + recordModel.setCreated(new Date());
  1078 + recordModel.setHospitalId(request.getHospitalId());
  1079 + recordModel.setChargeCount(chargeCount);
  1080 +
  1081 + chargeRecordService.addChargeRecord(recordModel);
  1082 +
  1083 + HealthChargeModel model = new HealthChargeModel();
  1084 + model.setChargeRecordId(recordModel.getId());
  1085 + model.setStatus(2);
  1086 + healthChargeService.updateHealthCharges(healthChargeQuery,model);
  1087 +
  1088 + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
  1089 + }
  1090 +
  1091 + /**
  1092 + * 结算历史
  1093 + *
  1094 + * @param request
  1095 + * @param userId
  1096 + * @return
  1097 + */
  1098 + public BaseResponse settleHistoryList(BabyNutritionSettleRequest request, Integer userId) {
  1099 + List<Map> listData = new ArrayList<>();
  1100 + ChargeRecordQuery chargeRecordQuery = new ChargeRecordQuery();
  1101 + chargeRecordQuery.setHealthType(5);
  1102 + chargeRecordQuery.setHospitalId(request.getHospitalId());
  1103 + chargeRecordQuery.setOperateUserId(userId.toString());
  1104 + chargeRecordQuery.setPage(request.getPage());
  1105 + chargeRecordQuery.setLimit(request.getLimit());
  1106 + chargeRecordQuery.setNeed("true");
  1107 + Date startTime = request.getStartTime();
  1108 + Date endTime = request.getEndTime();
  1109 + if (startTime == null || endTime == null){
  1110 + startTime = areaCountFacade.getStartDate();
  1111 + endTime = new Date();
  1112 + }
  1113 + chargeRecordQuery.setCreatedStart(startTime);
  1114 + chargeRecordQuery.setCreatedEnd(endTime);
  1115 +
  1116 + List<ChargeRecordModel> list = chargeRecordService.queryChargeRecordList(chargeRecordQuery);
  1117 + if (CollectionUtils.isNotEmpty(list)) {
  1118 + for (ChargeRecordModel model : list){
  1119 + Map map = new LinkedHashMap();
  1120 + map.put("id",model.getId());
  1121 + map.put("startDate",DateUtil.getyyyy_MM_dd(model.getStartDate()));
  1122 + map.put("endDate",DateUtil.getyyyy_MM_dd(model.getEndDate()));
  1123 + map.put("chargeCount",model.getChargeCount());
  1124 + Users users = usersService.getUsers(Integer.parseInt(model.getOperateUserId()));
  1125 + String doctorName = "";
  1126 + if (users != null){
  1127 + doctorName = users.getName();
  1128 + }
  1129 + map.put("doctorName",doctorName);
  1130 + map.put("created",DateUtil.getyyyy_MM_dd(model.getCreated()));
  1131 + listData.add(map);
  1132 + }
  1133 + }
  1134 + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(listData).setPageInfo(chargeRecordQuery.getPageInfo());
  1135 + }
  1136 +
  1137 + /**
  1138 + * 导出
  1139 + *
  1140 + * @param request
  1141 + * @param response
  1142 + */
  1143 + public void settleHistoryExport(BabyNutritionSettleRequest request, HttpServletResponse response) {
  1144 + try {
  1145 + LinkedList<Map<String, Object>> objects = new LinkedList<>();
  1146 + String recordId = request.getKeyword();
  1147 + if (StringUtils.isNotEmpty(recordId)){
  1148 + return;
  1149 + }
  1150 + ChargeRecordQuery chargeRecordQuery = new ChargeRecordQuery();
  1151 + chargeRecordQuery.setId(recordId);
  1152 +
  1153 + ChargeRecordModel chargeRecordModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(recordId)), ChargeRecordModel.class);
  1154 + String date = "";
  1155 + if (chargeRecordModel != null){
  1156 + date = DateUtil.getyyyy_MM_dd(chargeRecordModel.getCreated());
  1157 + }
  1158 +
  1159 + List<HealthChargeModel> healthChargeModels = mongoTemplate.find(Query.query(Criteria.where("chargeRecordId").is(recordId)), HealthChargeModel.class);
  1160 + if (CollectionUtils.isNotEmpty(healthChargeModels)){
  1161 + for (HealthChargeModel model: healthChargeModels){
  1162 + Map<String, Object> map = new LinkedHashMap<>();
  1163 + BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(model.getBabyForeignId())), BabyModel.class);
  1164 + map.put("userName", babyModel.getName());
  1165 + String birthStr = DateUtil.getyyyy_MM_dd(babyModel.getBirth());
  1166 + map.put("age", getAge(birthStr));
  1167 + // 新国说的,以下几个写死 2019/05/28
  1168 + map.put("week","");
  1169 + map.put("type","儿童膳食报告");
  1170 + map.put("status","已结算");
  1171 + map.put("source","院内");
  1172 + map.put("time", date);
  1173 + objects.add(map);
  1174 + }
  1175 + }
  1176 + OutputStream out = response.getOutputStream();
  1177 + Map<String, String> cnames = new LinkedHashMap<>();
  1178 + cnames.put("userName", "姓名");
  1179 + cnames.put("age", "年龄");
  1180 + cnames.put("week", "孕周");
  1181 + cnames.put("type", "报告类型");
  1182 + cnames.put("status", "结算状态");
  1183 + cnames.put("source", "数据来源");
  1184 + cnames.put("time", "结算时间");
  1185 + response.setContentType("application/octet-stream");
  1186 + response.setCharacterEncoding("UTF-8");
  1187 + response.setHeader("Content-Disposition", "attachment;fileName=data.xls");
  1188 + ExcelUtil.toExcel(out, objects, cnames);
  1189 + }catch (Exception e){
  1190 + e.printStackTrace();
  1191 + }
  1192 + }
  1193 +
  1194 + /**
  1195 + * 根据生日计算出年龄
  1196 + *
  1197 + * @param date
  1198 + * @return
  1199 + */
  1200 + public static String getAge(String date) {
  1201 + String[] data = date.split("-");
  1202 + if (data.length <3){
  1203 + return "";
  1204 + }
  1205 +
  1206 + Calendar birthday =new GregorianCalendar(Integer.valueOf(data[0]), Integer.valueOf(data[1]), Integer.valueOf(data[2]));
  1207 + Calendar now = Calendar.getInstance();
  1208 + int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);
  1209 +
  1210 + // 月份从0开始计算,所以需要+1
  1211 + int month = now.get(Calendar.MONTH) +1 - birthday.get(Calendar.MONTH);
  1212 + int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
  1213 +
  1214 + // 按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
  1215 +
  1216 + if (day <0) {
  1217 + month -=1;
  1218 + // 得到上一个月,用来得到上个月的天数。
  1219 + now.add(Calendar.MONTH, -1);
  1220 + day = day + now.getActualMaximum(Calendar.DAY_OF_MONTH);
  1221 + }
  1222 +
  1223 + if (month <0) {
  1224 + month = (month +12) %12;
  1225 + year--;
  1226 + }
  1227 +
  1228 + StringBuffer tag =new StringBuffer();
  1229 +
  1230 + if (year >0) {
  1231 + tag.append(year +"岁");
  1232 + }
  1233 +
  1234 + if (month >0) {
  1235 + tag.append(month +"个月");
  1236 + }
  1237 +
  1238 + if (day >0) {
  1239 + tag.append(day +"天");
  1240 + }
  1241 +
  1242 + if (year ==0 && month ==0 && day ==0) {
  1243 + tag.append("今日出生");
  1244 + }
  1245 + return String.valueOf(tag);
981 1246 }
982 1247  
983 1248 public BaseObjectResponse queryBabyDietReport(String id, Integer userId) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HealthChargeFacade.java View file @ 8fd7a34
... ... @@ -115,7 +115,7 @@
115 115 /**
116 116 * 打印体重、血糖、血压调用接口
117 117 * @param hospitalId 医院id
118   - * @param healthType 打印类型 1体重 2 血糖 3 血压 4妊高症
  118 + * @param healthType 打印类型 1体重 2 血糖 3 血压 4妊高症 5-儿童
119 119 * @param foreignId 档案id (院内建档或者临时档案id)
120 120 * @param type 打印报告类别 1普通报告 2高危报告
121 121 * @param source 档案来源类型 1院内建档 2零时建档
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/HealthChargeRequest.java View file @ 8fd7a34
... ... @@ -17,7 +17,7 @@
17 17 //医院id
18 18 private String hospitalId;
19 19  
20   - // 1体重 2 血糖 3 血压
  20 + // 1体重 2 血糖 3 血压 4妊高症 5-儿童
21 21 private Integer healthType;
22 22  
23 23 //建档id或者临时档案id