Commit 85fccdfc by zhangkb

Merge branch 'hy-tobacco' of ssh://132.232.112.242:7022/zhangkb/indicators into hy-tobacco

parents 954bc3a0 8d31d352
package com.keymobile.indicators.api.indicators; package com.keymobile.indicators.api.hytobacco;
import com.keymobile.indicators.constant.Constants; import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.ConfigInfo; import com.keymobile.indicators.model.entity.ConfigInfo;
......
package com.keymobile.indicators.api.hytobacco; package com.keymobile.indicators.api.hytobacco;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.keymobile.indicators.constant.Constants; import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.AuthModel; import com.keymobile.indicators.model.entity.AuthModel;
...@@ -53,7 +52,7 @@ public class DataEnterCtrl { ...@@ -53,7 +52,7 @@ public class DataEnterCtrl {
@ApiOperation("获取需要在线填报的数据项(填报任务点击)") @ApiOperation("获取需要在线填报的数据项(填报任务点击)")
@GetMapping("findToEdit") @GetMapping("findToEdit")
public List<TaskIndValue> findToEdit(@RequestParam("taskId") String taskId) { public List<TaskIndValue> findToEdit(@RequestParam("taskId") String taskId) throws Exception {
List<TaskIndValue> list = new ArrayList<>(); List<TaskIndValue> list = new ArrayList<>();
Task task = taskService.getById(taskId, true, false); Task task = taskService.getById(taskId, true, false);
String userId = SystemUserUtil.getCurrentUserId(); String userId = SystemUserUtil.getCurrentUserId();
...@@ -87,10 +86,15 @@ public class DataEnterCtrl { ...@@ -87,10 +86,15 @@ public class DataEnterCtrl {
for (TaskIndicator indicator : taskIndicators) { for (TaskIndicator indicator : taskIndicators) {
indIds.add(indicator.getIndId()); indIds.add(indicator.getIndId());
} }
List<TaskIndValue> defaultValues = taskService.findDefaultValues(task.getValueTime(), indIds); String valueTime = task.getValueTime();
list = genernateEditObjects(task, defaultValues, objs, groupObj.getObjType()); String sameTermValutTime = DateUtils.getSameTermValueTime(valueTime);
List<TaskIndValue> defaultValues =
taskService.findDefaultValues(valueTime.replace("-", ""), indIds);
List<TaskIndValue> defaultLastValueValues =
taskService.findDefaultValues(sameTermValutTime.replace("-", ""), indIds);
list = genernateEditObjects(task, defaultValues, defaultLastValueValues, objs, groupObj.getObjType());
} else { } else {
list = genernateEditObjects(task, oldValues, objs, groupObj.getObjType()); list = genernateEditObjects(task, oldValues, null, objs, groupObj.getObjType());
} }
} }
} }
...@@ -123,7 +127,7 @@ public class DataEnterCtrl { ...@@ -123,7 +127,7 @@ public class DataEnterCtrl {
* @param objType * @param objType
* @return * @return
*/ */
private List<TaskIndValue> genernateEditObjects(Task task, List<TaskIndValue> oldValues, private List<TaskIndValue> genernateEditObjects(Task task, List<TaskIndValue> oldValues, List<TaskIndValue> oldLastValues,
List<AuthModel> objs, Integer objType) { 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();
...@@ -143,14 +147,28 @@ public class DataEnterCtrl { ...@@ -143,14 +147,28 @@ public class DataEnterCtrl {
value.setObjId(obj.getId()); value.setObjId(obj.getId());
value.setObjName(obj.getName()); value.setObjName(obj.getName());
value.setObjType(objType); value.setObjType(objType);
for (TaskIndValue old : oldValues) { for (TaskIndValue old : oldValues) {
if (old.getIndId().equals(value.getIndId()) if (old.getIndId().equals(value.getIndId())
&& old.getObjType().equals(value.getObjType()) // && old.getObjType().equals(value.getObjType())
&& old.getObjId().equals(value.getObjId())) { && old.getObjId().equals(value.getObjId())) {
value.setIndValue(old.getIndValue()); value.setIndValue(old.getIndValue());
//已经填好的值
value.setIndLastValue(old.getIndValue());
break; break;
} }
} }
//同期值
if(oldLastValues != null) {
for (TaskIndValue old : oldLastValues) {
if (old.getIndId().equals(value.getIndId())
// && old.getObjType().equals(value.getObjType())
&& old.getObjId().equals(value.getObjId())) {
value.setIndLastValue(old.getIndValue());
break;
}
}
}
list.add(value); list.add(value);
} }
// } // }
...@@ -202,7 +220,7 @@ public class DataEnterCtrl { ...@@ -202,7 +220,7 @@ public class DataEnterCtrl {
Task task = taskService.getById(taskId, true, false); Task task = taskService.getById(taskId, true, false);
if (template.getNeedSameTerm() != null && template.getNeedSameTerm()) { if (template.getNeedSameTerm() != null && template.getNeedSameTerm()) {
hasSameTerm = true; hasSameTerm = true;
sameTermValutTime = getSameTermValueTime(task.getValueTime()); sameTermValutTime = DateUtils.getSameTermValueTime(task.getValueTime());
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
List<TaskIndValue> taskIndValues = new ArrayList<>(); List<TaskIndValue> taskIndValues = new ArrayList<>();
...@@ -224,9 +242,10 @@ public class DataEnterCtrl { ...@@ -224,9 +242,10 @@ public class DataEnterCtrl {
taskId, task.getValueTime(), userId, now); taskId, task.getValueTime(), userId, now);
taskIndValues.add(value); taskIndValues.add(value);
if (hasSameTerm) { if (hasSameTerm) {
TaskIndValue value2 = this.doGenTaskIndValue(val2, obj, ind, template.getId(), // TaskIndValue value2 = this.doGenTaskIndValue(val2, obj, ind, template.getId(),
taskId, sameTermValutTime, userId, now); // taskId, sameTermValutTime, userId, now);
taskIndValues.add(value2); // taskIndValues.add(value2);
value.setIndLastValue(val2);
start ++; start ++;
} }
} }
...@@ -249,10 +268,11 @@ public class DataEnterCtrl { ...@@ -249,10 +268,11 @@ public class DataEnterCtrl {
XSSFRow row2 = sheet.getRow(t + 1); XSSFRow row2 = sheet.getRow(t + 1);
startRow++; startRow++;
String val2 = ExcelUtil.getXSSFCellValue(row2.getCell(startColumn + j)); String val2 = ExcelUtil.getXSSFCellValue(row2.getCell(startColumn + j));
TaskIndValue value2 = this.doGenTaskIndValue(val2, obj, ind, template.getId(), // TaskIndValue value2 = this.doGenTaskIndValue(val2, obj, ind, template.getId(),
taskId, sameTermValutTime, userId, now); // taskId, sameTermValutTime, userId, now);
// taskIndValues.add(value2);
value.setIndLastValue(val2);
startRow--; startRow--;
taskIndValues.add(value2);
} }
} }
startRow++; startRow++;
...@@ -266,21 +286,7 @@ public class DataEnterCtrl { ...@@ -266,21 +286,7 @@ public class DataEnterCtrl {
return result; return result;
} }
/**
* 获取同期时间
* @param valueTime
* @return
* @throws Exception
*/
private String getSameTermValueTime(String valueTime) throws Exception {
String format = "yyyy-MM";
Date date = DateUtils.getDate(valueTime, format);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, -1);
date = calendar.getTime();
return DateUtils.formatDate(date, format);
}
/** /**
* 生成指标值对象 * 生成指标值对象
......
package com.keymobile.indicators.api.hytobacco;
import com.keymobile.indicators.model.entity.NoticeInfo;
import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.NoticeInfoService;
import com.keymobile.indicators.utils.SystemUserUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/notice")
@Api(value="消息通知管理", tags = {"消息通知管理接口"})
public class NoticeInfoCtrl {
@Autowired
private NoticeInfoService noticeInfoService;
@ApiOperation("根据条件搜索我的通知信息")
@GetMapping("find")
public Page<NoticeInfo> find(@ApiParam("关键字搜索(标题)") @RequestParam(value = "keyword", required = false) String keyword,
@ApiParam("页码,从1开始") @RequestParam("pageNo") int pageNo,
@ApiParam("每页条数") @RequestParam("pageSize") int pageSize) {
PageRequest request = PageRequest.of(pageNo, pageSize);
List<NoticeInfo> list = new ArrayList<>();
long total = noticeInfoService.findByPageCount(keyword, null, SystemUserUtil.getCurrentUserId());
if (total > 0) {
list = noticeInfoService.findByPage(keyword, null, SystemUserUtil.getCurrentUserId(), request.getOffset(), pageSize);
}
return new PageImpl<>(list, request, total);
}
@ApiOperation("我的未读消息总数")
@GetMapping("findUnReadCount")
public long findUnReadCount() {
return noticeInfoService.findByPageCount(null, false, SystemUserUtil.getCurrentUserId());
}
@ApiOperation("根据id获取消息内容")
@GetMapping("getById")
public NoticeInfo getById(@RequestParam("id") Integer id) {
return noticeInfoService.getById(id);
}
@ApiOperation("根据id批量删除消息")
@PostMapping("deleteByIds")
public Result deleteByIds(@RequestBody List<Integer> ids) {
if (CollectionUtils.isNotEmpty(ids)) {
noticeInfoService.deleteByIds(ids);
}
return Result.genOkResult();
}
@ApiOperation("根据id批量标记为已读")
@PostMapping("updateToRead")
public Result updateToRead(@RequestBody List<Integer> ids) {
if (CollectionUtils.isNotEmpty(ids)) {
noticeInfoService.updateToRead(ids);
}
return Result.genOkResult();
}
}
...@@ -35,8 +35,6 @@ import java.util.List; ...@@ -35,8 +35,6 @@ import java.util.List;
@RequestMapping(value = "/task") @RequestMapping(value = "/task")
public class TaskCtrl { public class TaskCtrl {
@Autowired @Autowired
private TaskService taskService; private TaskService taskService;
...@@ -44,16 +42,23 @@ public class TaskCtrl { ...@@ -44,16 +42,23 @@ public class TaskCtrl {
@ApiOperation("(启动)根据规则生成相关填报任务") @ApiOperation("(启动)根据规则生成相关填报任务")
@GetMapping("generateTaskByRule") @GetMapping("generateTaskByRule")
public Result generateTaskByRule(@ApiParam("规则id") @RequestParam("ruleIds") List<Integer> ruleIds, public Result generateTaskByRule(@ApiParam("规则id") @RequestParam("ruleIds") List<Integer> ruleIds,
@ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12") @RequestParam("valueTime")String valueTime) { @ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12")
@RequestParam("valueTime")String valueTime,
@ApiParam("是否需要同期值")
@RequestParam(value = "needLast", required = false)Boolean needLast) {
Result result = null; Result result = null;
boolean need = true;
if (needLast != null) {
need = needLast.booleanValue();
}
if (CollectionUtils.isNotEmpty(ruleIds)) { if (CollectionUtils.isNotEmpty(ruleIds)) {
if (ruleIds.size() > 1) { if (ruleIds.size() > 1) {
taskService.batchCreateTaskByRule(ruleIds, valueTime); taskService.batchCreateTaskByRule(ruleIds, valueTime, need);
result = Result.genOkResult("开始批量启动任务"); result = Result.genOkResult("开始批量启动任务");
LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}启动了批量任务数据时间为:{}的任务, ids为{}", LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}启动了批量任务数据时间为:{}的任务, ids为{}",
SystemUserUtil.getCurrentUser(), valueTime,ruleIds); SystemUserUtil.getCurrentUser(), valueTime,ruleIds);
} else { } else {
result = taskService.createTaskByRule(ruleIds.get(0), valueTime); result = taskService.createTaskByRule(ruleIds.get(0), valueTime, need);
LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}启动了数据时间为:{}的任务id为{}", LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}启动了数据时间为:{}的任务id为{}",
SystemUserUtil.getCurrentUser(), valueTime,ruleIds); SystemUserUtil.getCurrentUser(), valueTime,ruleIds);
} }
...@@ -75,7 +80,7 @@ public class TaskCtrl { ...@@ -75,7 +80,7 @@ public class TaskCtrl {
@PostMapping("findMyTask") @PostMapping("findMyTask")
public List<Task> findMyTask(@RequestBody QueryAllTaskParam param) { public List<Task> findMyTask(@RequestBody QueryAllTaskParam param) {
param.setUserId(SystemUserUtil.getCurrentUserId()); param.setUserId(SystemUserUtil.getCurrentUserId());
LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}查询了我任务:{}", LogManager.logInfo(Constants.LOG_CONTEXT_API, "{}查询了我任务",
SystemUserUtil.getCurrentUser()); SystemUserUtil.getCurrentUser());
return taskService.findAllTask(param); return taskService.findAllTask(param);
} }
......
package com.keymobile.indicators.model.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Data
@ApiModel("通知消息对象")
public class NoticeInfo extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ApiModelProperty("通知标题")
private String title;
@ApiModelProperty("通知详细内容")
private String detail;
@ApiModelProperty("是否已读")
private Boolean isRead;
@ApiModelProperty("通知标题")
private String toUserId;
}
...@@ -118,6 +118,11 @@ public class Task extends BaseModel { ...@@ -118,6 +118,11 @@ public class Task extends BaseModel {
private Boolean needSum; private Boolean needSum;
/** /**
* 是否需要同期值
*/
private Boolean needLast;
/**
* 任务状态:1、填报中 2、审批中 3、审核通过 4、驳回 * 任务状态:1、填报中 2、审批中 3、审核通过 4、驳回
*/ */
private Integer status; private Integer status;
......
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Transient;
/** /**
* 任务填报的数据项值 * 任务填报的数据项值
...@@ -56,6 +57,12 @@ public class TaskIndValue extends BaseModel { ...@@ -56,6 +57,12 @@ public class TaskIndValue extends BaseModel {
private String indValue; private String indValue;
/** /**
* 指标值
*/
@ApiModelProperty("指标同期值")
private String indLastValue;
/**
* 数据时间,例如2020-06表示二季度 * 数据时间,例如2020-06表示二季度
*/ */
@ApiModelProperty("数据时间") @ApiModelProperty("数据时间")
......
package com.keymobile.indicators.model.mapper.indicators;
import com.keymobile.indicators.model.entity.NoticeInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper;
import java.util.List;
@Mapper
public interface NoticeInfoMapper extends BaseMapper<NoticeInfo> {
/**
* 根据id获取
* @param id
* @return
*/
NoticeInfo getById(Integer id);
/**
* 分页搜索
* @param keyword
* @param isRead
* @param userId
* @param start
* @param pageSizte
* @return
*/
List<NoticeInfo> findByPage(@Param("keyword") String keyword,@Param("isRead") Boolean isRead,
@Param("userId") String userId,
@Param("start") long start, @Param("pageSize") int pageSizte);
/**
* 搜索总数
* @param keyword
* @param isRead
* @param userId
* @return
*/
long findByPageCount(@Param("keyword") String keyword, @Param("isRead") Boolean isRead,
@Param("userId") String userId);
/**
* 标记为删除
* @param ids
*/
void deleteByIds(@Param("ids") List<Integer> ids);
/**
* 标记为已读
* @param ids
*/
void updateToRead(@Param("ids")List<Integer> ids);
}
package com.keymobile.indicators.service;
import com.keymobile.indicators.model.entity.NoticeInfo;
import java.util.List;
public interface NoticeInfoService {
/**
* 根据id获取
* @param id
* @return
*/
NoticeInfo getById(Integer id);
/**
* 分页搜索
* @param keyword
* @param isRead
* @param userId
* @param start
* @param pageSizte
* @return
*/
List<NoticeInfo> findByPage( String keyword, Boolean isRead,
String userId,
long start, int pageSizte);
/**
* 搜索总数
* @param keyword
* @param isRead
* @param userId
* @return
*/
long findByPageCount(String keyword,Boolean isRead,
String userId);
/**
* 标记为删除
* @param ids
*/
void deleteByIds(List<Integer> ids);
/**
* 标记为已读
* @param ids
*/
void updateToRead(List<Integer> ids);
}
...@@ -175,10 +175,11 @@ public interface TaskService { ...@@ -175,10 +175,11 @@ public interface TaskService {
* 批量启动任务 * 批量启动任务
* @param ruleIds * @param ruleIds
* @param valueTime * @param valueTime
* @param needLast
* @return * @return
*/ */
void batchCreateTaskByRule(List<Integer> ruleIds, void batchCreateTaskByRule(List<Integer> ruleIds,
@ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12")String valueTime); @ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12")String valueTime, boolean needLast);
/** /**
* 单个生成任务 * 单个生成任务
...@@ -187,6 +188,6 @@ public interface TaskService { ...@@ -187,6 +188,6 @@ public interface TaskService {
* @return * @return
*/ */
Result createTaskByRule(Integer ruleId, Result createTaskByRule(Integer ruleId,
@ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12")String valueTime); @ApiParam("收数月份, 格式: 2020-03、2020-06、2020-09、2020-12")String valueTime, boolean needLast);
} }
...@@ -362,12 +362,18 @@ public class TaskServiceImpl implements TaskService { ...@@ -362,12 +362,18 @@ public class TaskServiceImpl implements TaskService {
* 通过填报值计算出包含公式的数据项值 * 通过填报值计算出包含公式的数据项值
* @param task * @param task
*/ */
private List<IndicatorsData> createCountIndValues(Task task) { private List<IndicatorsData> createCountIndValues(Task task) {
List<TaskIndicator> inds = taskIndicatorMapper.getByTaskId(task.getId()); List<TaskIndicator> inds = taskIndicatorMapper.getByTaskId(task.getId());
List<TaskIndValue> values = taskIndValueMapper.getByTaskId(task.getId()); List<TaskIndValue> values = taskIndValueMapper.getByTaskId(task.getId());
String valueTime = task.getValueTime().replaceAll("-", ""); String valueTime = task.getValueTime().replaceAll("-", "");
Integer vt = Integer.parseInt(valueTime); Integer vt = Integer.parseInt(valueTime);
String sameTermValutTime = DateUtils.getSameTermValueTime(task.getValueTime());
Integer lastVt = Integer.parseInt(sameTermValutTime.replaceAll("-", ""));
List<IndicatorsData> datas = new ArrayList<>(); List<IndicatorsData> datas = new ArrayList<>();
boolean needLast = true;
if (task.getNeedLast() != null) {
needLast = task.getNeedLast();
}
for (TaskIndValue value : values) { for (TaskIndValue value : values) {
IndicatorsData data = new IndicatorsData(); IndicatorsData data = new IndicatorsData();
data.setBatchNo(task.getId()); data.setBatchNo(task.getId());
...@@ -381,6 +387,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -381,6 +387,7 @@ public class TaskServiceImpl implements TaskService {
data.setUnit(value.getIndUnit()); data.setUnit(value.getIndUnit());
data.setDim1Desc(value.getObjName()); data.setDim1Desc(value.getObjName());
datas.add(data); datas.add(data);
generateIndData(task, vt, lastVt, value, needLast, datas);
} }
TaskRuleGroupObj groupObj = taskRuleObjMapper.getById(task.getGroupId()); TaskRuleGroupObj groupObj = taskRuleObjMapper.getById(task.getGroupId());
List<TaskIndicator> needSumInds = new ArrayList<>(); List<TaskIndicator> needSumInds = new ArrayList<>();
...@@ -428,17 +435,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -428,17 +435,7 @@ public class TaskServiceImpl implements TaskService {
value.setTaskId(task.getId()); value.setTaskId(task.getId());
newValues.add(value); newValues.add(value);
IndicatorsData data = new IndicatorsData(); generateIndData(task, vt, lastVt, value, needLast, datas);
data.setBatchNo(task.getId());
data.setDataType("double");
data.setDim2(vt);
data.setDim1(value.getObjId());
data.setDim1Desc(value.getObjName());
data.setIndId(value.getIndId());
data.setIndDesc(value.getIndName());
data.setType("1");
data.setUnit(value.getIndUnit());
datas.add(data);
} }
} }
taskIndValueMapper.batchInsert(newValues); taskIndValueMapper.batchInsert(newValues);
...@@ -449,6 +446,49 @@ public class TaskServiceImpl implements TaskService { ...@@ -449,6 +446,49 @@ public class TaskServiceImpl implements TaskService {
return datas; return datas;
} }
/**
* 生成基本指标值
* @param task
* @param valueTime
* @param lastValueTime
* @param value
* @param needLast
* @param datas
*/
private void generateIndData(Task task, Integer valueTime,
Integer lastValueTime,
TaskIndValue value,
boolean needLast,
List<IndicatorsData> datas) {
IndicatorsData data = new IndicatorsData();
data.setBatchNo(task.getId());
data.setDataType("double");
data.setDim2(valueTime);
data.setDim1(value.getObjId());
data.setIndId(value.getIndId());
data.setIndDesc(value.getIndName());
data.setType("1");
data.setValue(value.getIndValue());
data.setUnit(value.getIndUnit());
data.setDim1Desc(value.getObjName());
datas.add(data);
if (needLast) {
IndicatorsData last = new IndicatorsData();
last.setBatchNo(task.getId());
last.setDataType("double");
last.setDim2(lastValueTime);
last.setDim1(value.getObjId());
last.setIndId(value.getIndId());
last.setIndDesc(value.getIndName());
last.setType("1");
last.setValue(value.getIndLastValue());
last.setUnit(value.getIndUnit());
last.setDim1Desc(value.getObjName());
datas.add(last);
}
}
@Override @Override
public List<AuditRecord> findAuditRecordByTaskId(String taskId) { public List<AuditRecord> findAuditRecordByTaskId(String taskId) {
return taskAuditRecordMapper.getByTaskId(taskId); return taskAuditRecordMapper.getByTaskId(taskId);
...@@ -482,9 +522,9 @@ public class TaskServiceImpl implements TaskService { ...@@ -482,9 +522,9 @@ public class TaskServiceImpl implements TaskService {
@Override @Override
@Async @Async
public void batchCreateTaskByRule(List<Integer> ruleIds, String valueTime) { public void batchCreateTaskByRule(List<Integer> ruleIds, String valueTime, boolean needLast) {
for (Integer ruleId : ruleIds) { for (Integer ruleId : ruleIds) {
createTaskByRule(ruleId, valueTime); createTaskByRule(ruleId, valueTime, needLast);
} }
} }
...@@ -522,7 +562,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -522,7 +562,7 @@ public class TaskServiceImpl implements TaskService {
} }
@Override @Override
public Result createTaskByRule(Integer ruleId, String valueTime) { public Result createTaskByRule(Integer ruleId, String valueTime, boolean needLast) {
Result result = null; Result result = null;
TaskRule rule = taskRuleService.getById(ruleId, true); TaskRule rule = taskRuleService.getById(ruleId, true);
if (rule != null) { if (rule != null) {
...@@ -564,6 +604,7 @@ public class TaskServiceImpl implements TaskService { ...@@ -564,6 +604,7 @@ public class TaskServiceImpl implements TaskService {
task.setId(IdWorker.getStrId()); task.setId(IdWorker.getStrId());
task.setValueTime(valueTime); task.setValueTime(valueTime);
task.setCreateTime(now); task.setCreateTime(now);
task.setNeedLast(needLast);
task.setToRoleNames(rule.getToRoleNames()); task.setToRoleNames(rule.getToRoleNames());
task.setCreator(user); task.setCreator(user);
task.setUpdateTime(now); task.setUpdateTime(now);
......
package com.keymobile.indicators.service.impl;
import com.keymobile.indicators.model.entity.NoticeInfo;
import com.keymobile.indicators.model.mapper.indicators.NoticeInfoMapper;
import com.keymobile.indicators.service.NoticeInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class NoticeInfoServiceImpl implements NoticeInfoService {
@Autowired
private NoticeInfoMapper noticeInfoMapper;
@Override
public NoticeInfo getById(Integer id) {
return noticeInfoMapper.getById(id);
}
@Override
public List<NoticeInfo> findByPage(String keyword, Boolean isRead, String userId, long start, int pageSizte) {
return noticeInfoMapper.findByPage(keyword, isRead, userId, start, pageSizte);
}
@Override
public long findByPageCount(String keyword, Boolean isRead, String userId) {
return noticeInfoMapper.findByPageCount(keyword, isRead, userId);
}
@Override
public void deleteByIds(List<Integer> ids) {
noticeInfoMapper.deleteByIds(ids);
}
@Override
public void updateToRead(List<Integer> ids) {
noticeInfoMapper.updateToRead(ids);
}
}
...@@ -4,9 +4,10 @@ import java.text.SimpleDateFormat; ...@@ -4,9 +4,10 @@ import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
@Slf4j
public class DateUtils { public class DateUtils {
private static final String PARSE_PATTERN_DD = "yyyy-MM-dd"; private static final String PARSE_PATTERN_DD = "yyyy-MM-dd";
...@@ -46,4 +47,26 @@ public class DateUtils { ...@@ -46,4 +47,26 @@ public class DateUtils {
c.add(Calendar.DATE, dates); c.add(Calendar.DATE, dates);
return c.getTime(); return c.getTime();
} }
/**
* 获取去年同期(YYYY-MM)
* @param valueTime
* @return
* @throws Exception
*/
public static String getSameTermValueTime(String valueTime) {
String str = "";
try {
String format = "yyyy-MM";
Date date = DateUtils.getDate(valueTime, format);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, -1);
date = calendar.getTime();
str = DateUtils.formatDate(date, format);
} catch (Exception ex) {
log.error("转换同期值出错:"+valueTime, ex);
}
return str;
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indicators.NoticeInfoMapper">
<select id="getById" resultType="com.keymobile.indicators.model.entity.NoticeInfo" >
select *
from notice_info
where id = #{id}
</select>
<select id="findByPage" resultType="com.keymobile.indicators.model.entity.NoticeInfo">
select *
from notice_info
<include refid="findWhereSql"></include>
order by is_read asc, create_time desc
limit #{start}, #{pageSize}
</select>
<select id="findByPageCount" resultType="long">
select count(id)
from notice_info
<include refid="findWhereSql"></include>
</select>
<sql id="findWhereSql">
where state = 1
<if test="keyword != null and keyword != ''">
and title like concat('%', #{keyword}, '%')
</if>
<if test="userId != null and userId != ''">
and to_user = #{userId}
</if>
<if test="isRead != null">
and is_read = #{isRead}
</if>
</sql>
<update id="deleteByIds" parameterType="list">
update notice_info
set
state = 3
where id in (
<foreach collection="ids" item="item" separator=",">
#{item}
</foreach>
)
</update>
<update id="updateToRead" parameterType="list">
update notice_info
set
is_read = true
where id in (
<foreach collection="ids" item="item" separator=",">
#{item}
</foreach>
)
</update>
</mapper>
\ No newline at end of file
...@@ -67,11 +67,15 @@ ...@@ -67,11 +67,15 @@
order by ind_id asc order by ind_id asc
</select> </select>
<select id="findDefaultValues" parameterType="object" resultType="com.keymobile.indicators.model.entity.dataenter.TaskIndValue" > <select id="findDefaultValues" parameterType="object"
select * resultType="com.keymobile.indicators.model.entity.dataenter.TaskIndValue" >
from data_enter_task_ind_val select ind_id,
where value_time = #{valueTime} and state = 1 dim2 as value_time,
and status = 3 value as ind_value,
dim1 as obj_id,
dim1_desc as abj_name
from indi_data_def
where 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=",">
...@@ -79,7 +83,7 @@ ...@@ -79,7 +83,7 @@
</foreach> </foreach>
) )
</if> </if>
order by update_time desc order by ind_id desc
</select> </select>
<update id="updateTaskValueToPass" parameterType="java.lang.String"> <update id="updateTaskValueToPass" parameterType="java.lang.String">
......
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