|
|
@@ -48,10 +48,14 @@ import java.io.ByteArrayInputStream;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
import java.util.EventObject;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
@@ -168,10 +172,10 @@ public class ImportKPISelectFormPlugin extends AbstractFormPlugin implements Upl
|
|
|
// returnMap.put("dataRowList", dataRowList);
|
|
|
//写入数据
|
|
|
Boolean b = saveData(dataHeadNumberList, dataRowList);
|
|
|
- if( b ){
|
|
|
+ if (b) {
|
|
|
this.getView().returnDataToParent(true);
|
|
|
this.getView().close();
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.getView().showTipNotification("数据保存错误请联系管理员!");
|
|
|
}
|
|
|
} else {
|
|
|
@@ -184,9 +188,23 @@ public class ImportKPISelectFormPlugin extends AbstractFormPlugin implements Upl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private Boolean saveData(List<Map<Integer, String>> dataHeadNumberList,List<Map<Integer, String>> dataRowList){
|
|
|
+ private String judgeDataType(Object object) {
|
|
|
+ if (object instanceof Boolean) {
|
|
|
+ Boolean b = (Boolean) object;
|
|
|
+ return b ? "是" : "否";
|
|
|
+ } else if (object instanceof Date) {
|
|
|
+ SimpleDateFormat basicFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String date = basicFormat.format((Date) object);
|
|
|
+ return date;
|
|
|
+ } else if (object instanceof BigDecimal) {
|
|
|
+ return ((BigDecimal) object).toString();
|
|
|
+ }
|
|
|
+ return (String) object;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Boolean saveData(List<Map<Integer, String>> dataHeadNumberList, List<Map<Integer, String>> dataRowList) {
|
|
|
QFilter commonQFilter = new QFilter("enable", QCP.equals, "1");
|
|
|
- commonQFilter.and("status",QCP.equals,"C");
|
|
|
+ commonQFilter.and("status", QCP.equals, "C");
|
|
|
//表头编码
|
|
|
Map<Integer, String> zeroExcelRow = dataHeadNumberList.get(0);
|
|
|
QFilter dimensionQFilter = new QFilter("number", QCP.in, zeroExcelRow.values());
|
|
|
@@ -200,23 +218,23 @@ public class ImportKPISelectFormPlugin extends AbstractFormPlugin implements Upl
|
|
|
List<String> userNumbers = dataRowList.stream().map(i -> i.get(1)).collect(Collectors.toList());
|
|
|
QFilter userQFilter = new QFilter("number", QCP.in, userNumbers);
|
|
|
DynamicObject[] users = BusinessDataServiceHelper.load("bos_user", "id,name,number", new QFilter[]{userQFilter, commonQFilter});
|
|
|
- Map<String, DynamicObject> userMap = Arrays.stream(users).collect(Collectors.toMap(i -> i.getString("number"), i -> i,(existing, replacement) -> existing));
|
|
|
+ Map<String, DynamicObject> userMap = Arrays.stream(users).collect(Collectors.toMap(i -> i.getString("number"), i -> i, (existing, replacement) -> existing));
|
|
|
|
|
|
//汇总组织编码
|
|
|
List<String> deptNumbers = dataRowList.stream().map(i -> i.get(3)).collect(Collectors.toList());
|
|
|
QFilter deptQFilter = new QFilter("number", QCP.in, deptNumbers);
|
|
|
DynamicObject[] depts = BusinessDataServiceHelper.load("bos_org", "id,name,number", new QFilter[]{deptQFilter, commonQFilter});
|
|
|
- Map<String, DynamicObject> deptMap = Arrays.stream(depts).collect(Collectors.toMap(i -> i.getString("number"), i -> i,(existing, replacement) -> existing));
|
|
|
+ Map<String, DynamicObject> deptMap = Arrays.stream(depts).collect(Collectors.toMap(i -> i.getString("number"), i -> i, (existing, replacement) -> existing));
|
|
|
|
|
|
//汇总岗位编码
|
|
|
List<String> postNumbers = dataRowList.stream().map(i -> i.get(5)).collect(Collectors.toList());
|
|
|
QFilter postQFilter = new QFilter("number", QCP.in, postNumbers);
|
|
|
DynamicObject[] posts = BusinessDataServiceHelper.load("bos_position", "id,name,number", new QFilter[]{postQFilter, commonQFilter});
|
|
|
- Map<String, DynamicObject> postMap = Arrays.stream(posts).collect(Collectors.toMap(i -> i.getString("number"), i -> i,(existing, replacement) -> existing));
|
|
|
+ Map<String, DynamicObject> postMap = Arrays.stream(posts).collect(Collectors.toMap(i -> i.getString("number"), i -> i, (existing, replacement) -> existing));
|
|
|
|
|
|
//查询绩效绩效结果-后续计算部门累计平均排名
|
|
|
HashMap<String, List<String>> userHistoryRank = new HashMap<>();
|
|
|
- DynamicObject[] examinProjectResult = BusinessDataServiceHelper.load("nckd_examinproject_result","nckd_entryentity.nckd_examine_dimension,nckd_entryentity.nckd_result,nckd_org,nckd_user",new QFilter[]{new QFilter("nckd_user.number",QCP.in,userNumbers)});
|
|
|
+ DynamicObject[] examinProjectResult = BusinessDataServiceHelper.load("nckd_examinproject_result", "nckd_entryentity.nckd_examine_dimension,nckd_entryentity.nckd_result,nckd_org,nckd_user", new QFilter[]{new QFilter("nckd_user.number", QCP.in, userNumbers)});
|
|
|
for (DynamicObject object : examinProjectResult) {
|
|
|
//用户
|
|
|
DynamicObject user = object.getDynamicObject("nckd_user");
|
|
|
@@ -227,11 +245,11 @@ public class ImportKPISelectFormPlugin extends AbstractFormPlugin implements Upl
|
|
|
String dimensionNumber = dimension.getString("number");
|
|
|
ArrayList<String> rank = new ArrayList<>();
|
|
|
//判断是否排名
|
|
|
- if( StringUtils.equals(dimensionNumber,"JT-00012") ){
|
|
|
+ if (StringUtils.equals(dimensionNumber, "JT-00012")) {
|
|
|
//添加历史成绩
|
|
|
rank.add(entry.getString("nckd_result"));
|
|
|
}
|
|
|
- userHistoryRank.put(userNumber,rank);
|
|
|
+ userHistoryRank.put(userNumber, rank);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -240,53 +258,53 @@ public class ImportKPISelectFormPlugin extends AbstractFormPlugin implements Upl
|
|
|
for (Map<Integer, String> integerStringMap : dataRowList) {
|
|
|
DynamicObject newData = BusinessDataServiceHelper.newDynamicObject("nckd_examinproject_result");
|
|
|
//设置默认数据
|
|
|
- newData.set("enable","1");
|
|
|
- newData.set("status","A");
|
|
|
- newData.set("nckd_importplan",importPlan);
|
|
|
+ newData.set("enable", "1");
|
|
|
+ newData.set("status", "A");
|
|
|
+ newData.set("nckd_importplan", importPlan);
|
|
|
//姓名
|
|
|
- newData.set("nckd_user",userMap.get(integerStringMap.get(1)));
|
|
|
+ newData.set("nckd_user", userMap.get(integerStringMap.get(1)));
|
|
|
//行政组织
|
|
|
- newData.set("nckd_org",deptMap.get(integerStringMap.get(3)));
|
|
|
- newData.set("group",deptMap.get(integerStringMap.get(3)));
|
|
|
+ newData.set("nckd_org", deptMap.get(integerStringMap.get(3)));
|
|
|
+ newData.set("group", deptMap.get(integerStringMap.get(3)));
|
|
|
//岗位
|
|
|
- newData.set("nckd_postbase",postMap.get(integerStringMap.get(5)));
|
|
|
+ newData.set("nckd_postbase", postMap.get(integerStringMap.get(5)));
|
|
|
//排名单位
|
|
|
- newData.set("nckd_rank_org",integerStringMap.get(6));
|
|
|
+ newData.set("nckd_rank_org", integerStringMap.get(6));
|
|
|
//备注
|
|
|
- newData.set("nckd_remark",integerStringMap.get(17));
|
|
|
+ newData.set("nckd_remark", integerStringMap.get(17));
|
|
|
|
|
|
//增加分录数据
|
|
|
DynamicObjectCollection entry = newData.getDynamicObjectCollection("nckd_entryentity");
|
|
|
for (Integer i : integerStringMap.keySet()) {
|
|
|
//除1为姓名 3 为组织 5为岗位 6为排名单位 17为备注 12 为部门累计平均排名外全部存入分录
|
|
|
- if( i != 1 && i != 3 && i != 5 && i != 6 && i != 17 ){
|
|
|
+ if (i != 1 && i != 3 && i != 5 && i != 6 && i != 17) {
|
|
|
DynamicObject entryRow = entry.addNew();
|
|
|
- entryRow.set("nckd_examine_dimension",examineDimensionMap.get(zeroExcelRow.get(i)));
|
|
|
- entryRow.set("nckd_result",integerStringMap.get(i));
|
|
|
+ entryRow.set("nckd_examine_dimension", examineDimensionMap.get(zeroExcelRow.get(i)));
|
|
|
+ entryRow.set("nckd_result", integerStringMap.get(i));
|
|
|
}
|
|
|
//计算部门累计平均排名
|
|
|
- if( i == 12 ){
|
|
|
+ if (i == 12) {
|
|
|
//本次导入排名
|
|
|
String rank = integerStringMap.get(11);
|
|
|
//用户历史数据排名
|
|
|
List<String> userHistory = userHistoryRank.get(integerStringMap.get(1));
|
|
|
- if( ObjectUtils.isNotEmpty(userHistory) ){
|
|
|
+ if (ObjectUtils.isNotEmpty(userHistory)) {
|
|
|
//计算
|
|
|
int sum = userHistory.stream().mapToInt(Integer::parseInt).sum();
|
|
|
sum += Integer.parseInt(rank);
|
|
|
int finalRank = sum / (userHistory.size() + 1);
|
|
|
- newData.set("nckd_cumulativeranking",finalRank);
|
|
|
- }else{
|
|
|
- newData.set("nckd_cumulativeranking",Integer.parseInt(rank));
|
|
|
+ newData.set("nckd_cumulativeranking", finalRank);
|
|
|
+ } else {
|
|
|
+ newData.set("nckd_cumulativeranking", Integer.parseInt(rank));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
saveList.add(newData);
|
|
|
}
|
|
|
Object[] save = SaveServiceHelper.save(saveList.toArray(new DynamicObject[0]));
|
|
|
- if(ObjectUtils.isNotEmpty(save)){
|
|
|
+ if (ObjectUtils.isNotEmpty(save)) {
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
}
|