Commit 820c3e7b by hzc

数据填报加上同期精确值

parent 68660333
...@@ -99,22 +99,37 @@ public class DataEnterCtrl { ...@@ -99,22 +99,37 @@ public class DataEnterCtrl {
log.error("没有可用的填报单位信息"); log.error("没有可用的填报单位信息");
} else { } else {
List<TaskIndValue> oldValues = taskService.findValues(taskId, null); List<TaskIndValue> oldValues = taskService.findValues(taskId, null);
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());
}
if (CollectionUtils.isEmpty(oldValues)) { if (CollectionUtils.isEmpty(oldValues)) {
//新增
List<String> indIds = new ArrayList<>(); //查本期数据
for (TaskIndicator indicator : taskIndicators) {
indIds.add(indicator.getIndId());
}
String valueTime = task.getValueTime();
String sameTermValutTime = DateUtils.getSameTermValueTime(valueTime);
// 2020-09 转成成 202009
List<TaskIndValue> defaultValues = List<TaskIndValue> defaultValues =
taskService.findDefaultValues(valueTime.replace("-", ""), indIds); taskService.findDefaultValues(valueTimeStr,valueTimeStr, indIds);
//查同期数据(估算值
List<TaskIndValue> defaultLastValueValues = List<TaskIndValue> defaultLastValueValues =
taskService.findDefaultValues(sameTermValutTime.replace("-", ""), indIds); taskService.findDefaultValues(valueTimeStr,sameTermValueTimeStr, indIds);
list = genernateEditObjects(task, defaultValues, defaultLastValueValues, objs, groupObj.getObjType()); //查同期(精确值
List<TaskIndValue> indLastCorrectValues =
taskService.findDefaultValues(sameTermValueTimeStr,valueTimeStr, indIds);
list = genernateEditObjects(task, defaultValues, defaultLastValueValues,indLastCorrectValues, objs, groupObj.getObjType());
} else { } else {
list = genernateEditObjects(task, oldValues, null, objs, groupObj.getObjType()); //查询精确值
List<TaskIndValue> indLastCorrectValues =null;
if(oldValues.get(0).getIndLastCorrectValue()==null){
indLastCorrectValues =taskService.findIndLastCorrectValues(sameTermValutTime, indIds);
}
list = genernateEditObjects(task, oldValues, null, indLastCorrectValues,objs, groupObj.getObjType());
} }
} }
} }
...@@ -152,7 +167,7 @@ public class DataEnterCtrl { ...@@ -152,7 +167,7 @@ public class DataEnterCtrl {
* @return * @return
*/ */
private List<TaskIndValue> genernateEditObjects(Task task, List<TaskIndValue> oldValues, List<TaskIndValue> oldLastValues, private List<TaskIndValue> genernateEditObjects(Task task, List<TaskIndValue> oldValues, List<TaskIndValue> oldLastValues,
List<AuthModel> objs, Integer objType) { List<TaskIndValue> indLastCorrectValues,List<AuthModel> objs, Integer objType) {
List<TaskIndValue> list = new ArrayList<>(); List<TaskIndValue> list = new ArrayList<>();
List<TaskIndicator> taskIndicators = task.getIndicators(); List<TaskIndicator> taskIndicators = task.getIndicators();
for (TaskIndicator indicator : taskIndicators) { for (TaskIndicator indicator : taskIndicators) {
...@@ -180,10 +195,11 @@ public class DataEnterCtrl { ...@@ -180,10 +195,11 @@ public class DataEnterCtrl {
//已经填好的值 //已经填好的值
value.setIndLastValue(old.getIndLastValue()); value.setIndLastValue(old.getIndLastValue());
value.setDescription(old.getDescription()); value.setDescription(old.getDescription());
value.setIndLastCorrectValue(old.getIndLastCorrectValue());
break; break;
} }
} }
//同期值 //同期值估算值
if(oldLastValues != null) { if(oldLastValues != null) {
for (TaskIndValue old : oldLastValues) { for (TaskIndValue old : oldLastValues) {
if (old.getIndId().equals(value.getIndId()) if (old.getIndId().equals(value.getIndId())
...@@ -194,6 +210,18 @@ public class DataEnterCtrl { ...@@ -194,6 +210,18 @@ public class DataEnterCtrl {
} }
} }
} }
//同期值精确值
if(indLastCorrectValues != null) {
for (TaskIndValue old : indLastCorrectValues) {
if (old.getIndId().equals(value.getIndId())
// && old.getObjType().equals(value.getObjType())
&& old.getObjId().equals(value.getObjId())) {
//保存同期的精确值 2021-1-4 hzc
value.setIndLastCorrectValue(old.getIndValue());
break;
}
}
}
list.add(value); list.add(value);
} }
// } // }
......
...@@ -101,4 +101,8 @@ public class TaskIndValue extends BaseModel { ...@@ -101,4 +101,8 @@ public class TaskIndValue extends BaseModel {
* 填报状态:3 审核通过 * 填报状态:3 审核通过
*/ */
private Integer status; private Integer status;
/**
* 同期准确值
*/
private String indLastCorrectValue;
} }
...@@ -68,11 +68,18 @@ public interface TaskIndValueMapper extends BaseMapper<TaskIndValue> { ...@@ -68,11 +68,18 @@ public interface TaskIndValueMapper extends BaseMapper<TaskIndValue> {
* @param ids * @param ids
* @return * @return
*/ */
List<TaskIndValue> findDefaultValues(@Param("valueTime")String valueTime, @Param("ids") List<String> ids); List<TaskIndValue> findDefaultValues(@Param("dateMark") String dateMark,@Param("valueTime")String valueTime, @Param("ids") List<String> ids);
/** /**
* 审批通过指标值 * 审批通过指标值
* @param taskId * @param taskId
*/ */
void updateTaskValueToPass(@Param("taskId") String taskId); void updateTaskValueToPass(@Param("taskId") String taskId);
/**
* 查询同期值的精确值)
* @Param [ valueTime, indIds]
* @Date 2021/1/4 15:24
* @Author hzc
**/
List<TaskIndValue> findIndLastCorrectValues(@Param("valueTime")String valueTime, @Param("ids") List<String> ids);
} }
...@@ -25,7 +25,7 @@ public interface IndicatorsDataMapper extends BaseMapper<IndicatorsData>{ ...@@ -25,7 +25,7 @@ public interface IndicatorsDataMapper extends BaseMapper<IndicatorsData>{
void batchCreateIndData(@Param("datas") List<IndicatorsData> datas); void batchCreateIndData(@Param("datas") List<IndicatorsData> datas);
void deleteData(@Param("indId") String indId, @Param("dim1")String dim1, void deleteData(@Param("dateMark") Integer dateMark,@Param("indId") String indId, @Param("dim1")String dim1,
@Param("dim2")Integer dim2, @Param("code")String code); @Param("dim2")Integer dim2, @Param("code")String code);
public IndicatorsData getIndData(@Param("indId")String indId, public IndicatorsData getIndData(@Param("indId")String indId,
......
...@@ -122,7 +122,7 @@ public interface TaskService { ...@@ -122,7 +122,7 @@ public interface TaskService {
* @param indIds * @param indIds
* @return * @return
*/ */
List<TaskIndValue> findDefaultValues(String valueTime, List<String> indIds); List<TaskIndValue> findDefaultValues(String dateMark, String valueTime, List<String> indIds);
/** /**
* 根据任务id翻页查找任务的填报值 * 根据任务id翻页查找任务的填报值
...@@ -205,4 +205,12 @@ public interface TaskService { ...@@ -205,4 +205,12 @@ public interface TaskService {
TaskAnalysisResult stateCounts(QueryTaskParam param); TaskAnalysisResult stateCounts(QueryTaskParam param);
void updateTaskStatusById(String taskId, Integer applyStateIssue); void updateTaskStatusById(String taskId, Integer applyStateIssue);
/**
* 查询同期值的精确值)
* @Param [ valueTime, indIds]
* @Date 2021/1/4 15:24
* @Author hzc
**/
List<TaskIndValue> findIndLastCorrectValues( String valueTime, List<String> indIds);
} }
...@@ -213,8 +213,8 @@ public class TaskServiceImpl implements TaskService { ...@@ -213,8 +213,8 @@ public class TaskServiceImpl implements TaskService {
} }
@Override @Override
public List<TaskIndValue> findDefaultValues(String valueTime, List<String> indIds) { public List<TaskIndValue> findDefaultValues(String dateMark, String valueTime, List<String> indIds) {
return taskIndValueMapper.findDefaultValues(valueTime, indIds); return taskIndValueMapper.findDefaultValues(dateMark,valueTime, indIds);
} }
@Override @Override
...@@ -599,6 +599,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -599,6 +599,7 @@ public class TaskServiceImpl implements TaskService {
data.setValue(value.getIndValue()); data.setValue(value.getIndValue());
data.setUnit(value.getIndUnit()); data.setUnit(value.getIndUnit());
data.setDim1Desc(value.getObjName()); data.setDim1Desc(value.getObjName());
data.setDateMark(valueTime);
datas.add(data); datas.add(data);
if (needLast) { if (needLast) {
IndicatorsData last = new IndicatorsData(); IndicatorsData last = new IndicatorsData();
...@@ -613,6 +614,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -613,6 +614,7 @@ public class TaskServiceImpl implements TaskService {
last.setValue(value.getIndLastValue()); last.setValue(value.getIndLastValue());
last.setUnit(value.getIndUnit()); last.setUnit(value.getIndUnit());
last.setDim1Desc(value.getObjName()); last.setDim1Desc(value.getObjName());
last.setDateMark(valueTime);
datas.add(last); datas.add(last);
} }
...@@ -867,6 +869,11 @@ public class TaskServiceImpl implements TaskService { ...@@ -867,6 +869,11 @@ public class TaskServiceImpl implements TaskService {
taskMapper.updateTaskStatusById(taskId,status); taskMapper.updateTaskStatusById(taskId,status);
} }
@Override
public List<TaskIndValue> findIndLastCorrectValues(String valueTime, List<String> indIds) {
return taskIndValueMapper.findIndLastCorrectValues(valueTime,indIds);
}
/** /**
* 获取关联的数据项和子数据项 * 获取关联的数据项和子数据项
* @param ruleId * @param ruleId
......
...@@ -69,7 +69,7 @@ public class BaseIndDataService { ...@@ -69,7 +69,7 @@ public class BaseIndDataService {
log.info("开始批量插入指标值数据项"); log.info("开始批量插入指标值数据项");
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
for (IndicatorsData data : datas) { for (IndicatorsData data : datas) {
indicatorsDataMapper.deleteData(data.getIndId(), data.getDim1(), data.getDim2(), data.getCode()); indicatorsDataMapper.deleteData(data.getDateMark(),data.getIndId(), data.getDim1(), data.getDim2(), data.getCode());
} }
indicatorsDataMapper.batchCreateIndData(datas); indicatorsDataMapper.batchCreateIndData(datas);
time = (System.currentTimeMillis() - time)/1000; time = (System.currentTimeMillis() - time)/1000;
......
...@@ -66,6 +66,7 @@ ...@@ -66,6 +66,7 @@
where ind_id = #{indId} where ind_id = #{indId}
and dim1 = #{dim1} and dim1 = #{dim1}
and dim2 = #{dim2} and dim2 = #{dim2}
and date_mark=#{dateMark}
<if test="code != null"> <if test="code != null">
and code = #{code} and code = #{code}
</if> </if>
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
<insert id="batchInsert" parameterType="list"> <insert id="batchInsert" parameterType="list">
insert into data_enter_task_ind_val insert into data_enter_task_ind_val
(id,task_id,ind_id,ind_name,ind_unit,ind_source,ind_value,ind_last_value, (id,task_id,ind_id,ind_name,ind_unit,ind_source,ind_value,ind_last_value,
value_time,obj_id,obj_name,obj_type,temp_id, description,status, ind_last_correct_value, value_time,obj_id,obj_name,obj_type,temp_id, description,status,
state,creator ,updater,create_time,update_time) state,creator ,updater,create_time,update_time)
values values
<foreach collection="valueList" item="val" separator=","> <foreach collection="valueList" item="val" separator=",">
(#{val.id},#{val.taskId}, #{val.indId}, #{val.indName}, #{val.indUnit}, #{val.indSource},#{val.indValue},#{val.indLastValue}, (#{val.id},#{val.taskId}, #{val.indId}, #{val.indName}, #{val.indUnit}, #{val.indSource},#{val.indValue},#{val.indLastValue},
#{val.valueTime},#{val.objId},#{val.objName},#{val.objType}, #{val.tempId}, #{val.description}, #{val.status}, #{val.indLastCorrectValue}, #{val.valueTime},#{val.objId},#{val.objName},#{val.objType}, #{val.tempId}, #{val.description}, #{val.status},
#{val.state},#{val.creator},#{val.updater},#{val.createTime}, #{val.updateTime} #{val.state},#{val.creator},#{val.updater},#{val.createTime}, #{val.updateTime}
) )
</foreach> </foreach>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
dim1 as obj_id, dim1 as obj_id,
dim1_desc as abj_name dim1_desc as abj_name
from indi_data_def from indi_data_def
where dim2 = #{valueTime} where date_mark=#{dateMark} and dim2 = #{valueTime}
<if test="ids != null and ids.size() > 0"> <if test="ids != null and ids.size() > 0">
and ind_id in ( and ind_id in (
<foreach collection="ids" item="indId" separator=","> <foreach collection="ids" item="indId" separator=",">
...@@ -92,5 +92,16 @@ ...@@ -92,5 +92,16 @@
set status = 3 set status = 3
where task_id = #{taskId} where task_id = #{taskId}
</update> </update>
<select id="findIndLastCorrectValues" parameterType="object"
resultType="com.keymobile.indicators.model.entity.dataenter.TaskIndValue" >
select * from data_enter_task_ind_val
where value_time = #{valueTime}
<if test="ids != null and ids.size() > 0">
and ind_id in (
<foreach collection="ids" item="indId" separator=",">
#{indId}
</foreach>
)
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
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