|
@@ -1,5 +1,6 @@
|
|
|
package com.malk.lanyun.service.impl;
|
|
package com.malk.lanyun.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
@@ -79,9 +80,9 @@ public class WorkServiceImpl implements WorkService {
|
|
|
Date endOfMonth = DateUtil.endOfMonth(DateUtil.date());
|
|
Date endOfMonth = DateUtil.endOfMonth(DateUtil.date());
|
|
|
String[] dateList = new String[2];
|
|
String[] dateList = new String[2];
|
|
|
dateList[0] = String.valueOf(beginOfMonth.getTime());
|
|
dateList[0] = String.valueOf(beginOfMonth.getTime());
|
|
|
-// dateList[0] = String.valueOf(1755705600000L);
|
|
|
|
|
|
|
+// dateList[0] = String.valueOf(1767196800000L);
|
|
|
dateList[1] = String.valueOf(endOfMonth.getTime());
|
|
dateList[1] = String.valueOf(endOfMonth.getTime());
|
|
|
-// dateList[1] = String.valueOf(1755791999000L);
|
|
|
|
|
|
|
+// dateList[1] = String.valueOf(1769875199000L);
|
|
|
//获取当月所有报工单
|
|
//获取当月所有报工单
|
|
|
List<Map> dataList = ydService.queryFormData_all(_initLYParam()
|
|
List<Map> dataList = ydService.queryFormData_all(_initLYParam()
|
|
|
.formUuid("FORM-C9543719A88F4D99A8E197FD6F9DE182ZOW9")
|
|
.formUuid("FORM-C9543719A88F4D99A8E197FD6F9DE182ZOW9")
|
|
@@ -99,27 +100,30 @@ public class WorkServiceImpl implements WorkService {
|
|
|
.formUuid("FORM-886B38D31DA144C2B384BD23C3D13126QSK3")
|
|
.formUuid("FORM-886B38D31DA144C2B384BD23C3D13126QSK3")
|
|
|
.tableFieldId("tableField_lrn734ib")
|
|
.tableFieldId("tableField_lrn734ib")
|
|
|
.build());
|
|
.build());
|
|
|
- distributeSonList.forEach(s->{
|
|
|
|
|
- String emp = s.get("employeeField_lrs3k7zx").toString();
|
|
|
|
|
- JSONArray jsonArray = JSONArray.parseArray(emp);
|
|
|
|
|
- Map<String, Object> map = UtilMap.map("emp, amount", jsonArray.get(0), s.get("numberField_lvkm787c_value"));
|
|
|
|
|
- distributes.add(map);
|
|
|
|
|
- });
|
|
|
|
|
- distributeSonList = ydService.queryDetails(_initLYParam()
|
|
|
|
|
- .formInstanceId(e.get("formInstanceId").toString())
|
|
|
|
|
- .formUuid("FORM-886B38D31DA144C2B384BD23C3D13126QSK3")
|
|
|
|
|
- .tableFieldId("tableField_m9j7tdn7")
|
|
|
|
|
- .build());
|
|
|
|
|
- distributeSonList.forEach(s->{
|
|
|
|
|
- String emp = s.get("textField_mad9s638").toString();
|
|
|
|
|
- Map<String, Object> map = UtilMap.map("emp, amount",emp, s.get("numberField_m9j7tdn4_value"));
|
|
|
|
|
- distributes.add(map);
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ String unit = UtilMap.getString(e, "textField_mlex61af");
|
|
|
|
|
+ if (!unit.isEmpty() && ObjectUtil.isNotNull(unit)){
|
|
|
|
|
+ distributeSonList.forEach(s->{
|
|
|
|
|
+ String emp = s.get("employeeField_lrs3k7zx").toString();
|
|
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(emp);
|
|
|
|
|
+ Map<String, Object> map = UtilMap.map("emp, amount, unit", jsonArray.get(0), s.get("numberField_lvkm787c_value"),unit);
|
|
|
|
|
+ distributes.add(map);
|
|
|
|
|
+ });
|
|
|
|
|
+ distributeSonList = ydService.queryDetails(_initLYParam()
|
|
|
|
|
+ .formInstanceId(e.get("formInstanceId").toString())
|
|
|
|
|
+ .formUuid("FORM-886B38D31DA144C2B384BD23C3D13126QSK3")
|
|
|
|
|
+ .tableFieldId("tableField_m9j7tdn7")
|
|
|
|
|
+ .build());
|
|
|
|
|
+ distributeSonList.forEach(s->{
|
|
|
|
|
+ String emp = s.get("textField_mad9s638").toString();
|
|
|
|
|
+ Map<String, Object> map = UtilMap.map("emp, amount, unit",emp, s.get("numberField_m9j7tdn4_value"),unit);
|
|
|
|
|
+ distributes.add(map);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
Map<String, Map<String, Object>> collect = distributes.stream()
|
|
Map<String, Map<String, Object>> collect = distributes.stream()
|
|
|
.collect(Collectors.groupingBy(
|
|
.collect(Collectors.groupingBy(
|
|
|
- map -> String.valueOf(map.get("emp")),
|
|
|
|
|
|
|
+ map -> map.get("emp") + "," + map.get("unit"),
|
|
|
Collectors.collectingAndThen(
|
|
Collectors.collectingAndThen(
|
|
|
Collectors.toList(),
|
|
Collectors.toList(),
|
|
|
list -> {
|
|
list -> {
|
|
@@ -157,10 +161,10 @@ public class WorkServiceImpl implements WorkService {
|
|
|
//第二步,获取工程订单合同总金额,已在报工单中——numberField_luz7kj3p
|
|
//第二步,获取工程订单合同总金额,已在报工单中——numberField_luz7kj3p
|
|
|
//第三步,遍历三个人员子表分别统计
|
|
//第三步,遍历三个人员子表分别统计
|
|
|
|
|
|
|
|
- List<Map<String,Object>> dataForm = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
Double finalSum = sum;
|
|
Double finalSum = sum;
|
|
|
v.forEach(g->{
|
|
v.forEach(g->{
|
|
|
|
|
+ List<Map<String,Object>> dataForm = new ArrayList<>();
|
|
|
//合同总金额
|
|
//合同总金额
|
|
|
Double amount = Double.parseDouble(ObjectUtil.isNotNull(g.get("numberField_luz7kj3p_value"))&& !g.get("numberField_luz7kj3p_value").toString().isEmpty()?g.get("numberField_luz7kj3p_value").toString():"0.0");
|
|
Double amount = Double.parseDouble(ObjectUtil.isNotNull(g.get("numberField_luz7kj3p_value"))&& !g.get("numberField_luz7kj3p_value").toString().isEmpty()?g.get("numberField_luz7kj3p_value").toString():"0.0");
|
|
|
//负责人
|
|
//负责人
|
|
@@ -184,17 +188,19 @@ public class WorkServiceImpl implements WorkService {
|
|
|
//人员
|
|
//人员
|
|
|
String emp = e.get("employeeField_lrs3k7zx").toString();
|
|
String emp = e.get("employeeField_lrs3k7zx").toString();
|
|
|
JSONArray jsonArray = JSONArray.parseArray(emp);
|
|
JSONArray jsonArray = JSONArray.parseArray(emp);
|
|
|
- //工时
|
|
|
|
|
- Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7frho_value")) && !e.get("numberField_lrn7frho_value").toString().isEmpty() ? e.get("numberField_lrn7frho_value").toString() : "0.0");
|
|
|
|
|
- //人均产值
|
|
|
|
|
- double avg = amount / finalSum * workHours;
|
|
|
|
|
- //内包/非内包
|
|
|
|
|
- String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbk"))?e.get("selectField_mfmkxzbk").toString():"非内包";
|
|
|
|
|
- //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
- Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
- "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
- workDate, workFrom, workContent, jsonArray.get(0), "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type,k);
|
|
|
|
|
- dataForm.add(map);
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotNull(jsonArray.get(0))){
|
|
|
|
|
+ //工时
|
|
|
|
|
+ Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7frho_value")) && !e.get("numberField_lrn7frho_value").toString().isEmpty() ? e.get("numberField_lrn7frho_value").toString() : "0.0");
|
|
|
|
|
+ //人均产值
|
|
|
|
|
+ double avg = amount / finalSum * workHours;
|
|
|
|
|
+ //内包/非内包
|
|
|
|
|
+ String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbk"))?e.get("selectField_mfmkxzbk").toString():"非内包";
|
|
|
|
|
+ //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
+ Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
+ "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
+ workDate, workFrom, workContent, jsonArray.get(0), "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "直属队",type,k);
|
|
|
|
|
+ dataForm.add(map);
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
//外协人员名单
|
|
//外协人员名单
|
|
@@ -207,17 +213,20 @@ public class WorkServiceImpl implements WorkService {
|
|
|
outList.forEach(e->{
|
|
outList.forEach(e->{
|
|
|
//人员
|
|
//人员
|
|
|
String emp = e.get("textField_lte7odks").toString();
|
|
String emp = e.get("textField_lte7odks").toString();
|
|
|
- //工时
|
|
|
|
|
- Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7frhx_value")) && !e.get("numberField_lrn7frhx_value").toString().isEmpty() ? e.get("numberField_lrn7frhx_value").toString() : "0.0");
|
|
|
|
|
- //人均产值
|
|
|
|
|
- double avg = amount / finalSum * workHours;
|
|
|
|
|
- //内包/非内包
|
|
|
|
|
- String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbm"))?e.get("selectField_mfmkxzbm").toString():"非内包";
|
|
|
|
|
- //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
- Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
- "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
- workDate, workFrom, workContent, emp, "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type,k);
|
|
|
|
|
- dataForm.add(map);
|
|
|
|
|
|
|
+ if (!emp.isEmpty()){
|
|
|
|
|
+ //工时
|
|
|
|
|
+ Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7frhx_value")) && !e.get("numberField_lrn7frhx_value").toString().isEmpty() ? e.get("numberField_lrn7frhx_value").toString() : "0.0");
|
|
|
|
|
+ //人均产值
|
|
|
|
|
+ double avg = amount / finalSum * workHours;
|
|
|
|
|
+ //内包/非内包
|
|
|
|
|
+ String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbm"))?e.get("selectField_mfmkxzbm").toString():"非内包";
|
|
|
|
|
+ //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
+ Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
+ "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
+ workDate, workFrom, workContent, emp, "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "外协",type,k);
|
|
|
|
|
+ dataForm.add(map);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
//内协人员名单
|
|
//内协人员名单
|
|
@@ -230,38 +239,68 @@ public class WorkServiceImpl implements WorkService {
|
|
|
inList.forEach(e->{
|
|
inList.forEach(e->{
|
|
|
//人员
|
|
//人员
|
|
|
String emp = UtilMap.getList(e,"employeeField_lrs3k7zz").size()>0?UtilMap.getList(e,"employeeField_lrs3k7zz").get(0).toString():"";
|
|
String emp = UtilMap.getList(e,"employeeField_lrs3k7zz").size()>0?UtilMap.getList(e,"employeeField_lrs3k7zz").get(0).toString():"";
|
|
|
- //工时
|
|
|
|
|
- Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7fric_value")) && !e.get("numberField_lrn7fric_value").toString().isEmpty() ? e.get("numberField_lrn7fric_value").toString() : "0.0");
|
|
|
|
|
- //人均产值
|
|
|
|
|
- double avg = amount / finalSum * workHours;
|
|
|
|
|
- //内包/非内包
|
|
|
|
|
- String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbo"))?e.get("selectField_mfmkxzbo").toString():"非内包";
|
|
|
|
|
- //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
- Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
- "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
- workDate, workFrom, workContent, emp, "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type, k);
|
|
|
|
|
- dataForm.add(map);
|
|
|
|
|
|
|
+ if (!emp.isEmpty()){
|
|
|
|
|
+ //工时
|
|
|
|
|
+ Double workHours = Double.parseDouble(ObjectUtil.isNotNull(e.get("numberField_lrn7fric_value")) && !e.get("numberField_lrn7fric_value").toString().isEmpty() ? e.get("numberField_lrn7fric_value").toString() : "0.0");
|
|
|
|
|
+ //人均产值
|
|
|
|
|
+ double avg = amount / finalSum * workHours;
|
|
|
|
|
+ //内包/非内包
|
|
|
|
|
+ String type = ObjectUtil.isNotNull(e.get("selectField_mfmkxzbo"))?e.get("selectField_mfmkxzbo").toString():"非内包";
|
|
|
|
|
+ //日期 施工单位 施工内容 姓名 定点 负责人 总工时 工时 计件金额 内包 人均产值 总额 备注
|
|
|
|
|
+ Map<String, Object> map = UtilMap.map("dateField_mfmbs72j, textField_mfmbs72h, textField_mfmbs72i, textField_mfmbs72k, textField_mfmbs72m, employeeField_mfmbs72q, numberField_mfmbs72s, " +
|
|
|
|
|
+ "numberField_mfmbs72u, numberField_mfmbs72v, textField_mfmbs72x, numberField_mfmbs72y, numberField_mfmbs72z, textField_mfmbs731, textField_mfmj5lmy, textField_mfmbs72x, code",
|
|
|
|
|
+ workDate, workFrom, workContent, emp, "", fzr, finalSum, workHours, 0.0, "", avg, amount, bz, "内协",type, k);
|
|
|
|
|
+ dataForm.add(map);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
dataForm.forEach(e->{
|
|
dataForm.forEach(e->{
|
|
|
- System.out.println(e);
|
|
|
|
|
|
|
+ long startTimestamp = 0;
|
|
|
|
|
+ long endTimestamp = 0;
|
|
|
|
|
+ try {
|
|
|
|
|
+ long timestamp = Long.parseLong(UtilMap.getString(e, "dateField_mfmbs72j"));
|
|
|
|
|
+ DateTime dateTime = DateUtil.date(timestamp);
|
|
|
|
|
+ // 获取当天开始时间(0点0分0秒0毫秒)
|
|
|
|
|
+ DateTime beginOfDay = DateUtil.beginOfDay(dateTime);
|
|
|
|
|
+ // 获取当天结束时间(23点59分59秒999毫秒)
|
|
|
|
|
+ DateTime endOfDay = DateUtil.endOfDay(dateTime);
|
|
|
|
|
+ // 转换为时间戳(毫秒)
|
|
|
|
|
+ startTimestamp = beginOfDay.getTime();
|
|
|
|
|
+ endTimestamp = endOfDay.getTime();
|
|
|
|
|
+ } catch (NumberFormatException ex) {
|
|
|
|
|
+ log.info("获取施工日期出错,施工日期为空");
|
|
|
|
|
+ System.out.println("获取施工日期出错,施工日期为空"+e);
|
|
|
|
|
+ ex.printStackTrace();
|
|
|
|
|
+ }
|
|
|
collect.forEach((k0,v0)->{
|
|
collect.forEach((k0,v0)->{
|
|
|
- if (e.get("textField_mfmbs72k").toString().contains(k0)){
|
|
|
|
|
|
|
+ String[] split = k0.split(",");
|
|
|
|
|
+ if (e.get("textField_mfmbs72k").toString().contains(split[0]) && split[1].equals(UtilMap.getString(e,"textField_mfmbs72h"))){
|
|
|
if ("内包".equals(e.get("textField_mfmbs72x"))){
|
|
if ("内包".equals(e.get("textField_mfmbs72x"))){
|
|
|
- e.put("numberField_mfmbs72v",v0.get("amountSum"));
|
|
|
|
|
|
|
+ e.put("numberField_mfmbs72v",UtilMap.getDouble(v0,"amountSum") / finalSum * UtilMap.getDouble(e,"numberField_mfmbs72u"));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+// List<Map> searchCondition = new ArrayList<>();
|
|
|
|
|
+// searchCondition.addAll(Arrays.asList(
|
|
|
|
|
+// YDConf.searchCondition_TextFiled("dateField_mfmbs72j", Arrays.asList(String.valueOf(startTimestamp),String.valueOf(endTimestamp)), "between"),
|
|
|
|
|
+// YDConf.searchCondition_TextFiled("textField_mfmbs72h", UtilMap.getString(e, "textField_mfmbs72h"), "eq"),
|
|
|
|
|
+// YDConf.searchCondition_TextFiled("textField_mfmbs72k", UtilMap.getString(e, "textField_mfmbs72k"), "eq")
|
|
|
|
|
+// ));
|
|
|
|
|
+
|
|
|
|
|
+ System.out.println(e);
|
|
|
ydClient.operateData(YDParam.builder()
|
|
ydClient.operateData(YDParam.builder()
|
|
|
.appType("APP_FKRD7416H19LDAIN348Y")
|
|
.appType("APP_FKRD7416H19LDAIN348Y")
|
|
|
.systemToken("86D66PA11ITXR3RC60J43DUP75EC2T5T6Z0EMZ91")
|
|
.systemToken("86D66PA11ITXR3RC60J43DUP75EC2T5T6Z0EMZ91")
|
|
|
.formUuid("FORM-A3E6A06628024EC183BDF295C9BDD42BNZ5Y")
|
|
.formUuid("FORM-A3E6A06628024EC183BDF295C9BDD42BNZ5Y")
|
|
|
- .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfmbs72j, textField_mfmbs72k", dateList, e.get("textField_mfmbs72k"))))
|
|
|
|
|
|
|
+// .searchCondition(JSON.toJSONString(searchCondition))
|
|
|
|
|
+ .searchCondition(JSON.toJSONString(UtilMap.map("dateField_mfmbs72j, textField_mfmbs72k, textField_mfmbs72h",
|
|
|
|
|
+ Arrays.asList(String.valueOf(startTimestamp),String.valueOf(endTimestamp)), e.get("textField_mfmbs72k"),UtilMap.getString(e, "textField_mfmbs72h"))))
|
|
|
.formDataJson(JSON.toJSONString(e))
|
|
.formDataJson(JSON.toJSONString(e))
|
|
|
.useLatestVersion(true)
|
|
.useLatestVersion(true)
|
|
|
- .build(), YDConf.FORM_OPERATION.create);
|
|
|
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.upsert);
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
@@ -630,24 +669,37 @@ public class WorkServiceImpl implements WorkService {
|
|
|
Collectors.toList(),
|
|
Collectors.toList(),
|
|
|
list -> {
|
|
list -> {
|
|
|
//社保公积金补贴
|
|
//社保公积金补贴
|
|
|
|
|
+// double sbgjj = list.stream()
|
|
|
|
|
+// .mapToDouble(map -> ((Number) (UtilMap.getDouble(map,"numberField_kp1tzw9")
|
|
|
|
|
+// + UtilMap.getDouble(map, "numberField_lixe8q3")
|
|
|
|
|
+// + UtilMap.getDouble(map, "numberField_x4wvwkm")
|
|
|
|
|
+// )).doubleValue())
|
|
|
|
|
+// .sum();
|
|
|
double sbgjj = list.stream()
|
|
double sbgjj = list.stream()
|
|
|
- .mapToDouble(map -> ((Number) (UtilMap.getDouble(map,"numberField_kp1tzw9")
|
|
|
|
|
- + UtilMap.getDouble(map, "numberField_lixe8q3")
|
|
|
|
|
- + UtilMap.getDouble(map, "numberField_x4wvwkm")
|
|
|
|
|
- )).doubleValue())
|
|
|
|
|
|
|
+ .mapToDouble(map ->
|
|
|
|
|
+ ((Number) UtilMap.getDouble(map, "numberField_x4wvwkm_value")
|
|
|
|
|
+ ).doubleValue())
|
|
|
.sum();
|
|
.sum();
|
|
|
//小业主费用
|
|
//小业主费用
|
|
|
|
|
+// double xyzfy = list.stream()
|
|
|
|
|
+// .mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_ueon7nr_value").toString().isEmpty() ? map.get("numberField_ueon7nr_value").toString() : "0.0")).doubleValue())
|
|
|
|
|
+// .sum();
|
|
|
double xyzfy = list.stream()
|
|
double xyzfy = list.stream()
|
|
|
- .mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_ueon7nr_value").toString().isEmpty() ? map.get("numberField_ueon7nr_value").toString() : "0.0")).doubleValue())
|
|
|
|
|
|
|
+ .mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_m4zqwcsb_value").toString().isEmpty() ? map.get("numberField_m4zqwcsb_value").toString() : "0.0")).doubleValue())
|
|
|
.sum();
|
|
.sum();
|
|
|
//应发工资A
|
|
//应发工资A
|
|
|
double yfgzA = list.stream()
|
|
double yfgzA = list.stream()
|
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_bjzkeii_value").toString().isEmpty() ? map.get("numberField_bjzkeii_value").toString() : "0.0")).doubleValue())
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_bjzkeii_value").toString().isEmpty() ? map.get("numberField_bjzkeii_value").toString() : "0.0")).doubleValue())
|
|
|
.sum();
|
|
.sum();
|
|
|
//甲方奖励
|
|
//甲方奖励
|
|
|
- double jfjl = list.stream()
|
|
|
|
|
- .mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_xn39ty3_value").toString().isEmpty() ? map.get("numberField_xn39ty3_value").toString() : "0.0")).doubleValue())
|
|
|
|
|
|
|
+// double jfjl = list.stream()
|
|
|
|
|
+// .mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_xn39ty3_value").toString().isEmpty() ? map.get("numberField_xn39ty3_value").toString() : "0.0")).doubleValue())
|
|
|
|
|
+// .sum();
|
|
|
|
|
+ double jfjl = list.stream()
|
|
|
|
|
+ .mapToDouble(map -> ((Number) (UtilMap.getDouble(map,"numberField_m4zqwcs4_value")
|
|
|
|
|
+ + UtilMap.getDouble(map,"numberField_m4zqwcs2_value"))).doubleValue())
|
|
|
.sum();
|
|
.sum();
|
|
|
|
|
+
|
|
|
//外派工资
|
|
//外派工资
|
|
|
double wpgz = list.stream()
|
|
double wpgz = list.stream()
|
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_apmcuk2_value").toString().isEmpty() ? map.get("numberField_apmcuk2_value").toString() : "0.0")).doubleValue())
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_apmcuk2_value").toString().isEmpty() ? map.get("numberField_apmcuk2_value").toString() : "0.0")).doubleValue())
|
|
@@ -656,12 +708,22 @@ public class WorkServiceImpl implements WorkService {
|
|
|
double jxgz = list.stream()
|
|
double jxgz = list.stream()
|
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_765hruk_value").toString().isEmpty() ? map.get("numberField_765hruk_value").toString() : "0.0")).doubleValue())
|
|
.mapToDouble(map -> ((Number) Double.parseDouble(!map.get("numberField_765hruk_value").toString().isEmpty() ? map.get("numberField_765hruk_value").toString() : "0.0")).doubleValue())
|
|
|
.sum();
|
|
.sum();
|
|
|
|
|
+ //人事扣款执行
|
|
|
|
|
+ double rskkzx = list.stream()
|
|
|
|
|
+ .mapToDouble(map -> ((Number) (UtilMap.getDouble(map,"numberField_rbnagms")//缺勤扣款
|
|
|
|
|
+ + UtilMap.getDouble(map,"numberField_qp5294m")//考勤扣款
|
|
|
|
|
+ + UtilMap.getDouble(map,"numberField_apnua9m")//处罚
|
|
|
|
|
+ + UtilMap.getDouble(map,"numberField_5e60l5f")//其它扣款
|
|
|
|
|
+ + UtilMap.getDouble(map,"numberField_m4zqwctp"))//其它扣款(营运浮动)
|
|
|
|
|
+ ).doubleValue())
|
|
|
|
|
+ .sum();
|
|
|
return new HashMap<String, Object>() {{
|
|
return new HashMap<String, Object>() {{
|
|
|
put("numberField_mfenmehu", sbgjj);
|
|
put("numberField_mfenmehu", sbgjj);
|
|
|
put("numberField_mfenmehv", xyzfy);
|
|
put("numberField_mfenmehv", xyzfy);
|
|
|
put("numberField_mfenmehx", yfgzA);
|
|
put("numberField_mfenmehx", yfgzA);
|
|
|
put("numberField_mfenmehz", jfjl);
|
|
put("numberField_mfenmehz", jfjl);
|
|
|
- put("numberField_mfenmei1", wpgz);
|
|
|
|
|
|
|
+// put("numberField_mfenmei1", wpgz);
|
|
|
|
|
+ put("numberField_mfenmehy", wpgz);
|
|
|
put("numberField_mfenmei3", jxgz);
|
|
put("numberField_mfenmei3", jxgz);
|
|
|
put("numberField_mfenmehw", sbgjj + xyzfy);//定额工资(未加人工定额)
|
|
put("numberField_mfenmehw", sbgjj + xyzfy);//定额工资(未加人工定额)
|
|
|
put("numberField_mfenmei5", yfgzA - jfjl + wpgz + jxgz);//调整后应发工资(未加生产成本-业务外包费)
|
|
put("numberField_mfenmei5", yfgzA - jfjl + wpgz + jxgz);//调整后应发工资(未加生产成本-业务外包费)
|
|
@@ -1230,42 +1292,55 @@ public class WorkServiceImpl implements WorkService {
|
|
|
Double htrs = UtilMap.getDouble(dataMap, "numberField_mfo3dvpy");//合同人数C
|
|
Double htrs = UtilMap.getDouble(dataMap, "numberField_mfo3dvpy");//合同人数C
|
|
|
Double rgjy = UtilMap.getDouble(dataMap, "numberField_mfenmei6");//人工结余Z
|
|
Double rgjy = UtilMap.getDouble(dataMap, "numberField_mfenmei6");//人工结余Z
|
|
|
Double jybl1 = UtilMap.getDouble(dataMap, "numberField_mfenmei7");//1-结余比例AA
|
|
Double jybl1 = UtilMap.getDouble(dataMap, "numberField_mfenmei7");//1-结余比例AA
|
|
|
- if (rgjy == 0.0 && jybl1 == 0.0){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",25);
|
|
|
|
|
- }else if (rgjy > 0.0 && rgjy < 200 && jybl1 > 0.0) {
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",25);
|
|
|
|
|
- }else if (rgjy < 0 && jybl1 > -5 && jybl1 < 0) {
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",10);
|
|
|
|
|
- }else if (rgjy < 0 && jybl1 < -5){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",0);
|
|
|
|
|
- } else if (rgjy >= 200 && htrs >= 0 && htrs <= 30) {
|
|
|
|
|
- if (rgjy / 200 > 25){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
- }else {
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",rgjy / 200 + 25);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (rgjy >= 200 && htrs >= 31 && htrs <= 50) {
|
|
|
|
|
- if (rgjy / 400 > 25){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
- }else {
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",rgjy / 400 + 25);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (rgjy >= 200 && htrs >= 51 && htrs <= 70) {
|
|
|
|
|
- if (rgjy / 600 > 25){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
|
|
+ Double rgdcl =UtilMap.getDouble(dataMap,"numberField_mfenmehw") == 0.0 ? 0 :
|
|
|
|
|
+ UtilMap.getDouble(dataMap,"numberField_mfenmei5") / UtilMap.getDouble(dataMap,"numberField_mfenmehw");//人工达成率
|
|
|
|
|
+ if (rgdcl < 1){
|
|
|
|
|
+ if (25 * (1 + (1 - rgdcl)) > 10){
|
|
|
|
|
+ dataMap.put("numberField_mfenmelq", 35);
|
|
|
}else {
|
|
}else {
|
|
|
- dataMap.put("numberField_mfenmelq",rgjy / 600 + 25);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- else if (rgjy >= 200 && htrs >= 71) {
|
|
|
|
|
- if (rgjy / 800 > 25){
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
- }else {
|
|
|
|
|
- dataMap.put("numberField_mfenmelq",rgjy / 800 + 25);
|
|
|
|
|
|
|
+ dataMap.put("numberField_mfenmelq", 25 * (1 + (1 - rgdcl)));
|
|
|
}
|
|
}
|
|
|
}else {
|
|
}else {
|
|
|
- dataMap.put("numberField_mfenmelq",0);
|
|
|
|
|
|
|
+ dataMap.put("numberField_mfenmelq", 0);
|
|
|
}
|
|
}
|
|
|
|
|
+ //前朝人工得分算法
|
|
|
|
|
+
|
|
|
|
|
+// if (rgjy == 0.0 && jybl1 == 0.0){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",25);
|
|
|
|
|
+// }else if (rgjy > 0.0 && rgjy < 200 && jybl1 > 0.0) {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",25);
|
|
|
|
|
+// }else if (rgjy < 0 && jybl1 > -5 && jybl1 < 0) {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",10);
|
|
|
|
|
+// }else if (rgjy < 0 && jybl1 < -5){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",0);
|
|
|
|
|
+// } else if (rgjy >= 200 && htrs >= 0 && htrs <= 30) {
|
|
|
|
|
+// if (rgjy / 200 > 25){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",rgjy / 200 + 25);
|
|
|
|
|
+// }
|
|
|
|
|
+// } else if (rgjy >= 200 && htrs >= 31 && htrs <= 50) {
|
|
|
|
|
+// if (rgjy / 400 > 25){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",rgjy / 400 + 25);
|
|
|
|
|
+// }
|
|
|
|
|
+// } else if (rgjy >= 200 && htrs >= 51 && htrs <= 70) {
|
|
|
|
|
+// if (rgjy / 600 > 25){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",rgjy / 600 + 25);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// else if (rgjy >= 200 && htrs >= 71) {
|
|
|
|
|
+// if (rgjy / 800 > 25){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",45);
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",rgjy / 800 + 25);
|
|
|
|
|
+// }
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelq",0);
|
|
|
|
|
+// }
|
|
|
//实际费用 (工作服 非工作服 生产成本-租赁费 生产成本-折旧 设备维修)
|
|
//实际费用 (工作服 非工作服 生产成本-租赁费 生产成本-折旧 设备维修)
|
|
|
dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
|
|
dataMap.put("numberField_mfenmeip",UtilMap.getDouble(dataMap,"numberField_mfenmeim")
|
|
|
+ UtilMap.getDouble(dataMap,"numberField_mfenmeii")
|
|
+ UtilMap.getDouble(dataMap,"numberField_mfenmeii")
|
|
@@ -1293,15 +1368,26 @@ public class WorkServiceImpl implements WorkService {
|
|
|
//2-评价得分(2-物料成本)
|
|
//2-评价得分(2-物料成本)
|
|
|
Double sjfy = UtilMap.getDouble(dataMap, "numberField_mfenmeip");//实际费用
|
|
Double sjfy = UtilMap.getDouble(dataMap, "numberField_mfenmeip");//实际费用
|
|
|
Double jybl = UtilMap.getDouble(dataMap, "numberField_mfenmeit");//结余比例
|
|
Double jybl = UtilMap.getDouble(dataMap, "numberField_mfenmeit");//结余比例
|
|
|
- if (jybl < 0 && jybl >= -4){
|
|
|
|
|
- dataMap.put("numberField_mfenmelr","10");
|
|
|
|
|
- }else if (jybl < -4) {
|
|
|
|
|
- dataMap.put("numberField_mfenmelr","0");
|
|
|
|
|
- }else if (jybl/0.0002 > 20) {
|
|
|
|
|
- dataMap.put("numberField_mfenmelr","40");
|
|
|
|
|
|
|
+ Double wldcl = UtilMap.getDouble(dataMap,"numberField_mfenmeih") == 0.0 ? 0.0 :
|
|
|
|
|
+ UtilMap.getDouble(dataMap,"numberField_mfenmeii") / UtilMap.getDouble(dataMap,"numberField_mfenmeih");
|
|
|
|
|
+ if (wldcl < 1){
|
|
|
|
|
+ if (20 * (1+(1-wldcl))>30){
|
|
|
|
|
+ dataMap.put("numberField_mfenmelr",30);
|
|
|
|
|
+ }
|
|
|
|
|
+ dataMap.put("numberField_mfenmelr",20 * (1+(1-wldcl)));
|
|
|
}else {
|
|
}else {
|
|
|
- dataMap.put("numberField_mfenmelr",jybl/0.0002 + 20);
|
|
|
|
|
|
|
+ dataMap.put("numberField_mfenmelr",0);
|
|
|
}
|
|
}
|
|
|
|
|
+ //前朝物料得分算法
|
|
|
|
|
+// if (jybl < 0 && jybl >= -4){
|
|
|
|
|
+// dataMap.put("numberField_mfenmelr","10");
|
|
|
|
|
+// }else if (jybl < -4) {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelr","0");
|
|
|
|
|
+// }else if (jybl/0.0002 > 20) {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelr","40");
|
|
|
|
|
+// }else {
|
|
|
|
|
+// dataMap.put("numberField_mfenmelr",jybl/0.0002 + 20);
|
|
|
|
|
+// }
|
|
|
//结算金额-差额
|
|
//结算金额-差额
|
|
|
dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
|
|
dataMap.put("numberField_mfenmejs", UtilMap.getDouble(dataMap,"numberField_mfenmejr")
|
|
|
- UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
|
|
- UtilMap.getDouble(dataMap,"numberField_mfenmejp"));
|