|
|
@@ -41,6 +41,28 @@ public class WorkServiceImpl implements WorkService {
|
|
|
|
|
|
@Autowired
|
|
|
private DDClient_Personnel ddClientPersonnel;
|
|
|
+
|
|
|
+ //结算账期枚举
|
|
|
+ private static final Map<String, Object> SETTLEMENT_PERIOD = new HashMap<>();
|
|
|
+
|
|
|
+ static {
|
|
|
+ SETTLEMENT_PERIOD.put("月结", 30);
|
|
|
+ SETTLEMENT_PERIOD.put("双月结", 60);
|
|
|
+ SETTLEMENT_PERIOD.put("季结", 90);
|
|
|
+ SETTLEMENT_PERIOD.put("半年结", 180);
|
|
|
+ }
|
|
|
+
|
|
|
+ //回款账期枚举
|
|
|
+ private static final Map<String, Object> PAYMENT_TERM = new HashMap<>();
|
|
|
+
|
|
|
+ static {
|
|
|
+ PAYMENT_TERM.put("即时支付", 0);
|
|
|
+ PAYMENT_TERM.put("10天", 10);
|
|
|
+ PAYMENT_TERM.put("30天", 30);
|
|
|
+ PAYMENT_TERM.put("45天", 45);
|
|
|
+ PAYMENT_TERM.put("60天", 60);
|
|
|
+ PAYMENT_TERM.put("90天", 90);
|
|
|
+ }
|
|
|
private YDParam.YDParamBuilder _initLYParam() {
|
|
|
return YDParam.builder()
|
|
|
.appType("APP_ERBDTFS82HOVBPL3NFH0")
|
|
|
@@ -519,6 +541,7 @@ public class WorkServiceImpl implements WorkService {
|
|
|
String xmdfzr = e.get("employeeField_lw1usgpt_id").toString();
|
|
|
JSONArray xmdfzrArray = JSONArray.parseArray(xmdfzr);
|
|
|
dataMap.put("employeeField_mfo3dvpt",xmdfzrArray.get(0));
|
|
|
+ dataMap.put("textField_mgolsje0",xmdfzrArray.get(0));
|
|
|
}
|
|
|
|
|
|
if (ObjectUtil.isNotNull(e.get("employeeField_lrpswhaj_id"))){
|
|
|
@@ -526,6 +549,7 @@ public class WorkServiceImpl implements WorkService {
|
|
|
String yyjl = e.get("employeeField_lrpswhaj_id").toString();
|
|
|
JSONArray yyjlArray = JSONArray.parseArray(yyjl);
|
|
|
dataMap.put("employeeField_mfo3dvq2",yyjlArray.get(0));
|
|
|
+ dataMap.put("textField_mgolsje1",yyjlArray.get(0));
|
|
|
}
|
|
|
sonList.add(dataMap);
|
|
|
}
|
|
|
@@ -547,9 +571,9 @@ public class WorkServiceImpl implements WorkService {
|
|
|
String formatLastMonth = lastMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
|
String formatNowMonth = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
|
// 获取月份的第一天
|
|
|
- LocalDateTime firstDay = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
+ LocalDateTime firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
// 获取月份的最后一天
|
|
|
- LocalDateTime lastDay = LocalDateTime.now().withDayOfMonth(LocalDate.now().lengthOfMonth())
|
|
|
+ LocalDateTime lastDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
|
|
|
.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
|
|
// 转换回时间戳
|
|
|
long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
@@ -638,13 +662,13 @@ public class WorkServiceImpl implements WorkService {
|
|
|
.searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_m0dkzhwp",dateList)))
|
|
|
.build());
|
|
|
|
|
|
- Map<String, Map<String, Object>> costCollect = productionCostList.stream().collect(
|
|
|
+ Map<String, Map<String, HashMap<String, Object>>> costCollect = productionCostList.stream().collect(
|
|
|
Collectors.groupingBy(
|
|
|
//第一层根据项目
|
|
|
- map -> map.get("textField_mbk7mt4q").toString(),
|
|
|
+ map -> map.get("textField_mbk7mt4q").toString(),
|
|
|
Collectors.groupingBy(
|
|
|
//第二层根据科目
|
|
|
- map -> map.get("textField_m0dkzhwv").toString(),
|
|
|
+ map -> map.get("textField_m0dkzhwv").toString(),
|
|
|
Collectors.collectingAndThen(
|
|
|
Collectors.toList(),
|
|
|
list -> {
|
|
|
@@ -653,7 +677,7 @@ public class WorkServiceImpl implements WorkService {
|
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_m0dkzhx1_value").toString().isEmpty() ? map.get("numberField_m0dkzhx1_value").toString() : "0.0")).doubleValue())
|
|
|
.sum();
|
|
|
return new HashMap<String, Object>() {{
|
|
|
- put("numberField_mfenmehs", cost);
|
|
|
+ put("cost", cost);
|
|
|
}};
|
|
|
}
|
|
|
)
|
|
|
@@ -758,9 +782,9 @@ public class WorkServiceImpl implements WorkService {
|
|
|
));
|
|
|
|
|
|
// 获取上月份的第一天
|
|
|
- firstDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
+ firstDay = LocalDateTime.now().plusMonths(-3).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
// 获取上月份的最后一天
|
|
|
- lastDay = LocalDateTime.now().plusMonths(-1).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
|
|
|
+ lastDay = LocalDateTime.now().plusMonths(-3).withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
|
|
|
.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
|
|
// 转换回时间戳
|
|
|
firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
@@ -796,9 +820,9 @@ public class WorkServiceImpl implements WorkService {
|
|
|
));
|
|
|
|
|
|
// 获取上上月份的第一天
|
|
|
- firstDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
+ firstDay = LocalDateTime.now().plusMonths(-4).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
// 获取上上月份的最后一天
|
|
|
- lastDay = LocalDateTime.now().plusMonths(-2).withDayOfMonth(LocalDate.now().lengthOfMonth())
|
|
|
+ lastDay = LocalDateTime.now().plusMonths(-4).withDayOfMonth(LocalDate.now().plusMonths(-4).lengthOfMonth())
|
|
|
.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
|
|
firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
lastDayTimestamp = lastDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
@@ -838,16 +862,22 @@ public class WorkServiceImpl implements WorkService {
|
|
|
String code = e.get("textField_ltxrn8h1").toString();
|
|
|
List<Map<String,Object>> objects = new ArrayList<>();
|
|
|
Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
|
|
|
- "APP_TKO2FYGFQYQQMQFUTUU5", "FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX", "receipt",
|
|
|
+ "APP_ERBDTFS82HOVBPL3NFH0", "FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC", "receipt",
|
|
|
e.get("formInstanceId"), name, code);
|
|
|
objects.add(map);
|
|
|
- Map<String, Object> dataMap = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp",
|
|
|
- objects, e.get("textField_ltxrn8h1"));
|
|
|
+ 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().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"))){
|
|
|
@@ -855,6 +885,7 @@ public class WorkServiceImpl implements WorkService {
|
|
|
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")
|
|
|
@@ -867,13 +898,13 @@ public class WorkServiceImpl implements WorkService {
|
|
|
List<Map> sonFilterList = sonList.stream().filter(m -> formatNowMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
|
|
|
sonFilterList.forEach(s->{
|
|
|
//人工定额
|
|
|
- double person = Double.parseDouble(ObjectUtil.isNotNull(s.get("numberField_lrru2tnt_value")) && !s.get("numberField_lrru2tnt_value").toString().isEmpty() ? s.get("numberField_lrru2tnt_value").toString() : "0.0");
|
|
|
+ double person = UtilMap.getDouble(s,"numberField_lrru2tnt_value");
|
|
|
//物料定额
|
|
|
- double cost = Double.parseDouble(ObjectUtil.isNotNull(s.get("numberField_lrru2tnu_value")) && !s.get("numberField_lrru2tnu_value").toString().isEmpty() ? s.get("numberField_lrru2tnu_value").toString() : "0.0");
|
|
|
+ double cost = UtilMap.getDouble(s,"numberField_lrru2tnu_value");
|
|
|
//收入定额
|
|
|
- double income = Double.parseDouble(ObjectUtil.isNotNull(s.get("numberField_lrru2tns_value")) && !s.get("numberField_lrru2tns_value").toString().isEmpty() ? s.get("numberField_lrru2tns_value").toString() : "0.0");
|
|
|
+ double income = UtilMap.getDouble(s,"numberField_lrru2tns_value");
|
|
|
//回款金额
|
|
|
- double back = Double.parseDouble(ObjectUtil.isNotNull(s.get("numberField_lrru2to3_value")) && !s.get("numberField_lrru2to3_value").toString().isEmpty() ? s.get("numberField_lrru2to3_value").toString() : "0.0");
|
|
|
+ double back = UtilMap.getDouble(s,"numberField_lrru2to3_value");
|
|
|
//工资定额分项
|
|
|
dataMap.put("numberField_mfenmehp",person);
|
|
|
//物料定额
|
|
|
@@ -884,10 +915,10 @@ public class WorkServiceImpl implements WorkService {
|
|
|
dataMap.put("numberField_mfenmek8",back);
|
|
|
});
|
|
|
//项目点档案子表上月
|
|
|
- List<Map> sonLastMonthList = sonList.stream().filter(m -> formatLastMonth.equals(m.get("tableField_lrru2tnq"))).collect(Collectors.toList());
|
|
|
+ List<Map> sonLastMonthList = sonList.stream().filter(m -> formatLastMonth.equals(m.get("textField_luh0k82j"))).collect(Collectors.toList());
|
|
|
sonLastMonthList.forEach(s->{
|
|
|
//开票金额
|
|
|
- double open = Double.parseDouble(ObjectUtil.isNotNull(s.get("numberField_lrru2to2_value")) && !s.get("numberField_lrru2to2_value").toString().isEmpty() ? s.get("numberField_lrru2to2_value").toString() : "0.0");
|
|
|
+ double open = UtilMap.getDouble(s,"numberField_lrru2to2_value");
|
|
|
//开票金额
|
|
|
dataMap.put("numberField_mfenmejr",open);
|
|
|
});
|
|
|
@@ -899,35 +930,41 @@ public class WorkServiceImpl implements WorkService {
|
|
|
});
|
|
|
|
|
|
//遍历部门成本
|
|
|
+ dataMap.put("numberField_mfenmei2",0.0);
|
|
|
+ dataMap.put("numberField_mfenmeil",0.0);
|
|
|
+ dataMap.put("numberField_mfenmeio",0.0);
|
|
|
costCollect.forEach((k0,v0)->{
|
|
|
if (k0.equals(name)){
|
|
|
v0.forEach((k1,v1)->{
|
|
|
if ("生产成本-业务外包费".equals(k1)){
|
|
|
//劳务所临时工费用
|
|
|
- dataMap.put("numberField_mfenmei2",v1);
|
|
|
+ dataMap.put("numberField_mfenmei2",v1.get("cost"));
|
|
|
}else if ("生产成本-租赁费".equals(k1)){
|
|
|
//租赁
|
|
|
- dataMap.put("numberField_mfenmeil",v1);
|
|
|
+ dataMap.put("numberField_mfenmeil",v1.get("cost"));
|
|
|
}else if ("生产成本-折旧".equals(k1)) {
|
|
|
//折旧
|
|
|
- dataMap.put("numberField_mfenmeio", v1);
|
|
|
+ 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);
|
|
|
+ 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"));
|
|
|
@@ -936,22 +973,33 @@ public class WorkServiceImpl implements WorkService {
|
|
|
|
|
|
double bzwhcb = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn2oy4q_value")) && !e.get("numberField_lrn2oy4q_value").toString().isEmpty() ? e.get("numberField_lrn2oy4q_value").toString() : "0.0");
|
|
|
if (bzwhcb == 0){
|
|
|
- dataMap.put("numberField_mfenmekv",3);
|
|
|
- dataMap.put("numberField_mfenmel9",2);
|
|
|
+ dataMap.put("numberField_mfenmekv",3);//7-入库
|
|
|
+ dataMap.put("numberField_mfenmel3",3);//7-出库
|
|
|
+ dataMap.put("numberField_mfenmel9",2);//7-自盘
|
|
|
+ }else {
|
|
|
+ dataMap.put("numberField_mfenmekv",0);//7-入库
|
|
|
+ dataMap.put("numberField_mfenmel3",0);//7-出库
|
|
|
+ dataMap.put("numberField_mfenmel9",0);//7-自盘
|
|
|
}
|
|
|
|
|
|
//上月小业主开票
|
|
|
lastOpens.forEach((k,v)->{
|
|
|
- if (k.equals(name)){
|
|
|
+ dataMap.put("numberField_mfenmelh",0.0);
|
|
|
+ if (k.equals(code)){
|
|
|
dataMap.put("numberField_mfenmelh",v.get("open"));
|
|
|
}
|
|
|
});
|
|
|
//上上月小业主开票
|
|
|
lastLastOpens.forEach((k,v)->{
|
|
|
- if (k.equals(name)){
|
|
|
+ dataMap.put("numberField_mfenmelg",0.0);
|
|
|
+ if (k.equals(code)){
|
|
|
dataMap.put("numberField_mfenmelg",v.get("open"));
|
|
|
}
|
|
|
});
|
|
|
+ //结算帐期
|
|
|
+ dataMap.put("textField_mfenmejo",SETTLEMENT_PERIOD.get(e.get("selectField_mejp7y3y").toString()));
|
|
|
+ //回款账期
|
|
|
+ dataMap.put("textField_mfenmejq",PAYMENT_TERM.get(e.get("selectField_lt590fk8").toString()));
|
|
|
|
|
|
|
|
|
//公式字段计算
|
|
|
@@ -1007,10 +1055,10 @@ public class WorkServiceImpl implements WorkService {
|
|
|
dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
|
|
|
- UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
|
|
|
//开票状态
|
|
|
- if (ObjectUtil.isNotNull(dataMap.get("numberField_mfenmejr")) && Double.parseDouble(dataMap.get("numberField_mfenmejr").toString()) > 0){
|
|
|
- dataMap.put("radioField_mfenmek0","已开票");
|
|
|
+ if (UtilMap.getDouble(dataMap,"numberField_mfenmejr") > 0){
|
|
|
+ dataMap.put("textField_mgohy54u","已开票");
|
|
|
}else {
|
|
|
- dataMap.put("radioField_mfenmek0","未开票");
|
|
|
+ dataMap.put("textField_mgohy54u","未开票");
|
|
|
}
|
|
|
//增长金额
|
|
|
dataMap.put("numberField_mfenmeli", UtilMap.getDouble(dataMap,"numberField_mfenmelh")
|
|
|
@@ -1022,6 +1070,7 @@ public class WorkServiceImpl implements WorkService {
|
|
|
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")
|
|
|
@@ -1032,4 +1081,257 @@ public class WorkServiceImpl implements WorkService {
|
|
|
.build(), YDConf.FORM_OPERATION.upsert);
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateProject(String formInstanceId) {
|
|
|
+ Map formData = ydClient.queryData(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formInstanceId(formInstanceId)
|
|
|
+ .useLatestVersion(true)
|
|
|
+ .build(),
|
|
|
+ YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
+ List<Map> sonList = ydService.queryDetails(YDParam.builder().
|
|
|
+ appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formInstanceId(formInstanceId)
|
|
|
+ .formUuid("FORM-EA91EECA918848EA9EFFA87107B60BD0SLXX")
|
|
|
+ .tableFieldId("tableField_mfo51ygb")
|
|
|
+ .build());
|
|
|
+
|
|
|
+ String[] dateList = getMonthStartEndTimestamps(formData.get("dateField_mfo3dvpr").toString());
|
|
|
+ //定额档案表
|
|
|
+ List<Map> quotaList = ydService.queryFormData_all(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr",dateList)))
|
|
|
+ .build());
|
|
|
+
|
|
|
+ sonList.forEach(s->{
|
|
|
+ String code = s.get("textField_mfenmegp").toString();
|
|
|
+ String xmdemp = s.get("employeeField_mfo3dvpt").toString();
|
|
|
+ JSONArray xmdArray = JSONArray.parseArray(xmdemp);
|
|
|
+
|
|
|
+ String qyemp = s.get("employeeField_mfo3dvq2").toString();
|
|
|
+ JSONArray qyArray = JSONArray.parseArray(qyemp);
|
|
|
+
|
|
|
+ quotaList.forEach(q->{
|
|
|
+ if (code.equals(q.get("textField_mfenmegp"))){
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formInstanceId(q.get("formInstanceId").toString())
|
|
|
+ .useLatestVersion(true)
|
|
|
+ //项目是否参与考核 项目负责人是否参与考核 项目负责人userid 区域负责人userid
|
|
|
+ .updateFormDataJson(JSON.toJSONString(UtilMap.map("selectField_mfo51ygd, selectField_mfp86vfw, " +
|
|
|
+ "textField_mgoljmhh, textField_mgolu3w2, employeeField_mfo3dvpt, employeeField_mfo3dvq2",
|
|
|
+ s.get("selectField_mfo51ygd"),s.get("selectField_mfp86vfw"),xmdArray.get(0),qyArray.get(0),xmdArray.get(0),qyArray.get(0))))
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void startQuotaConfirm() {
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
+ String formatNowMonth = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
|
+
|
|
|
+ // 获取月份的第一天
|
|
|
+ LocalDateTime firstDay = LocalDateTime.now().withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
+ // 获取月份的最后一天
|
|
|
+ LocalDateTime lastDay = LocalDateTime.now().withDayOfMonth(LocalDate.now().plusMonths(-1).lengthOfMonth())
|
|
|
+ .withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
|
|
+ // 转换回时间戳
|
|
|
+ long firstDayTimestamp = firstDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
+ long lastDayTimestamp = lastDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
|
|
+
|
|
|
+ List<String> dateList = new ArrayList<>();
|
|
|
+ dateList.add(String.valueOf(firstDayTimestamp));
|
|
|
+ dateList.add(String.valueOf(lastDayTimestamp));
|
|
|
+ //定额档案表数据
|
|
|
+ List<Map> quatoList = ydService.queryFormData_all(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, selectField_mfo51ygd", dateList,"是")))
|
|
|
+ .build());
|
|
|
+
|
|
|
+ List<Map> list1 = new ArrayList<>();
|
|
|
+ List<Map> list2 = new ArrayList<>();
|
|
|
+ List<Map> list3 = new ArrayList<>();
|
|
|
+ List<Map> list4 = new ArrayList<>();
|
|
|
+ List<Map> list5 = new ArrayList<>();
|
|
|
+ List<Map> list6 = new ArrayList<>();
|
|
|
+ quatoList.forEach(q->{
|
|
|
+
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(JSON.parse(q.get("associationFormField_mfo3dvqa_id").toString()).toString());
|
|
|
+ Map<String, Object> map1 = UtilMap.map("associationFormField_mfo3dvqa, textField_mfenmegp, employeeField_mfo3dvpt, employeeField_mfo3dvq2, " +
|
|
|
+ "numberField_mfo3dvpy, numberField_mfo3dvq0, numberField_mfenmehp, numberField_mfenmeht, numberField_mfenmehx, " +
|
|
|
+ "numberField_mfenmei2, numberField_mfenmei5, numberField_mfenmehq, numberField_mfenmehu, numberField_mfenmehy, " +
|
|
|
+ "numberField_mfenmei1, numberField_mfenmei6, numberField_mfenmehr, numberField_mfenmehv, numberField_mfenmehz, " +
|
|
|
+ "numberField_mfenmei3, numberField_mfenmei7, numberField_mfenmehs, numberField_mfenmehw, numberField_mfenmei0, " +
|
|
|
+ "numberField_mfenmei4, numberField_mglm20mo, numberField_mglm20mp, numberField_mfenmelq",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"),
|
|
|
+ q.get("numberField_mfo3dvpy"), q.get("numberField_mfo3dvq0"), q.get("numberField_mfenmehp"), q.get("numberField_mfenmeht"), q.get("numberField_mfenmehx"),
|
|
|
+ q.get("numberField_mfenmei2"), q.get("numberField_mfenmei5"), q.get("numberField_mfenmehq"), q.get("numberField_mfenmehu"), q.get("numberField_mfenmehy"),
|
|
|
+ q.get("numberField_mfenmei1"), q.get("numberField_mfenmei6"), q.get("numberField_mfenmehr"), q.get("numberField_mfenmehv"), q.get("numberField_mfenmehz"),
|
|
|
+ q.get("numberField_mfenmei3"), q.get("numberField_mfenmei7"), q.get("numberField_mfenmehs"), q.get("numberField_mfenmehw"), q.get("numberField_mfenmei0"),
|
|
|
+ q.get("numberField_mfenmei4"), q.get("numberField_mglm20mo"), q.get("numberField_mglm20mp"), q.get("numberField_mfenmelq"));
|
|
|
+ list1.add(map1);
|
|
|
+
|
|
|
+ Map<String, Object> map2 = UtilMap.map("associationFormField_mfp5hush, textField_mfp5husg, employeeField_mfp5husf, employeeField_mfp5huse, " +
|
|
|
+ "numberField_mfenmeih, numberField_mfenmeii, numberField_mfenmeik, numberField_mfenmeij, numberField_mfenmeil, " +
|
|
|
+ "numberField_mfo3dvq6, numberField_mfenmeim, numberField_mfo3dvq8, numberField_mfenmeio, numberField_mfenmeip, " +
|
|
|
+ "numberField_mfenmeir, numberField_mfenmeis, numberField_mfenmeit, numberField_mfenmelr, textareaField_mfo3dvq9",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"),
|
|
|
+ q.get("numberField_mfenmeih"), q.get("numberField_mfenmeii"), q.get("numberField_mfenmeik"), q.get("numberField_mfenmeij"), q.get("numberField_mfenmeil"),
|
|
|
+ q.get("numberField_mfo3dvq6"), q.get("numberField_mfenmeim"), q.get("numberField_mfo3dvq8"), q.get("numberField_mfenmeio"), q.get("numberField_mfenmeip"),
|
|
|
+ q.get("numberField_mfenmeir"), q.get("numberField_mfenmeis"), q.get("numberField_mfenmeit"), q.get("numberField_mfenmelr"), q.get("textareaField_mfo3dvq9"));
|
|
|
+
|
|
|
+ list2.add(map2);
|
|
|
+
|
|
|
+ Map<String, Object> map3 = UtilMap.map("associationFormField_mfp5husq, textField_mfp5husp, employeeField_mfp5huso, employeeField_mfp5husn, " +
|
|
|
+ "textField_mfenmejo, textField_mfenmejq, numberField_mfenmejp, numberField_mfenmejr, numberField_mfenmejs, " +
|
|
|
+ "numberField_mfenmels, textField_mgm3bkiz, numberField_mfenmelt, numberField_mfenmek8, numberField_mfenmek9",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"),
|
|
|
+ q.get("textField_mfenmejo"), q.get("textField_mfenmejq"), q.get("numberField_mfenmejp"), q.get("numberField_mfenmejr"), q.get("numberField_mfenmejs"),
|
|
|
+ q.get("numberField_mfenmels"), q.get("textField_mgm3bkiz"), q.get("numberField_mfenmelt"), q.get("numberField_mfenmek8"), q.get("numberField_mfenmek9"));
|
|
|
+
|
|
|
+ list3.add(map3);
|
|
|
+
|
|
|
+ Map<String, Object> map4 = UtilMap.map("associationFormField_mfp5hut1, textField_mfp5hut0, employeeField_mfp5husz, employeeField_mfp5husy, " +
|
|
|
+ "numberField_mfenmej6, numberField_mfenmekv, numberField_mfenmel1, numberField_mfenmel3, numberField_mfenmel9, " +
|
|
|
+ "numberField_mfenmel2, numberField_mfenmela, numberField_mfenmelb, numberField_mfenmelc, numberField_mfenmeld, " +
|
|
|
+ "numberField_mfenmele, numberField_mfenmelf, numberField_mfo3dvry, numberField_mfo3dvs0, numberField_mfo3dvs2, " +
|
|
|
+ "numberField_mfo3dvs5, numberField_mfenmell",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"),
|
|
|
+ q.get("numberField_mfenmej6"), q.get("numberField_mfenmekv"), q.get("numberField_mfenmel1"), q.get("numberField_mfenmel3"), q.get("numberField_mfenmel9"),
|
|
|
+ q.get("numberField_mfenmel2"), q.get("numberField_mfenmela"), q.get("numberField_mfenmelb"), q.get("numberField_mfenmelc"), q.get("numberField_mfenmeld"),
|
|
|
+ q.get("numberField_mfenmele"), q.get("numberField_mfenmelf"), q.get("numberField_mfo3dvry"), q.get("numberField_mfo3dvs0"), q.get("numberField_mfo3dvs2"),
|
|
|
+ q.get("numberField_mfo3dvs5"), q.get("numberField_mfenmell"));
|
|
|
+ list4.add(map4);
|
|
|
+
|
|
|
+ Map<String, Object> map5 = UtilMap.map("associationFormField_mgokjmx5, textField_mgokjmx6, employeeField_mgokjmx7, employeeField_mgokjmx8",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"));
|
|
|
+ list5.add(map5);
|
|
|
+
|
|
|
+ Map<String, Object> map6 = UtilMap.map("associationFormField_mgokjmyd, textField_mgokjmye, employeeField_mgokjmyf, employeeField_mgokjmyg",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"));
|
|
|
+ list6.add(map6);
|
|
|
+ });
|
|
|
+
|
|
|
+ /*发起流程*/
|
|
|
+ ydClient.operateData(YDParam.builder().userId("026150181237-1254068060")
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formUuid("FORM-D07E4A40ED364508B4B1A7DDADF68DE5ZWMJ")
|
|
|
+ .useLatestVersion(true)
|
|
|
+ .formDataJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, tableField_mfov2zgj, " +
|
|
|
+ "tableField_mfp5hus9, tableField_mfp5husi, tableField_mfp5hust, tableField_mgokjmxq, " +
|
|
|
+ "tableField_mgokjmyi, textField_mglzsfn2",
|
|
|
+ firstDayTimestamp,list1,list2,list3,list4,list5,list6,formatNowMonth)))
|
|
|
+ .build(), YDConf.FORM_OPERATION.start);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void startAssessReview(Map data) {
|
|
|
+ String formInstanceId = data.get("formInstanceId").toString();
|
|
|
+ Map formData = ydClient.queryData(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formInstanceId(formInstanceId)
|
|
|
+ .useLatestVersion(true)
|
|
|
+ .build(),
|
|
|
+ YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
+
|
|
|
+ String formatDate = formData.get("textField_mglzsfn2").toString();
|
|
|
+ //定额档案表数据
|
|
|
+ List<Map> quatoList = ydService.queryFormData_all(YDParam.builder()
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formUuid("FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB")
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_mfo6i24e, selectField_mfo51ygd, radioField_mfo5qdfc", formatDate,"是","项目点负责人")))
|
|
|
+ .build());
|
|
|
+
|
|
|
+ List<Map> list1 = new ArrayList<>();
|
|
|
+ List<Map> list2 = new ArrayList<>();
|
|
|
+ quatoList.forEach(q->{
|
|
|
+ List<Map<String,Object>> objects = new ArrayList<>();
|
|
|
+ Map<String, Object> map = UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle",
|
|
|
+ "APP_TKO2FYGFQYQQMQFUTUU5", "FORM-C17DA3AEA3064A3D9CA118BBB3116BF6NLUB", "receipt",
|
|
|
+ q.get("formInstanceId"), q.get("serialNumberField_mfo3dvpv"), "");
|
|
|
+ objects.add(map);
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(JSON.parse(q.get("associationFormField_mfo3dvqa_id").toString()).toString());
|
|
|
+ Map<String, Object> map1 = UtilMap.map("associationFormField_mfo3dvqa, textField_mgojzrla, employeeField_mfo3dvpt, employeeField_mfo3dvq2, " +
|
|
|
+ "numberField_mfo3dvqi, numberField_mfenmelq, numberField_mfenmelr, numberField_mfenmels, numberField_mfo5c8jj, " +
|
|
|
+ "numberField_mfenmelu, numberField_mfenmej6, numberField_mfenmekv, numberField_mfo5qddy, associationFormField_mfo5c8je, " +
|
|
|
+ "numberField_mfo5qde1, numberField_mfo5qdf8, numberField_mfo5qdfb, numberField_mfo3dvt9",
|
|
|
+ jsonArray, q.get("textField_mfenmegp"), q.get("textField_mgoljmhh"), q.get("textField_mgolu3w2"),
|
|
|
+ q.get("numberField_mfo3dvqi"), q.get("numberField_mfenmelq"), q.get("numberField_mfenmelr"), q.get("numberField_mfenmels"), q.get("numberField_mfenmelt"),
|
|
|
+ q.get("numberField_mfenmelu"), q.get("numberField_mfenmej6"),
|
|
|
+ //7
|
|
|
+ UtilMap.getDouble(q,"numberField_mfenmekv")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmel1")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmel3")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmel9")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmel2"),
|
|
|
+ //8+9+10+11
|
|
|
+ UtilMap.getDouble(q,"numberField_mfenmela")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmelb")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmelc")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmeld"), objects,
|
|
|
+ //12+13
|
|
|
+ UtilMap.getDouble(q,"numberField_mfenmele")
|
|
|
+ +UtilMap.getDouble(q,"numberField_mfenmelf")
|
|
|
+ //14
|
|
|
+ , q.get("numberField_mfenmell"), q.get("numberField_mfo3dvqi"), q.get("numberField_mfo3dvt9"));
|
|
|
+
|
|
|
+ list1.add(map1);
|
|
|
+ });
|
|
|
+ /*发起流程*/
|
|
|
+ ydClient.operateData(YDParam.builder().userId("026150181237-1254068060")
|
|
|
+ .appType("APP_TKO2FYGFQYQQMQFUTUU5")
|
|
|
+ .systemToken("2IF66SC1XCSY45IUBXA0X9WYE09G3W8GGNEFM7T4")
|
|
|
+ .formUuid("FORM-7F298A42E1BE4E4CA392B8BDE3AFA789TWDB")
|
|
|
+ .formDataJson(JSON.toJSONString(UtilMap.map("dateField_mfo3dvpr, tableField_mfo51ygb, radioField_mfo5qdfc, textField_mfo6i24e",
|
|
|
+ formData.get("dateField_mfo3dvpr"),list1,"项目点负责人",formatDate)))
|
|
|
+ .build(), YDConf.FORM_OPERATION.start);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String[] getMonthStartEndTimestamps(String timestampStr) {
|
|
|
+ try {
|
|
|
+ long timestamp = Long.parseLong(timestampStr);
|
|
|
+
|
|
|
+ // 如果时间戳是秒级的,转换为毫秒
|
|
|
+ if (timestampStr.length() <= 10) {
|
|
|
+ timestamp *= 1000;
|
|
|
+ }
|
|
|
+
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTimeInMillis(timestamp);
|
|
|
+
|
|
|
+ // 当月第一天
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ long firstDay = calendar.getTimeInMillis();
|
|
|
+
|
|
|
+ // 当月最后一天
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
+ calendar.set(Calendar.MINUTE, 59);
|
|
|
+ calendar.set(Calendar.SECOND, 59);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 999);
|
|
|
+ long lastDay = calendar.getTimeInMillis();
|
|
|
+
|
|
|
+ return new String[]{String.valueOf(firstDay), String.valueOf(lastDay)};
|
|
|
+
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ throw new IllegalArgumentException("无效的时间戳格式: " + timestampStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|