Commit ec54fcfbb5ffca2c85e04e07e26a932ff95a1a9a

Authored by jiangjiazhi

Merge remote-tracking branch 'origin/master'

Showing 20 changed files

platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/MeasureInfoMapper.java View file @ ec54fcf
... ... @@ -14,5 +14,7 @@
14 14 List<MeasureInfoModel> queryMeasureInfoList(MeasureInfoQuery query);
15 15  
16 16 int updateMeasureInfo(MeasureInfoModel model);
  17 +
  18 + int queryMeasureInfoListCount(MeasureInfoQuery query);
17 19 }
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/MeasureInfoServiceImpl.java View file @ ec54fcf
... ... @@ -25,6 +25,9 @@
25 25  
26 26 @Override
27 27 public List<MeasureInfoModel> queryMeasureInfoList(MeasureInfoQuery query) {
  28 + if (query.getNeed() != null) {
  29 + query.mysqlBuild(measureInfoMapper.queryMeasureInfoListCount(query));
  30 + }
28 31 return measureInfoMapper.queryMeasureInfoList(query);
29 32 }
30 33  
platform-biz-service/src/main/resources/mainOrm/master/MeasureInfoMapper.xml View file @ ec54fcf
... ... @@ -29,25 +29,31 @@
29 29 INSERT INTO measure_info(user_name,cert_type,
30 30 cert_no,age,phone,sex,vc_card_no,
31 31 value_one,value_two,value_type,record_time,wx_code
32   - ,record_count,open_id,created,modified)
  32 + ,record_count,open_id,created,modified,hospital_id)
33 33 VALUES (#{userName},#{certType},
34 34 #{certNo},#{age},#{phone},#{sex}
35 35 ,#{vcCardNo},#{valueOne}
36 36 ,#{valueTwo},#{valueType},#{recordTime},
37   - #{wxCode},#{recordCount},#{openId},#{created},#{modified})
  37 + #{wxCode},#{recordCount},#{openId},#{created},#{modified},#{hospitalId})
38 38 </insert>
39 39  
40 40 <select id="queryMeasureInfoList" parameterType="com.lyms.platform.query.MeasureInfoQuery" resultMap="measureInfoModelMap">
41 41 SELECT id,user_name,cert_type,
42 42 cert_no,age,phone,sex,vc_card_no,
43 43 value_one,value_two,value_type,record_time,wx_code
44   - ,record_count,open_id,created,modified
  44 + ,record_count,open_id,created,modified,hospital_id
45 45 FROM measure_info
46 46  
47 47 <include refid="queryMeasureInfoCondition"/>
48 48 <include refid="orderAndLimit"/>
49 49 </select>
50 50  
  51 + <select id="queryMeasureInfoListCount" parameterType="com.lyms.platform.query.MeasureInfoQuery" resultType="int">
  52 + SELECT count(id) FROM measure_info
  53 + <include refid="queryMeasureInfoCondition"/>
  54 + </select>
  55 +
  56 +
51 57 <update id="updateMeasureInfo" parameterType="com.lyms.platform.pojo.MeasureInfoModel" >
52 58 UPDATE
53 59 measure_info
... ... @@ -97,6 +103,9 @@
97 103 <if test="openId != null and openId != ''">
98 104 open_id = #{openId,jdbcType=VARCHAR},
99 105 </if>
  106 + <if test="hospitalId != null and hospitalId != ''">
  107 + hospital_id = #{hospitalId,jdbcType=VARCHAR},
  108 + </if>
100 109 <if test="created != null">
101 110 created = #{created},
102 111 </if>
103 112  
... ... @@ -171,13 +180,22 @@
171 180 AND record_time >= date_format(#{recordTimeStart},'%Y-%m-%d')
172 181 </if>
173 182 <if test="recordTimeEnd != null">
174   - AND <![CDATA[ record_time <= date_format(#{recordTimeEnd},'%Y-%m-%d') ]]>
  183 + AND <![CDATA[ record_time < date_format(#{recordTimeEnd},'%Y-%m-%d') ]]>
175 184 </if>
176 185  
177 186 <if test="queryNo != null and queryNo != ''">
178 187 and (phone = #{queryNo,jdbcType=VARCHAR} or cert_no = #{queryNo,jdbcType=VARCHAR} or user_name = #{queryNo,jdbcType=VARCHAR})
179 188 </if>
180 189  
  190 + <if test="hospitalId != null and hospitalId != ''">
  191 + and hospital_id = #{hospitalId,jdbcType=VARCHAR}
  192 + </if>
  193 + <if test="hospitalIds != null and hospitalIds.size() > 0">
  194 + and hospital_id in
  195 + <foreach collection="hospitalIds" index="index" item="item" open="(" separator="," close=")">
  196 + #{item}
  197 + </foreach>
  198 + </if>
181 199 </where>
182 200 </sql>
183 201 </mapper>
platform-common/src/main/java/com/lyms/platform/common/enums/TrackDownTypeEnums.java View file @ ec54fcf
... ... @@ -25,7 +25,7 @@
25 25 return value.getName();
26 26 }
27 27 }
28   - return null;
  28 + return "--";
29 29 }
30 30 private Integer id;
31 31 private String name;
platform-dal/src/main/java/com/lyms/platform/pojo/MeasureInfoModel.java View file @ ec54fcf
... ... @@ -25,7 +25,7 @@
25 25 private String valueOne;
26 26 //脉搏/身高
27 27 private String valueTwo;
28   - //值类型: 1 身高、体重 2 血压和脉搏
  28 + //值类型: 1 体重和身高 2 血压和脉搏
29 29 private Integer valueType;
30 30 //记录时间
31 31 private Date recordTime;
platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java View file @ ec54fcf
... ... @@ -18,6 +18,9 @@
18 18  
19 19 private String parentId;
20 20  
  21 + /**
  22 + * 居民健康档案(妇女健康 )模型Id ResidentsArchiveModel
  23 + */
21 24 private String residentsArchiveId;
22 25  
23 26 private String pid;
... ... @@ -38,7 +41,7 @@
38 41 private Date trackDownDate;
39 42  
40 43 /**
41   - * 追访人
  44 + * 追访人(前端直接传入的string 返回也返回string)
42 45 */
43 46 private String trackDownUserId;
44 47  
... ... @@ -58,6 +61,11 @@
58 61 private Date reservatDate;
59 62  
60 63 /**
  64 + * 追访结果
  65 + */
  66 + private String result;
  67 +
  68 + /**
61 69 * 追访转接
62 70 */
63 71 private Integer trackDownTransfer;
... ... @@ -193,6 +201,14 @@
193 201  
194 202 public void setTrackDownDateType(Integer trackDownDateType) {
195 203 this.trackDownDateType = trackDownDateType;
  204 + }
  205 +
  206 + public String getResult() {
  207 + return result;
  208 + }
  209 +
  210 + public void setResult(String result) {
  211 + this.result = result;
196 212 }
197 213 }
platform-dal/src/main/java/com/lyms/platform/query/MeasureInfoQuery.java View file @ ec54fcf
... ... @@ -9,6 +9,7 @@
9 9 import org.springframework.data.mongodb.core.query.Criteria;
10 10  
11 11 import java.util.Date;
  12 +import java.util.List;
12 13  
13 14 /**
14 15 * Created by Administrator on 2018-01-09.
... ... @@ -56,6 +57,7 @@
56 57  
57 58 private String queryNo;
58 59 private String hospitalId;
  60 + private List<String> hospitalIds;
59 61  
60 62 private Date recordTime;
61 63  
62 64  
... ... @@ -312,6 +314,12 @@
312 314 this.id = id;
313 315 }
314 316  
  317 + public List<String> getHospitalIds() {
  318 + return hospitalIds;
  319 + }
315 320  
  321 + public void setHospitalIds(List<String> hospitalIds) {
  322 + this.hospitalIds = hospitalIds;
  323 + }
316 324 }
platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java View file @ ec54fcf
... ... @@ -510,6 +510,17 @@
510 510 private Integer postViewTimesStart;
511 511 private Integer postViewTimesEnd;
512 512  
  513 + //孕妇证件类型
  514 + private String pcerteTypeId;
  515 +
  516 + public String getPcerteTypeId() {
  517 + return pcerteTypeId;
  518 + }
  519 +
  520 + public void setPcerteTypeId(String pcerteTypeId) {
  521 + this.pcerteTypeId = pcerteTypeId;
  522 + }
  523 +
513 524 public List<String> getFmHospitalList() {
514 525 return fmHospitalList;
515 526 }
... ... @@ -1063,6 +1074,9 @@
1063 1074 condition = condition.and("buildType", buildTypeNot, MongoOper.NE);
1064 1075 }
1065 1076  
  1077 + if(pcerteTypeId != null){
  1078 + condition = condition.and("pcerteTypeId", pcerteTypeId, MongoOper.IS);
  1079 + }
1066 1080  
1067 1081 if (bookbuildingDoctor != null) {
1068 1082 condition = condition.and("bookbuildingDoctor", bookbuildingDoctor, MongoOper.IS);
platform-operate-api/src/main/java/com/lyms/hospitalapi/lpfy/LpfyFmService.java View file @ ec54fcf
... ... @@ -231,29 +231,29 @@
231 231 request.setDueType(fmfs);//分娩方式
232 232 //request.setFetusCount(item.getDjt()); //第几胎
233 233 //request.setDueCount(item.getCjc());//第几产
234   - Integer weight = fm.getBABY_WEIGHT();
235   - Integer height = fm.getBABY_HEIGHT();
  234 + String weight = fm.getSBABY_WEIGHT();
  235 + String height = fm.getSBABY_HEIGHT();
236 236 if(weight!=null){
237 237 DecimalFormat df = new DecimalFormat("#.00");
238   - double w = Double.parseDouble(weight.toString());
  238 + double w = Double.parseDouble(weight);
239 239 request.setBabyWeight(df.format(w/1000)); //体重
240 240 }
241 241 if(height!=null){
242   - request.setBabyHeight(height.toString()); //身长
  242 + request.setBabyHeight(height); //身长
243 243 }
244 244  
245 245 Map<String,String> map = new HashMap<>();
246   - Integer pf1 = fm.getBABY_APGAR_SCORE_ONE();
247   - Integer pf5 = fm.getBABY_APGAR_SCORE_FIVE();
248   - Integer pf10 = fm.getBABY_APGAR_SCORE_TEN();
  246 + String pf1 = fm.getSBABY_APGAR_SCORE_ONE();
  247 + String pf5 = fm.getSBABY_APGAR_SCORE_FIVE();
  248 + String pf10 = fm.getSBABY_APGAR_SCORE_TEN();
249 249 if(pf1!=null){
250   - map.put("pf1", pf1.toString());
  250 + map.put("pf1", pf1);
251 251 }
252 252 if(pf5!=null){
253   - map.put("pf5", pf5.toString());
  253 + map.put("pf5", pf5);
254 254 }
255 255 if(pf10!=null){
256   - map.put("pf10", pf10.toString());
  256 + map.put("pf10", pf10);
257 257 }
258 258  
259 259 request.setApgarScore(map);
... ... @@ -430,7 +430,7 @@
430 430 Map deliveryMode = new HashMap(); //分娩方式
431 431  
432 432 String fmfs = "";
433   - if (allFm.getDELIVERY_MODE() != null && "剖宫产".equals(allFm.getDELIVERY_MODE()))
  433 + if (allFm.getDELIVERY_MODE() != null && "手术产".equals(allFm.getDELIVERY_MODE()))
434 434 {
435 435 fmfs = FmTypeEnums.O1.getId();
436 436 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/FmController.java View file @ ec54fcf
... ... @@ -24,7 +24,7 @@
24 24  
25 25 @RequestMapping(method = RequestMethod.POST, value = "/saveFmData")
26 26 @ResponseBody
27   - public String saveLisData(@RequestBody List<Fm> models,
  27 + public String saveFmData(@RequestBody List<Fm> models,
28 28 HttpServletRequest httpServletRequest){
29 29  
30 30 lpfyFmService.queryFmPatient(models);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MeasureInfoController.java View file @ ec54fcf
... ... @@ -25,21 +25,22 @@
25 25 private MeasureInfoFacade measureInfoFacade;
26 26 /**
27 27 * 血糖和脉搏 身高和体重的值列表
28   - * valueType 值类型: 1 身高、体重 2 血压和脉搏
  28 + * valueType 值类型: 1 体重和身高 2 血压和脉搏
29 29 * @return
30 30 */
31 31 @RequestMapping(method = RequestMethod.GET, value = "/queryMeasureInfoList")
32 32 @ResponseBody
33   -// @TokenRequired
  33 + @TokenRequired
34 34 public BaseListResponse queryMeasureInfoList(@RequestParam(value = "queryNo", required = false) String queryNo,
35 35 @RequestParam("page") Integer page,
36 36 @RequestParam("limit") Integer limit,
37 37 @RequestParam("valueType") Integer valueType,
38 38 @RequestParam(value = "vcCardNo", required = false) String vcCardNo,
39 39 @RequestParam(value = "recordTime", required = false) String recordTime,
40   - @RequestParam(value = "age", required = false) Integer age
  40 + @RequestParam(value = "age", required = false) Integer age,
  41 + HttpServletRequest request
41 42 ) {
42   - return measureInfoFacade.queryMeasureInfoList(queryNo,valueType,vcCardNo,recordTime,age,page,limit);
  43 + return measureInfoFacade.queryMeasureInfoList(queryNo,valueType,vcCardNo,recordTime,age,page,limit,getUserId(request));
43 44 }
44 45  
45 46  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PregnantBuildController.java View file @ ec54fcf
... ... @@ -59,6 +59,19 @@
59 59  
60 60  
61 61 /**
  62 + * 查询孕妇是否有建档记录 有就返回patientid
  63 + *
  64 + * @return
  65 + */
  66 + @RequestMapping(value = "/getPatientBuildId", method = RequestMethod.GET)
  67 + @ResponseBody
  68 + public String getPatientBuildId(@RequestParam(required = true) String certType,
  69 + @RequestParam(required = true) String certNo,
  70 + @RequestParam(required = true) String hospitalId) {
  71 + return bookbuildingFacade.getPatientBuildId(certType,certNo,hospitalId);
  72 + }
  73 +
  74 + /**
62 75 * 查询孕妇建档记录
63 76 * @return
64 77 */
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java View file @ ec54fcf
... ... @@ -24,6 +24,19 @@
24 24  
25 25 @ResponseBody
26 26 @TokenRequired
  27 + @RequestMapping(value = "/mother/{parentId}", method = RequestMethod.GET)
  28 + public BaseResponse mother(@PathVariable String parentId, HttpServletRequest request) {
  29 + return trackDownService.mother(parentId, getUserId(request));
  30 + }
  31 +
  32 + @ResponseBody
  33 + @RequestMapping(value = "/init", method = RequestMethod.GET)
  34 + public BaseResponse init() {
  35 + return trackDownService.init();
  36 + }
  37 +
  38 + @ResponseBody
  39 + @TokenRequired
27 40 @RequestMapping(value = "/all", method = RequestMethod.GET)
28 41 public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) {
29 42 return trackDownService.all(buildStart, buildEnd, checkStart, checkEnd, fmStart, fmEnd, key, page, limit, getUserId(request));
... ... @@ -43,6 +56,12 @@
43 56 return trackDownService.list(provinceId, cityId, areaId, streetId, key, trackType, page, limit, getUserId(request));
44 57 }
45 58  
  59 + /**
  60 + *
  61 + * @param parentId
  62 + * @param trackType 产考TrackDownDateEnums里面的值 0代表所有
  63 + * @return
  64 + */
46 65 @ResponseBody
47 66 @RequestMapping(value = "/{parentId}/{trackType}", method = RequestMethod.GET)
48 67 @TokenRequired
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java View file @ ec54fcf
... ... @@ -1865,5 +1865,19 @@
1865 1865 }
1866 1866  
1867 1867  
  1868 + public String getPatientBuildId(String certType, String certNo,String hospitalId) {
  1869 + PatientsQuery patientsQuery = new PatientsQuery();
  1870 + patientsQuery.setCardNo(certNo);
  1871 + patientsQuery.setPcerteTypeId(certType);
  1872 + patientsQuery.setYn(YnEnums.YES.getId());
  1873 + patientsQuery.setHospitalId(hospitalId);
  1874 + List<Patients> patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery);
  1875 + String patientId = "";
  1876 + if (CollectionUtils.isNotEmpty(patients))
  1877 + {
  1878 + patientId = patients.get(0).getId();
  1879 + }
  1880 + return patientId;
  1881 + }
1868 1882 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java View file @ ec54fcf
1 1 package com.lyms.platform.operate.web.facade;
2 2  
  3 +import com.lyms.platform.biz.service.BasicConfigService;
  4 +import com.lyms.platform.biz.service.DataPermissionService;
3 5 import com.lyms.platform.common.constants.ErrorCodeConstants;
4 6 import com.lyms.platform.common.enums.SexEnum;
  7 +import com.lyms.platform.common.enums.YnEnums;
5 8 import com.lyms.platform.common.result.BaseListResponse;
6 9 import com.lyms.platform.common.result.BaseResponse;
7 10 import com.lyms.platform.common.utils.DateUtil;
8 11 import com.lyms.platform.operate.web.request.MeasureInfoRequest;
9 12 import com.lyms.platform.operate.web.result.MeasureInfoResult;
  13 +import com.lyms.platform.permission.model.Organization;
  14 +import com.lyms.platform.permission.service.OrganizationService;
  15 +import com.lyms.platform.pojo.BasicConfig;
  16 +import com.lyms.platform.pojo.DataPermissionsModel;
10 17 import com.lyms.platform.pojo.MeasureInfoModel;
  18 +import com.lyms.platform.query.DataPermissionsModelQuery;
11 19 import com.lyms.platform.query.MeasureInfoQuery;
12 20 import org.apache.commons.collections.CollectionUtils;
13 21 import org.apache.commons.lang.StringUtils;
14 22 import org.springframework.beans.factory.annotation.Autowired;
15 23 import org.springframework.stereotype.Component;
16 24  
17   -import java.util.ArrayList;
18   -import java.util.Date;
19   -import java.util.List;
  25 +import java.util.*;
20 26  
21 27 /**
22 28 * Created by Administrator on 2018-01-10.
23 29  
24 30  
25 31  
26 32  
27 33  
28 34  
29 35  
... ... @@ -26,51 +32,99 @@
26 32 @Autowired
27 33 private com.lyms.platform.permission.service.MeasureInfoService mysqlMeasureInfoService;
28 34  
  35 + @Autowired
  36 + private DataPermissionService dataPermissionService;
29 37  
  38 + @Autowired
  39 + private OrganizationService organizationService;
  40 +
  41 + @Autowired
  42 + private BasicConfigService basicConfigService;
  43 +
30 44 public BaseListResponse queryMeasureInfoList(String queryNo,
31 45 Integer valueType, String vcCardNo,
32 46 String recordTime, Integer age,
33   - Integer page, Integer limit) {
  47 + Integer page, Integer limit,Integer userId) {
34 48  
35   - MeasureInfoQuery query = new MeasureInfoQuery();
36   - query.setQueryNo(queryNo);
37   - query.setValueType(valueType);
38   - query.setLimit(limit);
39   - query.setPage(page);
40   - query.setAge(age);
41   - query.setVcCardNo(vcCardNo);
42   - query.setSort(" created desc ");
43   - if (StringUtils.isNotEmpty(recordTime)) {
44   - String[] dates = recordTime.split(" - ");
45   - query.setRecordTimeStart(DateUtil.parseYMD(dates[0]));
46   - if (dates.length == 2) {
47   - query.setRecordTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59"));
  49 +
  50 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  51 + dataPermissionsModelQuery.setUserId(userId);
  52 +
  53 + List<String> hospitalList = new ArrayList<>();
  54 +
  55 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  56 + if (CollectionUtils.isNotEmpty(permissionsModels)) {
  57 + Set<String> set = permissionsModels.get(0).getData().keySet();
  58 + Iterator<String> it = set.iterator();
  59 + while (it.hasNext()) {
  60 + String id = it.next();
  61 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) {
  62 + hospitalList.add(id);
  63 + }
48 64 }
49 65 }
50   - List<MeasureInfoModel> list = mysqlMeasureInfoService.queryMeasureInfoList(query);
51 66  
52 67 List<MeasureInfoResult> results = new ArrayList<>();
53   - if (CollectionUtils.isNotEmpty(list))
  68 + MeasureInfoQuery query = new MeasureInfoQuery();
  69 + if (CollectionUtils.isNotEmpty(hospitalList))
54 70 {
55   - for (MeasureInfoModel model : list)
  71 + //权限
  72 + query.setHospitalIds(hospitalList);
  73 + query.setQueryNo(queryNo);
  74 + query.setValueType(valueType);
  75 + query.setLimit(limit);
  76 + query.setPage(page);
  77 + query.setAge(age);
  78 + query.setVcCardNo(vcCardNo);
  79 + query.setSort(" record_time desc ");
  80 + query.setNeed("true");
  81 + if (StringUtils.isNotEmpty(recordTime)) {
  82 + String[] dates = recordTime.split(" - ");
  83 + query.setRecordTimeStart(DateUtil.parseYMD(dates[0]));
  84 + if (dates.length == 2) {
  85 + query.setRecordTimeEnd(DateUtil.addDay(DateUtil.parseYMD(dates[1]),1));
  86 + }
  87 + }
  88 + List<MeasureInfoModel> list = mysqlMeasureInfoService.queryMeasureInfoList(query);
  89 +
  90 +
  91 + if (CollectionUtils.isNotEmpty(list))
56 92 {
57   - MeasureInfoResult result = new MeasureInfoResult();
58   - result.setId(model.getId());
59   - result.setUserName(model.getUserName());
60   - result.setCertType(model.getCertType());
61   - result.setCertNo(model.getCertNo());
62   - result.setHospitalId(model.getHospitalId());
63   - result.setOpenId(model.getOpenId());
64   - result.setRecordCount(model.getRecordCount());
65   - result.setRecordTime(DateUtil.getyyyy_MM_dd(model.getRecordTime()));
66   - result.setSex(SexEnum.getTextById(model.getSex()));
67   - result.setAge(model.getAge());
68   - result.setValueOne(model.getValueOne());
69   - result.setValueTwo(model.getValueTwo());
70   - result.setVcCardNo(model.getVcCardNo());
71   - result.setWxXode(model.getWxCode());
72   - result.setPhone(model.getPhone());
73   - results.add(result);
  93 + for (MeasureInfoModel model : list)
  94 + {
  95 + MeasureInfoResult result = new MeasureInfoResult();
  96 + result.setId(model.getId());
  97 + result.setUserName(model.getUserName());
  98 +
  99 + if (StringUtils.isNotEmpty(model.getCertType())) {
  100 + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(model.getCertType());
  101 + if (null != basicConfig) {
  102 + result.setCertType(basicConfig.getName());
  103 + }
  104 + }
  105 + result.setCertNo(model.getCertNo());
  106 + result.setHospitalId(model.getHospitalId());
  107 + result.setOpenId(model.getOpenId());
  108 + result.setRecordCount(model.getRecordCount());
  109 + result.setRecordTime(DateUtil.getyyyy_MM_dd(model.getRecordTime()));
  110 + result.setSex(SexEnum.getTextById(model.getSex()));
  111 + result.setAge(model.getAge() == null ? "--" : String.valueOf(model.getAge()));
  112 + result.setValueOne(model.getValueOne());
  113 + result.setValueTwo(model.getValueTwo());
  114 + result.setVcCardNo(model.getVcCardNo() == null ? "--" : model.getVcCardNo());
  115 + result.setWxXode(model.getWxCode());
  116 + result.setPhone(model.getPhone());
  117 +
  118 + String hospital = "";
  119 + if (org.apache.commons.lang.StringUtils.isNotEmpty(result.getHospitalId())) {
  120 + Organization organization = organizationService.getOrganization(Integer.parseInt(result.getHospitalId()));
  121 + if (organization != null && organization.getYn() == YnEnums.YES.getId()) {
  122 + hospital = organization.getName();
  123 + }
  124 + }
  125 + result.setHospitalName(hospital);
  126 + results.add(result);
  127 + }
74 128 }
75 129 }
76 130  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MeasureInfoRequest.java View file @ ec54fcf
... ... @@ -19,7 +19,7 @@
19 19 private String valueOne;
20 20 //脉搏/身高
21 21 private String valueTwo;
22   - //值类型: 1 身高、体重 2 血压和脉搏
  22 + //值类型: 1 体重和身高 2 血压和脉搏
23 23 private Integer valueType;
24 24 //记录时间
25 25 private String recordTime;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MeasureInfoResult.java View file @ ec54fcf
... ... @@ -14,7 +14,7 @@
14 14 //性别
15 15 private String sex;
16 16 //年龄
17   - private Integer age;
  17 + private String age;
18 18 //就诊卡号
19 19 private String vcCardNo;
20 20 //血压/体重
... ... @@ -36,6 +36,18 @@
36 36 //手机号码
37 37 private String phone;
38 38  
  39 + //医院名称
  40 + private String hospitalName;
  41 +
  42 +
  43 + public String getHospitalName() {
  44 + return hospitalName;
  45 + }
  46 +
  47 + public void setHospitalName(String hospitalName) {
  48 + this.hospitalName = hospitalName;
  49 + }
  50 +
39 51 public String getPhone() {
40 52 return phone;
41 53 }
42 54  
... ... @@ -148,11 +160,11 @@
148 160 this.hospitalId = hospitalId;
149 161 }
150 162  
151   - public Integer getAge() {
  163 + public String getAge() {
152 164 return age;
153 165 }
154 166  
155   - public void setAge(Integer age) {
  167 + public void setAge(String age) {
156 168 this.age = age;
157 169 }
158 170 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java View file @ ec54fcf
... ... @@ -17,5 +17,6 @@
17 17  
18 18 BaseResponse init();
19 19  
  20 + BaseResponse mother(String parentId, Integer userId);
20 21 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ ec54fcf
1 1 package com.lyms.platform.operate.web.service.impl;
2 2  
3 3 import com.lyms.platform.biz.service.TrackDownService;
4   -import com.lyms.platform.common.enums.FmTypeEnums;
5   -import com.lyms.platform.common.enums.TrackDownDateEnums;
6   -import com.lyms.platform.common.enums.TrackDownTransferEnums;
7   -import com.lyms.platform.common.enums.YnEnums;
  4 +import com.lyms.platform.common.enums.*;
8 5 import com.lyms.platform.common.result.BaseResponse;
9 6 import com.lyms.platform.common.result.PageResult;
10 7 import com.lyms.platform.common.result.RespBuilder;
11 8 import com.lyms.platform.common.utils.DateUtil;
  9 +import com.lyms.platform.common.utils.EnumUtil;
12 10 import com.lyms.platform.common.utils.StringUtils;
13 11 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
14 12 import com.lyms.platform.operate.web.service.ITrackDownService;
15 13 import com.lyms.platform.operate.web.utils.CollectionUtils;
16 14 import com.lyms.platform.operate.web.utils.MongoUtil;
  15 +import com.lyms.platform.permission.dao.master.CouponMapper;
17 16 import com.lyms.platform.pojo.*;
18 17 import org.springframework.beans.factory.annotation.Autowired;
19 18 import org.springframework.data.domain.Sort;
... ... @@ -39,6 +38,9 @@
39 38 @Autowired
40 39 private MongoUtil mongoUtil;
41 40  
  41 + @Autowired
  42 + private CouponMapper couponMapper;
  43 +
42 44 @Override
43 45 public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId) {
44 46 String hospitalId = autoMatchFacade.getHospitalId(userId);
... ... @@ -86,7 +88,6 @@
86 88 temp.put("yj", yjCount > 0 ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.C));
87 89 temp.put("yjcount", yjCount); // 孕检次数 = 初诊 + 复诊
88 90  
89   -
90 91 // 产前筛查 有产晒记录>勾勾 没有: 有产前筛查追访并且流转至下一流程 勾勾 反之xx
91 92 temp.put("cqsc", mongoTemplate.count(Query.query(Criteria.where("parentId").is(patient.getId()).and("yn").is(1)), AntExChuModel.class) > 0L ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.D));
92 93  
... ... @@ -174,9 +175,19 @@
174 175  
175 176 public BaseResponse add(Integer userId, TrackDown trackDown) {
176 177 String hospitalId = autoMatchFacade.getHospitalId(userId);
177   - String parentId = mongoUtil.doHidePatient(trackDown.getParentId(), hospitalId);
178   - trackDown.setPid(mongoUtil.getPid(parentId));
179   - trackDown.setParentId(parentId);
  178 + if(StringUtils.isNotEmpty(trackDown.getResidentsArchiveId())) { // 怀孕建档是lyms_resident
  179 + ResidentsArchiveModel archiveModel = mongoTemplate.findById(trackDown.getResidentsArchiveId(), ResidentsArchiveModel.class);
  180 + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(archiveModel.getCertificateNum())).with(new Sort(Sort.Direction.DESC, "created")), Patients.class);
  181 + if(patients != null) {
  182 + String parentId = mongoUtil.doHidePatient(patients.getId(), hospitalId);
  183 + trackDown.setPid(mongoUtil.getPid(parentId));
  184 + trackDown.setParentId(parentId);
  185 + }
  186 + } else {
  187 + String parentId = mongoUtil.doHidePatient(trackDown.getParentId(), hospitalId);
  188 + trackDown.setPid(mongoUtil.getPid(parentId));
  189 + trackDown.setParentId(parentId);
  190 + }
180 191 trackDown.setYn(YnEnums.YES.getId());
181 192 trackDown.setCreated(new Date());
182 193 trackDown.setHospitalId(hospitalId);
183 194  
... ... @@ -188,11 +199,14 @@
188 199  
189 200 @Override
190 201 public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) {
191   - PageResult pageResult = new PageResult();
  202 + PageResult pageResult = null;
  203 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  204 + Criteria patientCriteria = new Criteria();
192 205 List<Map<String, Object>> restList = new ArrayList<>();
193   - Criteria criteria = new Criteria();
194   - if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) ) {
195   - Criteria patientCriteria = new Criteria();
  206 + boolean flag = false; // 判断需不需要对patients进行查询
  207 + Set<String> parentIds = new HashSet<>();
  208 + if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) || StringUtils.isNotEmpty(key)) {
  209 + flag = true;
196 210 if(StringUtils.isNotEmpty(provinceId)) {
197 211 patientCriteria.and("provinceRegisterId").is(provinceId);
198 212 }
... ... @@ -205,7 +219,13 @@
205 219 if(StringUtils.isNotEmpty(streetId)) {
206 220 patientCriteria.and("streetRegisterId").is(streetId);
207 221 }
208   - List<Patients> patients = mongoTemplate.find(Query.query(patientCriteria.and("yn").is(1)), Patients.class);
  222 + if(StringUtils.isNotEmpty(key)) {
  223 + patientCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("cardNo").is(key));
  224 + }
  225 + List<Patients> patients = mongoTemplate.find(Query.query(patientCriteria.and("yn").is(1).and("hospitalId").is(hospitalId)), Patients.class);
  226 + for (Patients patient : patients) {
  227 + parentIds.add(patient.getId());
  228 + }
209 229 }
210 230  
211 231 if(trackType == TrackDownDateEnums.A.getId()) {
... ... @@ -223,7 +243,7 @@
223 243 c.and("streetId").is(streetId);
224 244 }
225 245 List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("yn").is(1).and("trackDownTransfer").in(Arrays.asList(2, 3))
226   - .and("trackDownDateType").is(TrackDownDateEnums.A.getId())), TrackDown.class);
  246 + .and("trackDownDateType").is(TrackDownDateEnums.B.getId()).and("hospitalId").is(hospitalId)), TrackDown.class);
227 247 List<String> residentIds = new ArrayList<>();
228 248 for (TrackDown trackDown : trackDowns) {
229 249 residentIds.add(trackDown.getId());
230 250  
231 251  
232 252  
... ... @@ -232,20 +252,52 @@
232 252 List<ResidentsArchiveModel> residentsArchiveModels = (List<ResidentsArchiveModel>) pageResult.getGrid();
233 253 for (ResidentsArchiveModel residentsArchiveModel : residentsArchiveModels) {
234 254 Map<String, Object> temp = new HashMap<>();
235   - temp.put("id", residentsArchiveModel.getId());
  255 + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(residentsArchiveModel.getCertificateNum())).with(new Sort(Sort.Direction.DESC, "created")), Patients.class);
  256 + temp.put("id", patients == null ? null : patients.getId());
  257 + temp.put("residentsArchiveId", residentsArchiveModel.getId());
236 258 temp.put("username", residentsArchiveModel.getUsername());
237 259 temp.put("cardNo", residentsArchiveModel.getCertificateNum());
238 260 temp.put("residenceAddress", mongoUtil.findAddressName(residentsArchiveModel.getProvinceId(), residentsArchiveModel.getCityId(), residentsArchiveModel.getAreaId(), residentsArchiveModel.getStreetId())); /** 居住地 */
239 261 temp.put("phone", StringUtils.encryPhone(residentsArchiveModel.getPhone()));
240 262 TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("residentsArchiveId").is(residentsArchiveModel.getId()).and("yn").is(1)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
  263 + temp.put("age", DateUtil.getAge(residentsArchiveModel.getBirthday()));
241 264 // 婚检追访结果
242   - temp.put("end", trackDown == null ? "--" : TrackDownTransferEnums.getName(trackDown.getTrackDownType()));
  265 + temp.put("result", trackDown == null ? "--" : TrackDownTransferEnums.getName(trackDown.getTrackDownType()));
243 266 // 婚检追访时间
244 267 temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate()));
245 268 // 预约时间
246 269 temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate()));
247 270 restList.add(temp);
248 271 }
  272 + } else {
  273 + pageResult = findMongoPage(Patients.class, Query.query(patientCriteria), page, limit);
  274 + List<Patients> patients = (List<Patients>) pageResult.getGrid();
  275 + for (Patients patient : patients) {
  276 + Map<String, Object> temp = new HashMap<>();
  277 + temp.put("username", patient.getUsername());
  278 + temp.put("age", DateUtil.getAge(patient.getBirth()));
  279 + temp.put("cardNo", StringUtils.encryCardNo(patient.getCardNo()));
  280 + temp.put("residenceAddress", mongoUtil.findAddressName(patient.getProvinceId(), patient.getCityId(), patient.getAreaId(), patient.getStreetId())); /** 居住地 */
  281 + temp.put("phone", StringUtils.encryPhone(patient.getPhone()));
  282 + temp.put("id", patient.getId());
  283 + TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("yn").is(1).and("parentId").is(patient.getId())).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
  284 + if(trackDown != null) {
  285 + temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult()); // 婚检追访结果
  286 + temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); // 追访时间
  287 + temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); // 预约时间
  288 + } else {
  289 + temp.put("result", "--"); // 婚检追访结果
  290 + temp.put("trackDownTime", "--"); // 追访时间
  291 + temp.put("yyTime", "--"); // 预约时间
  292 + }
  293 + restList.add(temp);
  294 + }
  295 + Criteria trackDowncCriteria = new Criteria();
  296 + if(flag) {
  297 + trackDowncCriteria.and("parentId").in(parentIds);
  298 + }
  299 +// trackDowncCriteria.and("yn").is(1).and("trackDownTransfer").in(Arrays.asList(2, 3)).and("hospitalId").is(hospitalId);
  300 +
249 301 }
250 302 pageResult.setGrid(restList);
251 303 return RespBuilder.buildSuccess(pageResult);
252 304  
253 305  
... ... @@ -253,12 +305,105 @@
253 305  
254 306 @Override
255 307 public BaseResponse info(String patientId, Integer trackType) {
256   - return null;
  308 + List<Map<String, Object>> tabList = new ArrayList<>();
  309 + if(trackType == 0) {
  310 + List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("yn").is(1)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
  311 + List<Map<String, Object>> hqjcList = new ArrayList<>(); // 婚前检查
  312 + List<Map<String, Object>> hyjdList = new ArrayList<>(); // 怀孕建档
  313 + List<Map<String, Object>> cqjcList = new ArrayList<>(); // 产前检查
  314 + List<Map<String, Object>> cqscList = new ArrayList<>(); // 产前筛查
  315 + List<Map<String, Object>> zyfmList = new ArrayList<>(); // 住院分娩
  316 + List<Map<String, Object>> chfsList = new ArrayList<>(); // 产后访视
  317 + List<Map<String, Object>> chfcList = new ArrayList<>(); // 产后复查
  318 + for (TrackDown trackDown : trackDowns) {
  319 + Map<String, Object> temp = new HashMap<>();
  320 + temp.put("trackDownDate", DateUtil.getyyyy_MM_dd_hms(trackDown.getTrackDownDate()));
  321 + temp.put("trackDownUser", trackDown.getTrackDownUserId());
  322 + temp.put("trackDownType", TrackDownTypeEnums.getName(trackDown.getTrackDownDateType()));
  323 + temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult());
  324 + temp.put("reservatDate", DateUtil.getyyyy_MM_dd(trackDown.getReservatDate()));
  325 + if(TrackDownDateEnums.A.getId().equals(trackDown.getTrackDownDateType())) {
  326 + hqjcList.add(temp);
  327 + } else if(TrackDownDateEnums.B.getId().equals(trackDown.getTrackDownDateType())) {
  328 + hyjdList.add(temp);
  329 + } else if(TrackDownDateEnums.C.getId().equals(trackDown.getTrackDownDateType())) {
  330 + cqjcList.add(temp);
  331 + } else if(TrackDownDateEnums.D.getId().equals(trackDown.getTrackDownDateType())) {
  332 + cqscList.add(temp);
  333 + } else if(TrackDownDateEnums.E.getId().equals(trackDown.getTrackDownDateType())) {
  334 + zyfmList.add(temp);
  335 + } else if(TrackDownDateEnums.F.getId().equals(trackDown.getTrackDownDateType())) {
  336 + chfsList.add(temp);
  337 + } else if(TrackDownDateEnums.G.getId().equals(trackDown.getTrackDownDateType())) {
  338 + chfcList.add(temp);
  339 + }
  340 + }
  341 + setTrackType();
  342 + return RespBuilder.buildSuccess("hqjcList", hqjcList, "hyjdList", hyjdList, "cqjcList", cqjcList, "cqscList", cqscList, "zyfmList", zyfmList, "chfsList", chfsList, "chfcList", chfcList);
  343 + }
  344 + List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("trackDownDateType").is(trackType).and("yn").is(1)), TrackDown.class);
  345 + for (TrackDown trackDown : trackDowns) {
  346 + Map<String, Object> temp = new HashMap<>();
  347 + temp.put("trackDownDate", trackDown.getTrackDownDate() == null ? "--" : DateUtil.getyyyy_MM_dd_hms(trackDown.getTrackDownDate()));
  348 + temp.put("trackDownUser", StringUtils.isEmpty(trackDown.getTrackDownUserId()) ? "--" : trackDown.getTrackDownUserId());
  349 + temp.put("trackDownType", TrackDownTypeEnums.getName(trackDown.getTrackDownType()));
  350 + temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult());
  351 + temp.put("reservatDate", trackDown.getReservatDate() == null ? "--" :DateUtil.getyyyy_MM_dd(trackDown.getReservatDate()));
  352 + tabList.add(temp);
  353 + }
  354 + return RespBuilder.buildSuccess(tabList);
257 355 }
258 356  
  357 + private void setTrackType(List<Map<String, Object>> ... datas) {
  358 + for (List<Map<String, Object>> data : datas) {
  359 +
  360 + for (Map<String, Object> map : data) {
  361 +
  362 + }
  363 + }
  364 + }
  365 +
259 366 @Override
260 367 public BaseResponse init() {
261   - return null;
  368 + List<Map<String, Object>> trackTypes = EnumUtil.toJson(TrackDownTypeEnums.class); // 追访方式
  369 + List<Map<String, Object>> dataTypes = EnumUtil.toJson(TrackDownDateEnums.class); // 追访相关数据类型
  370 + List<Map<String, Object>> transfers = EnumUtil.toJson(TrackDownTransferEnums.class); // 追访转接
  371 + return RespBuilder.buildSuccess("trackTypes", trackTypes, "dataTypes", dataTypes, "transfers", transfers);
  372 + }
  373 +
  374 + @Override
  375 + public BaseResponse mother(String parentId, Integer userId) {
  376 + Patients patients = mongoTemplate.findById(parentId, Patients.class);
  377 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  378 + Map<String, Object> map = new HashMap<>();
  379 + if(patients != null) {
  380 + map.put("username", patients.getUsername());
  381 + map.put("phone", patients.getPhone());
  382 + map.put("cardNo", patients.getCardNo());
  383 + map.put("age", DateUtil.getAge(patients.getBirth()));
  384 + map.put("week", DateUtil.getWeekDesc(patients.getLastMenses(), new Date()));
  385 + map.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate())); /** 预产期 */
  386 + map.put("trackCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("trackDownDateType").is(TrackDownDateEnums.F.getId()).and("yn").is(1)), TrackDown.class)); /** 访视次数 */
  387 + map.put("fcCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("trackDownDateType").is(TrackDownDateEnums.G.getId()).and("yn").is(1)), TrackDown.class)); /** 复查次数 */
  388 + map.put("checkCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("hospitalId").is(hospitalId)), AntenatalExaminationModel.class) +
  389 + mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId)), AntExChuModel.class)); /** 本院产检次数 */
  390 + AntenatalExaminationModel examinationModel = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(parentId)).with(new Sort(Sort.Direction.DESC, "created")), AntenatalExaminationModel.class);
  391 + if(examinationModel != null) {
  392 + map.put("checkTime", DateUtil.getyyyy_MM_dd(examinationModel.getCheckDate())); /** 产检日期 */
  393 + map.put("nextCheckTime", DateUtil.getyyyy_MM_dd(examinationModel.getNextCheckTime())); /** 预约产检日期 */
  394 + } else {
  395 + AntExChuModel antExChuModel = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(parentId)).with(new Sort(Sort.Direction.DESC, "created")), AntExChuModel.class);
  396 + if(antExChuModel != null) {
  397 + map.put("checkTime", DateUtil.getyyyy_MM_dd(antExChuModel.getCheckTime())); /** 产检日期 */
  398 + map.put("nextCheckTime", DateUtil.getyyyy_MM_dd(antExChuModel.getNextCheckTime())); /** 预约产检日期 */
  399 + } else {
  400 + map.put("checkTime", "--"); /** 产检日期 */
  401 + map.put("nextCheckTime", "--"); /** 预约产检日期 */
  402 + }
  403 + }
  404 +
  405 + }
  406 + return RespBuilder.buildSuccess(map);
262 407 }
263 408  
264 409  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java View file @ ec54fcf
... ... @@ -330,6 +330,16 @@
330 330 return null;
331 331 }
332 332  
  333 + public String findPatientName(String id) {
  334 + if(StringUtils.isNotEmpty(id)) {
  335 + Patients patients = mongoTemplate.findById(id, Patients.class);
  336 + if(patients != null) {
  337 + return patients.getUsername();
  338 + }
  339 + }
  340 + return null;
  341 + }
  342 +
333 343 public String findAddressName(Object ... ids) {
334 344 StringBuilder sb = new StringBuilder();
335 345 if(ids != null && ids.length > 0) {