diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java index cd39e1d..dcf88bb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java @@ -7,6 +7,8 @@ import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.facade.AreaCountFacade; import com.lyms.platform.permission.model.ServiceListQuery; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -23,6 +25,8 @@ import javax.validation.Valid; @Controller public class AreaCountController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(AreaCountController.class); + @Autowired private AreaCountFacade areaCountFacade; @@ -200,6 +204,7 @@ public class AreaCountController extends BaseController { try { return areaCountFacade.getServiceList(query); }catch (Exception e){ + logger.error("增值服务统计失败",e); BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR); baseResponse.setErrormsg("增值服务统计失败"); @@ -221,6 +226,7 @@ public class AreaCountController extends BaseController { try { return areaCountFacade.getServiceDetailList(param); }catch (Exception e){ + logger.error("增值服务详情统计失败",e); BaseResponse baseResponse = new BaseResponse(); baseResponse.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR); baseResponse.setErrormsg("增值服务详情统计失败"); @@ -239,7 +245,11 @@ public class AreaCountController extends BaseController { public void getServiceDetailExport(ServiceListQuery param, HttpServletRequest request, HttpServletResponse response){ LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); param.setUserId(loginState.getId()); - areaCountFacade.getServiceDetailExport(param, response); + try { + areaCountFacade.getServiceDetailExport(param, response); + }catch (Exception e){ + logger.error("增值服务统计导出失败", e); + } } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index fa9d24e..c28e58a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -25,10 +25,7 @@ import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.PatientServiceService; import com.lyms.platform.permission.service.UsersService; -import com.lyms.platform.pojo.AntExRecordModel; -import com.lyms.platform.pojo.BasicConfig; -import com.lyms.platform.pojo.DataPermissionsModel; -import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.*; import com.lyms.platform.query.AntExRecordQuery; import com.lyms.platform.query.DataPermissionsModelQuery; import com.lyms.platform.query.PatientsQuery; @@ -1153,44 +1150,68 @@ public class AreaCountFacade { return response; } + private String getString(Object object){ + if (object != null){ + return object.toString(); + } + return ""; + } private List> getServiceDetailListMap(ServiceListQuery param) { List> mapList = patientServiceService.getServeDetailList(param); - for (Map map : mapList){ - String parentId = map.get("parentId").toString(); - String perType = map.get("perType").toString(); - String serType = map.get("serType").toString(); - Object serDoct = map.get("serDoct"); - Date createDate = (Date) map.get("createDate"); - String userName; - if ("1".equals(perType)){ - // 孕妇 - Patients patient = patientsService.findOnePatientById(parentId); - userName = patient.getUsername(); - Date lastMenses = patient.getLastMenses(); - int differentDays = differentDays(lastMenses, createDate); - int week = differentDays / 7; - map.put("openYumSize", week); - - }else { - // 儿童 不显示孕周数和服务周期 - userName = babyBookbuildingService.queryBabyBuildById(parentId).getName(); - map.put("opnYumSize", ""); - map.put("serviceWeek", ""); - } - map.put("patientName", userName); - String serTypeName = getSerTypeName(serType); - map.put("serTypeName", serTypeName); - String doctorName = ""; - if (serDoct != null && !"".equals(serDoct)){ - doctorName = usersService.getUsers(Integer.parseInt(serDoct.toString())).getName(); - } + if (CollectionUtils.isNotEmpty(mapList)){ + for (Map map : mapList){ + Object parentIdObj = map.get("parentId"); + String parentId = getString(parentIdObj); + Object perTypeObj = map.get("perType"); + String perType = getString(perTypeObj); + Object serTypeObj = map.get("serType"); + String serType = getString(serTypeObj); + Object serDoctObj = map.get("serDoct"); + String serDoct = getString(serDoctObj); + Date createDate = (Date) map.get("createDate"); + String userName = ""; + if ("1".equals(perType)){ + // 孕妇 + Patients patient = patientsService.findOnePatientById(parentId); + if (patient != null){ + userName = getString(patient.getUsername()); + Date lastMenses = patient.getLastMenses(); + int differentDays = differentDays(lastMenses, createDate); + int week = differentDays / 7; + map.put("openYumSize", week); + } else { + map.put("opeYumSize",""); + } + + + }else { + // 儿童 不显示孕周数和服务周期 + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(parentId); + if (babyModel != null){ + userName = babyModel.getName(); + } + map.put("opnYumSize", ""); + map.put("serviceWeek", ""); + } + map.put("patientName", userName); + String serTypeName = getSerTypeName(serType); + map.put("serTypeName", serTypeName); + String doctorName = ""; + if (serDoct != null && !"".equals(serDoct)){ + Users users = usersService.getUsers(Integer.parseInt(serDoct)); + if (users != null){ + doctorName = users.getName(); + } + } - map.put("doctorName", doctorName); - map.remove("parentId"); - map.remove("perType"); - map.remove("serType"); - map.remove("serDoct"); + map.put("doctorName", doctorName); + map.remove("parentId"); + map.remove("perType"); + map.remove("serType"); + map.remove("serDoct"); + } } + return mapList; } @@ -1203,17 +1224,17 @@ public class AreaCountFacade { public void getServiceDetailExport(ServiceListQuery param, HttpServletResponse response) { setDefaultTime(param); List> serviceDetailListMap = getServiceDetailListMap(param); - Map names = new LinkedHashMap<>(); - names.put("createDate","购买日期"); - names.put("patientName", "姓名"); - names.put("opnYumSize", "开通孕周"); - names.put("serTypeName", "服务类型"); - names.put("serviceWeek","服务周期"); - names.put("doctorName", "指定医生"); - names.put("serStatus","服务状态"); - - ResponseUtil.responseExcel(names,serviceDetailListMap,response); - + if (CollectionUtils.isNotEmpty(serviceDetailListMap)){ + Map names = new LinkedHashMap<>(); + names.put("createDate","购买日期"); + names.put("patientName", "姓名"); + names.put("opnYumSize", "开通孕周"); + names.put("serTypeName", "服务类型"); + names.put("serviceWeek","服务周期"); + names.put("doctorName", "指定医生"); + names.put("serStatus","服务状态"); + ResponseUtil.responseExcel(names,serviceDetailListMap,response); + } } private void setDefaultTime(ServiceListQuery param) {