Browse Source

绩效考核得分调整
自动发起采购订单逻辑更新

fyz 1 month ago
parent
commit
dc23efbbbb

+ 277 - 251
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/WorkServiceImpl.java

@@ -991,270 +991,296 @@ public class WorkServiceImpl implements WorkService {
             if (!"PMXZ001".equals(e.get("textField_lrr3rg6h")) && !"PMZC001".equals(e.get("textField_lrr3rg6h")) && !e.get("textField_lrr3rg6h").toString().startsWith("PM99")) {
             if (!"PMXZ001".equals(e.get("textField_lrr3rg6h")) && !"PMZC001".equals(e.get("textField_lrr3rg6h")) && !e.get("textField_lrr3rg6h").toString().startsWith("PM99")) {
 
 
                 List<Map<String,Object>> objects = new ArrayList<>();
                 List<Map<String,Object>> objects = new ArrayList<>();
-            Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
-                    "APP_ERBDTFS82HOVBPL3NFH0", "FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC", "receipt",
-                    e.get("formInstanceId"), name, code);
-            objects.add(map);
-            Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, " +
-                            "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
-                            "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
-                            "numberField_mfo3dvpy",
-                    objects, code,LocalDateTime.now().plusMonths(-2).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
-                    "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
-                    UtilMap.getDouble(e,"numberField_lrpvi1wf"));
-            if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
-                //项目点负责人
-                String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
-                JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
-                dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
-                dataMap.put("textField_mgoljmhh",xmdfzrArray.get(0));
-            }
-
-            if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
-                //营运经理
-                String yyjl = e.get("employeeField_lrpswhaj_id").toString();
-                JSONArray yyjlArray = JSONArray.parseArray(yyjl);
-                dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
-                dataMap.put("textField_mgolu3w2",yyjlArray.get(0));
-            }
-            List<Map> sonList = ydService.queryDetails(YDParam.builder().
-                    appType("APP_ERBDTFS82HOVBPL3NFH0")
-                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                    .formInstanceId(e.get("formInstanceId").toString())
-                    .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
-                    .tableFieldId("tableField_lrru2tnq")
-                    .build());
-            //项目点档案子表本月
-            List<Map> sonFilterList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
-            sonFilterList.forEach(s->{
-                //人工定额
-                double person = UtilMap.getDouble(s,"numberField_lrru2tnt_value");
-                //物料定额
-                double cost = UtilMap.getDouble(s,"numberField_lrru2tnu_value");
-                //收入定额
-                double income = UtilMap.getDouble(s,"numberField_lrru2tns_value");
-                //回款金额
-                double back = UtilMap.getDouble(s,"numberField_lrru2to3_value");
-                //工资定额分项
-                dataMap.put("numberField_mfenmehp",person);
-                //物料定额
-                dataMap.put("numberField_mfenmeih",cost);
-                //定额收入
-                dataMap.put("numberField_mfenmejp",income);
-                //回款金额
-                dataMap.put("numberField_mfenmek8",back);
-            });
-            //项目点档案子表上月
-            List<Map> sonLastMonthList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
-            sonLastMonthList.forEach(s->{
-                //开票金额
-                double open = UtilMap.getDouble(s,"numberField_lrru2to2_value");
-                //开票金额
-                dataMap.put("numberField_mfenmejr",open);
-            });
-            //算薪结果表
-            salarys.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.putAll(v);
+                Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
+                        "APP_ERBDTFS82HOVBPL3NFH0", "FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC", "receipt",
+                        e.get("formInstanceId"), name, code);
+                objects.add(map);
+                Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, " +
+                                "dateField_mfo3dvpr, radioField_mfo5qdfc, selectField_mfo51ygd, selectField_mfp86vfw, " +
+                                "textField_mfenmegj, textField_mfo6i24e, textField_mgizxcry, numberField_mfo3dvq0, " +
+                                "numberField_mfo3dvpy",
+                        objects, code,LocalDateTime.now().plusMonths(-2).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(),
+                        "项目点负责人","否","否",name,formatNowMonth,name,UtilMap.getDouble(e,"numberField_lrhjdu5l"),
+                        UtilMap.getDouble(e,"numberField_lrpvi1wf"));
+                if (ObjectUtil.isNotNull(e.get("employeeField_lw1usgpt_id"))){
+                    //项目点负责人
+                    String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
+                    JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
+                    dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
+                    dataMap.put("textField_mgoljmhh",xmdfzrArray.get(0));
                 }
                 }
-            });
-            //社保公积金
-            socials.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.putAll(v);
-                }
-            });
 
 
-            //遍历部门成本
-            dataMap.put("numberField_mfenmei2",0.0);
-            dataMap.put("numberField_mfenmeil",0.0);
-            dataMap.put("numberField_mfenmeio",0.0);
-            dataMap.put("numberField_mfenmelh",0.0);
-            dataMap.put("numberField_mfenmelg",0.0);
-            dataMap.put("numberField_mfenmek9",0.0);
-            costCollect.forEach((k0,v0)->{
-                if (k0.equals(name)){
-                    v0.forEach((k1,v1)->{
-                        if ("生产成本-业务外包费".equals(k1)){
-                            //劳务所临时工费用
-                            dataMap.put("numberField_mfenmei2",v1.get("cost"));
-                        }else if ("生产成本-租赁费".equals(k1)){
-                            //租赁
-                            dataMap.put("numberField_mfenmeil",v1.get("cost"));
-                        }else if ("生产成本-折旧".equals(k1)) {
-                            //折旧
-                            dataMap.put("numberField_mfenmeio", v1.get("cost"));
-                        }
-                    });
+                if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
+                    //营运经理
+                    String yyjl = e.get("employeeField_lrpswhaj_id").toString();
+                    JSONArray yyjlArray = JSONArray.parseArray(yyjl);
+                    dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
+                    dataMap.put("textField_mgolu3w2",yyjlArray.get(0));
                 }
                 }
-            });
-            //劳防用品
-            dataMap.put("numberField_mfenmeim",0.0);
-            workCloCost.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.put("numberField_mfenmeim",v.get("cost"));
+                List<Map> sonList = ydService.queryDetails(YDParam.builder().
+                        appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formInstanceId(e.get("formInstanceId").toString())
+                        .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
+                        .tableFieldId("tableField_lrru2tnq")
+                        .build());
+                //项目点档案子表本月
+                List<Map> sonFilterList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
+                sonFilterList.forEach(s->{
+                    //人工定额
+                    double person = UtilMap.getDouble(s,"numberField_lrru2tnt_value");
+                    //物料定额
+                    double cost = UtilMap.getDouble(s,"numberField_lrru2tnu_value");
+                    //收入定额
+                    double income = UtilMap.getDouble(s,"numberField_lrru2tns_value");
+                    //回款金额
+                    double back = UtilMap.getDouble(s,"numberField_lrru2to3_value");
+                    //工资定额分项
+                    dataMap.put("numberField_mfenmehp",person);
+                    //物料定额
+                    dataMap.put("numberField_mfenmeih",cost);
+                    //定额收入
+                    dataMap.put("numberField_mfenmejp",income);
+                    //回款金额
+                    dataMap.put("numberField_mfenmek8",back);
+                });
+                //项目点档案子表上月
+                List<Map> sonLastMonthList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
+                sonLastMonthList.forEach(s->{
+                    //开票金额
+                    double open = UtilMap.getDouble(s,"numberField_lrru2to2_value");
+                    //开票金额
+                    dataMap.put("numberField_mfenmejr",open);
+                });
+                //算薪结果表
+                salarys.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.putAll(v);
+                    }
+                });
+                //社保公积金
+                socials.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.putAll(v);
+                    }
+                });
+
+                //遍历部门成本
+                dataMap.put("numberField_mfenmei2",0.0);
+                dataMap.put("numberField_mfenmeil",0.0);
+                dataMap.put("numberField_mfenmeio",0.0);
+                dataMap.put("numberField_mfenmelh",0.0);
+                dataMap.put("numberField_mfenmelg",0.0);
+                dataMap.put("numberField_mfenmek9",0.0);
+                costCollect.forEach((k0,v0)->{
+                    if (k0.equals(name)){
+                        v0.forEach((k1,v1)->{
+                            if ("生产成本-业务外包费".equals(k1)){
+                                //劳务所临时工费用
+                                dataMap.put("numberField_mfenmei2",v1.get("cost"));
+                            }else if ("生产成本-租赁费".equals(k1)){
+                                //租赁
+                                dataMap.put("numberField_mfenmeil",v1.get("cost"));
+                            }else if ("生产成本-折旧".equals(k1)) {
+                                //折旧
+                                dataMap.put("numberField_mfenmeio", v1.get("cost"));
+                            }
+                        });
+                    }
+                });
+                //劳防用品
+                dataMap.put("numberField_mfenmeim",0.0);
+                workCloCost.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.put("numberField_mfenmeim",v.get("cost"));
+                    }
+                });
+                //物耗(非工作服)
+                dataMap.put("numberField_mfenmeii",0.0);
+                workNoCloCost.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.put("numberField_mfenmeii",v.get("cost"));
+                    }
+                });
+                //设备维修
+                dataMap.put("numberField_mfenmeij",0.0);
+                repairBillCost.forEach((k,v)->{
+                    if (k.equals(code)){
+                        dataMap.put("numberField_mfenmeij",v.get("cost"));
+                    }
+                });
+                //超期时间
+                daysDiff.forEach((k,v)->{
+                    if (k.equals(code)){
+                        dataMap.put("numberField_mfenmek9",v);
+                    }
+                });
+
+                //5-回款结算 评价得分
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmek8")>0 && UtilMap.getDouble(dataMap,"numberField_mfenmek9")<=0){
+                    dataMap.put("numberField_mfenmelu",5);
                 }
                 }
-            });
-            //物耗(非工作服)
-            dataMap.put("numberField_mfenmeii",0.0);
-            workNoCloCost.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.put("numberField_mfenmeii",v.get("cost"));
+                //物料定额
+                double wlde = UtilMap.getDouble(dataMap,"numberField_mfenmeih");
+                final double[] krksl = {0.0};
+                //入库
+                procurements.forEach((k,v)->{
+                    if (k.equals(code)){
+                        krksl[0] = UtilMap.getDouble(v,"cost");
+                    }
+                });
+                if (wlde == 0 || (wlde != 0 && krksl[0] == 0)){
+                    dataMap.put("numberField_mfenmekv",5);//7-入库
+                }else {
+                    dataMap.put("numberField_mfenmekv",0);//7-入库
                 }
                 }
-            });
-            //设备维修
-            dataMap.put("numberField_mfenmeij",0.0);
-            repairBillCost.forEach((k,v)->{
-                if (k.equals(code)){
-                    dataMap.put("numberField_mfenmeij",v.get("cost"));
+                //出库
+                krksl[0] = 0;
+                materialOuts.forEach((k,v)->{
+                    if (k.equals(code)){
+                        krksl[0] = UtilMap.getInt(v,"size");
+                    }
+                });
+                if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
+                    dataMap.put("numberField_mfenmel3",3);//7-出库
+                }else {
+                    dataMap.put("numberField_mfenmel3",0);//7-出库
                 }
                 }
-            });
-            //超期时间
-            daysDiff.forEach((k,v)->{
-                if (k.equals(code)){
-                    dataMap.put("numberField_mfenmek9",v);
+                //盘点
+                krksl[0] = 0;
+                materialChecks.forEach((k,v)->{
+                    if (k.equals(code)){
+                        krksl[0] = UtilMap.getInt(v,"size");
+                    }
+                });
+                if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
+                    dataMap.put("numberField_mfenmel9",2);//7-自盘
+                }else {
+                    dataMap.put("numberField_mfenmel9",0);//7-自盘
                 }
                 }
-            });
+                //上月小业主开票
+                lastOpens.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.put("numberField_mfenmelh",v.get("open"));
+                    }
+                });
+                //上上月小业主开票
+                lastLastOpens.forEach((k,v)->{
+                    if (k.equals(name)){
+                        dataMap.put("numberField_mfenmelg",v.get("open"));
+                    }
+                });
+                //结算帐期
+                dataMap.put("textField_mfenmejo",SETTLEMENT_PERIOD.get(UtilMap.getString(e,"selectField_mejp7y3y")));
+                //回款账期
+                dataMap.put("textField_mfenmejq",PAYMENT_TERM.get(UtilMap.getString(e,"selectField_lt590fk8")));
+
 
 
-            //物料定额
-            double wlde = UtilMap.getDouble(dataMap,"numberField_mfenmeih");
-            final double[] krksl = {0.0};
-            //入库
-            procurements.forEach((k,v)->{
-                if (k.equals(code)){
-                    krksl[0] = UtilMap.getDouble(v,"cost");
+                //公式字段计算
+                //定额工资
+                dataMap.put("numberField_mfenmehw", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmehp")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
+                //调整后应发工资
+                dataMap.put("numberField_mfenmei5", UtilMap.getDouble(dataMap,"numberField_mfenmei5")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmei2")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
+                //人工结余
+                dataMap.put("numberField_mfenmei6", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
+                        -  UtilMap.getDouble(dataMap,"numberField_mfenmei5"));
+                //人工占比
+                double fm = UtilMap.getDouble(dataMap,"numberField_mfenmejr")
+                        +  UtilMap.getDouble(dataMap,"numberField_mfenmelh");
+                if (fm == 0){
+                    dataMap.put("numberField_mfenmei4",0);
+                }else {
+                    dataMap.put("numberField_mfenmei4", (UtilMap.getDouble(dataMap,"rgzbfz")
+                            + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
+                            + UtilMap.getDouble(dataMap,"numberField_mfenmeht")
+                            + UtilMap.getDouble(dataMap,"numberField_mfenmei2")) / fm * 100);
                 }
                 }
-            });
-            if (wlde == 0 || (wlde != 0 && krksl[0] == 0)){
-                dataMap.put("numberField_mfenmekv",5);//7-入库
-            }else {
-                dataMap.put("numberField_mfenmekv",0);//7-入库
-            }
-            //出库
-            krksl[0] = 0;
-            materialOuts.forEach((k,v)->{
-                if (k.equals(code)){
-                    krksl[0] = UtilMap.getInt(v,"size");
+                //结余比例
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmehw") == 0){
+                    dataMap.put("numberField_mfenmei7",0);
+                }else {
+                    dataMap.put("numberField_mfenmei7", UtilMap.getDouble(dataMap,"numberField_mfenmei6")
+                            /  UtilMap.getDouble(dataMap,"numberField_mfenmehw") * 100);
                 }
                 }
-            });
-            if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
-                dataMap.put("numberField_mfenmel3",3);//7-出库
-            }else {
-                dataMap.put("numberField_mfenmel3",0);//7-出库
-            }
-            //盘点
-            krksl[0] = 0;
-            materialChecks.forEach((k,v)->{
-                if (k.equals(code)){
-                    krksl[0] = UtilMap.getInt(v,"size");
+                //实际费用 (工作服  非工作服  生产成本-租赁费   生产成本-折旧   设备维修)
+                dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
+                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeii")
+                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeil")
+                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeio")
+                        +  UtilMap.getDouble(dataMap,"numberField_mfenmeij"));
+                //物耗占比
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmejr")  == 0){
+                    dataMap.put("numberField_mfenmeir",0);
+                }else {
+                    dataMap.put("numberField_mfenmeir", UtilMap.getDouble(dataMap,"numberField_mfenmeii")
+                            /  UtilMap.getDouble(dataMap,"numberField_mfenmejr") * 100);
                 }
                 }
-            });
-            if (wlde == 0 || (wlde != 0 && krksl[0] > 0)){
-                dataMap.put("numberField_mfenmel9",2);//7-自盘
-            }else {
-                dataMap.put("numberField_mfenmel9",0);//7-自盘
-            }
-            //上月小业主开票
-            lastOpens.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.put("numberField_mfenmelh",v.get("open"));
+                //物料结余
+                dataMap.put("numberField_mfenmeis", UtilMap.getDouble(dataMap,"numberField_mfenmeih")
+                        -  UtilMap.getDouble(dataMap,"numberField_mfenmeii"));
+                //结余比例
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmeih") == 0){
+                    dataMap.put("numberField_mfenmeit",0);
+                }else {
+                    dataMap.put("numberField_mfenmeit", UtilMap.getDouble(dataMap,"numberField_mfenmeis")
+                            /  UtilMap.getDouble(dataMap,"numberField_mfenmeih") * 100);
                 }
                 }
-            });
-            //上上月小业主开票
-            lastLastOpens.forEach((k,v)->{
-                if (k.equals(name)){
-                    dataMap.put("numberField_mfenmelg",v.get("open"));
+                //结算金额-差额
+                dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
+                        -  UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
+                //开票状态
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmejr") > 0){
+                    dataMap.put("textField_mgohy54u","已开票");
+                    dataMap.put("numberField_mfenmelt","7");//4-开票执行 得分
+                }else {
+                    dataMap.put("textField_mgohy54u","未开票");
+                    dataMap.put("numberField_mfenmelt","0");
                 }
                 }
-            });
-            //结算帐期
-            dataMap.put("textField_mfenmejo",SETTLEMENT_PERIOD.get(UtilMap.getString(e,"selectField_mejp7y3y")));
-            //回款账期
-            dataMap.put("textField_mfenmejq",PAYMENT_TERM.get(UtilMap.getString(e,"selectField_lt590fk8")));
-
-
-            //公式字段计算
-            //定额工资
-            dataMap.put("numberField_mfenmehw", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmehp")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
-            //调整后应发工资
-            dataMap.put("numberField_mfenmei5", UtilMap.getDouble(dataMap,"numberField_mfenmei5")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmei2")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                    + UtilMap.getDouble(dataMap,"numberField_mfenmeht"));
-            //人工结余
-            dataMap.put("numberField_mfenmei6", UtilMap.getDouble(dataMap,"numberField_mfenmehw")
-                    -  UtilMap.getDouble(dataMap,"numberField_mfenmei5"));
-            //人工占比
-            double fm = UtilMap.getDouble(dataMap,"numberField_mfenmejr")
-                    +  UtilMap.getDouble(dataMap,"numberField_mfenmelh");
-            if (fm == 0){
-                dataMap.put("numberField_mfenmei4",0);
-            }else {
-                dataMap.put("numberField_mfenmei4", (UtilMap.getDouble(dataMap,"rgzbfz")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmehs")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmeht")
-                        + UtilMap.getDouble(dataMap,"numberField_mfenmei2")) / fm * 100);
-            }
-            //结余比例
-            if (UtilMap.getDouble(dataMap,"numberField_mfenmehw") == 0){
-                dataMap.put("numberField_mfenmei7",0);
-            }else {
-                dataMap.put("numberField_mfenmei7", UtilMap.getDouble(dataMap,"numberField_mfenmei6")
-                        /  UtilMap.getDouble(dataMap,"numberField_mfenmehw") * 100);
-            }
-            //实际费用 (工作服  非工作服  生产成本-租赁费   生产成本-折旧   设备维修)
-            dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
-                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeii")
-                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeil")
-                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeio")
-                    +  UtilMap.getDouble(dataMap,"numberField_mfenmeij"));
-            //物耗占比
-            if (UtilMap.getDouble(dataMap,"numberField_mfenmejr")  == 0){
-                dataMap.put("numberField_mfenmeir",0);
-            }else {
-                dataMap.put("numberField_mfenmeir", UtilMap.getDouble(dataMap,"numberField_mfenmeii")
-                        /  UtilMap.getDouble(dataMap,"numberField_mfenmejr") * 100);
-            }
-            //物料结余
-            dataMap.put("numberField_mfenmeis", UtilMap.getDouble(dataMap,"numberField_mfenmeih")
-                    -  UtilMap.getDouble(dataMap,"numberField_mfenmeii"));
-            //结余比例
-            if (UtilMap.getDouble(dataMap,"numberField_mfenmeih") == 0){
-                dataMap.put("numberField_mfenmeit",0);
-            }else {
-                dataMap.put("numberField_mfenmeit", UtilMap.getDouble(dataMap,"numberField_mfenmeis")
-                        /  UtilMap.getDouble(dataMap,"numberField_mfenmeih") * 100);
-            }
-            //结算金额-差额
-            dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
-                    -  UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
-            //开票状态
-            if (UtilMap.getDouble(dataMap,"numberField_mfenmejr") > 0){
-                dataMap.put("textField_mgohy54u","已开票");
-            }else {
-                dataMap.put("textField_mgohy54u","未开票");
-            }
-            //增长金额
-            dataMap.put("numberField_mfenmeli", UtilMap.getDouble(dataMap,"numberField_mfenmelh")
-                    -  UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
-            //增长率
-            if (UtilMap.getDouble(dataMap,"numberField_mfenmelg") == 0 && UtilMap.getDouble(dataMap,"numberField_mfenmelh") >= 500){
-                dataMap.put("numberField_mfenmelj",100);
-            }else {
-                dataMap.put("numberField_mfenmelj", UtilMap.getDouble(dataMap,"numberField_mfenmeli")
-                        / UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
-            }
-            UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
-            ydClient.operateData(YDParam.builder()
-                    .appType("APP_TKO2FYGFQYQQMQFUTUU5")
-                    .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
-                    .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
-                    .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, textField_mfenmegp", conDateList, code)))
-                    .formDataJson(JSON.toJSONString(dataMap))
-                    .useLatestVersion(true)
-                    .build(), YDConf.FORM_OPERATION.upsert_v2);
+                //增长金额
+                dataMap.put("numberField_mfenmeli", UtilMap.getDouble(dataMap,"numberField_mfenmelh")
+                        -  UtilMap.getDouble(dataMap,"numberField_mfenmelg"));
+
+                //增长率
+                if (UtilMap.getDouble(dataMap,"numberField_mfenmelg") == 0 && UtilMap.getDouble(dataMap,"numberField_mfenmelh") >= 500){
+                    dataMap.put("numberField_mfenmelj",100);
+                }else {
+                    dataMap.put("numberField_mfenmelj", UtilMap.getDouble(dataMap,"numberField_mfenmeli")
+                            / UtilMap.getDouble(dataMap,"numberField_mfenmelg") * 100);
+                }
+
+                //14-小业主开发及运维得分
+                double growth = UtilMap.getDouble(dataMap, "numberField_mfenmeli");
+                double growthTax = UtilMap.getDouble(dataMap, "numberField_mfenmelj");
+                int sumScore = 0;
+                if (growthTax < 5 || growth < 500){
+                    sumScore = 0;
+                }else {
+                    if (growth > 1000){
+                        int score = (int) growth / 100;
+                        sumScore += score;
+                    }
+                    if (growthTax >= 5 || (growth >= 500 && growth<= 1000)){
+                        sumScore += 5;
+                    }
+
+                }
+                dataMap.put("numberField_mfenmell",sumScore);
+
+//                UtilMap.map("numberField_mfenmehq, numberField_mfenmehr, numberField_mfenmehy, numberField_mfenmei0",0,0,0,0);
+                ydClient.operateData(YDParam.builder()
+                        .appType("APP_TKO2FYGFQYQQMQFUTUU5")
+                        .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
+                        .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
+                        .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, textField_mfenmegp", conDateList, code)))
+                        .formDataJson(JSON.toJSONString(dataMap))
+                        .useLatestVersion(true)
+                        .build(), YDConf.FORM_OPERATION.create);
 //            }
 //            }
             }
             }
         });
         });

+ 40 - 26
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/purchaseServiceImpl.java

@@ -191,9 +191,10 @@ public class purchaseServiceImpl implements PurchaseService {
         //分组求和
         //分组求和
         Map<Object, Long> groupCountMap = dataList.stream()
         Map<Object, Long> groupCountMap = dataList.stream()
                 .collect(Collectors.groupingBy(
                 .collect(Collectors.groupingBy(
-                        //成本组织编码 + 项目点编号 + 供应商编码 + 物耗申请订单号
-                        map -> (String) map.get("textField_lus384vk") + "-" + map.get("textField_ltxstp86")
-                                + "-" + map.get("textField_ltxstp8g") + "=" + map.get("textField_ltxstp83"),
+                        //成本组织编码 + 供应商编码 + 项目点编号
+                        map -> (String) map.get("textField_lus384vk")
+                                + "-" + map.get("textField_ltxstp8g")
+                                + "=" + map.get("textField_ltxstp86"),
                         Collectors.counting()
                         Collectors.counting()
                 ));
                 ));
         Comparator<Map.Entry<Object, Long>> comparator = Map.Entry.comparingByValue();
         Comparator<Map.Entry<Object, Long>> comparator = Map.Entry.comparingByValue();
@@ -238,10 +239,13 @@ public class purchaseServiceImpl implements PurchaseService {
                             } else if (countI + countR == 100) {
                             } else if (countI + countR == 100) {
                                 processedKeys.add(orderNumR);
                                 processedKeys.add(orderNumR);
                                 orders.add(orderNumR);
                                 orders.add(orderNumR);
+                                countI += countR;
                                 break;
                                 break;
                             } else if (countI + countR < 100) {
                             } else if (countI + countR < 100) {
                                 processedKeys.add(orderNumR);
                                 processedKeys.add(orderNumR);
                                 orders.add(orderNumR);
                                 orders.add(orderNumR);
+                                countI += countR;
+
                             }
                             }
                         }
                         }
                     }
                     }
@@ -249,7 +253,8 @@ public class purchaseServiceImpl implements PurchaseService {
                     continue;
                     continue;
                 }
                 }
                 //记录重复key
                 //记录重复key
-                lastDataList.add(UtilMap.map(String.valueOf(UUID.randomUUID()), orders));
+                lastDataList.add(UtilMap.map(groupBy, orders));
+//                lastDataList.add(UtilMap.map(String.valueOf(UUID.randomUUID()), orders));
             }
             }
         }
         }
         List<Map> finalDataList = dataList;
         List<Map> finalDataList = dataList;
@@ -266,12 +271,21 @@ public class purchaseServiceImpl implements PurchaseService {
                 e.forEach((k,v)->{
                 e.forEach((k,v)->{
                     List<String> v1 = (List<String>) v;
                     List<String> v1 = (List<String>) v;
                     if (v1.size()>=3){
                     if (v1.size()>=3){
-                        System.out.println("e:"+e);
-                        log.info("数据key:{}",e.toString());
-                        System.out.println("v:"+v);
-                        log.info("日常采购物耗:{}",v.toString());
+                        //供应商数据
+                        String[] split = k.toString().split("-");
+                        List<Map> gysList = ydService.queryFormData_all(YDParam.builder()
+                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                                .formUuid("FORM-87B1C91392824C5AA9330F574C157622855R")
+                                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lrhgjspd",split[1])))
+                                .build());
+                        List<Map> gysAss = new ArrayList<>();
+                        gysAss.add(UtilMap.map("formType, formUuid, instanceId, appType, title, subTitle", "receipt", "FORM-87B1C91392824C5AA9330F574C157622855R",
+                                gysList.get(0).get("formInstanceId"), "APP_ERBDTFS82HOVBPL3NFH0", gysList.get(0).get("textField_lrhgjspc"), ""));
                         for (String s : (List<String>) v) {
                         for (String s : (List<String>) v) {
-                            List<Map> costList = finalDataList.stream().filter(map -> s.equals(map.get("textField_ltxstp83"))).collect(Collectors.toList());
+                            List<Map> costList = finalDataList.stream().filter(map -> s.equals(map.get("textField_ltxstp86"))
+                                    && split[0].equals(map.get("textField_lus384vk"))
+                                    && split[1].equals(map.get("textField_ltxstp8g"))).collect(Collectors.toList());
                             costList.forEach(c->{
                             costList.forEach(c->{
                                 gys[0] = UtilMap.getString(c,"textField_ltxstp8g");
                                 gys[0] = UtilMap.getString(c,"textField_ltxstp8g");
                                 gys[1] = UtilMap.getString(c,"textField_ltxstp8h");
                                 gys[1] = UtilMap.getString(c,"textField_ltxstp8h");
@@ -281,14 +295,14 @@ public class purchaseServiceImpl implements PurchaseService {
                             });
                             });
                         }
                         }
                         /*发起流程*/
                         /*发起流程*/
-                        ydClient.operateData(YDParam.builder()
-                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                                .formUuid("FORM-70F543E10887467188485B1E8AB3FFFDJUGK")
-                                .formDataJson(JSON.toJSONString(UtilMap.map("selectField_lr26l3h7, textField_lus384vk, selectField_lr26l3h8, " +
-                                                "textField_lr26l3hf, textField_lwg62y7o, numberField_lr26l3hq, numberField_lr26l3hr, tableField_ltxug6h1",
-                                        cbzz[1], cbzz[0], "物耗/配件", gys[0], gys[1], totalCount[0], amountSum[0], tableList)))
-                                .build(), YDConf.FORM_OPERATION.start);
+//                        ydClient.operateData(YDParam.builder()
+//                                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+//                                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                                .formUuid("FORM-70F543E10887467188485B1E8AB3FFFDJUGK")
+//                                .formDataJson(JSON.toJSONString(UtilMap.map("selectField_lr26l3h7, textField_lus384vk, selectField_lr26l3h8, " +
+//                                                "textField_lr26l3hf, textField_lwg62y7o, numberField_lr26l3hq, numberField_lr26l3hr, tableField_ltxug6h1",
+//                                        cbzz[1], cbzz[0], "物耗/配件", gys[0], gysAss, totalCount[0], amountSum[0], tableList)))
+//                                .build(), YDConf.FORM_OPERATION.start);
                     }
                     }
                 });
                 });
                 successCount[0]++;
                 successCount[0]++;
@@ -298,15 +312,15 @@ public class purchaseServiceImpl implements PurchaseService {
             ex.printStackTrace();
             ex.printStackTrace();
             return;
             return;
         }
         }
-        ydClient.operateData(YDParam.builder()
-                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                .formInstanceId(formInstanceId)
-//                    .useLatestVersion(true)
-//                    .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
-                .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_mhdgj16d, textField_mhdgj16e, textField_mhdgj16f, textField_mhdgj16g",
-                        lastDataList.size(),successCount[0],errorCount[0],"同步完毕")))
-                .build(), YDConf.FORM_OPERATION.update);
+//        ydClient.operateData(YDParam.builder()
+//                .appType("APP_ERBDTFS82HOVBPL3NFH0")
+//                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                .formInstanceId(formInstanceId)
+////                    .useLatestVersion(true)
+////                    .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
+//                .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_mhdgj16d, textField_mhdgj16e, textField_mhdgj16f, textField_mhdgj16g",
+//                        lastDataList.size(),successCount[0],errorCount[0],"同步完毕")))
+//                .build(), YDConf.FORM_OPERATION.update);
         log.info("总条数:{} 执行成功条数:{} 失败条数:{}",lastDataList.size(),successCount[0],errorCount[0]);
         log.info("总条数:{} 执行成功条数:{} 失败条数:{}",lastDataList.size(),successCount[0],errorCount[0]);
 
 
     }
     }

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

@@ -24,7 +24,7 @@ public interface DDClient_Workflow {
      * @implNote targetSelectActioners 使用OA后台设置的默认流程,并且流程中有审批人自选节点,该参数必填。
      * @implNote targetSelectActioners 使用OA后台设置的默认流程,并且流程中有审批人自选节点,该参数必填。
      * @implNote formComponentValues 表单数据内容,控件列表,最大列表长度:150。
      * @implNote formComponentValues 表单数据内容,控件列表,最大列表长度:150。
      */
      */
-    String doProcessInstancesNew(String access_token, String originatorUserId, String processCode, List<Map> formComponentValues);
+    String doProcessInstancesNew(String access_token, String originatorUserId, String processCode, List<Map> formComponentValues, String deptId);
 
 
     /**
     /**
      * 获取审批实例详情
      * 获取审批实例详情

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

@@ -48,9 +48,9 @@ public class DDImplClient_Workflow implements DDClient_Workflow {
      * @apiNote https://open.dingtalk.com/document/isvapp/initiate-approval-new
      * @apiNote https://open.dingtalk.com/document/isvapp/initiate-approval-new
      */
      */
     @Override
     @Override
-    public String doProcessInstancesNew(String access_token, String originatorUserId, String processCode, List<Map> formComponentValues) {
+    public String doProcessInstancesNew(String access_token, String originatorUserId, String processCode, List<Map> formComponentValues, String deptId) {
         Map header = DDConf.initTokenHeader(access_token);
         Map header = DDConf.initTokenHeader(access_token);
-        Map body = UtilMap.map("originatorUserId, processCode, formComponentValues, deptId", originatorUserId, processCode, formComponentValues,"977208212");
+        Map body = UtilMap.map("originatorUserId, processCode, formComponentValues, deptId", originatorUserId, processCode, formComponentValues,deptId);
         return UtilHttp.doPost("https://api.dingtalk.com/v1.0/workflow/processInstances", header, DDConf.initTokenParams(access_token), body);
         return UtilHttp.doPost("https://api.dingtalk.com/v1.0/workflow/processInstances", header, DDConf.initTokenParams(access_token), body);
     }
     }
     /**
     /**