diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentPatientInfoController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentPatientInfoController.java index 652d66b..4705a3a 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentPatientInfoController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentPatientInfoController.java @@ -108,6 +108,7 @@ public class ResidentPatientInfoController extends BaseController { try { return R.ok(residentPatientInfoService.switchResident(openid, patientCode)); } catch (Exception e) { + e.printStackTrace(); return R.fail(e.getMessage()); } } @@ -127,6 +128,12 @@ public class ResidentPatientInfoController extends BaseController { return R.ok(residentPatientInfoService.getCurrentResident(openid, cityCode)); } + @ApiOperation("是否已注册") + @GetMapping(value = "/isRegistered/{code}") + public R isRegistered(@PathVariable("code") String code) { + return R.ok(residentPatientInfoService.isRegistered(code)); + } + /** * @Author mengkuiliang * @Description 居民头像上传 @@ -134,22 +141,22 @@ public class ResidentPatientInfoController extends BaseController { * @Param * @return **/ - @ApiOperation("居民头像上传") - @PostMapping(value = "/headPictureUpload") - public AjaxResult headPictureUpload(MultipartFile file) throws Exception { - if (StringUtils.isBlank(file.getOriginalFilename())) { - return AjaxResult.error("请选择所要上传的头像!"); - } - //获取路径名称 - String uploadPathUrl = XinELuConfig.getProfile() + xinELuConfig.getHeadPictureUrl(); - //上传图片 - String pictureName = FileUploadUtils.uploadNurseStationPath(uploadPathUrl, file, MimeTypeUtils.IMAGE_EXTENSION); - if (StringUtils.isBlank(pictureName)) { - throw new ServiceException(pictureName + "居民头像上传失败!"); - } - //获取返回值 - AjaxResult ajax = AjaxResult.success("上传成功!"); - ajax.put("imgUrl", pictureName); - return ajax; - } +// @ApiOperation("居民头像上传") +// @PostMapping(value = "/headPictureUpload") +// public AjaxResult headPictureUpload(MultipartFile file) throws Exception { +// if (StringUtils.isBlank(file.getOriginalFilename())) { +// return AjaxResult.error("请选择所要上传的头像!"); +// } +// //获取路径名称 +// String uploadPathUrl = XinELuConfig.getProfile() + xinELuConfig.getHeadPictureUrl(); +// //上传图片 +// String pictureName = FileUploadUtils.uploadNurseStationPath(uploadPathUrl, file, MimeTypeUtils.IMAGE_EXTENSION); +// if (StringUtils.isBlank(pictureName)) { +// throw new ServiceException(pictureName + "居民头像上传失败!"); +// } +// //获取返回值 +// AjaxResult ajax = AjaxResult.success("上传成功!"); +// ajax.put("imgUrl", pictureName); +// return ajax; +// } } diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentRescindApplyController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentRescindApplyController.java index 37981ad..03552aa 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentRescindApplyController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentRescindApplyController.java @@ -53,6 +53,7 @@ public class ResidentRescindApplyController extends BaseController { List list = rescindApplyService.findList(query); return getDataTable(list); } catch (Exception e) { + e.printStackTrace(); throw new ServiceException(e.getMessage()); } } @@ -63,6 +64,7 @@ public class ResidentRescindApplyController extends BaseController { try { return R.ok(rescindApplyService.detail(applyNo)); } catch (Exception e) { + e.printStackTrace(); return R.fail(e.getMessage()); } } diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentServiceApplyController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentServiceApplyController.java index 1ddc1d5..dec5de9 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentServiceApplyController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentServiceApplyController.java @@ -32,12 +32,15 @@ public class ResidentServiceApplyController extends BaseController { @Resource private IResidentServiceAppletService residentServiceAppletService; - @ApiOperation("提交服务申请(批量)") + @ApiOperation("提交服务申请") @PostMapping("/save") public R save(@RequestBody ResidentServiceApplyBody body) { - if (body == null || body.getFormList() == null || body.getFormList().size() == 0) { + if (body == null || StringUtils.isBlank(body.getPackageNo()) || StringUtils.isBlank(body.getFormNo())) { return R.fail("请求参数不能为空"); } + if(StringUtils.isBlank(body.getIdentity())) { + return R.fail("居民身份证号不能为空"); + } residentServiceAppletService.insert(body); return R.ok(); } @@ -59,6 +62,7 @@ public class ResidentServiceApplyController extends BaseController { startPage(); return getDataTable(residentServiceAppletService.findList(query)); } catch (Exception e) { + e.printStackTrace(); throw new ServiceException(e.getMessage()); } } @@ -69,9 +73,9 @@ public class ResidentServiceApplyController extends BaseController { return R.ok(residentServiceAppletService.detail(bookingNo)); } - @ApiOperation(value = "获取服务预约列表", notes = "获取家医个性服务包和筛查项目") + @ApiOperation(value = "获取服务预约项目列表", notes = "获取家医个性服务包和筛查项目") @GetMapping("/getForm/{identity}") - public R> getForm(@PathVariable String identity, @RequestHeader("region") String region) { - return R.ok(residentServiceAppletService.getForm(identity, region)); + public R> getForm(@PathVariable String identity, String projectName, @RequestHeader("region") String region) { + return R.ok(residentServiceAppletService.getForm(identity, projectName,region)); } } diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentSignApplyController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentSignApplyController.java index 2954542..dbb2d61 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentSignApplyController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/ResidentSignApplyController.java @@ -1,9 +1,18 @@ package com.xinelu.web.controller.applet; +import com.alibaba.fastjson2.JSONObject; +import com.xinelu.common.config.XinELuConfig; import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.R; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.file.FileUploadUtils; +import com.xinelu.common.utils.file.FileUtils; +import com.xinelu.common.utils.file.MimeTypeUtils; +import com.xinelu.common.utils.http.HttpService; +import com.xinelu.common.utils.spring.SpringUtils; +import com.xinelu.familydoctor.applet.pojo.body.FileUploadBody; import com.xinelu.familydoctor.applet.pojo.body.ResidentSignApplyBody; import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery; import com.xinelu.familydoctor.applet.pojo.vo.ResidentSignApplyVo; @@ -11,9 +20,12 @@ import com.xinelu.familydoctor.applet.service.IResidentSignAppletService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; +import org.aspectj.weaver.loadtime.Aj; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.util.Base64; import java.util.List; /** @@ -30,13 +42,21 @@ public class ResidentSignApplyController extends BaseController { @Resource private IResidentSignAppletService residentSignAppletService; + @Resource + private HttpService httpService; @ApiOperation("提交签约申请") @PostMapping("/save") public R save(@RequestBody ResidentSignApplyBody body) { - if(StringUtils.isBlank(body.getIdentity())) { + if (StringUtils.isBlank(body.getIdentity())) { return R.fail("身份证号不能为空"); } + if (body.getCrowdList() == null || body.getCrowdList().size() == 0) { + return R.fail("人群不能为空"); + } + if (body.getPackageList() == null || body.getPackageList().size() == 0) { + return R.fail("服务包不能为空"); + } residentSignAppletService.insert(body); return R.ok(); } @@ -54,6 +74,7 @@ public class ResidentSignApplyController extends BaseController { try { return R.ok(residentSignAppletService.checkSignApply(identity, region)); } catch (Exception e) { + e.printStackTrace(); return R.fail(e.getMessage()); } } @@ -66,6 +87,7 @@ public class ResidentSignApplyController extends BaseController { List list = residentSignAppletService.findList(query); return getDataTable(list); } catch (Exception e) { + e.printStackTrace(); throw new ServiceException(e.getMessage()); } } @@ -76,8 +98,46 @@ public class ResidentSignApplyController extends BaseController { try { return R.ok(residentSignAppletService.detail(bookingNo)); } catch (Exception e) { + e.printStackTrace(); return R.fail(e.getMessage()); } } + + @ApiOperation("居民签字上传") + @PostMapping(value = "/residentSignatureUpload") + public AjaxResult headPictureUpload(MultipartFile file, @RequestHeader("region") String region) throws Exception { + if (StringUtils.isBlank(file.getOriginalFilename())) { + return AjaxResult.error("请选择所要上传的居民签字!"); + } + FileUploadBody body = new FileUploadBody(); + body.setOriginalFilename(file.getOriginalFilename()); + body.setCode("1001"); + body.setContentType(file.getContentType()); + body.setSuffix(body.getOriginalFilename().substring(body.getOriginalFilename().lastIndexOf(".") + 1)); + body.setFile(Base64.getEncoder().encodeToString(file.getBytes())); + // 上传家医 + JSONObject result = httpService.post(SpringUtils.getFdUrl(region) + "/resident/signinfo/uploadBase64", null, JSONObject.parseObject(JSONObject.toJSONString(body))); + if ("0".equals(result.get("code"))) { + return AjaxResult.error(result.get("msg").toString()); + } + AjaxResult ajax = AjaxResult.success("上传成功!"); + ajax.put("imgUrl", result.getString("data")); + return ajax; + } + + @ApiOperation("获取居民签字") + @GetMapping(value = "/getResidentSignature/{fileNo}") + public AjaxResult getResidentSignature(@PathVariable String fileNo, @RequestHeader("region") String region) { + String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/resident/signinfo/getSignBase64/" + fileNo, null, String.class); + JSONObject jsonObject = JSONObject.parseObject(result); + if (!"1".equals(jsonObject.get("code"))) { + return AjaxResult.error(jsonObject.get("msg").toString()); + } + if (!jsonObject.containsKey("data") || jsonObject.get("data") == null) { + return AjaxResult.success(); + } + return AjaxResult.success("查询成功", jsonObject.getString("data")); + } + } diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/SignInfoController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/SignInfoController.java index 0494d33..134d953 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/SignInfoController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/applet/SignInfoController.java @@ -10,10 +10,12 @@ import com.xinelu.common.utils.http.HttpService; import com.xinelu.common.utils.spring.SpringUtils; import com.xinelu.familydoctor.applet.pojo.query.DoctorListQuery; import com.xinelu.familydoctor.applet.pojo.query.NearbyOrgQuery; +import com.xinelu.familydoctor.applet.pojo.query.PackageQuery; import com.xinelu.familydoctor.applet.pojo.query.TeamListQuery; import com.xinelu.familydoctor.applet.pojo.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; @@ -114,7 +116,7 @@ public class SignInfoController extends BaseController { return R.ok(JSONArray.parseArray(result.getJSONArray("data").toJSONString()).toJavaList(NearOrgVo.class)); } - @ApiOperation(value = "获取区划列表", notes = "山东省: 371400000000 德州市: 371400000000 东营市:370500000000") + @ApiOperation(value = "获取区划列表", notes = "山东省: 370000000000 德州市: 371400000000 东营市:370500000000") @GetMapping("/area/list/{pid}") public R> getPhArea(@PathVariable Long pid, @RequestHeader("region") String region) { String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/area/ph/list/" + pid, null, String.class); @@ -214,4 +216,68 @@ public class SignInfoController extends BaseController { } return R.ok(JSONObject.parseObject(jsonObject.getJSONObject("data").toJSONString(), ProtocolContentVo.class)); } + + @ApiOperation(value = "获取居民履约情况") + @GetMapping("/getPerformance/{identity}") + public R> getPerformance(@PathVariable String identity, @RequestHeader("region") String region) { + String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/performance/getPerPackage/" + identity + "/0", null, String.class); + JSONObject jsonObject = JSONObject.parseObject(result); + if ("0".equals(jsonObject.get("code"))) { + return R.fail(jsonObject.get("msg").toString()); + } + if (!jsonObject.containsKey("data") || jsonObject.get("data") == null) { + return R.ok(); + } + return R.ok(JSONArray.parseArray(jsonObject.getJSONArray("data").toJSONString()).toJavaList(PerformancePackageVo.class)); + } + + @ApiOperation(value = "获取家医人群") + @GetMapping("/getCrowd/{identity}") + public R> getCrowd(@PathVariable String identity, @RequestHeader("region") String region) { + String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/resident/signinfo/getCrowd/" + identity, null, String.class); + JSONObject jsonObject = JSONObject.parseObject(result); + if ("0".equals(jsonObject.get("code"))) { + return R.fail(jsonObject.get("msg").toString()); + } + if (!jsonObject.containsKey("data") || jsonObject.get("data") == null) { + return R.ok(); + } + return R.ok(JSONArray.parseArray(jsonObject.getJSONArray("data").toJSONString()).toJavaList(CrowdVo.class)); + } + + @ApiOperation("根据人群获取服务包") + @PostMapping("/getPackageByCrowdNo") + public R> getPackageByCrowdNo(@RequestBody PackageQuery query, @RequestHeader("region") String region) { + if (query == null) { + return R.fail("请求参数不能为空"); + } + if (StringUtils.isBlank(query.getOrgNo())) { + return R.fail("机构编号不能为空"); + } + if (query.getCrowdNoList() == null || query.getCrowdNoList().size() == 0) { + return R.fail("人群编号不能为空"); + } + JSONObject result = httpService.post(SpringUtils.getFdUrl(region) + "/package/getPackageByCrowdNoList", null, JSONObject.parseObject(JSONObject.toJSONString(query))); + if ("0".equals(result.get("code"))) { + return R.fail(result.get("msg").toString()); + } + if (result.containsKey("data") && result.get("data") != null) { + return R.ok(JSONArray.parseArray(result.getJSONArray("data").toJSONString()).toJavaList(PackageDetailVo.class)); + } + return R.ok(); + } + + @ApiOperation(value = "获取签约协议") + @GetMapping("/getSignProtocol/{cardNo}") + public R getSignProtocol(@PathVariable String cardNo, @RequestHeader("region") String region) { + String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/resident/signinfo/getSignProtocol/" + cardNo, null, String.class); + JSONObject jsonObject = JSONObject.parseObject(result); + if ("0".equals(jsonObject.get("code"))) { + return R.fail(jsonObject.get("msg").toString()); + } + if (!jsonObject.containsKey("data") || jsonObject.get("data") == null) { + return R.ok(); + } + return R.ok(JSONObject.parseObject(jsonObject.getJSONObject("data").toJSONString(), SignInfoDataVo.class)); + } } diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/common/CommonController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/common/CommonController.java index 9cc6a93..ae2a4c1 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/common/CommonController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/common/CommonController.java @@ -6,6 +6,7 @@ import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.file.FileUploadUtils; import com.xinelu.common.utils.file.FileUtils; +import com.xinelu.common.utils.file.MimeTypeUtils; import com.xinelu.framework.config.ServerConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; @@ -37,6 +39,8 @@ public class CommonController { @Autowired private ServerConfig serverConfig; + @Resource + private XinELuConfig xinELuConfig; private static final String FILE_DELIMETER = ","; @@ -147,4 +151,23 @@ public class CommonController { log.error("下载文件失败", e); } } + + /** + * 通用管理端富文本上传请求(单个) + */ + @PostMapping("/richTextPictureUrl") + public AjaxResult richTextPictureUrl(MultipartFile file) throws Exception { + // 上传文件路径 + String filePath = XinELuConfig.getProfile() + xinELuConfig.getRichTextPictureUrl(); + // 上传并返回新文件名称 + String fileName = FileUploadUtils.uploadNurseStationPath(filePath, file, MimeTypeUtils.IMAGE_EXTENSION); + //拼接路径 + String url = serverConfig.getUrl() + fileName; + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", url); + ajax.put("fileName", fileName); + ajax.put("newFileName", FileUtils.getName(fileName)); + ajax.put("originalFilename", file.getOriginalFilename()); + return ajax; + } } diff --git a/xinelu-admin/src/main/resources/application.yml b/xinelu-admin/src/main/resources/application.yml index 847f78a..8f26272 100644 --- a/xinelu-admin/src/main/resources/application.yml +++ b/xinelu-admin/src/main/resources/application.yml @@ -82,6 +82,8 @@ xinelu: left-eye-piture-url: /leftEyePitureUrl #眼底病变筛查右眼图片地址 right-eye-piture-url: /rightEyePitureUrl + #居民签约申请签字图片地址 + resident-signature-url: /residentSignatureUrl #阿尔兹海默症结果文件地址 alzheimer-file-url: /alzheimerFileUrl @@ -249,8 +251,8 @@ xss: fd: dy: http://192.168.124.6:8001/fd/mp dz: http://192.168.124.6:8001/fd/mp - # 签约附近的机构多少公里内 - distance: 100.00 + # 签约附近的机构多少公里内 <=0时不限制 + distance: 0 # 腾讯云音视频 trtc: diff --git a/xinelu-common/src/main/java/com/xinelu/common/config/XinELuConfig.java b/xinelu-common/src/main/java/com/xinelu/common/config/XinELuConfig.java index 4656529..5b5aa84 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/config/XinELuConfig.java +++ b/xinelu-common/src/main/java/com/xinelu/common/config/XinELuConfig.java @@ -246,6 +246,11 @@ public class XinELuConfig { */ private String chatRecordFileUrl; + /** + * 居民签约申请签字图片地址 + */ + private String residentSignatureUrl; + public String getConsultationFileUrl() { return consultationFileUrl; } @@ -262,6 +267,14 @@ public class XinELuConfig { this.chatRecordFileUrl = chatRecordFileUrl; } + public String getResidentSignatureUrl() { + return residentSignatureUrl; + } + + public void setResidentSignatureUrl(String residentSignatureUrl) { + this.residentSignatureUrl = residentSignatureUrl; + } + public String getStationWechatCodeUrl() { return stationWechatCodeUrl; } diff --git a/xinelu-common/src/main/java/com/xinelu/common/enums/OrderChannelEnum.java b/xinelu-common/src/main/java/com/xinelu/common/enums/OrderChannelEnum.java new file mode 100644 index 0000000..7550c2f --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/enums/OrderChannelEnum.java @@ -0,0 +1,35 @@ +package com.xinelu.common.enums; + +import lombok.Getter; + +/** + * @Description 支付渠道枚举 + * @Author 纪寒 + * @Date 2022-10-18 15:23:01 + * @Version 1.0 + */ +@Getter +public enum OrderChannelEnum { + + /** + * 手机App + */ + MOBILE_APP("MOBILE_APP"), + + /** + * 微信小程序 + */ + WECHAT_APPLET("WECHAT_APPLET"), + + /** + * 支付宝小程序 + */ + ALI_PAY_APPLE("ALI_PAY_APPLE"), + ; + + final private String info; + + OrderChannelEnum(String info) { + this.info = info; + } +} \ No newline at end of file diff --git a/xinelu-common/src/main/java/com/xinelu/common/enums/PatientSourceEnum.java b/xinelu-common/src/main/java/com/xinelu/common/enums/PatientSourceEnum.java new file mode 100644 index 0000000..7b92f54 --- /dev/null +++ b/xinelu-common/src/main/java/com/xinelu/common/enums/PatientSourceEnum.java @@ -0,0 +1,29 @@ +package com.xinelu.common.enums; + +import lombok.Getter; + +/** + * @Description 会员信息来源枚举 + * @Author 纪寒 + * @Date 2023-02-24 14:08:25 + * @Version 1.0 + */ +@Getter +public enum PatientSourceEnum { + /** + * 好友邀请 + */ + FRIEND_INVITATION("FRIEND_INVITATION"), + + /** + * 自己搜索注册 + */ + REGISTER_YOURSELF("REGISTER_YOURSELF"), + ; + + final private String info; + + PatientSourceEnum(String info) { + this.info = info; + } +} \ No newline at end of file diff --git a/xinelu-common/src/main/java/com/xinelu/common/enums/RegionKeyType.java b/xinelu-common/src/main/java/com/xinelu/common/enums/RegionKeyType.java index bae845e..3aecc6a 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/enums/RegionKeyType.java +++ b/xinelu-common/src/main/java/com/xinelu/common/enums/RegionKeyType.java @@ -1,5 +1,6 @@ package com.xinelu.common.enums; +import com.xinelu.common.exception.ServiceException; import lombok.Getter; /** @@ -34,6 +35,6 @@ public enum RegionKeyType { return uploadType; } } - return null; + throw new ServiceException("获取区域配置出错"); } } diff --git a/xinelu-common/src/main/java/com/xinelu/common/utils/spring/SpringUtils.java b/xinelu-common/src/main/java/com/xinelu/common/utils/spring/SpringUtils.java index 1840b51..59792bc 100644 --- a/xinelu-common/src/main/java/com/xinelu/common/utils/spring/SpringUtils.java +++ b/xinelu-common/src/main/java/com/xinelu/common/utils/spring/SpringUtils.java @@ -1,6 +1,7 @@ package com.xinelu.common.utils.spring; import com.xinelu.common.enums.RegionKeyType; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.StringUtils; import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/FileUploadBody.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/FileUploadBody.java new file mode 100644 index 0000000..8f40a48 --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/FileUploadBody.java @@ -0,0 +1,33 @@ +package com.xinelu.familydoctor.applet.pojo.body; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author mengkuiliang + * @Description base64文件上传请求类 + * @Date 2023-10-12 012 11:37 + * @Param + * @return + **/ +@ApiModel("base64文件上传请求类") +@Data +public class FileUploadBody { + + @ApiModelProperty("文件(base64)") + private String file; + + @ApiModelProperty("文件类型编码") + private String code; + + @ApiModelProperty("文件名称") + private String originalFilename; + + @ApiModelProperty("文件类型") + private String contentType; + + @ApiModelProperty("文件后缀") + private String suffix; + +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentServiceApplyBody.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentServiceApplyBody.java index 31d3dbb..3b66212 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentServiceApplyBody.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentServiceApplyBody.java @@ -17,7 +17,7 @@ import java.util.List; **/ @Data @ApiModel("居民服务申请请求对象") -public class ResidentServiceApplyBody { +public class ResidentServiceApplyBody extends ResidentServiceFormApplyDto{ /** * 居民编号 @@ -94,6 +94,7 @@ public class ResidentServiceApplyBody { /** * 服务项集合 */ + @ApiModelProperty(value = "服务项集合", hidden = true) List formList; } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentSignApplyBody.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentSignApplyBody.java index fb8ffd8..9918d0b 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentSignApplyBody.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/body/ResidentSignApplyBody.java @@ -1,10 +1,14 @@ package com.xinelu.familydoctor.applet.pojo.body; +import com.xinelu.familydoctor.applet.pojo.dto.CrowdDto; +import com.xinelu.familydoctor.applet.pojo.dto.PackageDto; +import com.xinelu.familydoctor.applet.pojo.vo.CrowdVo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; +import java.util.List; /** * @Author mengkuiliang @@ -133,27 +137,39 @@ public class ResidentSignApplyBody { /** * 所属人群编号 */ - @ApiModelProperty(value = "所属人群编号", required = true) + @ApiModelProperty(value = "所属人群编号", hidden = true) private String crowdsNo; /** * 所属人群名称 */ - @ApiModelProperty(value = "所属人群名称", required = true) + @ApiModelProperty(value = "所属人群名称", hidden = true) private String crowdsName; + /** + * 人群对象集合 + */ + @ApiModelProperty(value = "人群对象集合", required = true) + private List crowdList; + /** * 选择服务包编号 */ - @ApiModelProperty(value = "选择服务包编号", required = true) + @ApiModelProperty(value = "选择服务包编号", hidden = true) private String packagesNo; /** * 选择服务包名称 */ - @ApiModelProperty(value = "选择服务包名称", required = true) + @ApiModelProperty(value = "选择服务包名称", hidden = true) private String packagesName; + /** + * 服务包对象集合 + */ + @ApiModelProperty(value = "服务包对象集合", required = true) + private List packageList; + /** * 签约机构编号 */ @@ -196,6 +212,9 @@ public class ResidentSignApplyBody { @ApiModelProperty(value = "签约时间", required = true) private Date signTime; + @ApiModelProperty("签约年数") + private Integer signYears; + /** * 居民头像照片 */ diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/CrowdDto.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/CrowdDto.java new file mode 100644 index 0000000..acd87ac --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/CrowdDto.java @@ -0,0 +1,30 @@ +package com.xinelu.familydoctor.applet.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author mengkuiliang + * @Description 人群对象dto + * @Date 2023-10-11 011 16:35 + * @Param + * @return + **/ +@ApiModel("人群对象dto") +@Data +public class CrowdDto { + + /** + * 人群编号 + */ + @ApiModelProperty("人群编号") + private String crowdNo; + + /** + * 人群名称 + */ + @ApiModelProperty("人群名称") + private String crowdName; + +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/PackageDto.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/PackageDto.java new file mode 100644 index 0000000..36bd9a9 --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/dto/PackageDto.java @@ -0,0 +1,33 @@ +package com.xinelu.familydoctor.applet.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author mengkuiliang + * @Description 服务包Dto + * @Date 2023-10-11 011 16:37 + * @Param + * @return + **/ +@ApiModel("服务包Dto") +@Data +public class PackageDto { + + /** + * 服务包业务主键 + */ + @ApiModelProperty(value = "服务包业务主键") + private String packageNo; + + /** + * 服务包名称 + */ + @ApiModelProperty(value = "服务包名称") + private String packageName; + +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/entity/ResidentSignApplyEntity.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/entity/ResidentSignApplyEntity.java index 730d83f..e0701d7 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/entity/ResidentSignApplyEntity.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/entity/ResidentSignApplyEntity.java @@ -205,6 +205,9 @@ public class ResidentSignApplyEntity implements Serializable { @ApiModelProperty(value = "签约时间") private Date signTime; + @ApiModelProperty("签约年数") + private Integer signYears; + /** * 居民头像照片 */ diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/query/PackageQuery.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/query/PackageQuery.java new file mode 100644 index 0000000..e6acd2b --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/query/PackageQuery.java @@ -0,0 +1,32 @@ +package com.xinelu.familydoctor.applet.pojo.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author mengkuiliang + * @Description 查询服务包对象(根据人群) + * @Date 2023-10-11 011 16:15 + * @Param + * @return + **/ +@ApiModel("查询服务包对象(根据人群)") +@Data +public class PackageQuery { + + /** + * 机构编号 + */ + @ApiModelProperty(value = "机构编号", required = true) + private String orgNo; + + /** + * 人群编号集合 + */ + @ApiModelProperty(value = "人群编号集合", required = true) + private List crowdNoList; + +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/PerformancePackageVo.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/PerformancePackageVo.java new file mode 100644 index 0000000..43b3b61 --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/PerformancePackageVo.java @@ -0,0 +1,104 @@ +package com.xinelu.familydoctor.applet.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @Author mengkuiliang + * @Description 履约明细服务包集合展示类 + * @Date 2023-10-11 011 9:19 + * @Param + * @return + **/ +@ApiModel("履约明细服务包集合展示类") +@Data +public class PerformancePackageVo { + + /** + * 履约明细业务主键 + */ + @ApiModelProperty(value = "履约明细业务主键") + private String performanceDetailNo; + + /** + * 服务包明细编号 + */ + @ApiModelProperty("服务包明细编号") + private String packageDetailNo; + /** + * 服务包编号 + */ + @ApiModelProperty("服务包编号") + private String packageNo; + + /** + * 服务包名称 + */ + @ApiModelProperty("服务包名称") + private String packageName; + + /** + * 价格(单位:元,#0.00) + */ + @ApiModelProperty(value = "价格(单位:元,#0.00)") + private BigDecimal packCost; + + /** + * 优惠价格(单位:元,#0.00) + */ + @ApiModelProperty(value = "优惠价格(单位:元,#0.00)") + private BigDecimal packCostCheap; + + /** + * 签约价格(单位:元,#0.00) + */ + @ApiModelProperty(value = "签约价格(单位:元,#0.00)") + private BigDecimal packSignCost; + + /** + * 服务周期 + */ + @ApiModelProperty(value = "服务周期") + private Integer servicePeriod; + + /** + * 单位(D:天,W:周,M:月,Y:年) + */ + @ApiModelProperty(value = "单位(D:天,W:周,M:月,Y:年)") + private String unit; + + /** + * 是否公共(市级机构才可创建) + * */ + @ApiModelProperty(value = "是否公共(市级机构才可创建)") + private Boolean common; + + /** + * 服务包类型(0:基本公共卫生服务包 1:家医服务包 2:精细化服务包) + */ + @ApiModelProperty(value = "服务包类型(0:基本公共卫生服务包 1:家医服务包 2:精细化服务包)") + private String packType; + + /** + * 服务包类别(0:基础服务包 1:个性化服务包) + * */ + @ApiModelProperty(value = "服务包类别(0:基础服务包 1:个性化服务包)") + private String packCategory; + + /** + * 服务包内容 + */ + @ApiModelProperty(value = "服务包内容") + private String packageContent; + + /** + * 服务项集合 + */ + @ApiModelProperty(value = "服务项集合") + private List formList; + +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/ResidentSignApplyVo.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/ResidentSignApplyVo.java index f78efd8..33f137e 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/ResidentSignApplyVo.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/ResidentSignApplyVo.java @@ -201,6 +201,9 @@ public class ResidentSignApplyVo extends BaseEntity { @JsonFormat(pattern ="yyyy-MM-dd", timezone = "GMT+8") private Date signTime; + @ApiModelProperty("签约年数") + private Integer signYears; + /** * 居民签字 */ diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/SignInfoDataVo.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/SignInfoDataVo.java new file mode 100644 index 0000000..a8d677e --- /dev/null +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/pojo/vo/SignInfoDataVo.java @@ -0,0 +1,64 @@ +package com.xinelu.familydoctor.applet.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author mengkuiliang + * @Description 签约信息详情类 + * @Date 2023-10-12 012 15:02 + * @Param + * @return + **/ +@Data +public class SignInfoDataVo { + + /** 签约对象 */ + @ApiModelProperty(value = "签约对象") + private SignInfoDetailVo signInfo; + + /** 基础服务包名称 */ + @ApiModelProperty(value = "基础服务包名称") + private String basePackagesName; + + /** 个性化服务包名称 */ + @ApiModelProperty(value = "个性化服务包名称") + private String specialPackagesName; + + /** 个性化服务包内容 */ + @ApiModelProperty(value = "个性化服务包内容") + private List specialPackageContentList; + + /** 是否存在履约记录 */ + @ApiModelProperty(value = "是否存在履约记录") + private Boolean existPerformance; + + /** 协议模版内容对象 */ + @ApiModelProperty(value = "协议模版内容对象") + private ProtocolContentVo protocolContent; + /** + * 人群分类1:一般人群2:次重点人群3:重点人群9:未分类 + */ + @ApiModelProperty(value = "人群分类1:一般人群2:次重点人群3:重点人群9:未分类") + private String category; + + /** + * 居民签名照片Base64 + */ + @ApiModelProperty(value = "居民签名照片Base64") + private String residentBase64; + + /** + * 医生签名照片Base64 + */ + @ApiModelProperty(value = "医生签名照片Base64") + private String doctorBase64; + + /** + * 机构公章照片Base64 + */ + @ApiModelProperty(value = "机构公章照片Base64") + private String orgBase64; +} diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentPatientInfoService.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentPatientInfoService.java index f3561c8..2f8f316 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentPatientInfoService.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentPatientInfoService.java @@ -114,4 +114,13 @@ public interface IResidentPatientInfoService { * @return void **/ PatientInfo getByCardNo(String cardNo); + + /** + * @Author mengkuiliang + * @Description 是否已注册 + * @Date 2023-10-11 011 10:45 + * @Param [code] + * @return java.lang.Object + **/ + PatientInfo isRegistered(String code); } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentServiceAppletService.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentServiceAppletService.java index 9ed4fa4..f8893f5 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentServiceAppletService.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/IResidentServiceAppletService.java @@ -104,5 +104,5 @@ public interface IResidentServiceAppletService { * @Param [identity] * @return java.lang.Object **/ - List getForm(String identity, String region); + List getForm(String identity, String projectName, String region); } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentPatientInfoServiceImpl.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentPatientInfoServiceImpl.java index 56642db..82bb98a 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentPatientInfoServiceImpl.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentPatientInfoServiceImpl.java @@ -8,6 +8,7 @@ import java.util.stream.Collectors; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.xinelu.common.config.AppletChatConfig; +import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.common.utils.http.HttpService; @@ -168,6 +169,7 @@ public class ResidentPatientInfoServiceImpl implements IResidentPatientInfoServi if(body.getDiseaseList() != null) { patientInfo.setDisease(body.getDiseaseList().stream().collect(Collectors.joining(","))); } + patientInfo.setLoginFlag(Long.valueOf(1)); updatePatientInfo(patientInfo); // 注册 } else { @@ -185,6 +187,7 @@ public class ResidentPatientInfoServiceImpl implements IResidentPatientInfoServi entity.setIsChecked((list == null || list.size() == 0) ? "1" : "0"); entity.setCreateTime(new Date()); entity.setCreateBy(body.getCardNo()); + entity.setLoginFlag(Long.valueOf(1)); residentPatientInfoMapper.insertPatientInfo(entity); } else { if (!StringUtils.isBlank(patientInfo.getOpenid())) { @@ -200,6 +203,7 @@ public class ResidentPatientInfoServiceImpl implements IResidentPatientInfoServi patientInfo.setUpdateBy(body.getCardNo()); patientInfo.setHeadPictureUrl(body.getHeadPictureUrl()); patientInfo.setDelFlag(0); + patientInfo.setLoginFlag(Long.valueOf(1)); if(body.getDiseaseList() != null) { patientInfo.setDisease(body.getDiseaseList().stream().collect(Collectors.joining(","))); } @@ -310,4 +314,16 @@ public class ResidentPatientInfoServiceImpl implements IResidentPatientInfoServi public PatientInfo getByCardNo(String cardNo) { return residentPatientInfoMapper.getByCardNo(cardNo); } + + /** + * @Author mengkuiliang + * @Description 是否已注册 + * @Date 2023-10-11 011 10:46 + * @Param [code] + * @return com.xinelu.familydoctor.applet.pojo.entity.PatientInfo + **/ + @Override + public PatientInfo isRegistered(String code) { + return getCurrentResident(getOpenId(code), null); + } } diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentServiceApplyServiceImpl.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentServiceApplyServiceImpl.java index 3e76322..85007c0 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentServiceApplyServiceImpl.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentServiceApplyServiceImpl.java @@ -77,31 +77,18 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe } } - List serviceApplyList = new ArrayList<>(); - for (ResidentServiceFormApplyDto form : body.getFormList()) { - if (!StringUtils.isBlank(form.getFormNo())) { - entity = new ResidentServiceApplyEntity(); - BeanUtils.copyProperties(body, entity); - if (patientInfo != null) { - entity.setPatientId(patientInfo.getPatientCode()); - } - entity.setApplyTime(new Date()); - // 预约状态0:已申请1:已完成2:已取消 - entity.setBookingStatus("0"); - // 审批状态0:待批准 1:已同意 2:已拒绝 - entity.setApprovalStatus("0"); - entity.setBookingNo(IdUtils.simpleUUID()); - entity.setPackageNo(form.getPackageNo()); - entity.setPackageName(form.getPackageName()); - entity.setFormNo(form.getFormNo()); - entity.setFormName(form.getFormName()); - serviceApplyList.add(entity); - } + entity = new ResidentServiceApplyEntity(); + BeanUtils.copyProperties(body, entity); + if (patientInfo != null) { + entity.setPatientId(patientInfo.getPatientCode()); } - if (serviceApplyList.size() == 0) { - throw new ServiceException("服务项目不能为空"); - } - residentServiceApplyMapper.batchInsert(serviceApplyList); + entity.setApplyTime(new Date()); + // 预约状态0:已申请1:已完成2:已取消 + entity.setBookingStatus("0"); + // 审批状态0:待批准 1:已同意 2:已拒绝 + entity.setApprovalStatus("0"); + entity.setBookingNo(IdUtils.simpleUUID()); + residentServiceApplyMapper.insert(entity); } /** @@ -258,9 +245,8 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe * @Param [identity] **/ @Override - public List getForm(String identity, String region) { + public List getForm(String identity, String projectName, String region) { List projectList = new ArrayList<>(); - // 获取签约信息 String result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/resident/signinfo/detail/" + identity, null, String.class); JSONObject jsonObject = JSONObject.parseObject(result); @@ -275,7 +261,7 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe throw new ServiceException("未查询到签约信息!"); } // 获取家医个性服务包 - result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/package/getPackageOfGX/" + identity, null, String.class); + result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/package/getPackageOfGX/" + identity + (!StringUtils.isBlank(projectName) ? ("?formName=" + projectName) : "?formName=null"), null, String.class); jsonObject = JSONObject.parseObject(result); if (!"1".equals(jsonObject.get("code"))) { throw new ServiceException(jsonObject.get("msg").toString()); @@ -312,14 +298,15 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe if (org != null && !StringUtils.isBlank(org.getPhOrgId())) { // 根据机构编码获取筛查机构 HospitalInfo Hospital = hospitalInfoService.getHosptalByOrgCode(org.getPhOrgId()); - if(Hospital != null) { + if (Hospital != null) { // 获取筛查项目 ScreeningProject query = new ScreeningProject(); query.setHospitalId(Hospital.getId()); + query.setProjectName(projectName); List screeningProjectList = screeningProjectService.findList(query); - if(screeningProjectList != null && screeningProjectList.size() > 0) { + if (screeningProjectList != null && screeningProjectList.size() > 0) { ScreeningProjectVo sp; - for(ScreeningProject project: screeningProjectList) { + for (ScreeningProject project : screeningProjectList) { sp = new ScreeningProjectVo(); sp.setSourceType("2"); sp.setHospitalId(String.valueOf(project.getHospitalId())); diff --git a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentSignApplyServiceImpl.java b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentSignApplyServiceImpl.java index 9f0aad8..0c6a1f9 100644 --- a/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentSignApplyServiceImpl.java +++ b/xinelu-familydoctor/src/main/java/com/xinelu/familydoctor/applet/service/impl/ResidentSignApplyServiceImpl.java @@ -10,6 +10,8 @@ import com.xinelu.common.utils.uuid.IdUtils; import com.xinelu.familydoctor.applet.mapper.ResidentSignApplyMapper; import com.xinelu.familydoctor.applet.pojo.body.ApprovalBody; import com.xinelu.familydoctor.applet.pojo.body.ResidentSignApplyBody; +import com.xinelu.familydoctor.applet.pojo.dto.CrowdDto; +import com.xinelu.familydoctor.applet.pojo.dto.PackageDto; import com.xinelu.familydoctor.applet.pojo.entity.PatientInfo; import com.xinelu.familydoctor.applet.pojo.entity.ResidentSignApplyEntity; import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery; @@ -25,6 +27,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Author mengkuiliang @@ -78,6 +81,16 @@ public class ResidentSignApplyServiceImpl implements IResidentSignAppletService // 审批状态0:待批准 1:已同意 2:已拒绝 entity.setApprovalStatus("0"); entity.setBookingNo(IdUtils.simpleUUID()); + if(StringUtils.isBlank(entity.getNation())) { + entity.setNation("1"); + } + if(entity.getSignYears() == null || entity.getSignYears() <= 0) { + entity.setSignYears(1); + } + entity.setCrowdsNo(body.getCrowdList().stream().map(CrowdDto::getCrowdNo).collect(Collectors.joining(","))); + entity.setCrowdsName(body.getCrowdList().stream().map(CrowdDto::getCrowdName).collect(Collectors.joining(","))); + entity.setPackagesNo(body.getPackageList().stream().map(PackageDto::getPackageNo).collect(Collectors.joining(","))); + entity.setPackagesName(body.getPackageList().stream().map(PackageDto::getPackageName).collect(Collectors.joining(","))); residentSignApplyMapper.insert(entity); } @@ -189,7 +202,7 @@ public class ResidentSignApplyServiceImpl implements IResidentSignAppletService // 查询未完成的签约申请 ResidentSignApplyVo signBookingInfoVo = getSignBookingByIdentity(identity); if (signBookingInfoVo != null) { - retMap.put("code", 01); + retMap.put("code", "01"); retMap.put("info", DateUtils.parseDateToStr("yyyy年MM月dd日", signBookingInfoVo.getSignTime()) + "已在【" + signBookingInfoVo.getOrgName() + "】【" + signBookingInfoVo.getTeamName() + "】【" + signBookingInfoVo.getUserName() + "】申请签约"); return retMap; } @@ -202,11 +215,11 @@ public class ResidentSignApplyServiceImpl implements IResidentSignAppletService // 已签约 if (jsonObject.containsKey("data") && jsonObject.get("data") != null) { SignInfoDetailVo signInfoDetailVo = JSONObject.parseObject(jsonObject.getJSONObject("data").toJSONString(), SignInfoDetailVo.class); - retMap.put("code", 02); + retMap.put("code", "02"); retMap.put("info", DateUtils.parseDateToStr("yyyy年MM月dd日", signInfoDetailVo.getSignTime()) + "已在【" + signInfoDetailVo.getOrgName() + "】【" + signInfoDetailVo.getTeamName() + "】【" + signInfoDetailVo.getUserName() + "】签约"); return retMap; } else { - retMap.put("code", 0); + retMap.put("code", "0"); retMap.put("info", "未签约"); } return retMap; diff --git a/xinelu-familydoctor/src/main/resources/mapper/sign/ResidentSignApplyMapper.xml b/xinelu-familydoctor/src/main/resources/mapper/sign/ResidentSignApplyMapper.xml index f8d8632..d1116c1 100644 --- a/xinelu-familydoctor/src/main/resources/mapper/sign/ResidentSignApplyMapper.xml +++ b/xinelu-familydoctor/src/main/resources/mapper/sign/ResidentSignApplyMapper.xml @@ -36,6 +36,7 @@ + @@ -61,7 +62,7 @@ crowds_name,packages_no,packages_name, org_no,org_name,team_no, team_name,user_no,user_name, - sign_time,resident_autograph_path,relationship_with_householder, + sign_time,sign_years,resident_autograph_path,relationship_with_householder, householder_name,householder_identity,apply_time, booking_status,cancel_time,approval_status, refuse_reason,approval_time,remark @@ -78,7 +79,7 @@ p.crowds_name,p.packages_no,p.packages_name, p.org_no,p.org_name,p.team_no, p.team_name,p.user_no,p.user_name, - p.sign_time,p.resident_autograph_path,p.relationship_with_householder, + p.sign_time,p.sign_years,p.resident_autograph_path,p.relationship_with_householder, p.householder_name,p.householder_identity,p.apply_time, p.booking_status,p.cancel_time,p.approval_status, p.refuse_reason,p.approval_time,p.remark @@ -148,6 +149,9 @@ sign_time, + + sign_years, + resident_autograph_path, resident_avatar, @@ -235,6 +239,9 @@ #{signTime}, + + #{signYears}, + #{residentAutographPath}, #{residentAvatar}, diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscreeningrecord/AppletScreeningRecordController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscreeningrecord/AppletScreeningRecordController.java index ff83f30..01dcb6d 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscreeningrecord/AppletScreeningRecordController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/appletscreeningrecord/AppletScreeningRecordController.java @@ -76,6 +76,9 @@ public class AppletScreeningRecordController extends BaseController { @ApiOperation(value = "预约") @RepeatSubmit(interval = 2000, message = "请求过于频繁") public R save(@RequestBody ScreeningApplyDTO body) { + if(org.apache.commons.lang3.StringUtils.isBlank(body.getIdentity())) { + return R.fail("居民身份证号不能为空"); + } try { if(!DateUtils.formatDate(body.getApplyStartTime(), "yyyy-MM-dd").equals(DateUtils.formatDate(body.getApplyEndTime(), "yyyy-MM-dd"))) { return R.fail("预约日期请选择在同一天"); diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java index d93e663..57e073d 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java @@ -1,5 +1,6 @@ package com.xinelu.applet.controller.nurseapplogin; +import com.xinelu.applet.dto.appletlogin.AppletUserInfoDTO; import com.xinelu.applet.dto.appletlogin.StationItemInfoDTO; import com.xinelu.applet.service.nurseapplogin.NurseAppLoginService; import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; @@ -7,14 +8,14 @@ import com.xinelu.common.annotation.MobileRequestAuthorization; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.custominterface.Insert; import com.xinelu.common.custominterface.Query; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.regex.RegexUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -31,8 +32,6 @@ import java.util.Objects; @RequestMapping("/nurseApp/login") public class NurseAppLoginController extends BaseController { - @Resource - private RegexUtil regexUtil; @Resource private NurseAppLoginService nurseAppLoginService; diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java index b2c35d8..9697544 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java @@ -15,6 +15,30 @@ import java.util.List; */ public interface NurseAppLoginMapper { + /** + * 根据id查询被护理人疾病 + * + * @param patientId 被护理人id + * @return int + */ + int selectPatientDiseaseInfo(Long patientId); + + /** + * 根据id删除被护理人疾病 + * + * @param patientId 被护理人id + * @return int + */ + long deletePatientDiseaseInfo(Long patientId); + + /** + * 查询身份证数量 + * + * @param cardNo 身份证号 + * @return 数量 + */ + int getCardNoCount(String cardNo); + /** * 个人中心查询 * diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java index a0365ac..d0e8947 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java @@ -1,5 +1,6 @@ package com.xinelu.applet.service.nurseapplogin; +import com.xinelu.applet.dto.appletlogin.AppletUserInfoDTO; import com.xinelu.applet.dto.appletlogin.StationItemInfoDTO; import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; import com.xinelu.common.core.domain.AjaxResult; diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java index fb36d7a..18f1336 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java @@ -1,8 +1,11 @@ package com.xinelu.applet.service.nurseapplogin.impl; +import com.xinelu.applet.dto.appletlogin.AppletUserInfoDTO; import com.xinelu.applet.dto.appletlogin.StationItemInfoDTO; import com.xinelu.applet.mapper.appletlogin.AppletLoginMapper; import com.xinelu.applet.mapper.nurseapplogin.NurseAppLoginMapper; +import com.xinelu.applet.mapper.patientcenter.PatientCenterMapper; +import com.xinelu.applet.service.messagepush.MessagePushService; import com.xinelu.applet.service.nurseapplogin.NurseAppLoginService; import com.xinelu.applet.utils.AppointmentTimeUtil; import com.xinelu.applet.vo.appletlogin.NurserStationItemConsumableVO; @@ -10,24 +13,55 @@ import com.xinelu.applet.vo.appletlogin.NurserStationItemInfoVO; import com.xinelu.applet.vo.nurseapplogin.PatientAndDiseaseVO; import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; import com.xinelu.applet.vo.specialdisease.WeekDaysVO; +import com.xinelu.common.config.AppletChatConfig; +import com.xinelu.common.config.XinELuConfig; +import com.xinelu.common.constant.Constants; import com.xinelu.common.core.domain.AjaxResult; -import com.xinelu.common.enums.AppointmentTimeIntervalEnum; -import com.xinelu.common.enums.GooodsOrderStatusEnum; +import com.xinelu.common.enums.*; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.AgeUtil; +import com.xinelu.common.utils.bean.BeanUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.common.utils.regex.RegexUtil; +import com.xinelu.manage.domain.coupon.Coupon; import com.xinelu.manage.domain.goodsOrder.GoodsOrder; +import com.xinelu.manage.domain.patientcouponreceive.PatientCouponReceive; +import com.xinelu.manage.domain.patientdiseaseinfo.PatientDiseaseInfo; +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.domain.patientintegralchange.PatientIntegralChange; +import com.xinelu.manage.domain.receiveAddressInfo.ReceiveAddressInfo; +import com.xinelu.manage.domain.subscribemessagerecord.SubscribeMessageRecord; +import com.xinelu.manage.domain.systemsettingsinfo.SystemSettingsInfo; +import com.xinelu.manage.mapper.coupon.CouponMapper; +import com.xinelu.manage.mapper.patientcouponreceive.PatientCouponReceiveMapper; +import com.xinelu.manage.mapper.patientdiseaseinfo.PatientDiseaseInfoMapper; +import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; +import com.xinelu.manage.mapper.patientintegralchange.PatientIntegralChangeMapper; +import com.xinelu.manage.mapper.receiveAddressInfo.ReceiveAddressInfoMapper; +import com.xinelu.manage.mapper.subscribemessagerecord.SubscribeMessageRecordMapper; import com.xinelu.manage.mapper.sysarea.SysAreaMapper; +import com.xinelu.manage.mapper.systemsettingsinfo.SystemSettingsInfoMapper; +import com.xinelu.manage.vo.patientcouponreceive.PatientCouponReceiveInfoVO; +import com.xinelu.manage.vo.patientinfo.PatientInfoVO; import com.xinelu.manage.vo.sysarea.SysAreaVO; import com.xinelu.system.domain.SysConfig; import com.xinelu.system.mapper.SysConfigMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.File; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.LocalTime; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -42,13 +76,13 @@ public class NurseAppLoginServiceImpl implements NurseAppLoginService { @Resource private NurseAppLoginMapper nurseAppLoginMapper; @Resource - private SysAreaMapper sysAreaMapper; - @Resource private AppletLoginMapper appletLoginMapper; @Resource - private SysConfigMapper sysConfigMapper; + private SysAreaMapper sysAreaMapper; @Resource private AppointmentTimeUtil appointmentTimeUtil; + @Resource + private SysConfigMapper sysConfigMapper; /** * 查询护理人列表信息 diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml index 3641690..34607d0 100644 --- a/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml @@ -33,6 +33,35 @@ + + + + delete + from patient_disease_info + where patient_id = #{patientId} + + + + - select nst.* ,ns.nurse_station_name, nci.classify_name, nt.nurse_type_name + select nst.* ,ns.nurse_station_name, nci.classify_name from nurse_station_item nst LEFT JOIN nurse_station ns on ns.id=nst.nurse_station_id - LEFT JOIN nurse_type nt on nt.id=nst.nurse_type_id LEFT JOIN nurse_classify_info nci ON nci.id = nst.nurse_classify_id diff --git a/xinelu-nurse-manage/src/main/resources/orderevaluatepictureinfo/OrderEvaluatePictureInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/orderevaluatepictureinfo/OrderEvaluatePictureInfoMapper.xml new file mode 100644 index 0000000..00eb87f --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/orderevaluatepictureinfo/OrderEvaluatePictureInfoMapper.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + select id, order_evaluate_id, evaluate_picture_url, create_by, create_time, update_by, update_time + from order_evaluate_picture_info + + + + + + + + insert into order_evaluate_picture_info + + order_evaluate_id, + + evaluate_picture_url, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{orderEvaluateId}, + + #{evaluatePictureUrl}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update order_evaluate_picture_info + + order_evaluate_id = + #{orderEvaluateId}, + + evaluate_picture_url = + #{evaluatePictureUrl}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from order_evaluate_picture_info + where id = #{id} + + + + delete from order_evaluate_picture_info where id in + + #{id} + + + \ No newline at end of file