Commit 0d89c998 by hzc

测试

parent 820c3e7b
...@@ -125,7 +125,7 @@ public class DataEnterCtrl { ...@@ -125,7 +125,7 @@ public class DataEnterCtrl {
//查询精确值 //查询精确值
List<TaskIndValue> indLastCorrectValues =null; List<TaskIndValue> indLastCorrectValues =null;
if(oldValues.get(0).getIndLastCorrectValue()==null){ if(oldValues.get(0).getIndLastCorrectValue()==null){
indLastCorrectValues =taskService.findIndLastCorrectValues(sameTermValutTime, indIds); indLastCorrectValues =taskService.findDefaultValues(sameTermValueTimeStr,valueTimeStr, indIds);
} }
list = genernateEditObjects(task, oldValues, null, indLastCorrectValues,objs, groupObj.getObjType()); list = genernateEditObjects(task, oldValues, null, indLastCorrectValues,objs, groupObj.getObjType());
......
package com.keymobile.indicators.api.hytobacco; package com.keymobile.indicators.api.hytobacco;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy; import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.keymobile.indicators.constant.Constants; import com.keymobile.indicators.constant.Constants;
...@@ -15,6 +18,7 @@ import com.keymobile.indicators.service.SystemAuthService; ...@@ -15,6 +18,7 @@ import com.keymobile.indicators.service.SystemAuthService;
import com.keymobile.indicators.service.dataenter.ExcelTemplateService; import com.keymobile.indicators.service.dataenter.ExcelTemplateService;
import com.keymobile.indicators.service.dataenter.TaskRuleGroupObjService; import com.keymobile.indicators.service.dataenter.TaskRuleGroupObjService;
import com.keymobile.indicators.service.dataenter.TaskService; import com.keymobile.indicators.service.dataenter.TaskService;
import com.keymobile.indicators.utils.DateUtils;
import com.keymobile.indicators.utils.SystemUserUtil; import com.keymobile.indicators.utils.SystemUserUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -184,6 +188,7 @@ public class ExcelTempCtrl { ...@@ -184,6 +188,7 @@ public class ExcelTempCtrl {
List<ExcelIndicator> inds = template.getInds(); List<ExcelIndicator> inds = template.getInds();
List<ExcelObj> objs = template.getObjs(); List<ExcelObj> objs = template.getObjs();
String fileName = URLEncoder.encode(template.getName(), "UTF-8"); String fileName = URLEncoder.encode(template.getName(), "UTF-8");
List<List<String>> datas = new ArrayList<>(); List<List<String>> datas = new ArrayList<>();
boolean hasSameTerm = false; boolean hasSameTerm = false;
//需要同期? //需要同期?
...@@ -255,8 +260,19 @@ public class ExcelTempCtrl { ...@@ -255,8 +260,19 @@ public class ExcelTempCtrl {
writerBuilder.registerWriteHandler(mergeStrategy); writerBuilder.registerWriteHandler(mergeStrategy);
} }
} }
writerBuilder.excelType(ExcelTypeEnum.XLSX).head(headers) ExcelWriter build = writerBuilder.build();
.autoCloseStream(false).sheet("数据填报").doWrite(datas); //EasyExcel.writerSheet()
// writerBuilder.excelType(ExcelTypeEnum.XLSX).head(headers)
// .autoCloseStream(false).sheet(0,"数据填报").doWrite(datas);
WriteSheet one = EasyExcel.writerSheet(0, "数据填报").head(headers).build();
Map<String,List<List<String>>> towDataMap = getTwoData(template);
List<List<String>> headers2 = towDataMap.get("headers");
WriteSheet two = EasyExcel.writerSheet(1, "同期精确值").head(headers2).build();
build.write(datas,one);
build.write(towDataMap.get("datas"),two);
build.finish();
} catch (Exception e) { } catch (Exception e) {
log.error("生成excel模板出错" , e); log.error("生成excel模板出错" , e);
response.reset(); response.reset();
...@@ -270,4 +286,90 @@ public class ExcelTempCtrl { ...@@ -270,4 +286,90 @@ public class ExcelTempCtrl {
} }
} }
private Map<String, List<List<String>>> getTwoData(ExcelTemplate template) {
List<ExcelIndicator> inds = template.getInds();
List<ExcelObj> objs = template.getObjs();
Task task = taskService.getById(template.getTaskId(), true, false);
List<TaskIndicator> taskIndicators = task.getIndicators();
String valueTime = task.getValueTime();
String sameTermValutTime = DateUtils.getSameTermValueTime(valueTime);
// 2020-09 转成成 202009
String valueTimeStr = valueTime.replace("-", "");
String sameTermValueTimeStr = sameTermValutTime.replace("-", "");
List<String> indIds = new ArrayList<>();
for (TaskIndicator indicator : taskIndicators) {
indIds.add(indicator.getIndId());
}
List<TaskIndValue> indLastCorrectValues =
taskService.findDefaultValues(sameTermValueTimeStr,valueTimeStr, indIds);
List<List<String>> datas = new ArrayList<>();
List<List<String>> headers = new ArrayList<>();
if (template.getCtype() == 1) {
// 列类型:1、指标 2 考核对象
List<String> column1 = new ArrayList<>();
column1.add("");
headers.add(column1);
for (ExcelIndicator indicator : inds) {
List<String> header = new ArrayList<>();
headers.add(header);
header.add(indicator.getIndName());
// header.add("本期");
}
for (ExcelObj obj : objs) {
List<String> data = new ArrayList<>();
data.add(obj.getObjName());
if(indLastCorrectValues!=null&&indLastCorrectValues.size()>0){
for (ExcelIndicator indicator : inds) {
for (TaskIndValue old : indLastCorrectValues) {
if (old.getIndId().equals(indicator.getIndId())
&& old.getObjId().equals(obj.getObjId())) {
//保存同期的精确值 2021-1-4 hzc
data.add(old.getIndValue());
break;
}
}
}
}
datas.add(data);
}
} else {
int i = 1;
for (ExcelIndicator indicator : inds) {
List<String> data = new ArrayList<>();
datas.add(data);
data.add(indicator.getIndName());
if(indLastCorrectValues!=null&&indLastCorrectValues.size()>0){
for (ExcelObj obj : objs) {
for (TaskIndValue old : indLastCorrectValues) {
if (old.getIndId().equals(indicator.getIndId())
&& old.getObjId().equals(obj.getObjId())) {
//保存同期的精确值 2021-1-4 hzc
data.add(old.getIndValue());
break;
}
}
}
}
}
List<String> column1 = new ArrayList<>();
column1.add("");
headers.add(column1);
for (ExcelObj obj : objs) {
List<String> header = new ArrayList<>();
header.add(obj.getObjName());
headers.add(header);
// header.add("本期");
}
}
Map<String,List<List<String>>> map = new HashMap<>();
map.put("headers",headers);
map.put("datas",datas);
return map;
}
} }
...@@ -179,6 +179,18 @@ public class TaskCtrl { ...@@ -179,6 +179,18 @@ public class TaskCtrl {
} }
return result; return result;
} }
/**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* @Param []
* @Date 2021/1/5 11:03
* @Author hzc
**/
@ApiOperation(" 确认的数据重新确认一遍")
@GetMapping("passTask")
public String passTask(){
taskService.passTask();
return "开始重新确认";
}
} }
...@@ -213,4 +213,11 @@ public interface TaskService { ...@@ -213,4 +213,11 @@ public interface TaskService {
* @Author hzc * @Author hzc
**/ **/
List<TaskIndValue> findIndLastCorrectValues( String valueTime, List<String> indIds); List<TaskIndValue> findIndLastCorrectValues( String valueTime, List<String> indIds);
/**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* @Param []
* @Date 2021/1/5 11:03
* @Author hzc
**/
Result passTask();
} }
...@@ -13,6 +13,7 @@ import com.keymobile.indicators.model.entity.dataenter.*; ...@@ -13,6 +13,7 @@ import com.keymobile.indicators.model.entity.dataenter.*;
import com.keymobile.indicators.model.entity.indicators.BaseIndDef; import com.keymobile.indicators.model.entity.indicators.BaseIndDef;
import com.keymobile.indicators.model.entity.indicators.IndicatorsData; import com.keymobile.indicators.model.entity.indicators.IndicatorsData;
import com.keymobile.indicators.model.mapper.indicators.*; import com.keymobile.indicators.model.mapper.indicators.*;
import com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper;
import com.keymobile.indicators.result.Result; import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.ConfigInfoService; import com.keymobile.indicators.service.ConfigInfoService;
import com.keymobile.indicators.service.NoticeInfoService; import com.keymobile.indicators.service.NoticeInfoService;
...@@ -79,7 +80,8 @@ public class TaskServiceImpl implements TaskService { ...@@ -79,7 +80,8 @@ public class TaskServiceImpl implements TaskService {
@Autowired @Autowired
private TaskRuleTargetRolesMapper taskRuleTargetRolesMapper; private TaskRuleTargetRolesMapper taskRuleTargetRolesMapper;
@Autowired
private IndicatorsDataMapper indicatorsDataMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Task createTask(Task task) { public Task createTask(Task task) {
...@@ -875,6 +877,38 @@ public class TaskServiceImpl implements TaskService { ...@@ -875,6 +877,38 @@ public class TaskServiceImpl implements TaskService {
} }
/** /**
* 确认的数据重新确认一遍)修改后数据变化方便数据的统一
* @Param []
* @Date 2021/1/5 11:03
* @Author hzc
**/
@Async
@Override
public Result passTask() {
QueryAllTaskParam param =new QueryAllTaskParam();
List<Integer> status = new ArrayList<>();
status.add(Constants.APPLY_STATE_OK_PASSED);
param.setStatusArr(status);
List<Task> allTask = this.findAllTask(param);
log.info("========开始重新确认数据=需要确认任务数:{}",allTask.size());
int i = 1;
long time = System.currentTimeMillis();
for (Task task : allTask) {
log.info("第{}条==开始确认:{}",i++,task);
List<IndicatorsData> datas = createCountIndValues(task);
if (CollectionUtils.isNotEmpty(datas)) {
for (IndicatorsData data : datas) {
indicatorsDataMapper.deleteData(data.getDateMark(),data.getIndId(), data.getDim1(), data.getDim2(), data.getCode());
}
indicatorsDataMapper.batchCreateIndData(datas);
}
}
time = (System.currentTimeMillis() - time)/1000;
log.info("===重新确认完成=:{}秒,完成确认任务数:{}",time,allTask.size());
return null;
}
/**
* 获取关联的数据项和子数据项 * 获取关联的数据项和子数据项
* @param ruleId * @param ruleId
* @param parentIndId * @param parentIndId
......
...@@ -836,6 +836,7 @@ public class IndicatorsReportService { ...@@ -836,6 +836,7 @@ public class IndicatorsReportService {
//添加对标单元目录 //添加对标单元目录
paramMap.put("compareCatalog", compareCatalog); paramMap.put("compareCatalog", compareCatalog);
paramMap.put("compareObjs", compareObjs); paramMap.put("compareObjs", compareObjs);
paramMap.put("dateMark", dateMark);
List<DriveIndCalResultDef> sameCalDatas = driveIndCalResultDefMapper List<DriveIndCalResultDef> sameCalDatas = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObjIn(paramMap); .findByIndIdAndDateAndCompareObjIn(paramMap);
if(!sameCalDatas.isEmpty()) { if(!sameCalDatas.isEmpty()) {
...@@ -1097,11 +1098,7 @@ public class IndicatorsReportService { ...@@ -1097,11 +1098,7 @@ public class IndicatorsReportService {
} }
} }
} }
if("1".equals(driveIndDef.getGrowCalType())) {//差比 resultRank = CalculateUtils.rankValue(rankMap, indRule);
resultRank = CalculateUtils.rankValue(rankMap, indRule);
}else {//差值
resultRank = CalculateUtils.rankValue(rankMap, indRule);
}
resultRank = CalculateUtils.sortMapByValue(resultRank,0);//按照value从小到大排序 resultRank = CalculateUtils.sortMapByValue(resultRank,0);//按照value从小到大排序
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment