ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/resources/application-xiaochengxu.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java
@@ -1,27 +1,41 @@ package com.ltkj.web.controller.app; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.HisApiConfig; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.service.HisApiConfigService; import com.ltkj.hosp.service.ITjCustomerService; import com.ltkj.hosp.service.ITjOrderService; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDictTypeService; import com.ltkj.web.controller.his.HisApiGetMethodService; import com.ltkj.web.controller.his.HisApiMethodService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.DigestUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** @@ -41,6 +55,16 @@ @Autowired private ISysDictTypeService dictTypeService; @Resource private ISysConfigService sysConfigService; @Autowired private HisApiConfigService hisApiConfigService; @Autowired private HisApiMethodService controller; @Autowired private HisApiGetMethodService hisApiGetMethodService; /** * 小程序就诊人列表 @@ -83,6 +107,8 @@ */ @PostMapping("/addNew") @ApiOperation(value = "小程序-新增并绑定就诊人") @Transactional @RepeatSubmit public AjaxResult addNew(@RequestBody @ApiParam(value = "客户对象信息") TjCustomer tjCustomer) { if (tjCustomer == null) { return AjaxResult.error("添加失败"); @@ -110,22 +136,19 @@ wq.eq(TjCustomer::getCusIdcard, cusIdcard); TjCustomer customer = customerService.getOne(wq); String key = sysConfigService.selectConfigByKey("sfkqdyhis"); if (customer != null) { // BeanUtils.copyBeanProp(tjCustomer, customer); // String substring = cusIdcard.substring(cusIdcard.length() - 6); // substring = DigestUtils.md5DigestAsHex(substring.getBytes()); // customer.setCusPassword(substring); // customer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(cusIdcard), "yyyy-MM-dd")); // tjCustomer.setCusSex(Long.valueOf(MatchUtils.getSexByIdCard(cusIdcard))); // // tjCustomer.setAddr(MatchUtils.getNativePlace(Integer.parseInt(cusIdcard))); // tjCustomer.setAge(String.valueOf(MatchUtils.getAgeByIdCard(cusIdcard))); // tjCustomer.setIdType("1"); // tjCustomer.setAgeUnit("0"); // if (customerService.updateById(customer)) { // return AjaxResult.success(tjCustomer); // } customer.setConnect(tjCustomer.getConnect()); customerService.updateById(customer); if (customerService.updateById(customer)) { if(null !=key && key.equals("Y")){ AjaxResult xinXi = suijieHisXinXi(tjCustomer); if(!xinXi.get("code").toString().equals("200")){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("添加就诊人信息失败!" + xinXi.get("msg").toString()); } } } return AjaxResult.success(customer); } String substring = cusIdcard.substring(cusIdcard.length() - 6); @@ -142,6 +165,13 @@ tjCustomer.setCusNumber(0L); tjCustomer.setCusIsvip("N"); if (customerService.save(tjCustomer)) { if(null !=key && key.equals("Y")){ AjaxResult xinXi = suijieHisXinXi(tjCustomer); if(!xinXi.get("code").toString().equals("200")){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("添加就诊人信息失败!" + xinXi.get("msg").toString()); } } return AjaxResult.success(tjCustomer); } return AjaxResult.error("添加失败"); @@ -165,7 +195,7 @@ if (tjCustomer == null) { return AjaxResult.error(); } LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper(); LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); wq.eq(TjCustomer::getCusIdcard, tjCustomer.getCusIdcard()); wq.eq(TjCustomer::getCusPhone, tjCustomer.getCusPhone()); wq.eq(TjCustomer::getCusName, tjCustomer.getCusName()); @@ -196,10 +226,13 @@ */ @PostMapping("/updateCustomerBy") @ApiOperation(value = "小程序-修改就诊人信息") @Transactional @RepeatSubmit public AjaxResult updateCustomerBy(@RequestBody TjCustomer tjCustomer) { if (tjCustomer == null) { return AjaxResult.error("修改失败"); } String key = sysConfigService.selectConfigByKey("sfkqdyhis"); TjCustomer one = customerService.getById(tjCustomer); one.setCusName(tjCustomer.getCusName()); one.setCusIdcard(tjCustomer.getCusIdcard()); @@ -207,6 +240,13 @@ one.setCusNational(tjCustomer.getCusNational()); one.setCusMarryStatus(tjCustomer.getCusMarryStatus()); if (customerService.updateById(one)) { if(null !=key && key.equals("Y")){ AjaxResult xinXi = suijieHisXinXi(one); if(!xinXi.get("code").toString().equals("200")){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("添加就诊人信息失败!" + xinXi.get("msg").toString()); } } return AjaxResult.success(one); } return AjaxResult.error("修改失败"); @@ -246,4 +286,46 @@ return success(data); } //将方法返回值解析成json格式 public JSONObject getJSONObject(String builder) { String Response = JSONUtil.parseObj(builder).getStr("Response"); return JSONUtil.parseObj(Response); } //获取方法返回值信息 public String getAjaxResult(AjaxResult result) { return result.get("data").toString(); } private AjaxResult suijieHisXinXi(TjCustomer tjCustomer) { AjaxResult result = controller.Outpincreateapply(tjCustomer); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (code.equals("0")) { JSONArray resultDatass = object.getJSONArray("ResultData"); Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0); if (null != resultData && resultData.size() > 0) { String pationid = resultData.get("PationId").toString(); if (null != pationid) { tjCustomer.setPationId(pationid); customerService.updateById(tjCustomer); //保存注册入参出参 resultData.put("cardId",pationid); JSONObject object4 = JSONUtil.parseObj(resultData); LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); hisApiGetMethodService.save(object4, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer))); } } return AjaxResult.success(); } return AjaxResult.error(object.getStr("ResultContent")); } } ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -212,9 +212,9 @@ wq.eq(TjReservation::getIsExpire, 2); TjReservation tjReservation = tjReservationService.getOne(wq); if (tjReservation != null) { if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { return AjaxResult.error("未到预约时间"); } // if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { // return AjaxResult.error("未到预约时间"); // } if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { tjReservation.setIsExpire(1); tjReservationService.updateById(tjReservation); ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -896,9 +896,9 @@ if (null != tjReservation) { tjOrder.setReservationId(tjReservation.getId()); mallOrder = mallOrderService.getOne(new LambdaQueryWrapper<MallOrder>().eq(MallOrder::getReservationId, tjReservation.getId())); if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { return AjaxResult.error("未到预约时间"); } // if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { // return AjaxResult.error("未到预约时间"); // } if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { tjReservation.setIsExpire(1); tjReservationService.updateById(tjReservation); ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -158,13 +158,13 @@ public TableDataInfo list(TjReservation tjReservation) { startPage(); List<TjReservation> list = tjReservationService.selectTjReservationList(tjReservation); if(null !=list && list.size()>0){ for (TjReservation reservation : list) { reservation.setName(MatchUtils.hideCusName(reservation.getName())); reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe())); reservation.setIdCard(MatchUtils.hideIdCardNum(reservation.getIdCard())); } } // if(null !=list && list.size()>0){ // for (TjReservation reservation : list) { // reservation.setName(MatchUtils.hideCusName(reservation.getName())); // reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe())); // reservation.setIdCard(MatchUtils.hideIdCardNum(reservation.getIdCard())); // } // } return getDataTable(list); } ltkj-admin/src/main/resources/application-xiaochengxu.yml
New file @@ -0,0 +1,242 @@ # 项目相关配置 ltkj: # 名称 name: ltkj # 版本 version: 1.0.1 # 版权年份 copyrightYear: 2022 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ltkj/uploadPath,Linux配置 /home/ltkj/uploadPath) # 用户换头像后的图片存储地址 测试:D:\ltkj\uploadPath\avatar\2022\12\14 #profile: D:/ltkj/uploadPath # profile: https://ltpeis.xaltjdkj.cn:5502/uploadPath profile: http://192.168.0.5:5502/uploadPath # 获取ip地址开关 addressEnabled: true # 验证码类型 math 数组计算 char 字符验证 captchaType: math # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 5011 servlet: # 应用的访问路径 context-path: /ltkj-admin tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 #logging: # level: # com.ltkj: debug # org.springframework: warn # 用户配置 user: password: # 密码最大错误次数 maxRetryCount: 5 # 密码锁定时间(默认10分钟) lockTime: 10 # Spring配置 spring: # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages # 文件上传 servlet: multipart: # 单个文件大小 max-file-size: 2GB # 设置总上传的文件大小 max-request-size: 2GB # 服务模块 devtools: restart: # 热部署开关 enabled: true # cache: # type: ehcache # redis 配置 # redis: # # 地址 ## host: 101.42.27.146 # host: localhost # # 端口,默认为6379 # port: 6379 # # 数据库索引 # database: 0 # # 密码 ## password: 654321 # password: 123456 # # 连接超时时间 # timeout: 120s # lettuce: # pool: # # 连接池中的最小空闲连接 # min-idle: 0 # # 连接池中的最大空闲连接 # max-idle: 8 # # 连接池的最大数据库连接数 # max-active: 8 # # #连接池最大阻塞等待时间(使用负值表示没有限制) # max-wait: -1ms # 邮件 mail: # from 要和 username 一致, 否则报错 from: 1138758025@qq.com # 邮件服务地址 host: smtp.qq.com # 用户名 username: 1138758025@qq.com # 授权码 (设置 - 账户 - POP3/SMTP服务) password: lwsbmlbqgpaqfgdb # QQ邮箱加密端口,不同邮箱的端口不一样 port: 465 properties: mail: smtp: socketFactory: class: javax.net.ssl.SSLSocketFactory ssl: trust: smtp.qq.com # 是否需要用户认证 auth: true starttls: # 启用TLS加密 enable: true required: true # token配置 token: # 令牌自定义标识 header: Authorization # 令牌密钥 secret: xaltjdkjyxgs_sjh&1987 secret_key: ltkj_xaltjdkjsjh # 令牌有效期(默认30分钟) expireTime: 180 # 是否允许账户多终端同时登录(true允许 false不允许) soloLogin: true #是否开启登录时判断商户秘钥是否过期 secret_key_login: true # MyBatis Plus配置 mybatis-plus: # 搜索指定包别名 typeAliasesPackage: com.ltkj.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml global-config: db-config: logic-not-delete-value: 0 logic-delete-value: 1 update-strategy: not_null # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: / # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice,/system/package # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* # 体检报告模板和报告临时生成存储的文件夹路径 path: filePath: D:\Tjreport # nginx图片服务器 reportServer: https://ltpeis.xaltjdkj.cn:5516/ # 体检套餐和轮播图存储路径 photoPath: D:\AppPhoto\uploadPath\ # nginx图片服务器 #photoServer: https://ltpeis.xaltjdkj.cn:5502/uploadPath/ photoServer: http://192.168.0.5:5502/uploadPath/ # 微信小程序appid secret xcx: appid: wx40a545f1a8eb1d9d secret: c86c1ff7f91c16380111878e9a259237 msgDataFormat: JSON token: token # 微信小程序消息服务器配置的token aesKey: aesKey # 微信小程序消息服务器配置的EncodingAESKey # 开发者应该设置成自己的wx相关信息 wx: # 小程序 miniapp: appid: wx40a545f1a8eb1d9d secret: c86c1ff7f91c16380111878e9a259237 msg-data-format: XML pay: #appid app-id: wx40a545f1a8eb1d9d mch-id: 1642930999 #商户号 mch-key: Xianlutaikeji666888999shijihongL #密钥 #key-path: E:\mycode\apppwd\1643225121_20230427_cert\apiclient_cert.p12 #本地证书路径,在微信商户后台下载 key-path: D:\WXCertUtil\tjcert\apiclient_cert.p12 #服务器证书路径,在微信商户后台下载 # pay-score-notify-url: http://192.168.0.101:5011/cus/order/pay-notify #微信支付回调地址 # pay-score-notify-url: https://ltpeis.xaltjdkj.cn:5011/ltkj-admin/cus/order/pay-notify #微信支付回调地址 pay-score-notify-url: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin/cus/order/pay-notify #微信支付回调地址 #积木报表访问地址 jimu: # path: https://ltpeis.xaltjdkj.cn:5011/ltkj-admin # path: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin path: http://127.0.0.1:5011/ltkj-admin # path: http://10.168.0.9:5011 # path: http://192.168.0.105:5011 # path: http://192.168.1.113:5011 jeecg : jmreport: # 打印纸张配置 title描述 size宽高 printPaper: - title: 小票打印 size: - 40 - 60 # ip = 101.42.27.146 # prot = 3306 # name = ltkjpeis10 # username = root # password = Root_ltkj123 config: properties: D:\ltkjprojectconf\config.properties path: D:\ltkjprojectconf ltkj-admin/src/main/resources/application.yml
@@ -2,6 +2,7 @@ #dev 公司 开发/部署使用 #prod 泾川县部署正式环境使用 #test 泾川县部署测试环境使用 #xiaochengxu 泾川县部署小程序环境使用 spring: profiles: active: dev