Browse Source

医保局项目重构二期代码更新

fyz 5 months ago
parent
commit
b073823c74

+ 2 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/Boot.java

@@ -1,6 +1,7 @@
 package com.malk.yibaoju;
 
 import com.querydsl.jpa.impl.JPAQueryFactory;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
@@ -16,6 +17,7 @@ import javax.persistence.EntityManager;
  */
 @EnableJpaAuditing
 @SpringBootApplication(scanBasePackages = {"com.malk"})
+@MapperScan(basePackages = "com.malk.yibaoju.mapper")
 public class Boot {
 
     public static void main(String... args) {

+ 19 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/config/MyConfig.java

@@ -0,0 +1,19 @@
+package com.malk.yibaoju.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScan("com.my.code.api.mapper")
+public class MyConfig {
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+}

+ 136 - 24
mjava-yibaoju/src/main/java/com/malk/yibaoju/controller/YBJController.java

@@ -2,6 +2,9 @@ package com.malk.yibaoju.controller;
 
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McException;
@@ -11,6 +14,11 @@ import com.malk.service.aliwork.YDService;
 import com.malk.service.dingtalk.DDService;
 import com.malk.utils.UtilMap;
 import com.malk.utils.UtilServlet;
+import com.malk.yibaoju.entity.ObjectInfo;
+import com.malk.yibaoju.entity.Plan;
+import com.malk.yibaoju.mapper.ObjectInfoMapper;
+import com.malk.yibaoju.mapper.PlanMapper;
+import com.malk.yibaoju.service.PlanService;
 import com.malk.yibaoju.service.YBJService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -19,9 +27,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -52,6 +57,13 @@ public class YBJController {
     @Autowired
     private YDClient ydClient;
 
+    @Autowired
+    PlanService planService;
+    @Autowired
+    PlanMapper planMapper;
+    @Autowired
+    ObjectInfoMapper planCopyMapper;
+
     /**
      * 图片免登
      */
@@ -80,7 +92,7 @@ public class YBJController {
         }
         //编辑只做删除数据操作。新增在页面保存完之后操作。
         //获取当前日期是本月几号
-        Thread.sleep(2000);
+//        Thread.sleep(2000);
         ybjService.creatInfo(data.get("formInstId").toString());
         if (dayOfMonth>24){
             Thread.sleep(2000);
@@ -310,28 +322,128 @@ public class YBJController {
         return McR.success();
     }
 
-    @PostMapping("test1")
-    McR test1(@RequestBody Map data) {
-        try {
-            String insertSql = "INSERT INTO `error_insts`(`form_inst_id`) VALUES ('123123');";
-            Class.forName(driver);
-            Connection connection = DriverManager.getConnection(url, username, password);
-            // 创建Statement对象,用于执行SQL语句
-            PreparedStatement preparedStatement = connection.prepareStatement(insertSql);
-//            preparedStatement.setString("123123");
-            // 执行SQL查询
-            int resultSet = preparedStatement.executeUpdate();
-//            if (resultSet > 0) {
-//                log.info("插入一条数据实例id为:{}",dataList.get(j).get("formInstanceId"));
-//            }
-            // 关闭资源
-            preparedStatement.close();
-            connection.close();
-        } catch (Exception ex) {
-//            log.info("插入失败,数据实例id为:{}",dataList.get(j).get("formInstanceId"));
-            ex.printStackTrace();
+    /**
+     * 根据护理安排创建护理计划
+     * 通过参数 1个护理安排创建多条护理计划
+     */
+    @SneakyThrows
+    @PostMapping("createDatabasePlan")
+    McR createDatabasePlan(@RequestBody Map data){
+
+        log.info("createPlan 护理计划:{}",data);
+        LocalDate currentDate = LocalDate.now();
+        //获取当前日期是本月几号
+        int dayOfMonth = currentDate.getDayOfMonth();
+        if ("2".equals(data.get("status"))){
+            ybjService.deleteDatabaseInfo(data.get("formInstId").toString());
+        }
+        //编辑只做删除数据操作。新增在页面保存完之后操作。
+        //获取当前日期是本月几号
+//        Thread.sleep(2000);
+        //生成当月数据库护理计划
+        ybjService.thisMonthDataBase(data.get("formInstId").toString());
+        if (dayOfMonth>24){
+            Thread.sleep(2000);
+            ybjService.insertDatabaseNextMonth(data.get("formInstId").toString());
         }
         return McR.success();
     }
 
+    @RequestMapping("testApi")
+    McR testApi(HttpServletRequest request) {
+        return McR.success();
+    }
+
+    /**
+     * 护理计划看板、护理地图查询
+     * @param data 护理计划看板筛选条件
+     * @return
+     */
+    @PostMapping("boardQuery")
+    McR boardQuery(@RequestBody Map<String,Object> data) {
+        QueryWrapper<Plan> planQuery = new QueryWrapper<>();
+        IPage<Plan> planPage = new Page<>();
+        data.forEach((k,v)->{
+            if (k.equals("currentPage")){
+                planPage.setCurrent(Long.parseLong(v.toString()));
+            } else if (k.equals("pageSize")) {
+                planPage.setSize(Long.parseLong(v.toString()));
+            } else if (k.equals("date_between")){
+                Map<String,Object> formInstId = (Map<String,Object>) data.get("date_between");
+                planQuery.ge("care_start_time",formInstId.get("start"));
+                planQuery.le("care_start_time",formInstId.get("end"));
+            }else{
+                planQuery.eq(k,v);
+            }
+        });
+        planQuery.eq("is_delete",0);
+        IPage<Plan> selectPage = planMapper.selectPage(planPage, planQuery);
+        return McR.success(selectPage);
+    }
+
+    /**
+     * 看板和地图获取去重的过滤条件
+     * @param column
+     * @return
+     */
+    @GetMapping("selectDistinct/{column}")
+    McR selectDistinct(@PathVariable("column") String column) {
+        QueryWrapper<Plan> planQuery = new QueryWrapper<>();
+        planQuery.select("distinct " + column).lambda();
+        List<Plan> plans = planMapper.selectList(planQuery);
+        List<Map<String, Object>> objects = new ArrayList<>();
+        plans.forEach(e->{
+            Map<String, Object> result = new HashMap<>();
+            if ("caregiver_name".equals(column)){
+                result.put("label",e.getCaregiverName());
+                result.put("value",e.getCaregiverName());
+            } else if ("caregiver_department".equals(column)) {
+                result.put("label",e.getCaregiverDepartment());
+                result.put("value",e.getCaregiverDepartment());
+            }
+            objects.add(result);
+        });
+        return McR.success(objects);
+    }
+
+    /**
+     * 看板和地图获取去重的过滤条件
+     * @param column
+     * @return
+     */
+    @GetMapping("selectDistinctCareObject/{column}")
+    McR selectDistinctCareObject(@PathVariable("column") String column) {
+        QueryWrapper<ObjectInfo> planQuery = new QueryWrapper<>();
+        planQuery.select("distinct " + column).lambda();
+        List<ObjectInfo> plans = planCopyMapper.selectList(planQuery);
+        List<Map<String, Object>> objects = new ArrayList<>();
+        plans.forEach(e->{
+            Map<String, Object> result = new HashMap<>();
+            result.put("label",e.getName());
+            result.put("value",e.getName());
+            objects.add(result);
+        });
+        log.info("McR.success(objects):{}",McR.success(objects));
+        return McR.success(objects);
+    }
+
+    /**
+     * 打卡更新数据库
+     * @param data
+     */
+    @PostMapping("updateFromClock")
+    void updateFromClock(@RequestBody Map<String,Object> data) {
+        ybjService.updateFromClock(data);
+    }
+
+    /**
+     * 前端调用获取表单id
+     * @param strDate
+     * @return
+     */
+    @GetMapping("getFormId/{strDate}")
+    McR getFormId(@PathVariable("strDate") String strDate) {
+        String formId = ybjService.getFormId(strDate);
+        return McR.success(formId);
+    }
 }

+ 69 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/entity/Plan.java

@@ -0,0 +1,69 @@
+package com.malk.yibaoju.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+@Data
+@TableName("yida_plan_details")
+public class Plan {
+    @TableId(type = IdType.AUTO)
+    private long id;
+    private String dataMonth;
+    private String formInstId;
+    private String planInstId;
+    private String caregiverForm;
+    private String caregiverName;
+    private String caregiverMember;
+    private String caregiverDepartment;
+    private String caregiverCard;
+    private String caregiverPhone;
+    private String department;
+    private String careObjectForm;
+    private String careObjectName;
+    private String careObjectCard;
+    private String careObjectLevel;
+    private String careObjectAddress;
+    private String careObjectLongitude;
+    private String careObjectLatitude;
+    private String withinTheWeek;
+    private Long careStartTime;
+    private Long careEndTime;
+    private String startTime;
+    private String endTime;
+    private String signInPhoto;
+    private String signInPhotoDown;
+    private String signInPhotoName;
+    private String signOutPhoto;
+    private String signOutPhotoDown;
+    private String signOutPhotoName;
+    private String signInLongitude;
+    private String signInLatitude;
+    private Long signInTime;
+    private String signInTimeText;
+    private String signInPosition;
+    private String signOutLongitude;
+    private String signOutLatitude;
+    private Long signOutTime;
+    private String signOutTimeText;
+    private String signOutPosition;
+    private String signInDistance;
+    private String signOutDistance;
+    private String executeStatus;
+    private String taskStatus;
+    private String planId;
+    private String careObjectId;
+    private String certificateType;
+    private String isChoose;
+    private String isDelete;
+    private String isCogradient;
+    private String clockInDate;
+    private String clockOutDate;
+    private String careDateText;
+    private String startTimeText;
+    private String endTimeText;
+    private Timestamp createTime;
+}

+ 10 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/mapper/PlanMapper.java

@@ -0,0 +1,10 @@
+package com.malk.yibaoju.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.malk.yibaoju.entity.Plan;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+public interface PlanMapper extends BaseMapper<Plan> {
+}

+ 84 - 2
mjava-yibaoju/src/main/java/com/malk/yibaoju/schedule/ScheduleTask.java

@@ -8,6 +8,8 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 
+import java.time.LocalDate;
+
 /**
  * @EnableScheduling 开启定时任务 [配置参考McScheduleTask]
  */
@@ -21,7 +23,7 @@ public class ScheduleTask {
     private YBJService ybjService;
 
     /**
-     * 每月25日0点5分执行定时任务
+     * 每月25日0点30分执行定时任务
      */
     @Scheduled(cron = "0 30 0 25 * ?")
     public void syncDingTalkFailedList() {
@@ -34,7 +36,7 @@ public class ScheduleTask {
     }
 
     /**
-     * 每天凌晨1-4点更新计划护理的任务状态
+     * 每天凌晨00点05分更新计划护理的任务状态
      */
     @Scheduled(cron = " 0 5 0 * * ? ")
     public void syncDingTalkStatus() {
@@ -46,4 +48,84 @@ public class ScheduleTask {
         }
     }
 
+    /**
+     * 每月27日05点30分执行定时任务生成数据库下月的护理计划
+     */
+    @Scheduled(cron = "0 30 5 27 * ?")
+    public void insertDatabaseTask() {
+        try {
+            int dayOfMonth = LocalDate.now().getDayOfMonth();
+            if (dayOfMonth>25){
+                ybjService.insertDatabaseTask();
+            }
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 每5分执行定时任务同步数据库护理计划到宜搭
+     */
+    @Scheduled(cron = "* 0/5 * * * ?")
+    public void databaseToYiDaTask() {
+        try {
+            ybjService.databaseToYiDaTask();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 6点到23点每3分执行定时任务同步宜搭到数据库更新是否已同步字段和流程id
+     */
+    @Scheduled(cron = "* 0/3 4-23 * * ?")
+    public void afterDatabaseToYiDaTask() {
+        try {
+            ybjService.afterDatabaseToYiDaTask();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+    /**
+     * 每天晚上八点执行定时任务删除数据库逻辑删除的数据及宜搭
+     */
+    @Scheduled(cron = "* 0 20 * * ?")
+    public void deleteBothTask() {
+        try {
+            ybjService.deleteBothInfo();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+    /**
+     * 每天凌晨04点10分更新计划护理的任务状态
+     */
+    @Scheduled(cron = " 0 10 3 * * ? ")
+    public void updateDBStatus() {
+        log.info("开始执行更新护理计划状态任务");
+        try {
+            ybjService.updateDBStatus();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 每天晚上23点00分删除前30天打卡数据定时任务
+     */
+    @Scheduled(cron = " 0 00 23 * * ? ")
+    public void deleteClockIn() {
+        log.info("开始执行删除前30天打卡数据定时任务");
+        try {
+            ybjService.deleteClockIn();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
 }

+ 8 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/PlanService.java

@@ -0,0 +1,8 @@
+package com.malk.yibaoju.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.malk.yibaoju.entity.Plan;
+import org.springframework.stereotype.Repository;
+
+public interface PlanService extends IService<Plan> {
+}

+ 78 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/YBJService.java

@@ -1,5 +1,9 @@
 package com.malk.yibaoju.service;
 
+import lombok.SneakyThrows;
+
+import java.util.Map;
+
 public interface YBJService {
 
     /**
@@ -18,4 +22,78 @@ public interface YBJService {
     void deletePlan(String cId);
 
     void syncCreatePlan();
+
+    /**
+     * 获取当月护理计划表单id
+     * @param month
+     * @return
+     */
+    String getFormId(String month);
+
+    /**
+     * 定时任务向数据库生成下月的护理计划
+     */
+    void insertDatabaseTask();
+
+    /**
+     * 定时任务从数据库向宜搭生成下月的护理计划
+     */
+    void databaseToYiDaTask();
+
+    /**
+     * 根据护理计划安排id删除当月数据库护理计划
+     * @param formInstId
+     */
+    void deleteDatabaseInfo(String formInstId);
+
+    /**
+     * 打卡更新数据库和护理计划数据
+     * @param data 参数
+     */
+    void updateFromClock(Map<String, Object> data);
+
+    /**
+     * 每天凌晨00点10分更新计划护理的任务状态
+     */
+    void updateDBStatus();
+
+    /**
+     * 删除打卡数据
+     */
+    void deleteClockIn();
+
+    /**
+     * 删除数据库和宜搭护理计划
+     */
+    void deleteBothInfo();
+
+    /**
+     * 编辑保存生成本月月数据库护理计划
+     * @param formInstId
+     */
+    void thisMonthDataBase(String formInstId);
+
+    /**
+     * 编辑保存生成下月数据库护理计划
+     * @param formInstId
+     */
+    void insertDatabaseNextMonth(String formInstId);
+
+    /**
+     * 编辑保存生成下月宜搭护理计划
+     */
+    void insertYiDaNextMonth();
+
+    /**
+     * 定时任务向数据库生成下月的护理计划
+     */
+    void insertDatabaseTaskNew();
+
+    void insertHistory();
+    void insertHistory2();
+
+    /**
+     * 每3分执行定时任务同步宜搭到数据库更新是否已同步字段和流程id
+     */
+    void afterDatabaseToYiDaTask();
 }

+ 14 - 0
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/impl/PlanServiceImpl.java

@@ -0,0 +1,14 @@
+package com.malk.yibaoju.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.malk.yibaoju.entity.Plan;
+import com.malk.yibaoju.mapper.PlanMapper;
+import com.malk.yibaoju.service.PlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
+    @Autowired
+    PlanMapper planMapper;
+}

File diff suppressed because it is too large
+ 1280 - 59
mjava-yibaoju/src/main/java/com/malk/yibaoju/service/impl/YBJServiceImpl.java


+ 20 - 13
mjava-yibaoju/src/main/resources/application-dev.yml

@@ -8,31 +8,35 @@ server:
 spel:
   scheduling: false        # 定时任务是否执行
   multiSource: false      # 是否多数据源配置
-
+mybatis-plus:
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  #日志
+    map-underscore-to-camel-case: true  #开启驼峰命名
 spring:
   # database
   datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
     hikari:
       connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
     driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
-    password: cp-root@2022++
-    url: jdbc:mysql://47.97.181.40:3306/yibaoju?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    password: fxybj@2021
+    url: jdbc:mysql://8.153.68.229:3306/yibaojv?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true&rewriteBatchedStatements=true
   jpa:
     database: MYSQL
     database-platform: org.hibernate.dialect.MySQL57Dialect
 
 # filepath
-file:
-  path:
-    file: C:/Users/fly/server/_Tool/var/mjava/tmp/file/
-    image: C:/Users/fly/server/_Tool/var/mjava/tmp/image/
-    tmp: C:/Users/fly/server/_Tool/var/mjava/tmp/
-  source:
-    fonts: C:/Users/fly/server/_Tool/fonts/simsun.ttc
-logging:
-  file:
-    path: C:/Users/fly/server/_Tool/var/mjava/log
+#file:
+#  path:
+#    file: C:/Users/fly/server/_Tool/var/mjava/tmp/file/
+#    image: C:/Users/fly/server/_Tool/var/mjava/tmp/image/
+#    tmp: C:/Users/fly/server/_Tool/var/mjava/tmp/
+#  source:
+#    fonts: C:/Users/fly/server/_Tool/fonts/simsun.ttc
+#logging:
+#  file:
+#    path: C:/Users/fly/server/_Tool/var/mjava/log
 
 
 # dingtalk
@@ -50,3 +54,6 @@ dingtalk:
 aliwork:
   appType: "APP_YIDJ71B8QORD2YHNZ26Q"
   systemToken: "RH766AC1707FCUZQAKET09YV8I8K3VZA1GVNLN2"
+file:
+  path:
+    file: "C:/java/file/"

+ 5 - 3
mjava-yibaoju/src/main/resources/application-prod.yml

@@ -16,8 +16,8 @@ spring:
       connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
     driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
-    password: cp-root@2022++
-    url: jdbc:mysql://47.97.181.40:3306/yibaoju?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    password: fxybj@2021
+    url: jdbc:mysql://8.153.68.229:3306/yibaojv?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
   jpa:
     database: MYSQL
     database-platform: org.hibernate.dialect.MySQL57Dialect
@@ -36,4 +36,6 @@ dingtalk:
 aliwork:
   appType: "APP_YIDJ71B8QORD2YHNZ26Q"
   systemToken: "RH766AC1707FCUZQAKET09YV8I8K3VZA1GVNLN2"
-
+file:
+  path:
+    file: C:/java/file/

+ 15 - 0
pom.xml

@@ -64,6 +64,8 @@
         <skipTests>true</skipTests>
         <!-- 不执行单元测试,但会编译测试类,并在target/test-classes目录下生成相应的class -->
         <maven.test.skip>true</maven.test.skip>
+        <mybatis-plus.version>3.5.1</mybatis-plus.version>
+        <durid.version>1.1.18</durid.version>
     </properties>
 
     <!-- 依赖声明 & 版本 -->
@@ -339,6 +341,19 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
+        <!--        引入mybatisPlus 包含了 jdbc -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>${mybatis-plus.version}</version>
+        </dependency>
+
+        <!--        引入durid數據源-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>${durid.version}</version>
+        </dependency>
 
         <!-- Oracle 依赖 -->
         <!--        <dependency>-->