Procházet zdrojové kódy

集晨写假期判断打卡数据,打卡数据写入钉钉考勤

CRK před 9 měsíci
rodič
revize
f1b5c4aecb

+ 197 - 5
mjava-luyi/src/main/java/com/malk/luyi/controller/KSJCController.java

@@ -14,11 +14,9 @@ import com.malk.utils.UtilMap;
 import com.malk.utils.UtilServlet;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.time.*;
@@ -163,6 +161,7 @@ public class KSJCController {
                         .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
                         .formUuid("FORM-0FFD9FC6D55A4D72AB588D38CD3685BFKQDX")
                         .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lywrs8w8, textField_m062afy7", Ehtid,yesterday)))
+                        .instanceStatus("running")
                          .approvedResult("agree")//流程结束时的审批结论agree -> 通过   disagree -> 拒绝
                         .build(), YDConf.FORM_QUERY.retrieve_search_process).getData();
                 if (dataList_bgxx.size() > 0) {
@@ -297,9 +296,202 @@ public class KSJCController {
         String device_name = data.get("device_name").toString();
         String device_id = data.get("device_id").toString();
         String user_check_time = data.get("user_check_time").toString();
-        dd.updateupload(userid, device_name,device_id,user_check_time);
+        dd.updateuploadss(userid, device_name,device_id,user_check_time);
         return McR.success();
     }
+    @SneakyThrows
+    @GetMapping("/cs")
+//根据项目-写入设计阶段数据
+    public McR insetTHXM_TMER1() {
+
+        List<Map> dataList = (List<Map>) ydClient.queryData(YDParam.builder()
+                .appType("APP_X89Y00KKTG36B8JYGZVR")
+                .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
+                .formUuid("FORM-A6153EC780554425A1A7451548F9D405PMSN")
+                .build(), YDConf.FORM_QUERY.retrieve_search_form).getData();
+        for (Map formData : dataList) {
+            String SFSJJD = String.valueOf(UtilMap.getMap(formData, "formData").get("selectField_m024f7ot"));//是否设计进度
+
+            String SJJD = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_m024f7os"));//设计进度
+
+            String SJYWCJD = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_m024f7ou")); //设计已完成进度
+
+            String XMBH = String.valueOf(UtilMap.getMap(formData, "formData").get("textField_lx1irnyo")); //项目编号
+
+            try {
+
+                // 将字符串转换为数字
+
+                Double designProgress = Double.parseDouble(SJJD);
+
+                Double completedDesignProgress = Double.parseDouble(SJYWCJD);
+
+                // 检查条件是否满足
+
+                if ("是".equals(SFSJJD) && designProgress > completedDesignProgress) {
+
+                    // 构建查询参数
+
+                    JSONObject searchCondition = new JSONObject();
+
+                    searchCondition.put("textField_lx1irnyo", XMBH);
+
+                    List<Map> list1 = (List<Map>) ydClient.queryData(
+
+                            YDParam.builder()
+
+                                    .appType("APP_X89Y00KKTG36B8JYGZVR")
+
+                                    .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
+
+                                    .formUuid("FORM-F43D52E34FCE429582DD351FDFF54F08HM12")
+
+                                    .searchCondition(JSON.toJSONString(searchCondition))
+
+                                    .build(),
+
+                            YDConf.FORM_QUERY.retrieve_list).getData();
+
+                    if (!list1.isEmpty()) {
+
+                        Map map = list1.get(0);
+
+                        JSONObject jsonObject = new JSONObject(map.get("formData"));
+
+                        String instanceId = (String) jsonObject.get("textField_lx1irnyo");
+
+                        List<Map> dataList_bgxx = (List<Map>) ydClient.queryData(YDParam.builder()
+
+                                .appType("APP_X89Y00KKTG36B8JYGZVR")
+
+                                .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
+
+                                .formUuid("FORM-F64808AC9EEB468789B94DA8C9B55FDEFNI7")
+
+                                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lx1irnyo", instanceId)))
+
+                                .instanceStatus("RUNNING")
+
+//                                .approvedResult("agree")
+
+                                .build(), YDConf.FORM_QUERY.retrieve_search_process).getData();
+
+                        //如果有数据,则跳过,否则新建流程
+
+                        if (dataList_bgxx!=null && dataList_bgxx.size()>0){
+
+                            log.info("dataList_bgxx:{}", dataList_bgxx);
+
+                            continue;
+
+                        }else {
+
+                            List<Map> list2 = (List<Map>) ydClient.queryData(YDParam.builder()
+
+                                    .formUuid("FORM-A6153EC780554425A1A7451548F9D405PMSN")
+
+                                    .appType("APP_X89Y00KKTG36B8JYGZVR")
+
+                                    .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
+
+                                    .searchCondition(
+
+                                            com.alibaba.fastjson.JSONObject.toJSONString(UtilMap.map("textField_lx1irnyo",instanceId))
+
+                                    ).build(), YDConf.FORM_QUERY.retrieve_list).getData();
+
+                            if(list2!=null){
+
+                                Map formData2 = (Map) list2.get(0).get("formData");
+
+                                String formInstanceId = String.valueOf(list2.get(0).get("formInstanceId"));
+
+                                String khmcjsonString = formData2.get("associationFormField_lx1iumdq_id").toString();
+
+                                String sbmcjsonString = formData2.get("associationFormField_lx1iumds_id").toString();
+
+                                String XMH= String.valueOf(formData2.get("textField_lx1irnyo"));//项目号
+
+                                String khmcTitle = getTitle(khmcjsonString);//客户名称
+
+                                String sbmcTitle = getTitle(sbmcjsonString);//设备名称
+
+                                String XMMC= String.valueOf(formData2.get("textField_lx1iumdr"));//项目名称
+
+                                String  XMJL = String.valueOf(formData2.get("employeeField_lx1iumdt_id"));//项目经理
+
+                                String  SJXMFZR = String.valueOf(formData2.get("employeeField_lyy2gpfq_id"));//设计项目负责人
+
+                                String jsonArray = SJXMFZR.replace("'", "\"");
+
+                                JSONArray element = new JSONArray(jsonArray);
+
+                                // 获取数组中的第一个元素
+
+                                String userId = String.valueOf(element.get(0));
+
+                                String  ZD="associationFormField_lxipi7ri, textField_lx1irnyo, textField_lxipi7rj, textField_lxipi7rk, employeeField_lx1iumdt, employeeField_lz251up0, textField_lxis9v4x";
+
+
+
+                                ydClient.operateData(YDParam.builder()
+
+                                        .appType("APP_X89Y00KKTG36B8JYGZVR")
+
+                                        .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
+
+                                        .formUuid("FORM-F64808AC9EEB468789B94DA8C9B55FDEFNI7")
+
+                                        .userId(userId)
+
+                                        .formDataJson(JSON.toJSONString(UtilMap.map(ZD, getAss(XMMC,formInstanceId), XMH, khmcTitle, sbmcTitle, XMJL, SJXMFZR, XMMC)))
+
+                                        .build(), YDConf.FORM_OPERATION.start).toString();////
+
+                            }
+
+                        }
+
+                    } else {
+
+                        System.out.println("没有找到符合条件的记录。");
+
+                    }
+
+                }
+
+            } catch (NumberFormatException e) {
+
+                System.err.println("无法解析进度值:" + e.getMessage());
+
+            }
+
+        }
+
+        return McR.success("success");
+
+    }
+
+    private Object getAss(String title,String id){
+
+        return Arrays.asList(UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle","APP_X89Y00KKTG36B8JYGZVR","FORM-A6153EC780554425A1A7451548F9D405PMSN","receipt",id,title,""));
+
+    }
+
+
+
+    private String getTitle(String jsonString){
+
+        String supplierJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));//新供应商(关联表单)
+
+        List<Map> supplier =(List<Map>) com.alibaba.fastjson.JSONArray.parse(supplierJsonString);
+
+        String title = String.valueOf(supplier.get(0).get("title"));
+
+        return title;
+
+    }
+
 
 
 }

+ 16 - 0
mjava-luyi/src/main/java/com/malk/luyi/controller/KSJC_timer.java

@@ -47,4 +47,20 @@ public class KSJC_timer {
         }
 
     }
+
+
+
+    //    @Scheduled(cron = "0 5 7 * * ?")
+    public void LegalEntityList1(){
+        log.info("k");
+        try{
+            legalEntityService.insetTHXM_TMER1();
+            System.out.println("集晨判断,同步完成");
+        }catch (Exception e){
+            //记录错误信息
+            e.printStackTrace();
+        }
+
+    }
+
 }

+ 1 - 1
mjava/src/main/java/com/malk/service/dingtalk/DDClient.java

@@ -41,6 +41,6 @@ public interface DDClient {
     Map getleavestatus(String userid_list,long start_time,long end_time);// 询指定企业下指定用户在指定时间段内每天的请假状态和请假时长信息。
 
     Map getgroupquery(String op_user_id,String  group_id );//调用本接口,可获取考勤组名称、考勤组主负责人和考勤类型等信息。
-    Map updateupload(String userid,String  device_name,String device_id,String user_check_time );//上传打卡记录。
+    Map updateuploadss(String userid,String  device_name,String device_id,String user_check_time );//上传打卡记录。
 }
 

+ 2 - 1
mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient.java

@@ -197,7 +197,7 @@ public class DDImplClient implements DDClient {
    };
 
     @Override
-    public Map updateupload(String userid, String device_name, String device_id, String user_check_time) {
+    public Map updateuploadss(String userid, String device_name, String device_id, String user_check_time) {
         Map param = new HashMap();
         param.put("appkey", "dingapqprcbwk5bvahc1");
         param.put("appsecret", "V_YgI8ZYx3lSf_Fw3qNH6k-U9umKhxglpPrnPkdb73CVrXWFme_SwUCdQxR2poFi");
@@ -214,4 +214,5 @@ public class DDImplClient implements DDClient {
         return  (Map) DDR.doPost("https://oapi.dingtalk.com/topapi/attendance/record/upload", null, DDConf.initTokenParams(accessToken), param_post ).getResult();
 
     }
+
 }