Commit c1b8f152 by hzc

短板管理缺下发对象

parent ceedd548
package com.keymobile.indicators.api.hytobacco;
import com.keymobile.indicators.model.entity.shortboard.ShortBoardTask;
import com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue;
import com.keymobile.indicators.model.entity.shortboard.ShortboardParam;
import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.hytobacco.ShortboardTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
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.*;
@Api(tags = {"短板管理-短板清单,结果汇总"})
@RequestMapping("ShortboardTask")
@RestController
@Slf4j
public class ShortboardTaskCtrl {
@Autowired
private ShortboardTaskService shortboardTaskService;
@ApiOperation(value = "下发短板", notes = "下发短板")
@PostMapping("assign")
public Result assignShortboard(@RequestBody ShortBoardTask shortBoardTask){
return shortboardTaskService.assignShortboard(shortBoardTask);
}
@ApiOperation(value = "查询短板清单", notes = "查询短板清单")
@PostMapping("find")
public Page<ShortBoardTask> find(@RequestBody ShortboardParam shortboardParam){
PageRequest request= PageRequest.of(shortboardParam.getPage()-1,shortboardParam.getSize());
shortboardParam.setOffset(request.getOffset());
List<ShortBoardTask> lists = new ArrayList<>();
long count = shortboardTaskService.selectCountByParam(shortboardParam);
if(count>0){
lists= shortboardTaskService.selectPageByParam(shortboardParam);
}
return new PageImpl<>(lists,request,count);
}
@ApiOperation(value = "更新短板状态", notes = "更新短板状态 1是短板清单 2待改善 3以改善 4加入白名单 5不合格")
@GetMapping("updateStatus")
public Result updateStatus(@ApiParam("短板任务id") @RequestParam(name = "taskId") Integer taskId,@ApiParam("状态值")@RequestParam("status") Integer status){
return shortboardTaskService.updateTaskStatus(taskId,status);
}
@ApiOperation(value = "获取短板状态分析数据", notes = "获取短板状态分析数据")
@PostMapping("analysisStatus")
public List<ShortboardAnalysisValue> analysisStatus(@RequestBody ShortboardParam shortboardParam){
return shortboardTaskService.analysisStatus(shortboardParam);
}
@ApiOperation(value = "获取短板指标目录分析数据", notes = "获取短板指标目录分析数据")
@PostMapping("analysisDrive")
public List<ShortboardAnalysisValue> analysisDrive(@RequestBody ShortboardParam shortboardParam){
return shortboardTaskService.analysisDrive(shortboardParam);
}
@ApiOperation(value = "获取短板单位分析数据", notes = "获取短板单位分析数据")
@PostMapping("analysisUnit")
public List<ShortboardAnalysisValue> analysisUnit(@RequestBody ShortboardParam shortboardParam){
return shortboardTaskService.analysisUnit(shortboardParam);
}
@ApiOperation(value = "查询短板结果汇总表格数据", notes = "查询短板结果汇总表格数据")
@PostMapping("analysisData")
public Page<ShortBoardTask> analysisData(@RequestBody ShortboardParam shortboardParam){
PageRequest request= PageRequest.of(shortboardParam.getPage()-1,shortboardParam.getSize());
shortboardParam.setOffset(request.getOffset());
List<ShortBoardTask> lists = new ArrayList<>();
long count = shortboardTaskService.selectCountByParam(shortboardParam);
if(count>0){
lists= shortboardTaskService.selectAnalysisDataPageByParam(shortboardParam);
}
return new PageImpl<>(lists,request,count);
}
}
package com.keymobile.indicators.api.hytobacco;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.google.gson.Gson;
import com.keymobile.indicators.conf.Custemhandler;
import com.keymobile.indicators.model.entity.shortboard.ShortBoardTask;
import com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal;
import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.hytobacco.ShortboardTaskService;
import com.keymobile.indicators.utils.DateUtils;
import com.keymobile.indicators.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("ShortboardTaskVal")
@Api(tags = {"短板管理-数据填报"})
public class ShortboardTaskValCtrl {
@Autowired
private ShortboardTaskService shortboardTaskService;
@ApiOperation(value = "查找任务清单填报值", notes = "通过id查找任务清单填报值")
@GetMapping("findById")
public ShortBoardTaskVal findById(@RequestParam Integer shortBoardTaskId){
return shortboardTaskService.selectShortBoardTaskValByTaskIdId(shortBoardTaskId);
}
@ApiOperation(value = "保存短板清单填报(在线填报)", notes = "保存短板清单填报(在线填报)")
@PostMapping("saveOrUpdate")
public Result saveOrUpdate(@RequestBody ShortBoardTaskVal shortBoardTaskVal){
return shortboardTaskService.saveOrUpdateShortBoardTaskVal(shortBoardTaskVal);
}
@ApiOperation(value = "保存短板清单填报(excel填报)", notes = "保存短板清单填报(excel填报)")
@PostMapping("importData")
public Result saveDataByExcel(@RequestParam("file") MultipartFile file, @ApiParam("短板清单id")@RequestParam("id") Integer id){
ShortBoardTaskVal shortBoardTaskVal = shortboardTaskService.selectShortBoardTaskValByTaskIdId(id);
if(shortBoardTaskVal==null){
shortBoardTaskVal = new ShortBoardTaskVal();
}
shortBoardTaskVal.setShortBoardTaskId(id);
int x=6;
int y=1;
int size=6;
InputStream is = null;
try {
is = file.getInputStream();
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
List<String> values = new ArrayList<>();
for(int r=0;r<size;r++){
XSSFRow row = sheet.getRow(x+r);
String val1 = ExcelUtil.getXSSFCellValue(row.getCell(y));
values.add(val1);
}
shortBoardTaskVal.setAnalysisCauses(values.get(0));
shortBoardTaskVal.setHandleUser(values.get(1));
shortBoardTaskVal.setCreateMeasure(values.get(2));
shortBoardTaskVal.setImproveUser(values.get(3));
shortBoardTaskVal.setStartMeasure(values.get(4));
shortBoardTaskVal.setStartUser(values.get(5));
//保存
shortboardTaskService.saveOrUpdateShortBoardTaskVal(shortBoardTaskVal);
} catch (Exception e) {
log.error("解析短板填报excel出错");
e.printStackTrace();
}
return Result.genOkResult();
}
@ApiOperation(value = "下载excel模板", notes = "下载excel模板")
@GetMapping("exportToExcel")
public void exportToExcel(@RequestParam("id")Integer id, HttpServletResponse response) throws IOException {
try {
List<List<String>> headers = new ArrayList<>();
List<List<String>> datas = new ArrayList<>();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream());
ShortBoardTaskVal shortBoardTaskVal = shortboardTaskService.selectShortBoardTaskValByTaskIdId(id);
ShortBoardTask shortBoardTask = shortboardTaskService.selectShortBoardTaskById(id);
String fileName = URLEncoder.encode("短板任务清单填报", "UTF-8");
String levelArr[] = {"省","市","县"};
String level = "";
if(StringUtils.isNotBlank(shortBoardTask.getCode())){
level = levelArr[shortBoardTask.getCode().length()/3];
}
List<String> column1 = new ArrayList<>();
column1.add("");
List<String> column2 = new ArrayList<>();
column2.add("指标名称");
column2.add(shortBoardTask.getDriveName());
column2.add("下发人");
column2.add(shortBoardTask.getCreateUser());
List<String> column3 = new ArrayList<>();
column3.add("任务层级");
column3.add(level);
column3.add("接收人");
column3.add(shortBoardTask.getEnterUser());
List<String> column4 = new ArrayList<>();
column4.add("单位");
column4.add(shortBoardTask.getUnitName());
column4.add("指标值");
column4.add(shortBoardTask.getValue());
List<String> column5 = new ArrayList<>();
column5.add("短板规则描述");
column5.add(shortBoardTask.getShortboardDesc());
column5.add("下发时间");
column5.add(DateUtils.formatDate(shortBoardTask.getStartTime(),"yyyy-MM-dd HH:mm:ss"));
List<String> column6 = new ArrayList<>();
column6.add("截止时间");
column6.add( DateUtils.formatDate(shortBoardTask.getEndTime(),"yyyy-MM-dd HH:mm:ss"));
column6.add("下发原因");
column6.add(shortBoardTask.getCause());
//短板原因分析
List<String> column7 = new ArrayList<>();
column7.add("短板原因分析");
column7.add("");
//短板受理员
List<String> column8 = new ArrayList<>();
column8.add("短板受理员");
column8.add("");
//制定改善措施
List<String> column9 = new ArrayList<>();
column9.add("制定改善措施");
column9.add("");
//改善人员
List<String> column10 = new ArrayList<>();
column10.add("改善人员");
column10.add("");
//执行改善措施
List<String> column11 = new ArrayList<>();
column11.add("执行改善措施");
column11.add("");
//执行人员
List<String> column12 = new ArrayList<>();
column12.add("执行人员");
column12.add("");
datas.add(column2);
datas.add(column3);
datas.add(column4);
datas.add(column5);
datas.add(column6);
datas.add(column7);
datas.add(column8);
datas.add(column9);
datas.add(column10);
datas.add(column11);
datas.add(column12);
List<String> header = new ArrayList<>();
header.add("短板清单填报");
headers.add(column1);
headers.add(header);
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
writerBuilder.excelType(ExcelTypeEnum.XLSX).registerWriteHandler(new Custemhandler()).
head(headers)
.autoCloseStream(false).sheet("短板填报").doWrite(datas);
}catch (Exception e){
log.error("生成excel模板出错" , e);
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
Map<String, String> map = new HashMap<>(4);
map.put("status", "failure");
map.put("message", "导出数据失败:" + e.getMessage());
Gson gson = new Gson();
response.getWriter().write( gson.toJson(map));
}
}
}
package com.keymobile.indicators.conf;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.util.CollectionUtils;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
import org.apache.poi.ss.usermodel.Cell;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Custemhandler extends AbstractColumnWidthStyleStrategy {
private static final int MAX_COLUMN_WIDTH = 255;
private Map<Integer, Map<Integer, Integer>> CACHE = new HashMap(8);
public Custemhandler() {
}
protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
if (needSetWidth) {
Map<Integer, Integer> maxColumnWidthMap = (Map)CACHE.get(writeSheetHolder.getSheetNo());
if (maxColumnWidthMap == null) {
maxColumnWidthMap = new HashMap(16);
CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap);
}
Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
if (columnWidth >= 0) {
if (columnWidth > 255) {
columnWidth = 255;
}
Integer maxColumnWidth = (Integer)((Map)maxColumnWidthMap).get(cell.getColumnIndex());
if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
((Map)maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth);
writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256);
}
}
}
}
private Integer dataLength(List<CellData> cellDataList, Cell cell, Boolean isHead) {
if (isHead) {
return cell.getStringCellValue().getBytes().length;
} else {
CellData cellData = (CellData)cellDataList.get(0);
CellDataTypeEnum type = cellData.getType();
if (type == null) {
return -1;
} else {
switch(type) {
case STRING:
return cellData.getStringValue().getBytes().length;
case BOOLEAN:
return cellData.getBooleanValue().toString().getBytes().length;
case NUMBER:
return cellData.getNumberValue().toString().getBytes().length;
default:
return -1;
}
}
}
}
}
...@@ -209,4 +209,26 @@ public class Constants { ...@@ -209,4 +209,26 @@ public class Constants {
* 基础项单位 * 基础项单位
*/ */
public static final String BASE_IND_UNIT = "BASE_IND_UNIT"; public static final String BASE_IND_UNIT = "BASE_IND_UNIT";
/**
* 短板状态 短板清单
*/
public static final int SHORT_BOARD_START = 1;
/**
* 短板状态 待改善
*/
public static final int SHORT_BOARD_START_IMPROVED = 2;
/**
* 短板状态 以改善
*/
public static final int SHORT_BOARD_IMPROVED_PASS = 3;
/**
* 短板状态 加入白名单
*/
public static final int SHORT_BOARD_WHITE_LIST = 4;
/**
* 短板状态 不合格
*/
public static final int SHORT_BOARD_IMPROVED_BELOW = 5;
} }
package com.keymobile.indicators.model.entity.shortboard;
import javax.persistence.*;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
* 短板任务清单
* @Author hzc
* @Date 2020-09-21
*/
@Data
@Table ( name ="short_board_task" )
@ApiModel("短板清单")
public class ShortBoardTask implements Serializable {
private static final Long serialVersionUID = 6561627308939148332L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id" )
private Integer id;
/**
* 预警数据id
*/
@Column(name = "record_id" )
private Integer recordId;
/**
* 下发时间
*/
@Column(name = "start_time" )
private Date startTime;
@Column(name="drive_name")
private String driveName;
/**
* 截止时间
*/
@Column(name = "end_time" )
private Date endTime;
/**
* 短板名称
*/
@Column(name = "shortboard_name" )
private String shortboardName;
/**
* 下发原因
*/
@Column(name = "cause" )
private String cause;
/**
* 短板值
*/
@Column(name = "value" )
private String value;
/**
* 下发人
*/
@Column(name = "create_user" )
private String createUser;
/**
* 下发人id
*/
@Column(name="create_user_id")
private String createUserId;
/**
* 接收人id
*/
@Column(name = "enter_user_id" )
private String enterUserId;
/**
* 接收人
*/
@Column(name = "enter_user" )
private String enterUser;
/**
* 审核接收人
*/
@Column(name = "audit_user" )
private String auditUser;
/**
* 审核接收人id
*/
@Column(name = "audit_user_id" )
private String auditUserId;
/**
* 单位id
*/
@Column(name = "unit_id" )
private String unitId;
/**
* 单位名称
*/
@Column(name = "unit_name" )
private String unitName;
/**
* 短板规则描述
*/
@Column(name = "shortboard_desc" )
private String shortboardDesc;
/**
* 指标路径(判别指标类型)
*/
@Column(name = "drive_id_path" )
private String driveIdPath;
/**
* 清单状态
*/
@Column(name = "status" )
private Integer status;
/**
* 机构编码
*/
@Column(name = "code" )
private String code;
/**
* 更新时间
*/
@Column(name = "update_time" )
private Date updateTime;
/**
* 创建时间
*/
@Column(name = "create_time" )
private Date createTime;
/**
* 更新者
*/
@Column(name = "updater" )
private String updater;
/**
* 短板规则id逗号分隔
*/
@Column(name = "rule_ids" )
private String ruleIds;
/**
* 短板规则名称逗号分隔
*/
@Column(name = "rule_names" )
private String ruleNames;
/**
* 短板执行记录
*/
@Column(name="action_record")
private String actionRecord;
/**
* 改善措施
*/
@Transient
private String improveMeasure;
}
package com.keymobile.indicators.model.entity.shortboard;
import javax.persistence.*;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.Date;
/**
* @Description
* @Author Hunter
* @Date 2020-09-22
*/
@Setter
@Getter
@ToString
@Entity
@Table ( name ="short_board_task_val" )
public class ShortBoardTaskVal implements Serializable {
private static final long serialVersionUID = 4262965314071873010L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id" )
private Integer id;
/**
* 短板清单id
*/
@Column(name = "short_board_task_id" )
private Integer shortBoardTaskId;
/**
* 原因分析
*/
@Column(name = "analysis_causes" )
private String analysisCauses;
/**
* 受理人员
*/
@Column(name = "handle_user" )
private String handleUser;
/**
* 制定措施
*/
@Column(name = "create_measure" )
private String createMeasure;
/**
* 改善人员
*/
@Column(name = "improve_user" )
private String improveUser;
/**
* 执行改善措施
*/
@Column(name = "start_measure" )
private String startMeasure;
/**
* 执行人员
*/
@Column(name = "start_user" )
private String startUser;
/**
* 创建时间
*/
@Column(name = "create_time" )
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time" )
private Date updateTime;
/**
* 更新人
*/
@Column(name = "updater" )
private String updater;
}
package com.keymobile.indicators.model.entity.shortboard;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
@Data
@ApiModel("短板数据统计")
public class ShortboardAnalysisValue {
@ApiModelProperty("方便数据获取,前端可忽略")
private Integer status;
@ApiModelProperty("统计名称")
private String name;
@ApiModelProperty("统计数量")
private Integer count;
}
package com.keymobile.indicators.model.entity.shortboard;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("短板管理查询条件")
public class ShortboardParam {
@ApiModelProperty("当前页")
private Integer page;
private Long offset;
@ApiModelProperty("一页条数")
private Integer size;
@ApiModelProperty("搜索关键词")
private String keyword;
@ApiModelProperty("机构编码")
private String code;
@ApiModelProperty("状态 1是短板清单 2待改善 3以改善 4加入白名单 5不合格")
private Integer statusArr[];
@ApiModelProperty("单位Id")
private Integer unitId;
@ApiModelProperty("用户id")
private String userId;
}
...@@ -22,9 +22,11 @@ public class ShortboardRecord { ...@@ -22,9 +22,11 @@ public class ShortboardRecord {
private Integer id; private Integer id;
private Integer shortboardUnitId;//短表单元id private Integer shortboardUnitId;//短表单元id
private String compareObj;//对标实体 private String compareObj;//对标实体编号
private String unitName;//对标实体中文名
private String driveId;//指标id private String driveId;//指标id
private String driveName;//指标名称 private String driveName;//指标名称
private String drivePath;//指标路径(方便统计指标类别
private String value;//对标值 private String value;//对标值
private Integer date;//对标日期 private Integer date;//对标日期
private String compareCalResultJson;//对标结果实体json private String compareCalResultJson;//对标结果实体json
......
package com.keymobile.indicators.model.mapper.indmapper;
import com.keymobile.indicators.model.entity.shortboard.ShortBoardTask;
import com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue;
import com.keymobile.indicators.model.entity.shortboard.ShortboardParam;
import org.apache.ibatis.annotations.Mapper;
import tk.mybatis.mapper.common.BaseMapper;
import java.util.List;
@Mapper
public interface ShortboardTaskMapper extends BaseMapper<ShortBoardTask> {
long selectCountByParam(ShortboardParam shortboardParam);
List<ShortBoardTask> selectPageByParam(ShortboardParam shortboardParam);
List<ShortboardAnalysisValue> analysisStatus(ShortboardParam shortboardParam);
List<ShortboardAnalysisValue> analysisDrive(ShortboardParam shortboardParam);
List<ShortboardAnalysisValue> analysisUnit(ShortboardParam shortboardParam);
List<ShortBoardTask> selectAnalysisDataPageByParam(ShortboardParam shortboardParam);
}
package com.keymobile.indicators.model.mapper.indmapper;
import com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal;
import org.apache.ibatis.annotations.Mapper;
import tk.mybatis.mapper.common.BaseMapper;
@Mapper
public interface ShortboardTaskValMapper extends BaseMapper<ShortBoardTaskVal> {
ShortBoardTaskVal selectBYShortBoardTaskId(Integer shortBoardTaskId);
}
package com.keymobile.indicators.service.hytobacco;
import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.indicators.DriveIndCatalog;
import com.keymobile.indicators.model.entity.shortboard.*;
import com.keymobile.indicators.model.mapper.indmapper.ShortboardRecordMapper;
import com.keymobile.indicators.model.mapper.indmapper.ShortboardRuleMapper;
import com.keymobile.indicators.model.mapper.indmapper.ShortboardTaskMapper;
import com.keymobile.indicators.model.mapper.indmapper.ShortboardTaskValMapper;
import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.utils.SystemUserUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Service
public class ShortboardTaskService {
@Autowired
private ShortboardRecordMapper shortboardRecordMapper;
@Autowired
private ShortboardTaskMapper shortboardTaskMapper;
@Autowired
private ShortboardTaskValMapper shortboardTaskValMapper;
@Autowired
private ShortboardRuleMapper shortboardRuleMapper;
public Result assignShortboard(@RequestBody ShortBoardTask shortBoardTask) {
Integer recordId = shortBoardTask.getRecordId();
Date date = new Date();
ShortboardRecord shortboardRecord = shortboardRecordMapper.selectByPrimaryKey(recordId);
shortBoardTask.setCode(shortboardRecord.getCode());
shortBoardTask.setShortboardName(shortboardRecord.getShortboardName());
shortBoardTask.setDriveIdPath(shortboardRecord.getDrivePath());
shortBoardTask.setShortboardDesc(shortboardRecord.getShortboardDesc());
shortBoardTask.setUnitId(shortboardRecord.getCompareObj());
shortBoardTask.setUnitName(shortboardRecord.getUnitName());
shortBoardTask.setValue(shortboardRecord.getValue());
shortBoardTask.setDriveName(shortboardRecord.getDriveName());
shortBoardTask.setRuleIds(shortboardRecord.getShortboardRuleIds());
shortBoardTask.setStatus(Constants.SHORT_BOARD_START);
//获取短板筛选规则名称 多个逗号分隔
String shortboardRuleIds = shortboardRecord.getShortboardRuleIds();
StringBuffer ruleNames = new StringBuffer();
if(StringUtils.isNotBlank(shortboardRuleIds)){
String[] split = shortboardRuleIds.split(Constants.SEP_COMMA);
List<Integer> ruleIds = new ArrayList<>();
for (String s : split) {
ruleIds.add(Integer.valueOf(s));
}
List<ShortboardRule> ShortboardRules = this.shortboardRuleMapper.findByIdList(ruleIds);
for (ShortboardRule shortboardRule : ShortboardRules) {
ruleNames.append(shortboardRule.getRuleName());
ruleNames.append(Constants.SEP_COMMA);
}
ruleNames=ruleNames.delete(ruleNames.length()-1,ruleNames.length());
}
shortBoardTask.setRuleNames(ruleNames.toString());
//接收人待定
shortBoardTask.setEnterUserId(",1,");
shortBoardTask.setEnterUser("root");
//下发人id
shortBoardTask.setCreateUserId(SystemUserUtil.getCurrentUserId());
String currentUser = SystemUserUtil.getCurrentUser();
String[] split = currentUser.split(Constants.SEP_COLON);
if(split.length>2){
shortBoardTask.setCreateUser(split[2]);
}
shortBoardTask.setCreateTime(date);
shortBoardTask.setUpdateTime(date);
shortBoardTask.setUpdater(SystemUserUtil.getCurrentUser());
shortboardTaskMapper.insert(shortBoardTask);
System.out.println(shortBoardTask);
return Result.genOkResult();
}
public long selectCountByParam(ShortboardParam shortboardParam) {
return shortboardTaskMapper.selectCountByParam(shortboardParam);
}
/**
* 任务清单表格数据
* */
public List<ShortBoardTask> selectPageByParam(ShortboardParam shortboardParam) {
return shortboardTaskMapper.selectPageByParam(shortboardParam);
}
/**
* 短板清单填报更新或新增
* **/
@Transactional(rollbackFor = Exception.class)
public Result saveOrUpdateShortBoardTaskVal(ShortBoardTaskVal shortBoardTaskVal) {
Date date = new Date();
shortBoardTaskVal.setUpdateTime(date);
shortBoardTaskVal.setUpdater(SystemUserUtil.getCurrentUser());
if(shortBoardTaskVal.getId()!=null&&shortBoardTaskVal.getId()!=0){
//更新
shortboardTaskValMapper.updateByPrimaryKey(shortBoardTaskVal);
}else{
shortBoardTaskVal.setCreateTime(date);
shortboardTaskValMapper.insert(shortBoardTaskVal);
}
ShortBoardTask shortboardTask = new ShortBoardTask();
shortboardTask.setUpdateTime(date);
shortboardTask.setUpdater(SystemUserUtil.getCurrentUser());
shortboardTask.setId(shortBoardTaskVal.getShortBoardTaskId());
shortboardTask.setStatus(Constants.SHORT_BOARD_START_IMPROVED);
shortboardTaskMapper.updateByPrimaryKeySelective(shortboardTask);
return Result.genOkResult();
}
public ShortBoardTaskVal selectShortBoardTaskValByTaskIdId(Integer shortBoardTaskId) {
return shortboardTaskValMapper.selectBYShortBoardTaskId(shortBoardTaskId);
}
public ShortBoardTask selectShortBoardTaskById(Integer id) {
return shortboardTaskMapper.selectByPrimaryKey(id);
}
public Result updateTaskStatus(Integer taskId, Integer status) {
Date date = new Date();
ShortBoardTask shortBoardTask = new ShortBoardTask();
shortBoardTask.setUpdateTime(date);
shortBoardTask.setUpdater(SystemUserUtil.getCurrentUser());
shortBoardTask.setId(taskId);
shortBoardTask.setStatus(status);
shortboardTaskMapper.updateByPrimaryKeySelective(shortBoardTask);
return Result.genOkResult();
}
public List<ShortboardAnalysisValue> analysisStatus(ShortboardParam shortboardParam) {
List<ShortboardAnalysisValue> tmps=shortboardTaskMapper.analysisStatus(shortboardParam);
List<ShortboardAnalysisValue> values = new ArrayList<>();
for (ShortboardAnalysisValue tmp : tmps) {
switch (tmp.getStatus()){
case Constants.SHORT_BOARD_IMPROVED_PASS:
tmp.setName("改善合格");
values.add(tmp);
break;
case Constants.SHORT_BOARD_WHITE_LIST:
tmp.setName("白名单");
values.add(tmp);
break;
case Constants.SHORT_BOARD_IMPROVED_BELOW:
values.add(tmp);
tmp.setName("改善不合格");
}
}
return values;
}
public List<ShortboardAnalysisValue> analysisDrive(ShortboardParam shortboardParam) {
return shortboardTaskMapper.analysisDrive(shortboardParam);
}
public List<ShortboardAnalysisValue> analysisUnit(ShortboardParam shortboardParam) {
return shortboardTaskMapper.analysisUnit(shortboardParam);
}
/**
* 结果汇总表数据
* */
public List<ShortBoardTask> selectAnalysisDataPageByParam(ShortboardParam shortboardParam) {
return shortboardTaskMapper.selectAnalysisDataPageByParam(shortboardParam);
}
}
<?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.indmapper.ShortboardTaskMapper">
<select id="selectPageByParam" resultType="com.keymobile.indicators.model.entity.shortboard.ShortBoardTask">
select *
from short_board_task sbt
<include refid="findWhereSql"></include>
order by update_time desc
limit #{offset}, #{size}
</select>
<select id="selectAnalysisDataPageByParam" resultType="com.keymobile.indicators.model.entity.shortboard.ShortBoardTask">
select sbt.*,sbtl.create_measure as improveMeasure
from short_board_task sbt left join short_board_task_val sbtl on sbt.id=sbtl.short_board_task_id
<include refid="findWhereSql"></include>
order by update_time desc
limit #{offset}, #{size}
</select>
<select id="selectCountByParam" resultType="long">
select count(id)
from short_board_task sbt
<include refid="findWhereSql"></include>
</select>
<select id="analysisStatus" resultType="com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue">
select count(id) as count,status
from short_board_task sbt
<include refid="findWhereSql"></include>
group by status
</select>
<select id="analysisDrive" resultType="com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue">
select count(sbt.id) as count,dic.catalog_name as name
from short_board_task sbt left join drive_ind_catalog dic on sbt.drive_id_path=dic.id_path
<include refid="findWhereSql"></include>
group by sbt.drive_id_path
</select>
<select id="analysisUnit" resultType="com.keymobile.indicators.model.entity.shortboard.ShortboardAnalysisValue">
select count(id) as count,unit_name as name
from short_board_task sbt
<include refid="findWhereSql"></include>
group by unit_name
</select>
<sql id="findWhereSql">
where 1 = 1
<if test="keyword != null and keyword != ''">
and sbt.shortboard_name like concat('%', #{keyword}, '%')
</if>
<if test="statusArr != null">
and sbt.status in
<foreach collection="statusArr" open="(" item="status" close=")" separator=",">
#{status}
</foreach>
</if>
<if test="code != null and code != ''">
and sbt.code =#{code}
</if>
<if test="unitId !=null and unitId!=0">
and sbt.unit_id =#{unitId}
</if>
<if test="userId !=null and userId != ''">
and sbt.enter_user_id like concat('%,',#{userId},',%')
</if>
</sql>
</mapper>
\ No newline at end of file
<?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.indmapper.ShortboardTaskValMapper">
<select id="selectBYShortBoardTaskId" resultType="com.keymobile.indicators.model.entity.shortboard.ShortBoardTaskVal">
select *
from short_board_task_val
where short_board_task_id = #{shortBoardTaskId}
order by update_time desc
</select>
</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