Kaynağa Gözat

项目迁移

zhang-kan-kan 2 yıl önce
ebeveyn
işleme
e3bbeb801f

+ 16 - 5
src/main/java/com/muzhi/meidiai/controller/DingOaController.java

@@ -25,9 +25,9 @@ public class DingOaController {
     //获取宜搭审批实例详情(项目信息档案-根据OA审批提交人userid过滤)
     @ApiOperation(value = "表单加载时")
     @GetMapping("getXiangMuXX")
-    public R getXiangMuXX(String userid){
+    public R getXiangMuXX(String userid,String xmmcEQ){
 
-        List xiangMuXX = dingOaService.getXiangMuXX(userid);
+        List xiangMuXX = dingOaService.getXiangMuXX(userid,xmmcEQ);
 
         return R.ok().data("result",xiangMuXX);
     }
@@ -69,11 +69,12 @@ public class DingOaController {
     @ApiOperation(value = "表单审批通过后触发")
     @PostMapping("createJBXX")
     public String createJBXX(String jbrid,
-                             String kssj, String jssj,String jbsc,
+                             String kssj, String jssj, String jbsc,
                              String xmbh, String xmmc,
-                             String jbsy, String djbh){
+                             String jbsy, String djbh,
+                             String xqpp){
 
-        String jbxx = dingOaService.createJBXX(jbrid,kssj,jssj,jbsc,xmbh,xmmc,jbsy,djbh);
+        String jbxx = dingOaService.createJBXX(jbrid,kssj,jssj,jbsc,xmbh,xmmc,jbsy,djbh,xqpp);
 
         return jbxx;
     }
@@ -118,4 +119,14 @@ public class DingOaController {
 
         return s;
     }
+
+    //延时申请单选择加班日期,匹配获取该日期是周几,填充到固定的文本控件
+    @ApiOperation(value = "获取日期是周几")
+    @GetMapping("getWeek")
+    public Map getWeek(String jbsj){
+
+        Map week = dingOaService.getWeek(jbsj);
+
+        return week;
+    }
 }

+ 7 - 3
src/main/java/com/muzhi/meidiai/service/DingOaService.java

@@ -10,7 +10,7 @@ import java.util.Map;
 public interface DingOaService {
 
     //获取宜搭审批实例详情(项目信息档案-根据OA审批提交人userid过滤);【外出】使用。
-    List getXiangMuXX(String userid);
+    List getXiangMuXX(String userid,String xmmcEQ);
 
     //获取宜搭审批实例详情(项目信息档案-根据连接器加载的项目列表选择某个项目时,加载项目编号、项目名称、项目负责人id、项目负责人名称到指定控件中);【外出、加班】使用。
     String getXiangMuID(String xmid);
@@ -28,9 +28,10 @@ public interface DingOaService {
      * 保存宜搭表单数据【加班信息档案】
      * */
     String createJBXX(String jbrid,
-                      String kssj, String jssj,String jbsc,
+                      String kssj, String jssj, String jbsc,
                       String xmbh, String xmmc,
-                      String jbsy, String djbh);
+                      String jbsy, String djbh,
+                      String xqpp);
 
     //OA【加班】审批表单提交校验:判断当前审批发起人提交【加班】中关联的项目(编号)是否提交过审批(包含已提交、撤销、拒绝),
     // 如有,则审批不通过,并弹窗提示:当前项目你已提交过加班!
@@ -47,4 +48,7 @@ public interface DingOaService {
      * 出差开始日期、出差结束日期、出差天数、出差补贴(结合岗位补贴标准字段*出差天数)
      * */
     String updateChuchaiB();
+
+    //延时申请单选择加班日期,匹配获取该日期是周几,填充到固定的文本控件
+    Map getWeek(String jbsj);
 }

+ 87 - 12
src/main/java/com/muzhi/meidiai/service/impl/DingOaServiceImpl.java

@@ -28,6 +28,8 @@ import org.springframework.stereotype.Service;
 import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 
@@ -47,7 +49,7 @@ public class DingOaServiceImpl implements DingOaService {
 
     //获取宜搭审批实例详情(项目预算档案-根据项目负责人id判断)
     @Override
-    public List getXiangMuXX(String userid){
+    public List getXiangMuXX(String userid,String xmmcEQ){
 //        System.out.println("连接器传参过来的项目负责人id:" + userid);
 //
 //        //list集合装载最终的集合
@@ -156,10 +158,50 @@ public class DingOaServiceImpl implements DingOaService {
 //        return list;
 
 
-
-
         /*通过高级查询条件获取表单实例数据(不包括子表单组件数据)*/
         System.out.println("连接器传参过来的项目负责人id:" + userid);
+        System.out.println("连接器传参过来的项目名称模糊搜索内容:" + xmmcEQ);
+
+        //封装查询条件
+        List listAll = new ArrayList();
+        //是否结算
+        Map map1 = new HashMap();
+        map1.put("key","selectField_lbf3y920");
+        map1.put("value","未结算");
+        map1.put("type","TEXT");
+        map1.put("operator","eq");
+        map1.put("componentName","selectField");
+        listAll.add(map1);
+
+        //判断模糊搜索内容是否包含中文(项目名称),包含为true,反之为false
+        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
+        Matcher m = p.matcher(xmmcEQ);
+        if (m.find()) {
+            System.out.println("模糊搜索内容【包含中文】,进行【项目名称】查询~~~");
+
+            //项目名称
+            Map map2 = new HashMap();
+            map2.put("key","textField_lajb96s9");
+            map2.put("value",xmmcEQ);
+            map2.put("type","TEXT");
+            map2.put("operator","like");
+            map2.put("componentName","textField");
+            listAll.add(map2);
+        }else {
+            System.out.println("模糊搜索内容【不包含中文】,进行【项目编号】查询~~~");
+            //项目编号
+            Map map3 = new HashMap();
+            map3.put("key","textField_lakr1jwy");
+            map3.put("value",xmmcEQ);
+            map3.put("type","TEXT");
+            map3.put("operator","like");
+            map3.put("componentName","textField");
+            listAll.add(map3);
+        }
+
+        String jsonStr = JSON.toJSONString(listAll);
+        System.out.println("封装的查询参数:" + jsonStr);
+
 
         //list集合装载最终的集合
         List list = new ArrayList();
@@ -218,13 +260,7 @@ public class DingOaServiceImpl implements DingOaService {
                         //宜搭表单ID
                         .setFormUuid("FORM-CP766081DPN573HYBQCWJADYI6SB232G0RKALL")
                         //TODO 查询条件内容
-                        .setSearchCondition("[{\n" +
-                                " \"key\": \"selectField_lbf3y920\",\n" +
-                                " \"value\": \"未结算\",\n" +
-                                " \"type\": \"TEXT\",\n" +
-                                " \"operator\": \"eq\",\n" +
-                                " \"componentName\": \"selectField\"\n" +
-                                "}]")
+                        .setSearchCondition(jsonStr)
 //                        //宜搭应用编码
                         .setAppType("APP_UTWSE5WCXGWTUOEJ9E1D")
                         //宜搭应用秘钥
@@ -727,12 +763,13 @@ public class DingOaServiceImpl implements DingOaService {
     public String createJBXX(String jbrid,
                              String kssj, String jssj,String jbsc,
                              String xmbh, String xmmc,
-                             String jbsy, String djbh){
+                             String jbsy, String djbh, String xqpp){
 
         System.out.println("创建人员ID(钉钉ID):" + jbrid +
                 "开始时间:" + kssj + "结束时间:" + jssj + "加班时长:" + jbsc +
                 "项目编号:" + xmbh + "项目名称:" + xmmc +
-                "加班事由:" + jbsy + "单据编号:" + djbh);
+                "加班事由:" + jbsy + "单据编号:" + djbh +
+                "星期匹配:" + xqpp);
 
         //将连接器传参过来的创建时间字符串转成毫秒级时间戳
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -784,6 +821,9 @@ public class DingOaServiceImpl implements DingOaService {
         //报销状态
         map.put("selectField_lbdkq8rj","未报销");
 
+        //星期选择
+        map.put("textField_lj3xhqv1",xqpp);
+
         String mapJson = JSON.toJSONString(map);
         System.out.println("mapJson:" + mapJson);
 
@@ -1589,4 +1629,39 @@ public class DingOaServiceImpl implements DingOaService {
 
         return "同步【项目预算档案】完成!";
     }
+
+    //延时申请单选择加班日期,匹配获取该日期是周几,填充到固定的文本控件
+    @Override
+    public Map getWeek(String jbsj){
+        System.out.println("获取的传参加班时间:" + jbsj);
+
+        Map map = new HashMap();
+
+        if (jbsj == null || jbsj.equals("")){
+            map.put("week",null);
+        }else {
+            String[] weekDays = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+            //获取当前时间(yyyy-MM-dd)格式
+            String date = jbsj;
+            //转换为Date类型
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date1 = null;
+            try {
+                date1 = sdf.parse(date);
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            //判断日期是星期几
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date1);
+            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+            if (w < 0)
+                w = 0;
+            System.out.println("获取当前时间对应的星期:" + weekDays[w]);
+
+            map.put("week",weekDays[w]);
+        }
+
+        return map;
+    }
 }

+ 24 - 0
src/test/java/com/muzhi/meidiai/APITest/Test1.java

@@ -78,4 +78,28 @@ public class Test1 {
         String TOtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar222.getTime());
         System.out.println("前一个月最后一天零点:" + TOtime);
     }
+
+    //获取日期是周几
+    @Test
+    public void getWeek(){
+
+        String[] weekDays = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+        //获取当前时间(yyyy-MM-dd)格式
+        String date ="2023-06-01";
+        //转换为Date类型
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date date1 = null;
+        try {
+            date1 = sdf.parse(date);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        //判断日期是星期几
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date1);
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        if (w < 0)
+            w = 0;
+        System.out.println(weekDays[w]);
+    }
 }