Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

“lqy před 1 měsícem
rodič
revize
fbceef506d

+ 12 - 8
mjava-fenggefushi/src/main/java/com/malk/fenggefushi/controller/HeiHuOrderController.java

@@ -98,15 +98,19 @@ public class HeiHuOrderController {
     @PostMapping("/test12")
     @Scheduled(cron = "0 */5 * * * ?")
     McR purchaseSchedule(){
-        return McR.success(huOrderService.purchaseSchedule());
-    }
+        List<Map<String, Object>> dataList = huOrderService.queryAllPurchase();
 
-    /*todo:定时抓取修改采购订单*/
-    @SneakyThrows
-    @PostMapping("/testUpdate")
-    @Scheduled(cron = "0 3,8 * * * ?")
-    McR purchaseUpdateSchedule(){
-        return McR.success(huOrderService.purchaseUpdateSchedule());
+        return McR.success(huOrderService.purchaseSchedule(dataList));
     }
 
+//    /*todo:定时抓取修改采购订单*/
+//    @SneakyThrows
+//    @PostMapping("/testUpdate")
+//    @Scheduled(cron = "0 3,8 * * * ?")
+//    McR purchaseUpdateSchedule(){
+//        log.info("开始执行定时抓取修改后的采购订单数据");
+//        System.out.println("开始执行定时抓取修改后的采购订单数据");
+//        return McR.success(huOrderService.purchaseUpdateSchedule());
+//    }
+
 }

+ 6 - 1
mjava-fenggefushi/src/main/java/com/malk/fenggefushi/service/HeiHuOrderService.java

@@ -7,6 +7,7 @@ import com.malk.server.common.McR;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -42,7 +43,11 @@ public interface HeiHuOrderService {
     String getProductColor(@RequestParam List list) throws JacksonException;
 
     /*采购订单定时同步*/
-    McR purchaseSchedule() throws JacksonException;
+    McR purchaseSchedule(List<Map<String, Object>> dataList) throws JacksonException;
+
+    List<Map<String, Object>> queryAllPurchase();
+
     McR purchaseUpdateSchedule() throws JacksonException;
 
+
 }

+ 124 - 72
mjava-fenggefushi/src/main/java/com/malk/fenggefushi/service/Impl/HeiHuOrderServiceImpl.java

@@ -5,13 +5,10 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JacksonException;
-import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.malk.fenggefushi.entity.Order;
 import com.malk.fenggefushi.service.HeiHuOrderService;
-import com.malk.fenggefushi.test.test;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.aliwork.YDSearch;
@@ -23,7 +20,6 @@ import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import org.checkerframework.checker.fenum.qual.SwingBoxOrientation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,7 +28,6 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -432,8 +427,8 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
                 row.put("textField_mhsj6gtq",productDescription);//todo:产品描述
                 JSONArray array1 = detail.getJSONArray("customFieldValues");
                 color = array1.stream()
-                                .map(obj -> (JSONObject) obj)
-                                        .filter(item -> item.getIntValue("fieldId") == 82259)
+                        .map(obj -> (JSONObject) obj)
+                        .filter(item -> item.getIntValue("fieldId") == 82259)
                         .map(item -> item.getString("value"))
                         .findFirst()
                         .orElse(null);
@@ -1002,76 +997,47 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
         return colorValue;
     }
 
+    @SneakyThrows
     @Override
-    public McR purchaseSchedule() throws JacksonException {
+    public McR purchaseSchedule(List<Map<String, Object>> dataList) {
         HashMap header = new HashMap();
         header.put("X-AUTH", HeiHuAccessToken().getData().toString());
         header.put("Content-Type", "application/json");
         String targetValue = "合同确认,提交审批";
-//        String targetValue1 = "合同修改,修改审批";
-        Map<String, List<String>> purchaserOrderCodes = new HashMap<>();
-
-        int pageNum = 1;
-        int pageSize = 100;
-        boolean hasMoreData = true;
-
-        while (hasMoreData) {
-            HashMap body = new HashMap();
-            Map<String, Integer> page = new HashMap<>();
-            page.put("pageNum", pageNum);
-            page.put("pageSize", pageSize);
-            List<Integer> status = Arrays.asList(1);
-            body.put("page", page);
-            body.put("status", status);
-
-            String doPost = UtilHttp.doPost("https://liteweb.blacklake.cn/api/dytin/external/purchaseOrder/queryList2", header, null, body);//查询采购订单
-
-            ObjectMapper mapper = new ObjectMapper();
-            Map<String, Object> response = mapper.readValue(doPost, Map.class);
+        String targetValueUpdate = "合同修改,修改审批";
 
-            if (!"01000000".equals(response.get("code"))) {
-                System.out.println("请求失败: " + response.get("msg"));
-                break;
-            }
+        // 定义一个字符串集合,默认包含两个值:"默认值1"、"默认值2"
+        List<String> targetValues = new ArrayList() {{
+            add("合同确认,提交审批");
+            add("合同修改,修改审批");
+        }};
+        Map<String, List<String>> purchaserOrderCodes = new HashMap<>();
 
-            List<Map<String, Object>> dataList = (List<Map<String, Object>>) response.get("data");
-            if (dataList != null) {
-                for (Map<String, Object> item : dataList) {
-                    String purchaserName = (String) item.get("purchaserName");
-                    if (purchaserName == null) purchaserName = "未知";
 
-                    boolean hasTargetStatus = false;
-                    List<Map<String, Object>> customFieldValues = (List<Map<String, Object>>) item.get("customFieldValues");
-                    if (customFieldValues != null) {
-                        for (Map<String, Object> field : customFieldValues) {
-//                            if (targetValue.equals(field.get("value") ) || targetValue1.equals(field.get("value"))) {
-                            if (targetValue.equals(field.get("value"))) {
-                                hasTargetStatus = true;
-                                break;
+        if (ObjectUtil.isNotNull(dataList) && dataList.size() > 0) {
+            for (Map<String, Object> item : dataList) {
+                String purchaserName = (String) item.get("purchaserName");
+                if (purchaserName == null) purchaserName = "未知";
+
+//                boolean hasTargetStatus = false;
+                List<Map<String, Object>> customFieldValues = (List<Map<String, Object>>) item.get("customFieldValues");
+                if (customFieldValues != null) {
+                    for (Map<String, Object> field : customFieldValues) {
+                        if (targetValue.equals(field.get("value") ) || targetValueUpdate.equals(field.get("value"))) {
+                            System.out.println("合同状态类型:"+field.get("value"));
+//                        if (targetValue.equals(field.get("value"))) {
+//                            hasTargetStatus = true;
+                            String orderCode = (String) item.get("orderCode");
+                            if (orderCode != null) {
+                                purchaserOrderCodes.computeIfAbsent(purchaserName + "-" + field.get("value"), k -> new ArrayList<>()).add(orderCode);
                             }
-                        }
-                    }
-
-                    if (hasTargetStatus) {
-                        String orderCode = (String) item.get("orderCode");
-                        if (orderCode != null) {
-                            purchaserOrderCodes.computeIfAbsent(purchaserName, k -> new ArrayList<>()).add(orderCode);
+                            break;
                         }
                     }
                 }
 
-                hasMoreData = dataList.size() >= pageSize;
-            } else {
-                hasMoreData = false;
             }
 
-            pageNum++;
-
-            try {
-                Thread.sleep(200);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
         }
 
         // 输出所有采购员的待审批订单
@@ -1089,19 +1055,20 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
 
             // 输出每个采购员的情况
             for (Map.Entry<String, List<String>> entry : purchaserOrderCodes.entrySet()) {
-                String purchaserName = entry.getKey();
+                String[] split = entry.getKey().split("-");
+                String purchaserName = split[0];
+                String type = split[1];
                 List<String> orderCodes = entry.getValue();
                 int orderCount = orderCodes.size();
 
                 System.out.println("采购员: " + purchaserName);
                 System.out.println("待审批订单数量: " + orderCount);
+                System.out.println("审批类型: " + type);
 
                 if (orderCount > 1) {
                     System.out.println("⚠️  注意:该采购员有 " + orderCount + " 个待审批订单");
                 }
-
                 System.out.println("订单编号: " + String.join(", ", orderCodes));
-                System.out.println();
             }
 
             // 按订单数量排序输出
@@ -1109,8 +1076,11 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
             purchaserOrderCodes.entrySet().stream()
                     .sorted((e1, e2) -> Integer.compare(e2.getValue().size(), e1.getValue().size()))
                     .forEach(entry -> {
-                        String purchaserName = entry.getKey();
+                        String[] split = entry.getKey().split("-");
+                        String purchaserName = split[0];
+                        String type = split[1];
                         List<String> orderCodes = entry.getValue();
+
                         System.out.println(purchaserName + " (" + orderCodes.size() + "个): " +
                                 String.join(", ", orderCodes));
 
@@ -1128,13 +1098,16 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
 
                         // ========== 修改点2:为每个订单创建临时存储列表 ==========
                         // 用于暂存每个订单的明细数据,等计算出毛利率后再决定添加到哪个列表
-                        Map<String, List<Map<String, String>>> tempOrderDataMap = new HashMap<>();
+//                        Map<String, List<Map<String, String>>> tempOrderDataMap = new HashMap<>();
                         // 用于存储每个订单的汇总数据,用于计算毛利率
-                        Map<String, Map<String, Double>> orderSummaryForMlv = new HashMap<>();
+//                        Map<String, Map<String, Double>> orderSummaryForMlv = new HashMap<>();
+                        List<String> oldIds = new ArrayList<>();
 
                         for (String orderCode : orderCodes) {
                             System.out.println("正在处理订单: " + orderCode);
-
+                            if (type.equals(targetValueUpdate)){
+                                oldIds.add(orderCode);
+                            }
                             // ========== 修改点3:为当前订单创建临时数据存储 ==========
                             List<Map<String, String>> currentOrderRows = new ArrayList<>();
                             double orderTotalSalesAmount = 0.0;
@@ -1318,6 +1291,33 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
                                 System.out.println("订单 " + orderCode + " 归类到低毛利率审批(<15%)");
                             }
                         }
+                        List<Map<String, Object>> oldList = new ArrayList<>();
+                        if (type.equals(targetValueUpdate)){
+                            oldIds.forEach(h->{
+                                List<Map> oldDataList = ydService.queryFormData_all(YDParam.builder()
+                                        .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
+                                        .formUuid("FORM-278D56A5065641F8AC95BCA0A8CE8447D8QY")
+                                        .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_mmx9gyct", h)))
+                                        .build());
+                                if (ObjectUtil.isNotNull(oldDataList) && oldDataList.size()>0){
+                                    List<Map> sonList = ydService.queryDetails(YDParam.builder()
+                                            .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
+                                            .formInstanceId(UtilMap.getString(oldDataList.get(0),"textField_mmx9gycu"))
+                                            .formUuid("FORM-3A54B12BE3D241218A75242B935F2987YWV2")
+                                            .tableFieldId("tableField_ml6g7k5d")
+                                            .build());
+                                    if (ObjectUtil.isNotNull(sonList) && sonList.size() > 0){
+                                        sonList.forEach(s->{
+                                            Map<String, Object> map = new HashMap<>();
+                                            TABLEFIELD_ENUM.forEach((k,v)->{
+                                                map.put(v,UtilMap.getString(s,k));
+                                            });
+                                            oldList.add(map);
+                                        });
+                                    }
+                                }
+                            });
+                        }
 
                         // ========== 修改点8:分别处理高低毛利率的审批 ==========
 
@@ -1331,6 +1331,7 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
                             //组装数据塞到采购审批单号明细
                             List<Map<String, String>> orderSummaryListHigh = calculateOrderSummary(tabledataHigh);
                             formdataHigh.put("tableField_ml7ch2pj", orderSummaryListHigh);
+                            formdataHigh.put("tableField_mmx6gata", oldList);
 
                             //数值统计毛利率
                             int szHigh = 0;
@@ -1365,6 +1366,7 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
 
                             //组装数据塞到采购明细表
                             formdataLow.put("tableField_ml6g7k5d", tabledataLow);
+                            formdataLow.put("tableField_mmx6gata", oldList);
 
                             //组装数据塞到采购审批单号明细
                             List<Map<String, String>> orderSummaryListLow = calculateOrderSummary(tabledataLow);
@@ -1403,6 +1405,57 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
 
         return null;
     }
+
+    @SneakyThrows
+    @Override
+    public List<Map<String, Object>> queryAllPurchase() {
+        HashMap header = new HashMap();
+        header.put("X-AUTH", HeiHuAccessToken().getData().toString());
+        header.put("Content-Type", "application/json");
+        boolean hasMoreData = true;
+        int pageNum = 1;
+        int pageSize = 100;
+        List<Map<String, Object>> dataList = new ArrayList<>();
+        while (hasMoreData) {
+            HashMap body = new HashMap();
+            Map<String, Integer> page = new HashMap<>();
+            page.put("pageNum", pageNum);
+            page.put("pageSize", pageSize);
+            List<Integer> status = Arrays.asList(1);
+            body.put("page", page);
+            body.put("status", status);
+
+            String doPost = UtilHttp.doPost("https://liteweb.blacklake.cn/api/dytin/external/purchaseOrder/queryList2", header, null, body);//查询采购订单
+            log.info("header:",header.toString());
+            System.out.println("header:" + header.toString());
+            ObjectMapper mapper = new ObjectMapper();
+            Map<String, Object> response = mapper.readValue(doPost, Map.class);
+
+            if (!"01000000".equals(response.get("code"))) {
+                System.out.println("请求失败: " + response.get("msg"));
+                break;
+            }
+
+//            dataList.addAll(UtilMap.getList(response,"data"));
+            List<Map<String, Object>> mapList = (List<Map<String, Object>>) response.get("data");
+            if (ObjectUtil.isNotNull(mapList) && mapList.size() > 0){
+                dataList.addAll(mapList);
+
+                hasMoreData = mapList.size() >= pageSize;
+            } else {
+                hasMoreData = false;
+            }
+            pageNum++;
+        }
+
+        try {
+            Thread.sleep(200);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        return dataList;
+    }
+
     @Override
     public McR purchaseUpdateSchedule() throws JacksonException {
         HashMap header = new HashMap();
@@ -1414,7 +1467,6 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
         int pageNum = 1;
         int pageSize = 100;
         boolean hasMoreData = true;
-        boolean isUpdate = false;
 
         while (hasMoreData) {
             HashMap body = new HashMap();
@@ -1431,7 +1483,7 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
             Map<String, Object> response = mapper.readValue(doPost, Map.class);
 
             if (!"01000000".equals(response.get("code"))) {
-                System.out.println("请求失败: " + response.get("msg"));
+                log.info("请求失败: {}" , response.get("msg"));
                 break;
             }
 
@@ -1817,7 +1869,7 @@ public class HeiHuOrderServiceImpl implements HeiHuOrderService {
                                 }
                             });
                             //组装数据塞到采购明细表
-                            formdataHigh.put("tableField_mmx6gata", oldList);
+                            formdataLow.put("tableField_mmx6gata", oldList);
                             //组装数据塞到采购明细表
                             formdataLow.put("tableField_ml6g7k5d", tabledataLow);
 

+ 2 - 1
mjava-huagao/src/main/resources/application-dev.yml

@@ -68,7 +68,8 @@ kingdee:
 
 eqb:
   downloadFilePath: C:\\Users\\EDY\\Desktop\\项目\\华高\\电子签\\files\\
-  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+#  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+  signatoryPsnId: 95945af8f0864d15bf186e7808693176 #签署人 俞静妙
 
 #金蝶方开发服务
 kd:

+ 2 - 1
mjava-huagao/src/main/resources/application-prod.yml

@@ -68,7 +68,8 @@ kingdee:
 
 eqb:
   downloadFilePath: /home/server/huagao/files/
-  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+#  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+  signatoryPsnId: 95945af8f0864d15bf186e7808693176 #签署人 俞静妙
 
 #金蝶方开发服务
 kd:

+ 2 - 1
mjava-huagao/src/main/resources/application-prod2.yml

@@ -69,7 +69,8 @@ kingdee:
 
 eqb:
   downloadFilePath: /home/server/huagao/files/
-  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+#  signatoryPsnId: c3fb35cb7e574baf97ed9f8917c6327b #签署人 陈伟东
+  signatoryPsnId: 95945af8f0864d15bf186e7808693176 #签署人 俞静妙
 
 #金蝶方开发服务
 kd:

+ 12 - 10
mjava-huagao/src/test/java/com/malk/huagao/EqbTest.java

@@ -20,7 +20,7 @@ public class EqbTest {
     public static void main(String[] args) {
 
 
-        String responseBody = "[{\"code\":200,\"msg\":\"销售订单编码:DD202601280002单据同步成功\",\"data\":{\"djbh\":\"DD202601280002\"}}]";
+        /*String responseBody = "[{\"code\":200,\"msg\":\"销售订单编码:DD202601280002单据同步成功\",\"data\":{\"djbh\":\"DD202601280002\"}}]";
         System.out.println("响应内容: " + responseBody);
 
         try {
@@ -34,7 +34,9 @@ public class EqbTest {
 
         } catch (Exception e) {
             System.out.println("解析JSON失败: " + e.getMessage());
-        }
+        }*/
+
+
         // 应用ID
         /*String appId = "7439093376";
         // 应用密钥(AppSecret)
@@ -43,12 +45,12 @@ public class EqbTest {
         String host = "https://smlopenapi.esign.cn";*/
 
 
-//        // 应用ID
-//        String appId = "5112033166";
-//        // 应用密钥(AppSecret)
-//        String appKey = "c0641a1f648a68a7014be5a490f0159a";
-//        // e签宝接口调用域名(正式环境)
-//        String host = "https://openapi.esign.cn";
+        // 应用ID
+        String appId = "5112033166";
+        // 应用密钥(AppSecret)
+        String appKey = "c0641a1f648a68a7014be5a490f0159a";
+        // e签宝接口调用域名(正式环境)
+        String host = "https://openapi.esign.cn";
 
 
         //步骤1:上传本地文件并转成HTML格式
@@ -69,7 +71,7 @@ public class EqbTest {
         //正式环境模板id 采购订单模板:a0827f8946994ebfbed7f44e6b8a6ed8
 
         //步骤4:制作含动态表格控件的HTML模板 访问【获取制作合同模板页面】接口返回的创建文件模板页面链接(docTemplateCreateUrl参数值),并在页面中拖动【动态表格】控件来制作模板,若链接失效,调用【获取编辑合同模板页面】接口
-//        getDocTemplateEditUrl(appId,appKey,host,"8b7fef2257bc4093ada330dbf7c874c5");
+//        getDocTemplateEditUrl(appId,appKey,host,"6a23f76742d74b858cdc2259a5d5c32f");
 
 
         //步骤5:获取 HTML 模板中控件ID和控件Key
@@ -96,7 +98,7 @@ public class EqbTest {
 
 //        getOrgUserInfo(appId,appKey,host,"00739a62731c498a8ecf477bf79efc54");
 
-//        getOrgMember(appId,appKey,host,"a5ec8fb7d8cc4276bd486824df0ec640");
+        getOrgMember(appId,appKey,host,"a5ec8fb7d8cc4276bd486824df0ec640");
 
 
         //获取签署地址

+ 5 - 1
mjava-mc/src/main/java/com/malk/mc/service/impl/McYdServiceImpl.java

@@ -272,8 +272,8 @@ public class McYdServiceImpl implements McYdService {
 
     @Override
     public McR multiLocationOutbound(Map map) {
-
         String formInstId = UtilMap.getString(map,"formInstId");//实例id(出库单)
+        log.info("出库单实例id:" + formInstId);
         Map d = ydClient.queryData(YDParam.builder().formInstId(formInstId)
                 .formUuid("FORM-3208DFE5463549A9A57FB94358A75E80PV5F")
                 .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
@@ -347,6 +347,7 @@ public class McYdServiceImpl implements McYdService {
     @Override
     public McR WarehouseStorage(Map map) {
         String formInstId = UtilMap.getString(map,"formInstId");//实例id(入库单)
+        log.info("入库单实例id:"+formInstId);
         Map d = ydClient.queryData(YDParam.builder().formInstId(formInstId)
                 .formUuid("FORM-6DED8EB4CF0446DB8841C7798E106F2886OH")
                 .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
@@ -422,6 +423,7 @@ public class McYdServiceImpl implements McYdService {
     @Override
     public McR ProductReturn(Map map) {
         String formInstId = UtilMap.getString(map,"formInstId");//实例id(退货单)
+        log.info("退货单实例id:"+formInstId);
         Map data = ydClient.queryData(YDParam.builder().formInstId(formInstId)
                 .formUuid("FORM-E40A23253F2F43FEAF0E40F274A67B34OQC9")
                 .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
@@ -500,6 +502,7 @@ public class McYdServiceImpl implements McYdService {
     @Override
     public McR allocateTransfer(Map map) {
         String formInstId = UtilMap.getString(map,"formInstId");//实例id(调拨流程)
+        log.info("调拨流程实例id:"+formInstId);
         Map data = ydClient.queryData(YDParam.builder().formInstId(formInstId)
                 .formUuid("FORM-C6360F0CA28543E8BA99A1DDCF90964FSJEM")
                 .appType("APP_GNQ1RGK68X4JNZUEU8RQ")
@@ -642,6 +645,7 @@ public class McYdServiceImpl implements McYdService {
     @Override
     public McR goodsInandOut(Map map) {
         String formInstId = UtilMap.getString(map,"formInstId");//实例id(进货退货流程)
+        log.info("进货退货流程实例id:"+formInstId);
         Map data = ydClient.queryData(YDParam.builder().formInstId(formInstId)
                 .formUuid("FORM-0D92610ED4AA4B81988CA190EE9A119EX37F")
                 .appType("APP_GNQ1RGK68X4JNZUEU8RQ")

+ 27 - 0
mjava-ounuo/src/main/java/com/malk/tuosi/entity/PersonalMonthlySuccessrate.java

@@ -0,0 +1,27 @@
+package com.malk.tuosi.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 用户实体类
+ * 注意:实体类使用驼峰命名,对应数据库的下划线命名
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PersonalMonthlySuccessrate {
+    /*任务id*/
+    private String taskId;
+    /*任务名称*/
+    private String taskName;
+    /*任务类型*/
+    private String taskType;
+    /*设计人员*/
+    private String designPerson;
+    /*客户*/
+    private String customer;
+    /*时间*/
+    private String time;
+}

+ 9 - 0
mjava-ounuo/src/main/java/com/malk/tuosi/mapper/PersonalMonthlySuccessrateMapper.java

@@ -0,0 +1,9 @@
+package com.malk.tuosi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.malk.tuosi.entity.PersonalMonthlySuccessrate;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PersonalMonthlySuccessrateMapper extends BaseMapper<PersonalMonthlySuccessrate> {
+}

+ 18 - 5
mjava-ounuo/src/main/java/com/malk/tuosi/schedule/ScheduleTask.java

@@ -474,12 +474,20 @@ public class ScheduleTask {
             for (int j = 0; j < allIds.size(); j++) {
                 String taskId1 = allIds.get(j);
                 HashMap params3 = new HashMap();
-
+                String status = "";//状态
                 String doneGet = UtilHttp.doGet("https://open.teambition.com/api/v3/task/" + taskId1 + "/node/list", header, new HashMap());
                 JSONObject response = JSON.parseObject(doneGet);
                 JSONArray resultArray = response.getJSONArray("result");
-//                String targetId = "6875f58cf512415e5944c652,6879e63c9cf1bbad8460b777";//【设计单的工作流节点:设计接单(1) 设计接单(2)】
                 String targetName = "设计接";
+                //这里只是遍历每一条任务是否完成status状态
+                for(int n = 0;n < resultArray.size();n++){
+                    JSONObject node = resultArray.getJSONObject(n);
+                    String nodeName = node.getString("name");
+                    if("已完成".equals(nodeName)){
+                       status = node.getString("status");
+                       break;
+                    }
+                }
                 for (int k = 0; k < resultArray.size(); k++) {
                     JSONObject node = resultArray.getJSONObject(k);
                     String currentNodeId = node.getString("name");
@@ -494,9 +502,7 @@ public class ScheduleTask {
                             String time_start = "";//开始时间
                             String time_end = "";//结束时间
                             String task_type = "";//任务类型
-                            String status = "";//状态
                             String department = "";//所属部门
-                            status = node.getString("status");
                             time_start = node.getString("startDate");
                             time_end = node.getString("dueDate");
                             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
@@ -585,7 +591,7 @@ public class ScheduleTask {
                                                     e.printStackTrace();
                                                 }
                                                 UpdateWrapper<EmployeeWeeklyTasks> updateWrapper = new UpdateWrapper<>();
-                                                updateWrapper.eq("task_id", taskId);
+                                                updateWrapper.eq("task_id", taskId).eq("manager",manager);
                                                 if (EmployeeWeeklyTasksList != null && EmployeeWeeklyTasksList.size() > 0) {
                                                     updateWrapper.set("task_name", taskName);
                                                     updateWrapper.set("manager", manager);
@@ -1336,6 +1342,13 @@ public class ScheduleTask {
         return McR.success();
     }
 
+    /*todo:个人月度成功率*/
+    @SneakyThrows
+    @PostMapping("/personalmonthlySuccessrate")
+    McR personalmonthlySuccessrate(){
+        return McR.success();
+    }
+
     /*todo:人员获取部门*/
     @SneakyThrows
     @PostMapping("/UserGetDeprt")

+ 7 - 0
mjava-ounuo/src/main/java/com/malk/tuosi/service/PersonalMonthlySuccessrateService.java

@@ -0,0 +1,7 @@
+package com.malk.tuosi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.malk.tuosi.entity.PersonalMonthlySuccessrate;
+
+public interface PersonalMonthlySuccessrateService extends IService<PersonalMonthlySuccessrate> {
+}

+ 14 - 0
mjava-ounuo/src/main/java/com/malk/tuosi/service/impl/PersonalMonthlySuccessrateServiceImpl.java

@@ -0,0 +1,14 @@
+package com.malk.tuosi.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.malk.tuosi.entity.PersonalMonthlySuccessrate;
+import com.malk.tuosi.mapper.PersonalMonthlySuccessrateMapper;
+import com.malk.tuosi.service.PersonalMonthlySuccessrateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class PersonalMonthlySuccessrateServiceImpl extends ServiceImpl<PersonalMonthlySuccessrateMapper, PersonalMonthlySuccessrate> implements PersonalMonthlySuccessrateService {
+
+}

+ 2 - 0
mjava-ounuo/src/main/java/com/malk/tuosi/service/impl/TbServiceImpl.java

@@ -467,6 +467,8 @@ public class TbServiceImpl implements TBService {
                     message.put("openSpaceId","dtv1.card//IM_GROUP.cidXES2AIusSs+mb9gD8i4w1w==");
                 }else if("张昆".equals(businessManager)){
                     message.put("openSpaceId","dtv1.card//IM_GROUP.cidI3G/EnCvlem5w3+qKfTMDA==");
+                }else if("谷晨单".equals(businessManager)){
+                    message.put("openSpaceId","dtv1.card//IM_GROUP.cidqXtqGAN+Es7L/5m3uaZzSg==");
                 }
 //                message.put("openSpaceId", "dtv1.card//IM_GROUP.cidTppONwRCrkshRlCt28O+NA==");//正式群id:cidTppONwRCrkshRlCt28O+NA==   测试群id:cidKoVDKhvynnj+73h0uxSJBA==
                 message.put("cardTemplateId", "160b26bf-d699-49fc-a6dc-9cd20eed7750.schema");