瀏覽代碼

合并并更新 zhizhong 项目

zhangkan 3 周之前
父節點
當前提交
4a2c50c237
共有 22 個文件被更改,包括 4984 次插入 和 1105 次删除
  1. 2 0
      .gitignore
  2. 8 0
      src/main/java/com/muzhi/zhizhong/controller/AccessTokenController.java
  3. 212 7
      src/main/java/com/muzhi/zhizhong/controller/DingOaController.java
  4. 5 2
      src/main/java/com/muzhi/zhizhong/controller/TongbuController.java
  5. 28 0
      src/main/java/com/muzhi/zhizhong/entity/HospitalZhizhong.java
  6. 25 0
      src/main/java/com/muzhi/zhizhong/entity/MapZhizhong.java
  7. 42 0
      src/main/java/com/muzhi/zhizhong/entity/ProcessInstanceZhizhong.java
  8. 3 0
      src/main/java/com/muzhi/zhizhong/entity/StateZhizhong.java
  9. 12 0
      src/main/java/com/muzhi/zhizhong/mapper/HospitalZhizhongMapper.java
  10. 12 0
      src/main/java/com/muzhi/zhizhong/mapper/MapZhizhongMapper.java
  11. 12 0
      src/main/java/com/muzhi/zhizhong/mapper/ProcessInstanceZhizhongMapper.java
  12. 5 0
      src/main/java/com/muzhi/zhizhong/mapper/xml/HospitalZhizhongMapper.xml
  13. 5 0
      src/main/java/com/muzhi/zhizhong/mapper/xml/MapZhizhongMapper.xml
  14. 5 0
      src/main/java/com/muzhi/zhizhong/mapper/xml/ProcessInstanceZhizhongMapper.xml
  15. 3 0
      src/main/java/com/muzhi/zhizhong/service/AccessTokenService.java
  16. 80 0
      src/main/java/com/muzhi/zhizhong/service/DingOaService.java
  17. 4 1
      src/main/java/com/muzhi/zhizhong/service/TongbuService.java
  18. 25 0
      src/main/java/com/muzhi/zhizhong/service/impl/AccessTokenServiceImpl.java
  19. 2882 344
      src/main/java/com/muzhi/zhizhong/service/impl/DingOaServiceImpl.java
  20. 300 63
      src/main/java/com/muzhi/zhizhong/service/impl/TongbuServiceImpl.java
  21. 33 21
      src/main/resources/application.properties
  22. 1281 667
      src/test/java/com/muzhi/zhizhong/APITest/Test1.java

+ 2 - 0
.gitignore

@@ -3,6 +3,8 @@
 *.iml
 *.iml
 out
 out
 gen
 gen
+.DS_Store
+target/
 ### Java template
 ### Java template
 # Compiled class file
 # Compiled class file
 *.class
 *.class

+ 8 - 0
src/main/java/com/muzhi/zhizhong/controller/AccessTokenController.java

@@ -32,6 +32,14 @@ public class AccessTokenController {
         return accessToken;
         return accessToken;
     }
     }
 
 
+    //获取钉钉中的access_token(智众销售架构)
+    @ApiOperation("获取钉钉中的access_token")
+    @GetMapping({"getAccessTokenXS"})
+    public String getAccessTokenXS() {
+        String accessTokenXS = this.AccessTokenService.getAccessTokenXS();
+        return accessTokenXS;
+    }
+
     //获取钉钉中的access_token(牧之测试架构4)
     //获取钉钉中的access_token(牧之测试架构4)
     @ApiOperation(value = "获取钉钉中的access_token")
     @ApiOperation(value = "获取钉钉中的access_token")
     @GetMapping("getMuZhiAccessToken")
     @GetMapping("getMuZhiAccessToken")

+ 212 - 7
src/main/java/com/muzhi/zhizhong/controller/DingOaController.java

@@ -1,5 +1,6 @@
 package com.muzhi.zhizhong.controller;
 package com.muzhi.zhizhong.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.muzhi.zhizhong.common.R;
 import com.muzhi.zhizhong.common.R;
 import com.muzhi.zhizhong.service.DingOaService;
 import com.muzhi.zhizhong.service.DingOaService;
@@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 
 
@@ -93,14 +95,19 @@ public class DingOaController {
     @PostMapping("timerStatus")
     @PostMapping("timerStatus")
 //    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
 //    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
 //    @Scheduled(cron = "0/30 * * * * ?")//每30秒触发一次
 //    @Scheduled(cron = "0/30 * * * * ?")//每30秒触发一次
-    @Scheduled(cron = "0 0/1 * * * ?")//每1分钟触发一次
+//    @Scheduled(cron = "0 0/1 * * * ?")//每1分钟触发一次
+//    @Scheduled(cron = "0 0/5 9-18 ? * MON-FRI")//周一~周五,每天早上9点~18点,每5分钟执行一次
+
+    //TODO 以下两个定时在我方内部服务器部署时需要注释掉,在智众服务器外部部署时需要打开!!!
+    @Scheduled(cron = "0 0/5 8-19 * * ?")//每天8点~19点,每5分钟执行一次
+    @Scheduled(cron = "0 0/50 19-23 * * ?")//每天19点~23点,每50分钟执行一次
     public R timerStatus(){
     public R timerStatus(){
 
 
         R s = dingOaService.timerStatus();
         R s = dingOaService.timerStatus();
-//        R r = dingOaService.timerStatusPDF();
-        System.out.println(s);
+        R r = dingOaService.timerStatusPDF();
+        System.out.println(r);
 
 
-        return s;
+        return r;
     }
     }
 
 
     //定时同步钉钉审批单合同附件签署状态至U8C
     //定时同步钉钉审批单合同附件签署状态至U8C
@@ -108,7 +115,10 @@ public class DingOaController {
     @PostMapping("timerStatusPDF")
     @PostMapping("timerStatusPDF")
 //    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
 //    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
 //    @Scheduled(cron = "0/30 * * * * ?")//每30秒触发一次
 //    @Scheduled(cron = "0/30 * * * * ?")//每30秒触发一次
-    @Scheduled(cron = "0 0/1 * * * ?")//每1分钟触发一次
+//    @Scheduled(cron = "0 0/1 * * * ?")//每1分钟触发一次
+//    @Scheduled(cron = "0 0/5 9-18 ? * MON-FRI")//周一~周五,每天早上9点~18点,每5分钟执行一次
+//    @Scheduled(cron = "0 0/5 8-19 * * ?")//每天8点~19点,每5分钟执行一次
+//    @Scheduled(cron = "0 0/30 19-23 * * ?")//每天19点~23点,每30分钟执行一次
     public R timerStatusPDF(){
     public R timerStatusPDF(){
 
 
         R s = dingOaService.timerStatusPDF();
         R s = dingOaService.timerStatusPDF();
@@ -117,6 +127,7 @@ public class DingOaController {
         return s;
         return s;
     }
     }
 
 
+
     //表单提交时校验(销售订单)
     //表单提交时校验(销售订单)
     @ApiOperation(value = "表单提交时校验(销售订单)")
     @ApiOperation(value = "表单提交时校验(销售订单)")
     @GetMapping("getJiaoYan")
     @GetMapping("getJiaoYan")
@@ -130,10 +141,204 @@ public class DingOaController {
     //表单提交时校验(采购订单)
     //表单提交时校验(采购订单)
     @ApiOperation(value = "表单提交时校验(采购订单)")
     @ApiOperation(value = "表单提交时校验(采购订单)")
     @GetMapping("getJiaoYanCG")
     @GetMapping("getJiaoYanCG")
-    public Map getJiaoYanCG(String xzyzlx, String dfsfygz){//, String hcfj
+    public Map getJiaoYanCG(String xzyzlx, String dfsfygz) {//, String hcfj
 
 
-        Map jiaoYanCG = dingOaService.getJiaoYanCG(xzyzlx,dfsfygz);//, hcfj
+        Map jiaoYanCG = dingOaService.getJiaoYanCG(xzyzlx, dfsfygz);//, hcfj
 
 
         return jiaoYanCG;
         return jiaoYanCG;
     }
     }
+
+    //表单提交时校验(选择电子章且对方已盖章的时候,最终审批节点判断U8C推送附件需要删除)
+    @ApiOperation(value = "表单提交时校验(选择电子章且对方已盖章的时候,最终审批节点判断U8C推送附件需要删除)")
+    @GetMapping("getJiaoYanFJ")
+    public Map getJiaoYanFJ(String xzyzlx, String dfsfygz, String FJ, String ddly){//, String hcfj
+
+        Map jiaoYanFJ = dingOaService.getJiaoYanFJ(xzyzlx, dfsfygz, FJ, ddly);//, hcfj
+
+        return jiaoYanFJ;
+
+    }
+
+
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:欧姆龙人员工号映射表【记录核心字段到数据库】
+    @ApiOperation(value = "创建钉钉OA审批:欧姆龙人员工号映射表【记录核心字段到数据库】")
+    @PostMapping("createMap")
+    @ResponseBody
+    public R createMap(String userid, String name, String gonghao){
+
+        R map = dingOaService.createMap(userid,name,gonghao);
+        System.out.println(map);
+
+        return map;
+    }
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:基础产品表【传json格式参数】
+    @ApiOperation(value = "创建钉钉OA审批:基础产品表")
+    @PostMapping("createBaProducts")
+    @ResponseBody
+    public R createBaProducts(@RequestBody JSONObject body) throws Exception{
+
+        R baProducts = dingOaService.createBaProducts(body);
+        System.out.println(baProducts);
+
+        return baProducts;
+    }
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:代理商合同盖章流程【传json格式参数】//TODO 【废弃】
+    @ApiOperation(value = "创建钉钉OA审批:代理商合同盖章流程")
+    @PostMapping("createAgentContractSeal")
+    @ResponseBody
+    public R createAgentContractSeal(@RequestBody JSONObject body) throws Exception{
+
+        R agentContractSeal = dingOaService.createAgentContractSeal(body);
+        System.out.println(agentContractSeal);
+
+        return agentContractSeal;
+    }
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:代理商合同盖章流程【记录核心字段到数据库】
+    @ApiOperation(value = "创建钉钉OA审批:代理商合同盖章流程【记录核心字段到数据库】")
+    @PostMapping("createSPtoData")
+    @ResponseBody
+    public R createSPtoData(String type, String processid, String orderid, String createtime, String sqtype, String yyid, String yyname, String sqstarttime, String sqendtime){
+
+        R sPtoData = dingOaService.createSPtoData(type,processid,orderid, createtime, sqtype, yyid, yyname, sqstarttime, sqendtime);
+        System.out.println(sPtoData);
+
+        return sPtoData;
+    }
+
+    /*【二期内容】*/
+    /**查询数据库表中同步状态的审批实例id列表*/
+    @ApiOperation(value = "查询数据库表中同步状态的审批实例id列表")
+    @GetMapping("queryState")
+    @ResponseBody
+    public R queryState(int state){
+
+        R queryState = dingOaService.queryState(state);
+        System.out.println(queryState);
+
+        return queryState;
+    }
+
+    /*【二期内容】*/
+    //获取OA审批单状态和结果
+    @ApiOperation(value = "获取OA审批单状态和结果")
+    @GetMapping("getOAStatus")
+    @ResponseBody
+    public R getOAStatus(String processInstanceId){
+
+        R oaStatus = dingOaService.getOAStatus(processInstanceId);
+        System.out.println(oaStatus);
+
+        return oaStatus;
+    }
+
+    /*【二期内容】*/
+    /**更新数据库表中审批实例的同步状态*/
+    @ApiOperation(value = "更新数据库表中审批实例的同步状态")
+    @PostMapping("updateState")
+    @ResponseBody
+    public R updateState(String processInstanceId){
+
+        R state = dingOaService.updateState(processInstanceId);
+        System.out.println(state);
+
+        return state;
+    }
+
+
+    /*【二期改造内容】*/
+    //创建&更新数据:医院信息表【传json格式参数】
+    @ApiOperation(value = "创建数据库:医院信息表")
+    @PostMapping("createHospital")
+    @ResponseBody
+    public R createHospital(@RequestBody JSONObject body) throws Exception{
+
+        R hospital = dingOaService.createHospital(body);
+        System.out.println(hospital);
+
+        return hospital;
+    }
+
+    //删除数据:医院信息表【传String格式参数】
+    @ApiOperation(value = "删除数据:医院信息表")
+    @PostMapping("deleteHospital")
+    @ResponseBody
+    public R deleteHospital(String hosp_id) throws Exception{
+
+        R deleteHospital = dingOaService.deleteHospital(hosp_id);
+        System.out.println(deleteHospital);
+
+        return deleteHospital;
+    }
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据填写的搜索内容模糊匹配医院信息)
+     */
+    @ApiOperation(value = "控件发生变化时加载(根据填写的搜索内容模糊匹配医院信息)")
+    @GetMapping("getHospitalList")
+    public JSONArray getHospitalList(String query){
+
+        JSONArray s = dingOaService.getHospitalList(query);
+        return s;
+    }
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据选择的医院将相关字段填充至表单)
+     */
+    @ApiOperation(value = "控件发生变化时加载(根据选择的医院将相关字段填充至表单)")
+    @GetMapping("loadHospital")
+    public JSONObject loadHospital(String hospid){
+
+        JSONObject s = dingOaService.loadHospital(hospid);
+        return s;
+    }
+
+
+    /*【三期改造内容】*/
+    /**
+     * 【钉钉OA连接器】
+     * 表单打开时加载
+     */
+    @ApiOperation(value = "表单打开时加载")
+    @GetMapping("getDepList")
+    public JSONArray getDepList(String userId){
+
+        JSONArray s = dingOaService.getDepList(userId);
+        return s;
+    }
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据选择的部门将相关字段填充至表单)
+     */
+    @ApiOperation(value = "控件发生变化时加载(根据选择的部门将相关字段填充至表单)")
+    @GetMapping("loadBumen")
+    public JSONObject loadBumen(long deptId){
+
+        JSONObject s = dingOaService.loadBumen(deptId);
+        return s;
+    }
+
+
+    /*【四期改造内容】*/
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据填写的搜索内容模糊匹配医院信息)
+     */
+    @ApiOperation(value = "控件发生变化时加载(根据选择的部门将相关字段填充至表单)")
+    @GetMapping("getDailishangshouquanYiyuan")
+    public JSONObject getDailishangshouquanYiyuan(String sqlx, String yybh, String yymc, String sq_start, String sq_end){
+
+        JSONObject s = dingOaService.getDailishangshouquanYiyuan(sqlx, yybh, yymc, sq_start, sq_end);
+        return s;
+    }
 }
 }

+ 5 - 2
src/main/java/com/muzhi/zhizhong/controller/TongbuController.java

@@ -30,13 +30,16 @@ public class TongbuController {
     @ApiOperation(value = "同步花名册数据至数据库")
     @ApiOperation(value = "同步花名册数据至数据库")
     @PostMapping("addHuamingce")
     @PostMapping("addHuamingce")
 //    @Scheduled(cron = "0 1 15 * * ?")//每天下午15:01触发(也就是下午3点触发)
 //    @Scheduled(cron = "0 1 15 * * ?")//每天下午15:01触发(也就是下午3点触发)
-    @Scheduled(cron = "0 0 0 * * ?")//每天00:00触发(也就是凌晨0点整触发)
+
+    //TODO 以下这个定时在我方内部服务器部署时需要注释掉,在智众服务器外部部署时需要打开!!!
+    @Scheduled(cron = "0 0 1 * * ?")//每天01:00触发(也就是凌晨1点整触发)
     public R addHuamingce(){
     public R addHuamingce(){
         //先删除清空employee表中的所有数据
         //先删除清空employee表中的所有数据
-        tongbuService.removeEmployee();
+//        tongbuService.removeEmployee();
 
 
         //再执行插入花名册数据库表的接口
         //再执行插入花名册数据库表的接口
         String result = tongbuService.addHuamingce();
         String result = tongbuService.addHuamingce();
+        String s = tongbuService.addHuamingceXS();
         return R.ok().data("result", result);
         return R.ok().data("result", result);
     }
     }
 }
 }

+ 28 - 0
src/main/java/com/muzhi/zhizhong/entity/HospitalZhizhong.java

@@ -0,0 +1,28 @@
+package com.muzhi.zhizhong.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "医院信息", description = "医院信息")
+public class HospitalZhizhong {
+
+    @ApiModelProperty(value = "医院编号")
+    private String hospid;
+
+    @ApiModelProperty(value = "医院名称")
+    private String hospname;
+
+    @ApiModelProperty(value = "医院地址")
+    private String hospaddress;
+
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+}

+ 25 - 0
src/main/java/com/muzhi/zhizhong/entity/MapZhizhong.java

@@ -0,0 +1,25 @@
+package com.muzhi.zhizhong.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "钉钉人员映射欧姆龙", description = "钉钉人员映射欧姆龙")
+public class MapZhizhong {
+
+    @ApiModelProperty(value = "人员id")
+    private String userid;
+
+    @ApiModelProperty(value = "人员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "欧姆龙工号")
+    private String gonghao;
+}

+ 42 - 0
src/main/java/com/muzhi/zhizhong/entity/ProcessInstanceZhizhong.java

@@ -0,0 +1,42 @@
+package com.muzhi.zhizhong.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "同步记录", description = "同步记录")
+public class ProcessInstanceZhizhong {
+
+    @ApiModelProperty(value = "盖章类型:物理盖章、电子签章")
+    private String type;
+
+    @ApiModelProperty(value = "审批实例id")
+    private String processid;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderid;
+
+    @ApiModelProperty(value = "bpm同步状态:0未同步;1已同步")
+    private int state;
+
+
+    @ApiModelProperty(value = "订单创建日期")
+    private String createtime;
+    @ApiModelProperty(value = "授权类型:医院、非医院")
+    private String sqtype;
+    @ApiModelProperty(value = "医院编号")
+    private String yyid;
+    @ApiModelProperty(value = "医院名称")
+    private String yyname;
+    @ApiModelProperty(value = "授权开始日期")
+    private String sqstarttime;
+    @ApiModelProperty(value = "授权结束日期")
+    private String sqendtime;
+}

+ 3 - 0
src/main/java/com/muzhi/zhizhong/entity/StateZhizhong.java

@@ -31,4 +31,7 @@ public class StateZhizhong {
 
 
     @ApiModelProperty(value = "钉钉审批/签署状态回传")
     @ApiModelProperty(value = "钉钉审批/签署状态回传")
     private String status;
     private String status;
+
+    @ApiModelProperty(value = "标识")
+    private String flag;
 }
 }

+ 12 - 0
src/main/java/com/muzhi/zhizhong/mapper/HospitalZhizhongMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.zhizhong.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.zhizhong.entity.HospitalZhizhong;
+import com.muzhi.zhizhong.entity.StateZhizhong;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface HospitalZhizhongMapper extends BaseMapper<HospitalZhizhong> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 12 - 0
src/main/java/com/muzhi/zhizhong/mapper/MapZhizhongMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.zhizhong.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.zhizhong.entity.EmpZhizhong;
+import com.muzhi.zhizhong.entity.MapZhizhong;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface MapZhizhongMapper extends BaseMapper<MapZhizhong> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 12 - 0
src/main/java/com/muzhi/zhizhong/mapper/ProcessInstanceZhizhongMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.zhizhong.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.zhizhong.entity.ProcessInstanceZhizhong;
+import com.muzhi.zhizhong.entity.StateZhizhong;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface ProcessInstanceZhizhongMapper extends BaseMapper<ProcessInstanceZhizhong> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 5 - 0
src/main/java/com/muzhi/zhizhong/mapper/xml/HospitalZhizhongMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.zhizhong.mapper.HospitalZhizhongMapper">
+
+</mapper>

+ 5 - 0
src/main/java/com/muzhi/zhizhong/mapper/xml/MapZhizhongMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.zhizhong.mapper.MapZhizhongMapper">
+
+</mapper>

+ 5 - 0
src/main/java/com/muzhi/zhizhong/mapper/xml/ProcessInstanceZhizhongMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.zhizhong.mapper.ProcessInstanceZhizhongMapper">
+
+</mapper>

+ 3 - 0
src/main/java/com/muzhi/zhizhong/service/AccessTokenService.java

@@ -9,6 +9,9 @@ public interface AccessTokenService {
     //获取access_token的方法(智众架构)
     //获取access_token的方法(智众架构)
     String getAccessToken();
     String getAccessToken();
 
 
+    //获取access_token的方法(智众销售架构)
+    String getAccessTokenXS();
+
     //获取access_token的方法(牧之测试架构4)
     //获取access_token的方法(牧之测试架构4)
     String getMuZhiAccessToken();
     String getMuZhiAccessToken();
 }
 }

+ 80 - 0
src/main/java/com/muzhi/zhizhong/service/DingOaService.java

@@ -1,5 +1,6 @@
 package com.muzhi.zhizhong.service;
 package com.muzhi.zhizhong.service;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.muzhi.zhizhong.common.R;
 import com.muzhi.zhizhong.common.R;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -35,9 +36,88 @@ public interface DingOaService {
     //定时同步钉钉审批单合同附件签署状态至U8C
     //定时同步钉钉审批单合同附件签署状态至U8C
     R timerStatusPDF();
     R timerStatusPDF();
 
 
+
     //表单提交时校验(销售订单)
     //表单提交时校验(销售订单)
     Map getJiaoYan(String xzyzlx, String dfsfygz, String sfbhxypad, String txxypadxmlx, String BU);//, String hcfj
     Map getJiaoYan(String xzyzlx, String dfsfygz, String sfbhxypad, String txxypadxmlx, String BU);//, String hcfj
 
 
     //表单提交时校验(采购订单)
     //表单提交时校验(采购订单)
     Map getJiaoYanCG(String xzyzlx, String dfsfygz);//, String hcfj
     Map getJiaoYanCG(String xzyzlx, String dfsfygz);//, String hcfj
+
+    //表单提交时校验(选择电子章且对方已盖章的时候,最终审批节点判断U8C推送附件需要删除)
+    Map getJiaoYanFJ(String xzyzlx, String dfsfygz, String FJ, String ddly);//, String hcfj
+
+
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:欧姆龙人员工号映射表【记录核心字段到数据库】
+    R createMap(String userid, String name, String gonghao);
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:基础产品表【传json格式参数】
+    R createBaProducts(JSONObject body) throws Exception;
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:代理商合同盖章流程【传json格式参数】//TODO 【废弃】
+    R createAgentContractSeal(JSONObject body) throws Exception;
+
+    /*【二期内容】*/
+    //创建钉钉OA审批:代理商合同盖章流程【记录核心字段到数据库】
+    R createSPtoData(String type, String processid, String orderid, String createtime, String sqtype, String yyid, String yyname, String sqstarttime, String sqendtime);
+
+    /*【二期内容】*/
+    /**查询数据库表中同步状态的审批实例id列表*/
+    R queryState(int state);
+
+    /*【二期内容】*/
+    //获取OA审批单数据、状态和结果
+    R getOAStatus(String processInstanceId);
+
+    /*【二期内容】*/
+    /**更新数据库表中审批实例的同步状态*/
+    R updateState(String processInstanceId);
+
+
+
+    /*【二期改造内容】*/
+    //创建&更新数据:医院信息表【传json格式参数】
+    R createHospital(JSONObject body) throws Exception;
+
+    //删除数据:医院信息表【传String格式参数】
+    R deleteHospital(String hosp_id) throws Exception;
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据填写的搜索内容模糊匹配医院信息)
+     */
+    JSONArray getHospitalList(String query);
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据选择的医院将相关字段填充至表单)
+     */
+    JSONObject loadHospital(String hospid);
+
+
+
+    /*【三期改造内容】*/
+    /**
+     * 【钉钉OA连接器】
+     * 表单打开时加载
+     */
+    JSONArray getDepList(String userId);
+
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据选择的部门将相关字段填充至表单)
+     */
+    JSONObject loadBumen(long deptId);
+
+
+
+    /*【四期改造内容】*/
+    /**
+     * 【钉钉OA连接器】
+     * 控件发生变化时加载(根据填写的搜索内容模糊匹配医院信息)
+     */
+    JSONObject getDailishangshouquanYiyuan(String sqlx, String yybh, String yymc, String sq_start, String sq_end);
 }
 }

+ 4 - 1
src/main/java/com/muzhi/zhizhong/service/TongbuService.java

@@ -5,6 +5,9 @@ public interface TongbuService {
     //删除employee表中的所有数据
     //删除employee表中的所有数据
     String removeEmployee();
     String removeEmployee();
 
 
-    //同步花名册数据至数据库
+    //同步花名册数据至数据库(智众主架构)
     String addHuamingce();
     String addHuamingce();
+
+    //同步花名册数据至数据库(智众销售架构)
+    String addHuamingceXS();
 }
 }

+ 25 - 0
src/main/java/com/muzhi/zhizhong/service/impl/AccessTokenServiceImpl.java

@@ -25,6 +25,14 @@ public class AccessTokenServiceImpl implements AccessTokenService {
 
 
     public static String accessToken = null;
     public static String accessToken = null;
 
 
+    //智众销售架构
+    //APPKEY
+    private static String APPKEY2 = "ding7prhnwcx7r0k2m4o";
+    //APPSECRET
+    private static String APPSECRET2 = "fBET_3SQvKoFYN3LuMdn6KjtdBwFYWU9pAdJQ7szrOjSUytgz_-qBzRaASx5Pi3g";
+
+    public static String accessToken2 = null;
+
     //牧之测试架构4
     //牧之测试架构4
     //APPKEY
     //APPKEY
     private static String APPKEY1 = "ding2katvzyqvlkunqtb";
     private static String APPKEY1 = "ding2katvzyqvlkunqtb";
@@ -52,6 +60,23 @@ public class AccessTokenServiceImpl implements AccessTokenService {
         return accessToken;
         return accessToken;
     }
     }
 
 
+    //获取access_token的方法(智众销售架构)
+    public String getAccessTokenXS() {
+        DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
+        OapiGettokenRequest request = new OapiGettokenRequest();
+        request.setAppkey(APPKEY2);
+        request.setAppsecret(APPSECRET2);
+        request.setHttpMethod("GET");
+        try {
+            OapiGettokenResponse response = client.execute(request);
+            accessToken2 = response.getAccessToken();
+            System.out.println("智众架构的AccessToken:" + accessToken2);
+        } catch (ApiException e) {
+            e.printStackTrace();
+        }
+        return accessToken2;
+    }
+
     //获取access_token的方法(牧之测试架构4)
     //获取access_token的方法(牧之测试架构4)
     @Override
     @Override
     public String getMuZhiAccessToken() {
     public String getMuZhiAccessToken() {

文件差異過大導致無法顯示
+ 2882 - 344
src/main/java/com/muzhi/zhizhong/service/impl/DingOaServiceImpl.java


文件差異過大導致無法顯示
+ 300 - 63
src/main/java/com/muzhi/zhizhong/service/impl/TongbuServiceImpl.java


+ 33 - 21
src/main/resources/application.properties

@@ -1,30 +1,41 @@
-#我方服务器部署端口
+#???????
 #server.port=8081
 #server.port=8081
-#智众方服务器部署端口
-server.port=8082
 #server.servlet.context-path=/zhizhong
 #server.servlet.context-path=/zhizhong
+#???????
+server.port=8082
 
 
 server.tomcat.uri-encoding=UTF-8
 server.tomcat.uri-encoding=UTF-8
 
 
-## 服务名
+## ???
 #spring.application.name=zhizhong-yd
 #spring.application.name=zhizhong-yd
-## 环境设置:dev、test、prod(开发环境、测试环境、生产环境)
+## ?????dev?test?prod????????????????
 #spring.profiles.active=dev
 #spring.profiles.active=dev
 
 
-# mysql数据库连接
-# 本地测试数据库
+# mysql???
+# ?????????
 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 #spring.datasource.url=jdbc:mysql://localhost:3306/dingtalk?serverTimezone=GMT%2B8
 #spring.datasource.url=jdbc:mysql://localhost:3306/dingtalk?serverTimezone=GMT%2B8
 #spring.datasource.username=root
 #spring.datasource.username=root
 #spring.datasource.password=123456
 #spring.datasource.password=123456
 
 
-# 云璞【47.98.130.40服务器】测试数据库
+# ??47.98.130.40??????
+# Yunpu
 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-#spring.datasource.url=jdbc:mysql://47.97.181.40:3306/dingtalk?serverTimezone=GMT%2B8
+#spring.datasource.url=jdbc:mysql://47.110.74.198:3306/dingtalk?serverTimezone=GMT%2B8
 #spring.datasource.username=root
 #spring.datasource.username=root
 #spring.datasource.password=cp-root@2022++
 #spring.datasource.password=cp-root@2022++
 
 
-# 牧之【本地】数据库
+# ???111.111.2.251???????
+#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+#spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=dingtalk
+#spring.datasource.username=dingtalk
+#spring.datasource.password=dingtalk@123
+#spring.datasource.max-idle=10
+#spring.datasource.max-wait=10000
+#spring.datasource.min-idle=5
+#spring.datasource.initial-size=5
+
+# ??SQLServer???
 #spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
 #spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
 #spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=muzhi
 #spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=muzhi
 #spring.datasource.username=sa
 #spring.datasource.username=sa
@@ -34,35 +45,36 @@ server.tomcat.uri-encoding=UTF-8
 #spring.datasource.min-idle=5
 #spring.datasource.min-idle=5
 #spring.datasource.initial-size=5
 #spring.datasource.initial-size=5
 
 
-# 智众【111.111.2.251服务器】数据库
+# ??192.168.250.5???SQLServer???
+# zhizhong
 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=dingtalk
+spring.datasource.url=jdbc:sqlserver://192.168.250.5:1433;DatabaseName=dingtalk
 spring.datasource.username=dingtalk
 spring.datasource.username=dingtalk
-spring.datasource.password=dingtalk@123
+spring.datasource.password=IFAKuUHzsZg7#6-R
 spring.datasource.max-idle=10
 spring.datasource.max-idle=10
 spring.datasource.max-wait=10000
 spring.datasource.max-wait=10000
 spring.datasource.min-idle=5
 spring.datasource.min-idle=5
 spring.datasource.initial-size=5
 spring.datasource.initial-size=5
 
 
-#定时同步
+#????
 
 
-#配置日志,当前为默认的控制台输出,也可以用log4j
+#?????????????????????log4j
 #mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
 #mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
 
 
-#控制台显示sql
+#?????sql
 #spring.jpa.show-sql=true
 #spring.jpa.show-sql=true
-#更新或者创建数据表结构
+#???????????
 #spring.jpa.hibernate.ddl-auto=update
 #spring.jpa.hibernate.ddl-auto=update
 
 
-#返回json的全局时间格式
+#??json????
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
 spring.jackson.time-zone=GMT+8
 spring.jackson.time-zone=GMT+8
-#配置mapper xml文件的路径
+#??mapper xml?????
 #mybatis-plus.mapper-locations=classpath:com/muzhi/lz/mapper/xml/*.xml
 #mybatis-plus.mapper-locations=classpath:com/muzhi/lz/mapper/xml/*.xml
 
 
 #mybatis-plus.config-location=classpath:mybatis/mybatis-config.xml
 #mybatis-plus.config-location=classpath:mybatis/mybatis-config.xml
 
 
-#禁用缓存
+#??????
 spring.thymeleaf.cache=false
 spring.thymeleaf.cache=false
 #spring.thymeleaf.mode= LEGACYHTML5
 #spring.thymeleaf.mode= LEGACYHTML5
 #spring.resources.chain.strategy.content.enabled=true
 #spring.resources.chain.strategy.content.enabled=true
@@ -74,7 +86,7 @@ spring.thymeleaf.cache=false
 #spring.thymeleaf.prefix = classpath:/static/
 #spring.thymeleaf.prefix = classpath:/static/
 #spring.thymeleaf.suffix = .html
 #spring.thymeleaf.suffix = .html
 
 
-#定义日期提交的格式(日期的格式化):SpingMVC将页面提交的值需要转换为指定类型;默认的是yyyy/MM/dd
+#??????????????????SpingMVC?????????????????????yyyy/MM/dd
 #spring.mvc.date-format=yyyy-MM-dd
 #spring.mvc.date-format=yyyy-MM-dd
 
 
 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/

文件差異過大導致無法顯示
+ 1281 - 667
src/test/java/com/muzhi/zhizhong/APITest/Test1.java