package org.springblade.modules.workreport.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import lombok.AllArgsConstructor;
|
import org.springblade.common.utils.arg;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.modules.system.entity.Dept;
|
import org.springblade.modules.system.entity.User;
|
import org.springblade.modules.system.service.IDeptService;
|
import org.springblade.modules.system.service.IUserService;
|
import org.springblade.modules.workreport.entity.WorkReport;
|
import org.springblade.modules.workreport.service.WorkReportService;
|
import org.springblade.modules.workreport.vo.WorkReportVo;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.sql.Wrapper;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhongrj
|
* @time 2021-07-12
|
* @desc 工作汇报管理控制层
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/workReport")
|
public class WorkReportController {
|
|
private final WorkReportService workReportService;
|
|
private final IUserService userService;
|
|
private final IDeptService deptService;
|
|
/**
|
* 自定义分页
|
* @param query page,size
|
* @param workReport 工作汇报信息对象
|
*/
|
@GetMapping("/page")
|
public R<IPage<WorkReportVo>> page(WorkReportVo workReport, Query query) {
|
IPage<WorkReportVo> pages = workReportService.selectWorkReportPage(Condition.getPage(query), workReport);
|
List<WorkReportVo> records = pages.getRecords();
|
for (WorkReportVo record : records) {
|
record.setReplyRealName(getReplyRealName(record));
|
record.setReplyDeptName(getReplyDeptName(record));
|
}
|
return R.data(pages);
|
}
|
|
|
/**
|
* 自定义分页--接收到的汇报信息page
|
* @param query page,size
|
* @param workReport 工作汇报信息对象
|
*/
|
@GetMapping("/pageReply")
|
public R<IPage<WorkReportVo>> pageReply(WorkReportVo workReport, Query query) {
|
IPage<WorkReportVo> pages = workReportService.selectWorkReplyPage(Condition.getPage(query), workReport);
|
return R.data(pages);
|
}
|
|
/**
|
* 新增
|
* @param workReport 工作汇报信息对象
|
*/
|
@PostMapping("/save")
|
@ApiOperation(value = "新增", notes = "传入workReport")
|
public R save(@RequestBody WorkReport workReport) {
|
return R.status(workReportService.save(workReport));
|
}
|
|
/**
|
* 修改
|
* @param workReport 工作汇报信息对象
|
*/
|
@PostMapping("/update")
|
public R update(@RequestBody WorkReport workReport) {
|
return R.status(workReportService.updateById(workReport));
|
}
|
|
/**
|
* 新增或修改
|
* @param workReport 工作汇报信息对象
|
*/
|
@PostMapping("/submit")
|
public R submit(@RequestBody WorkReport workReport) throws Exception {
|
if (null!=workReport.getId()){
|
workReport.setReplyTime(new Date());
|
workReport.setReplyDeptIds(getReplyDeptIds(workReport.getReceivedIds()));
|
}else {
|
workReport.setReportTime(new Date());
|
workReport.setReplyDeptIds(getReplyDeptIds(workReport.getReceivedIds()));
|
}
|
arg.test01(arg.url+"/workReport/submit",workReport);
|
return R.status(workReportService.saveOrUpdate(workReport));
|
}
|
|
/**
|
* 删除
|
* @param ids 工作汇报信息ids 数组
|
*/
|
@PostMapping("/remove")
|
public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
|
arg.sendPostRemoveByIds(arg.url+"/workReport/remove",ids);
|
return R.status(workReportService.removeByIds(Func.toLongList(ids)));
|
}
|
|
/**
|
* 详情
|
* @param workReport 工作汇报信息对象
|
*/
|
@GetMapping("/detail")
|
@ApiOperation(value = "详情", notes = "传入workReport")
|
public R<WorkReportVo> detail(WorkReport workReport) {
|
//查询工作汇报详情
|
WorkReportVo detail = workReportService.selectWorkReportInfo(workReport);
|
detail.setReplyRealName(getReplyRealName(detail));
|
detail.setReplyDeptName(getReplyDeptName(detail));
|
//查询接收人单位(名称)信息
|
return R.data(detail);
|
}
|
|
/**
|
* 获取接收人的单位信息
|
* @param detail 汇报详情
|
* @return
|
*/
|
private String getReplyDeptName(WorkReportVo detail) {
|
List<String> replyDeptIds = Arrays.asList(detail.getReplyDeptIds().split(","));
|
StringBuilder replyDeptNameInfo = new StringBuilder();
|
for (String deptId : replyDeptIds) {
|
//查询接收人单位信息
|
Dept deptDetail = deptService.getById(Long.parseLong(deptId));
|
replyDeptNameInfo = replyDeptNameInfo.append(deptDetail.getDeptName()).append(",");
|
}
|
//截取
|
return replyDeptNameInfo.substring(0, replyDeptNameInfo.length() - 1);
|
}
|
|
/**
|
* 获取接收人的单位id(dept)信息
|
* @param
|
* @return
|
*/
|
private String getReplyDeptIds(String detail) {
|
List<String> userIds = Arrays.asList(detail.split(","));
|
List<String> list = new ArrayList<>();
|
for (String userId : userIds) {
|
//查询接收人单位信息
|
User userDetail = userService.getById(userId);
|
list.add(userDetail.getDeptId());
|
}
|
//去重
|
List<String> collect = list.stream().distinct().collect(Collectors.toList());
|
//截取
|
return String.join(",",collect);
|
}
|
|
/**
|
* 查询接收人姓名信息
|
*
|
* @param detail 汇报详情
|
* @return
|
*/
|
private String getReplyRealName(WorkReportVo detail){
|
List<String> userIds = Arrays.asList(detail.getReceivedIds().split(","));
|
StringBuilder replyRealNameInfo = new StringBuilder();
|
for (String userId : userIds) {
|
//查询接收人姓名信息
|
// User user = new User();
|
// user.setCardid(idCardNo);
|
// User userDetail = userService.getOne(Condition.getQueryWrapper(user));
|
User userDetail = userService.getById(userId);
|
replyRealNameInfo = replyRealNameInfo.append(userDetail.getRealName()).append(",");
|
}
|
//截取
|
return replyRealNameInfo.substring(0, replyRealNameInfo.length() - 1);
|
}
|
|
}
|