|
@@ -1,21 +1,34 @@
|
|
|
package com.xjrsoft.module.material.controller;
|
|
|
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.constant.GlobalConstant;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
import com.xjrsoft.common.page.PageOutput;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
-import com.xjrsoft.module.material.dto.AddMaterialTaskDto;
|
|
|
-import com.xjrsoft.module.material.dto.UpdateMaterialTaskDto;
|
|
|
+import com.xjrsoft.module.material.dto.*;
|
|
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
+import com.xjrsoft.module.material.entity.MaterialTaskAssign;
|
|
|
+import com.xjrsoft.module.material.entity.MaterialType;
|
|
|
+import com.xjrsoft.module.material.entity.MaterialTypeAssign;
|
|
|
+import com.xjrsoft.module.material.service.IMaterialTaskAssignService;
|
|
|
+import com.xjrsoft.module.material.vo.*;
|
|
|
+import com.xjrsoft.module.oa.entity.NewsRelation;
|
|
|
+import com.xjrsoft.module.oa.vo.NewsRelationVo;
|
|
|
+import com.xjrsoft.module.organization.entity.Department;
|
|
|
+import com.xjrsoft.module.organization.entity.UserDeptRelation;
|
|
|
+import com.xjrsoft.module.personnel.entity.FaceIdentifyRecords;
|
|
|
+import com.xjrsoft.module.student.entity.BaseStudentUser;
|
|
|
+import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
import java.io.IOException;
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
@@ -23,12 +36,9 @@ import org.springframework.http.ResponseEntity;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
-import com.xjrsoft.module.material.dto.MaterialTaskPageDto;
|
|
|
import com.xjrsoft.module.material.entity.MaterialTask;
|
|
|
import com.xjrsoft.module.material.service.IMaterialTaskService;
|
|
|
-import com.xjrsoft.module.material.vo.MaterialTaskPageVo;
|
|
|
|
|
|
-import com.xjrsoft.module.material.vo.MaterialTaskVo;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
@@ -53,27 +63,69 @@ public class MaterialTaskController {
|
|
|
|
|
|
private final IMaterialTaskService materialTaskService;
|
|
|
|
|
|
+
|
|
|
+ private final IMaterialTaskAssignService materialTaskAssignService;
|
|
|
+
|
|
|
@GetMapping(value = "/page")
|
|
|
- @ApiOperation(value="材料提交任务列表(分页)")
|
|
|
+ @ApiOperation(value = "材料提交任务列表(分页 自己)")
|
|
|
@SaCheckPermission("materialtask:detail")
|
|
|
- public RT<PageOutput<MaterialTaskPageVo>> page(@Valid MaterialTaskPageDto dto){
|
|
|
+ public RT<PageOutput<MaterialTaskPageVo>> page(@Valid MaterialTaskPageDto dto) {
|
|
|
|
|
|
LambdaQueryWrapper<MaterialTask> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper
|
|
|
- .orderByDesc(MaterialTask::getId)
|
|
|
- .select(MaterialTask.class,x -> VoToColumnUtil.fieldsToColumns(MaterialTaskPageVo.class).contains(x.getProperty()));
|
|
|
+ .orderByDesc(MaterialTask::getId)
|
|
|
+ .eq(MaterialTask::getCreateUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ .like(StrUtil.isNotBlank(dto.getName()), MaterialTask::getName, dto.getName())
|
|
|
+ .eq((ObjectUtil.isNotEmpty(dto.getMaterialTypeId())) && dto.getMaterialTypeId() > 0, MaterialTask::getMaterialTypeId, dto.getMaterialTypeId())
|
|
|
+ .eq((ObjectUtil.isNotEmpty(dto.getStatus())) && dto.getStatus() > 0, MaterialTask::getStatus, dto.getStatus())
|
|
|
+ .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskPageVo.class).contains(x.getProperty()));
|
|
|
IPage<MaterialTask> page = materialTaskService.page(ConventPage.getPage(dto), queryWrapper);
|
|
|
PageOutput<MaterialTaskPageVo> pageOutput = ConventPage.getPageOutput(page, MaterialTaskPageVo.class);
|
|
|
return RT.ok(pageOutput);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping(value = "/wait-page")
|
|
|
+ @ApiOperation(value = "材料提交任务列表(分页 我的待办)")
|
|
|
+ @SaCheckPermission("materialtask:detail")
|
|
|
+ public RT<PageOutput<MaterialTaskWaitPageVo>> waitPage(@Valid MaterialTaskWaitPageDto dto) {
|
|
|
+
|
|
|
+ MPJLambdaWrapper<MaterialTask> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
+ queryWrapper
|
|
|
+ .disableLogicDel()
|
|
|
+ .eq(MaterialTask::getCreateUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ .like(StrUtil.isNotBlank(dto.getName()), MaterialTask::getName, dto.getName())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getStatus()) && dto.getStatus() >0, MaterialTask::getStatus, dto.getStatus())
|
|
|
+ .eq((ObjectUtil.isNotEmpty(dto.getMaterialTypeId())) && dto.getMaterialTypeId() > 0, MaterialTask::getMaterialTypeId, dto.getMaterialTypeId())
|
|
|
+ .select(MaterialTask::getId)
|
|
|
+ .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskWaitPageVo.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(MaterialTaskAssign.class, MaterialTaskAssign::getMaterialTaskId, MaterialTask::getId, ext -> ext.eq(MaterialTaskAssign::getUserId, StpUtil.getLoginIdAsLong()))
|
|
|
+ .selectAs(MaterialTaskAssign::getId, MaterialTaskWaitPageVo::getAssignId)
|
|
|
+ .selectAs(MaterialTaskAssign::getExecutiveStatus, MaterialTaskWaitPageVo::getExecutiveStatus)
|
|
|
+ .selectAs(MaterialTaskAssign::getTransferAssignPerson, MaterialTaskWaitPageVo::getTransferAssignPerson)
|
|
|
+ .selectAs(MaterialTaskAssign::getTransferSubmitedPerson, MaterialTaskWaitPageVo::getTransferSubmitedPerson)
|
|
|
+ .selectAs(MaterialTaskAssign::getStatus, MaterialTaskWaitPageVo::getProcessStatus)
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, MaterialTask::getCreateUserId, ext -> ext.selectAs(XjrUser::getName, MaterialTaskWaitPageVo::getCreateUserName))
|
|
|
+ .like(StrUtil.isNotBlank(dto.getAssignedUser()), XjrUser::getName, dto.getAssignedUser())
|
|
|
+ ;
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotNull(dto.getRequiredCompleteStareTime()) && ObjectUtil.isNotNull(dto.getRequiredCompleteEndTime())) {
|
|
|
+ queryWrapper.ge(FaceIdentifyRecords::getVerifyTime, dto.getRequiredCompleteStareTime());
|
|
|
+ queryWrapper.le(FaceIdentifyRecords::getVerifyTime, dto.getRequiredCompleteEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ IPage<MaterialTaskWaitPageVo> page = materialTaskService.selectJoinListPage(ConventPage.getPage(dto), MaterialTaskWaitPageVo.class, queryWrapper);
|
|
|
+
|
|
|
+ PageOutput<MaterialTaskWaitPageVo> pageOutput = ConventPage.getPageOutput(page);
|
|
|
+ return RT.ok(pageOutput);
|
|
|
+ }
|
|
|
+
|
|
|
@GetMapping(value = "/info")
|
|
|
- @ApiOperation(value="根据id查询材料提交任务信息")
|
|
|
+ @ApiOperation(value = "根据id查询材料提交任务信息")
|
|
|
@SaCheckPermission("materialtask:detail")
|
|
|
- public RT<MaterialTaskVo> info(@RequestParam Long id){
|
|
|
+ public RT<MaterialTaskVo> info(@RequestParam Long id) {
|
|
|
MaterialTask materialTask = materialTaskService.getByIdDeep(id);
|
|
|
if (materialTask == null) {
|
|
|
- return RT.error("找不到此数据!");
|
|
|
+ return RT.error("找不到此数据!");
|
|
|
}
|
|
|
return RT.ok(BeanUtil.toBean(materialTask, MaterialTaskVo.class));
|
|
|
}
|
|
@@ -82,16 +134,16 @@ public class MaterialTaskController {
|
|
|
@PostMapping
|
|
|
@ApiOperation(value = "新增材料提交任务")
|
|
|
@SaCheckPermission("materialtask:add")
|
|
|
- public RT<Boolean> add(@Valid @RequestBody AddMaterialTaskDto dto){
|
|
|
+ public RT<Boolean> add(@Valid @RequestBody AddMaterialTaskDto dto) {
|
|
|
MaterialTask materialTask = BeanUtil.toBean(dto, MaterialTask.class);
|
|
|
boolean isSuccess = materialTaskService.add(materialTask);
|
|
|
- return RT.ok(isSuccess);
|
|
|
+ return RT.ok(isSuccess);
|
|
|
}
|
|
|
|
|
|
@PutMapping
|
|
|
@ApiOperation(value = "修改材料提交任务")
|
|
|
@SaCheckPermission("materialtask:edit")
|
|
|
- public RT<Boolean> update(@Valid @RequestBody UpdateMaterialTaskDto dto){
|
|
|
+ public RT<Boolean> update(@Valid @RequestBody UpdateMaterialTaskDto dto) {
|
|
|
|
|
|
MaterialTask materialTask = BeanUtil.toBean(dto, MaterialTask.class);
|
|
|
return RT.ok(materialTaskService.update(materialTask));
|
|
@@ -101,10 +153,11 @@ public class MaterialTaskController {
|
|
|
@DeleteMapping
|
|
|
@ApiOperation(value = "删除材料提交任务")
|
|
|
@SaCheckPermission("materialtask:delete")
|
|
|
- public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
|
|
|
+ public RT<Boolean> delete(@Valid @RequestBody List<Long> ids) {
|
|
|
return RT.ok(materialTaskService.delete(ids));
|
|
|
|
|
|
}
|
|
|
+
|
|
|
@PostMapping("/import")
|
|
|
@ApiOperation(value = "导入")
|
|
|
public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
|
|
@@ -122,4 +175,39 @@ public class MaterialTaskController {
|
|
|
|
|
|
return RT.fileStream(bot.toByteArray(), "MaterialTask" + ExcelTypeEnum.XLSX.getValue());
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping(value = "/assign/page")
|
|
|
+ @ApiOperation(value = "材料提交任务分员列表(分页)")
|
|
|
+ @SaCheckPermission("materialtask:detail")
|
|
|
+ public RT<PageOutput<MaterialTaskAssignVo>> assignPage(@Valid MaterialTaskAssignPageDto dto) {
|
|
|
+
|
|
|
+ MPJLambdaWrapper<MaterialTaskAssign> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
+ queryWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
|
|
|
+ .select(MaterialTaskAssign::getId)
|
|
|
+ .select(MaterialTaskAssign.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssignVo.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(XjrUser.class, XjrUser::getId, MaterialTaskAssign::getUserId, ext -> ext.selectAs(XjrUser::getUserName, MaterialTaskAssignVo::getUserName))
|
|
|
+ .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, MaterialTypeAssign::getUserId)
|
|
|
+ .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId, ext -> ext.selectAs(Department::getName, MaterialTaskAssignVo::getDeptName))
|
|
|
+ ;
|
|
|
+ IPage<MaterialTaskAssign> page = materialTaskAssignService.page(ConventPage.getPage(dto), queryWrapper);
|
|
|
+ PageOutput<MaterialTaskAssignVo> pageOutput = ConventPage.getPageOutput(page, MaterialTaskAssignVo.class);
|
|
|
+ return RT.ok(pageOutput);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping(value = "/assign/add")
|
|
|
+ @ApiOperation(value = "材料提交任务分员权限")
|
|
|
+ @SaCheckPermission("materialtask:add")
|
|
|
+ public RT<Boolean> assignAdd(@Valid @RequestBody AddMaterialTaskAssignDto dto){
|
|
|
+ boolean isSuccess = materialTaskAssignService.add(dto);
|
|
|
+ return RT.ok(isSuccess);
|
|
|
+ }
|
|
|
+
|
|
|
+ @DeleteMapping(value = "/assign/delete")
|
|
|
+ @ApiOperation(value = "删除材料提交任务分员")
|
|
|
+ @SaCheckPermission("materialtask:delete")
|
|
|
+ public RT<Boolean> assignDelete(@Valid @RequestBody List<Long> ids){
|
|
|
+ return RT.ok(materialTaskAssignService.delete(ids));
|
|
|
+ }
|
|
|
}
|