zjh
2024-07-15 a9e42bd044e835f49a08b9d5852ef10e669cd153
zjh 2024/07/15-1
5个文件已修改
1个文件已添加
381 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/resources/application-xiaochengxu.yml 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | 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