123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- package com.malk.luyi.controller;
- import cn.hutool.json.JSONArray;
- import cn.hutool.json.JSONObject;
- import com.alibaba.fastjson.JSON;
- import com.malk.delegate.McDelegate;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.common.McR;
- import com.malk.service.aliwork.YDClient;
- import com.malk.service.dingtalk.DDClient;
- import com.malk.utils.UtilMap;
- import com.malk.utils.UtilServlet;
- import lombok.SneakyThrows;
- import lombok.extern.slf4j.Slf4j;
- 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 javax.servlet.http.HttpServletRequest;
- import java.time.*;
- import java.util.*;
- @Slf4j
- @RestController
- @RequestMapping()
- public class KSJCController {
- @Autowired
- private YDClient ydClient;
- @Autowired
- private DDClient dd;
- @Autowired
- private McDelegate mcDelegate;
- @SneakyThrows
- @PostMapping("/JCKQZ")
- //集尘根据员工id获取所在考勤组
- McR insetTHXM(HttpServletRequest request) {
- Map data = UtilServlet.getParamMap(request);
- String FormInstanceId = data.get("FormInstanceId").toString();
- String UserId = data.get("UserId").toString();
- if (UserId != "" && FormInstanceId != "") {
- Map rsp = dd.getusergroup(UserId);
- System.out.println("rsp:" + UserId + ":" + FormInstanceId);
- System.out.println("rsp:" + rsp);
- if (rsp != null) {
- JSONObject jsonObject = new JSONObject(rsp);
- String groupId = jsonObject.get("group_id").toString();
- String name = jsonObject.get("name").toString();
- String FORMID = "textField_lyo89dyq, textField_lyo89dyr";
- //获取到考勤组名称和考勤组id后,写入到宜搭
- ydClient.operateData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formInstanceId(String.valueOf(FormInstanceId))
- .updateFormDataJson(JSON.toJSONString(UtilMap.map(FORMID, name, groupId)))
- .build(), YDConf.FORM_OPERATION.update);
- }
- log.info("rsp:" + rsp);
- System.out.println("rsp:" + rsp);
- }
- return McR.success();
- }
- @SneakyThrows
- @PostMapping("/JCpd")
- //集尘根据员工id判断今天能不能打卡
- McR insetTHXM_TMER() {
- //获取所有人员
- List<Map> dataList = (List<Map>) ydClient.queryData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formUuid("FORM-1F9CC98764D84B64AB1B6A04BEB8CA2BIPQ0")
- // .searchFieldJson(JSON.toJSONString(UtilMap.map("serialNumberField_lt1i52jt",data.get("XMBH").toString())))
- .build(), YDConf.FORM_QUERY.retrieve_search_form).getData();
- //循环获得人员
- for (Map formData : dataList) {
- //人员-字段值
- String FormInstanceId = String.valueOf(formData.get("formInstanceId"));//实例id
- String if_pd = String.valueOf(UtilMap.getMap(formData, "formData").get("selectField_lyo6e0gi"));//是否能打卡
- String Ehtid = String.valueOf(UtilMap.getMap(formData, "formData").get("textField_lyo8p27i"));//考勤人ID
- String grup_id = String.valueOf(UtilMap.getMap(formData, "formData").get("textField_lyo89dyr"));//所在考勤组ID
- Map rsp = new HashMap<>();//用来接反馈值
- if (if_pd.equals("否")) {//如果为否,校验:1.昨天是否请假 2.昨天是否不用打卡
- // 判断昨天是否请假
- LocalDate yesterday = LocalDate.now().minusDays(1);
- // 构造昨天7点00分的时间
- LocalTime time = LocalTime.of(7, 0);
- //将日期和时间结合
- LocalDateTime yesterdaySevenPm = yesterday.atTime(time);
- // 假设我们使用的是系统默认时区,这里为了演示明确转换到UTC,
- // 但在计算时间戳时,如果不指定时区,默认会使用JVM的时区
- ZonedDateTime zdt = yesterdaySevenPm.atZone(ZoneId.systemDefault());
- // 转换为时间戳(毫秒)
- long timestamp_up = zdt.toInstant().toEpochMilli();
- yesterday = LocalDate.now().minusDays(1);
- time = LocalTime.of(23, 0);
- yesterdaySevenPm = yesterday.atTime(time);
- zdt = yesterdaySevenPm.atZone(ZoneId.systemDefault());
- long timestamp_dp = zdt.toInstant().toEpochMilli();
- rsp = dd.getleavestatus(Ehtid, timestamp_up, timestamp_dp);//获得请假请框
- JSONObject jsonObject = new JSONObject(rsp);
- String leave_status = jsonObject.get("leave_status").toString();
- if (!leave_status.equals("[]") && leave_status != null) {
- if_pd = "是";
- }
- //判断昨天是否考勤组的休息日
- rsp = dd.getgroupquery(Ehtid, grup_id);
- jsonObject = new JSONObject(rsp);
- if (!jsonObject.get("work_day_list").toString().equals("[]") && jsonObject.get("work_day_list").toString() != null) {//如果是固定班次就判断昨天是不是休息日
- // 使用逗号分割字符串,得到元素字符串数组
- String[] elements = jsonObject.get("work_day_list").toString().split(",");
- LocalDate today = LocalDate.now();
- LocalDate yesterday_dak = today.minusDays(1);
- DayOfWeek dayOfWeekYesterday = yesterday_dak.getDayOfWeek();
- int nums = 10;
- switch (dayOfWeekYesterday) {
- case SUNDAY:
- nums = 0;
- break;
- case MONDAY:
- nums = 1;
- break;
- case TUESDAY:
- nums = 2;
- break;
- case WEDNESDAY:
- nums = 3;
- break;
- case THURSDAY:
- nums = 4;
- break;
- case FRIDAY:
- nums = 5;
- break;
- case SATURDAY:
- nums = 6;
- break;
- }
- ;
- if (nums != 10) {
- if (elements[nums].equals("[0") || elements[nums].equals("0") || elements[nums].equals("0]")) {
- if_pd = "是";
- }
- }
- }
- System.out.println("work_day_list:" + jsonObject.get("work_day_list").toString());
- }
- if (if_pd.equals("是")) {
- //1222310842
- rsp = dd.inset_hr_group("删除", Ehtid, "1222310842");
- //如果能打卡,就把人员加入到考勤组
- rsp = dd.inset_hr_group("新增", Ehtid, grup_id);
- JSONObject jsonObject = new JSONObject(rsp);
- }
- if (if_pd.equals("否")) {
- //如果不能打卡,就把人员踢出考勤组
- rsp = dd.inset_hr_group("删除", Ehtid, grup_id);
- //1222310842
- rsp = dd.inset_hr_group("新增", Ehtid, "1222310842");
- }
- // 执行完加入,把校验状态改成 否
- ydClient.operateData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formInstanceId(String.valueOf(FormInstanceId))
- .updateFormDataJson(JSON.toJSONString(UtilMap.map("selectField_lyo6e0gi", "否")))
- .build(), YDConf.FORM_OPERATION.update);
- }
- return McR.success();
- }
- @SneakyThrows
- @PostMapping("/insetHR_kaoqin")
- //集尘根据员工id获取所在考勤组
- McR insetHR_kaoqin(HttpServletRequest request) {
- Map data = UtilServlet.getParamMap(request);
- String Ehtid = data.get("Ehtid").toString();
- String grup_id = data.get("grup_id").toString();
- Map rsp = dd.inset_hr_group("新增", Ehtid, grup_id);
- JSONObject jsonObject = new JSONObject(rsp);
- return McR.success();
- }
- @SneakyThrows
- @PostMapping("/insetJie_Duan")
- //根据项目和机台信息维护阶段数据。
- McR insetJie_Duan(HttpServletRequest request) {
- Map data = UtilServlet.getParamMap(request);
- String formInstanceId = data.get("formInstanceId").toString();
- if (!formInstanceId.equals("")) {
- List<Map> dataList_XM = (List<Map>) ydClient.queryData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formUuid("FORM-A6153EC780554425A1A7451548F9D405PMSN")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("formInstanceId", formInstanceId)))
- .build(), YDConf.FORM_QUERY.retrieve_search_form).getData();
- if (dataList_XM != null && dataList_XM.size() > 0) {
- for (Map formData_XM : dataList_XM) {
- System.out.println("dsfasdf:" + formData_XM.get("formInstanceId").toString());
- if (formData_XM.get("formInstanceId").toString().equals(formInstanceId)) {
- String XMMC = String.valueOf(UtilMap.getMap(formData_XM, "formData").get("textField_lx1iumdr"));
- String XMBH = String.valueOf(UtilMap.getMap(formData_XM, "formData").get("textField_lx1irnyo"));
- String sdfa = String.valueOf(UtilMap.getMap(formData_XM, "formData").get("tableField_lx1iumdu")); //textField_ly6lt3dm -> 111右套
- JSONArray jsonArray = new JSONArray(sdfa);
- if (jsonArray != null && jsonArray.size() > 0) {
- for (int i = 0; i < jsonArray.size(); i++) {
- // 获取每个JSONObject
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- // 从JSONObject中获取你需要的字段
- String JTXX = (String) jsonObject.get("textField_ly6lt3dm");
- if (!XMBH.equals("") && !XMBH.equals("") && !JTXX.equals("")) {
- List<Map> dataList = (List<Map>) ydClient.queryData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formUuid("FORM-CA8ABC2353B94262BC02D4C5332273EEHRU2")//完成阶段配置
- // .searchFieldJson(JSON.toJSONString(UtilMap.map("serialNumberField_lt1i52jt",data.get("XMBH").toString())))
- .build(), YDConf.FORM_QUERY.retrieve_search_form).getData();
- //循环阶段数据,并写入限制完成表
- for (Map formData : dataList) {
- String JDMC = String.valueOf(UtilMap.getMap(formData, "formData").get("textField_lx31so5x"));//阶段名称
- String LX = String.valueOf(UtilMap.getMap(formData, "formData").get("textField_lxy17mef"));//类型
- String ZB = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_lxsaen1q"));//占比
- String ZZB = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_lxsaen1r"));//占总比
- String XH = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_lx31so5r"));//序号
- String ZZBZ = String.valueOf(UtilMap.getMap(formData, "formData").get("numberField_lxy17mee"));//#占总比值
- String[] sdfassss = new String[]{String.valueOf(UtilMap.getMap(formData, "formData").get("departmentSelectField_lyy1hoyr_id"))};
- String ZD = "textField_m00ovvk4, textField_m00ovvk3, textField_m00wsnjk, textField_lx31so5x, textField_lxy17mef, numberField_lxsaen1q, numberField_lxsaen1r, numberField_lx31so5r, numberField_lxy17mee, radioField_m00ovvk5, departmentSelectField_lyy1hoyr";
- if (i>0 && (LX.equals("设计达成率") || LX.equals("电气达成率") || JDMC.equals("下单") || JDMC.equals("询价"))){
- }else {
- String tquid = ydClient.operateData(YDParam.builder()
- .appType("APP_X89Y00KKTG36B8JYGZVR")
- .systemToken("QIA66091HJPLRHM3AUFJLCN24CUP2VNMO41XLW4")
- .formUuid("FORM-9A3C0361CC6F43E2AEB6F66BA6B4F87DRHP5")
- .formDataJson(JSON.toJSONString(UtilMap.map(ZD, XMBH, XMMC, JTXX, JDMC, LX, ZB, ZZB, XH, ZZBZ, "否", sdfassss[0].toString())))//这里
- .build(), YDConf.FORM_OPERATION.create).toString();////
- }
- }
- }
- }
- }
- }
- }
- }
- }
- return McR.success();
- }
- }
|