Browse Source

材料提交

DESKTOP-USV654P\pc 1 year ago
parent
commit
5b89686403

+ 104 - 16
src/main/java/com/xjrsoft/module/material/controller/MaterialTaskController.java

@@ -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));
+    }
 }

+ 3 - 3
src/main/java/com/xjrsoft/module/material/controller/MaterialTypeController.java

@@ -149,7 +149,7 @@ public class MaterialTypeController {
 
     @GetMapping(value = "/assign/page")
     @ApiOperation(value="材料提交任务类型权限列表(分页)")
-    @SaCheckPermission("materialtypeassign:detail")
+    @SaCheckPermission("materialtype:detail")
     public RT<PageOutput<MaterialTypeAssignVo>> assignPage(@Valid MaterialTypeAssignPageDto dto){
 
         MPJLambdaWrapper<MaterialTypeAssign> queryWrapper = new MPJLambdaWrapper<>();
@@ -170,7 +170,7 @@ public class MaterialTypeController {
 
     @PostMapping(value = "/assign/add")
     @ApiOperation(value = "材料提交任务类型权限")
-    @SaCheckPermission("materialtypeassign:add")
+    @SaCheckPermission("materialtype:add")
     public RT<Boolean> assignAdd(@Valid @RequestBody AddMaterialTypeAssignDto dto){
         boolean isSuccess = materialTypeAssignService.add(dto);
         return RT.ok(isSuccess);
@@ -178,7 +178,7 @@ public class MaterialTypeController {
 
     @DeleteMapping(value = "/assign/delete")
     @ApiOperation(value = "删除材料提交任务类型")
-    @SaCheckPermission("materialtypeassign:delete")
+    @SaCheckPermission("materialtype:delete")
     public RT<Boolean> assignDelete(@Valid @RequestBody List<Long> ids){
         return RT.ok(materialTypeAssignService.delete(ids));
     }

+ 7 - 51
src/main/java/com/xjrsoft/module/material/dto/AddMaterialTaskAssignDto.java

@@ -24,59 +24,15 @@ public class AddMaterialTaskAssignDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-    * 材料提交任务(material_task)
-    */
+     * 材料提交任务(material_task)
+     */
     @ApiModelProperty("材料提交任务(material_task)")
     private Long materialTaskId;
+
     /**
-    * 用户(xjr_user)
-    */
-    @ApiModelProperty("用户(xjr_user)")
-    private Long userId;
-    /**
-    * 用户类型 1=孝职工 2=学生
-    */
-    @ApiModelProperty("用户类型 1=孝职工 2=学生")
-    private Integer userType;
-    /**
-    * 学号/工号
-    */
-    @ApiModelProperty("学号/工号")
-    private String userNumber;
-    /**
-    * 状态 1=未提交 2=待审核 3=通过 4=重做
-    */
-    @ApiModelProperty("状态 1=未提交 2=待审核 3=通过 4=重做")
-    private Integer status;
-    /**
-    * 执行提交 1=未提交 2=按时提交 3=延迟提交
-    */
-    @ApiModelProperty("执行提交 1=未提交 2=按时提交 3=延迟提交")
-    private Integer executiveStatus;
-    /**
-    * 转办任务分配ID(material_task_assign)
-    */
-    @ApiModelProperty("转办任务分配ID(material_task_assign)")
-    private Long transferMaterialTaskId;
-    /**
-    * 转办给几人
-    */
-    @ApiModelProperty("转办给几人")
-    private Integer transferAssignPerson;
-    /**
-    * 转办已提交人数
-    */
-    @ApiModelProperty("转办已提交人数")
-    private Integer transferSubmitedPerson;
-    /**
-    * 是否发送消息 0=不发 1=发送
-    */
-    @ApiModelProperty("是否发送消息 0=不发 1=发送")
-    private Integer sendMessage;
-    /**
-    * 发送消息状态 0=未不发 1=已发送
-    */
-    @ApiModelProperty("发送消息状态 0=未不发 1=已发送")
-    private Integer sendMessageStatus;
+     * 用户列表
+     */
+    @ApiModelProperty("用户列表")
+    private List<MaterialAssignUserDto> userList;
 
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/material/dto/AddMaterialTaskDto.java

@@ -74,8 +74,8 @@ public class AddMaterialTaskDto implements Serializable {
     /**
     * materialTaskAssign
     */
-    @ApiModelProperty("materialTaskAssign子表")
-    private List<AddMaterialTaskAssignDto> materialTaskAssignList;
+//    @ApiModelProperty("materialTaskAssign子表")
+//    private List<AddMaterialTaskAssignDto> materialTaskAssignList;
     /**
     * materialTaskAppendix
     */

+ 1 - 5
src/main/java/com/xjrsoft/module/material/dto/AddMaterialTypeAssignDto.java

@@ -3,11 +3,7 @@ package com.xjrsoft.module.material.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.io.Serializable;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
 import java.util.List;
 
 
@@ -33,6 +29,6 @@ public class AddMaterialTypeAssignDto implements Serializable {
      * 用户列表
      */
     @ApiModelProperty("用户列表")
-    private  List<AddMaterialTypeAssignUserDto> userList;
+    private  List<MaterialAssignUserDto> userList;
 
 }

+ 7 - 3
src/main/java/com/xjrsoft/module/material/dto/AddMaterialTypeAssignUserDto.java → src/main/java/com/xjrsoft/module/material/dto/MaterialAssignUserDto.java

@@ -3,10 +3,8 @@ package com.xjrsoft.module.material.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.util.List;
-
 @Data
-public class AddMaterialTypeAssignUserDto {
+public class MaterialAssignUserDto {
 
     /**
      * 用户类型 1=孝职工 2=学生
@@ -23,4 +21,10 @@ public class AddMaterialTypeAssignUserDto {
      */
     @ApiModelProperty("学号/工号")
     private String userNumber;
+
+    /**
+     * 是否发送消息 0=不发 1=发送 类型里不需要
+     */
+    @ApiModelProperty("是否发送消息 0=不发 1=发送")
+    private Integer sendMessage;
 }

+ 14 - 0
src/main/java/com/xjrsoft/module/material/dto/MaterialTaskAssignPageDto.java

@@ -0,0 +1,14 @@
+package com.xjrsoft.module.material.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MaterialTaskAssignPageDto  extends PageInput {
+    /**
+     * 材料提交任务(material_task)
+     */
+    @ApiModelProperty("材料提交任务(material_task)")
+    private Long materialTaskId;
+}

+ 15 - 2
src/main/java/com/xjrsoft/module/material/dto/MaterialTaskPageDto.java

@@ -20,6 +20,19 @@ import java.math.BigDecimal;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class MaterialTaskPageDto extends PageInput {
-
-
+    /**
+     * 任务名称
+     */
+    @ApiModelProperty("任务名称")
+    private String name;
+    /**
+     * 状态 1=未开始 2=进行中 3=结束
+     */
+    @ApiModelProperty("状态 1=未开始 2=进行中 3=结束")
+    private Integer status;
+    /**
+     * 材料提交任务类型(material_type)
+     */
+    @ApiModelProperty("材料提交任务类型(material_type)")
+    private Long materialTypeId;
 }

+ 46 - 0
src/main/java/com/xjrsoft/module/material/dto/MaterialTaskWaitPageDto.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.material.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class MaterialTaskWaitPageDto extends PageInput {
+    /**
+     * 材料提交任务类型(material_type)
+     */
+    @ApiModelProperty("材料提交任务类型(material_type)")
+    private Long materialTypeId;
+    /**
+     * 任务名称
+     */
+    @ApiModelProperty("任务名称")
+    private String name;
+    /**
+     * 状态 1=未开始 2=进行中 3=结束
+     */
+    @ApiModelProperty("状态 1=未开始 2=进行中 3=结束")
+    private Integer status;
+    /**
+     * 指派人
+     */
+    @ApiModelProperty("指派人")
+    private String assignedUser;
+
+    /**
+     * 要求完成日期 开始
+     */
+    @ApiModelProperty("要求完成日期 开始")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime requiredCompleteStareTime;
+
+    /**
+     * 要求完成日期 结束
+     */
+    @ApiModelProperty("要求完成日期 结束")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime requiredCompleteEndTime;
+}

+ 12 - 0
src/main/java/com/xjrsoft/module/material/service/IMaterialTaskAssignService.java

@@ -0,0 +1,12 @@
+package com.xjrsoft.module.material.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.material.dto.AddMaterialTaskAssignDto;
+import com.xjrsoft.module.material.entity.MaterialTaskAssign;
+
+import java.util.List;
+
+public interface IMaterialTaskAssignService extends MPJBaseService<MaterialTaskAssign> {
+    Boolean add(AddMaterialTaskAssignDto addMaterialTaskAssignDto);
+    Boolean delete(List<Long> ids);
+}

+ 59 - 0
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskAssignServiceImpl.java

@@ -0,0 +1,59 @@
+package com.xjrsoft.module.material.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.material.dto.AddMaterialTaskAssignDto;
+import com.xjrsoft.module.material.dto.AddMaterialTypeAssignDto;
+import com.xjrsoft.module.material.dto.MaterialAssignUserDto;
+import com.xjrsoft.module.material.entity.MaterialTaskAssign;
+import com.xjrsoft.module.material.entity.MaterialTypeAssign;
+import com.xjrsoft.module.material.mapper.MaterialTaskAssignMapper;
+import com.xjrsoft.module.material.service.IMaterialTaskAssignService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Optional;
+
+@Service
+@AllArgsConstructor
+public class MaterialTaskAssignServiceImpl   extends MPJBaseServiceImpl<MaterialTaskAssignMapper, MaterialTaskAssign> implements IMaterialTaskAssignService {
+    private final MaterialTaskAssignMapper materialTaskAssignMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(AddMaterialTaskAssignDto addMaterialTaskAssignDto) {
+
+        if (addMaterialTaskAssignDto.getUserList() != null && addMaterialTaskAssignDto.getUserList().size() > 0) {
+            List<MaterialTaskAssign> materialTypeAssignList = materialTaskAssignMapper.selectList(Wrappers.<MaterialTaskAssign>query().lambda()
+                    .eq(MaterialTaskAssign::getMaterialTaskId, addMaterialTaskAssignDto.getMaterialTaskId()));
+            for (MaterialAssignUserDto addMaterialTypeAssignUserDto : addMaterialTaskAssignDto.getUserList()) {
+                Optional<MaterialTaskAssign> materialTaskAssignAny = materialTypeAssignList.stream().filter(item -> item.getUserId() == addMaterialTypeAssignUserDto.getUserId()).findAny();
+                if (!materialTaskAssignAny.isPresent()) {
+                    MaterialTaskAssign materialTaskAssign = new MaterialTaskAssign();
+                    materialTaskAssign.setMaterialTaskId(addMaterialTaskAssignDto.getMaterialTaskId());
+                    materialTaskAssign.setUserId(addMaterialTypeAssignUserDto.getUserId());
+                    materialTaskAssign.setUserType(addMaterialTypeAssignUserDto.getUserType());
+                    materialTaskAssign.setUserNumber(addMaterialTypeAssignUserDto.getUserNumber());
+                    materialTaskAssign.setSendMessage(addMaterialTypeAssignUserDto.getSendMessage());
+                    materialTaskAssign.setTransferMaterialTaskId(0L);
+                    materialTaskAssign.setExecutiveStatus(1);
+                    materialTaskAssign.setSendMessageStatus(0);
+                    materialTaskAssign.setStatus(1);
+                    materialTaskAssign.setTransferAssignPerson(0);
+                    materialTaskAssign.setTransferSubmitedPerson(0);
+                    materialTaskAssignMapper.insert(materialTaskAssign);
+                }
+            }
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        materialTaskAssignMapper.deleteBatchIds(ids);
+        return true;
+    }
+}

+ 27 - 23
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -36,9 +36,11 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(MaterialTask materialTask) {
         materialTaskMaterialTaskMapper.insert(materialTask);
-        for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
-            materialTaskAssign.setMaterialTaskId(materialTask.getId());
-            materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
+        if (materialTask.getMaterialTaskAssignList() != null && materialTask.getMaterialTaskAssignList().size() > 0) {
+            for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
+                materialTaskAssign.setMaterialTaskId(materialTask.getId());
+                materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
+            }
         }
         for (MaterialTaskAppendix materialTaskAppendix : materialTask.getMaterialTaskAppendixList()) {
             materialTaskAppendix.setMaterialTaskId(materialTask.getId());
@@ -54,30 +56,32 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         materialTaskMaterialTaskMapper.updateById(materialTask);
         //********************************* MaterialTaskAssign  增删改  开始 *******************************************/
         {
-            // 查出所有子级的id
-            List<MaterialTaskAssign> materialTaskAssignList = materialTaskMaterialTaskAssignMapper.selectList(Wrappers.lambdaQuery(MaterialTaskAssign.class).eq(MaterialTaskAssign::getMaterialTaskId, materialTask.getId()).select(MaterialTaskAssign::getId));
-            List<Long> materialTaskAssignIds = materialTaskAssignList.stream().map(MaterialTaskAssign::getId).collect(Collectors.toList());
-            //原有子表单 没有被删除的主键
-            List<Long> materialTaskAssignOldIds = materialTask.getMaterialTaskAssignList().stream().map(MaterialTaskAssign::getId).filter(Objects::nonNull).collect(Collectors.toList());
-            //找到需要删除的id
-            List<Long> materialTaskAssignRemoveIds = materialTaskAssignIds.stream().filter(item -> !materialTaskAssignOldIds.contains(item)).collect(Collectors.toList());
+            if (materialTask.getMaterialTaskAssignList() != null && materialTask.getMaterialTaskAssignList().size() > 0) {
+                // 查出所有子级的id
+                List<MaterialTaskAssign> materialTaskAssignList = materialTaskMaterialTaskAssignMapper.selectList(Wrappers.lambdaQuery(MaterialTaskAssign.class).eq(MaterialTaskAssign::getMaterialTaskId, materialTask.getId()).select(MaterialTaskAssign::getId));
+                List<Long> materialTaskAssignIds = materialTaskAssignList.stream().map(MaterialTaskAssign::getId).collect(Collectors.toList());
+                //原有子表单 没有被删除的主键
+                List<Long> materialTaskAssignOldIds = materialTask.getMaterialTaskAssignList().stream().map(MaterialTaskAssign::getId).filter(Objects::nonNull).collect(Collectors.toList());
+                //找到需要删除的id
+                List<Long> materialTaskAssignRemoveIds = materialTaskAssignIds.stream().filter(item -> !materialTaskAssignOldIds.contains(item)).collect(Collectors.toList());
 
-            for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
-                //如果不等于空则修改
-                if (materialTaskAssign.getId() != null) {
-                    materialTaskMaterialTaskAssignMapper.updateById(materialTaskAssign);
+                for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
+                    //如果不等于空则修改
+                    if (materialTaskAssign.getId() != null) {
+                        materialTaskMaterialTaskAssignMapper.updateById(materialTaskAssign);
+                    }
+                    //如果等于空 则新增
+                    else {
+                        //已经不存在的id 删除
+                        materialTaskAssign.setMaterialTaskId(materialTask.getId());
+                        materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
+                    }
                 }
-                //如果等于空 则新增
-                else {
-                    //已经不存在的id 删除
-                    materialTaskAssign.setMaterialTaskId(materialTask.getId());
-                    materialTaskMaterialTaskAssignMapper.insert(materialTaskAssign);
+                //已经不存在的id 删除
+                if (materialTaskAssignRemoveIds.size() > 0) {
+                    materialTaskMaterialTaskAssignMapper.deleteBatchIds(materialTaskAssignRemoveIds);
                 }
             }
-            //已经不存在的id 删除
-            if(materialTaskAssignRemoveIds.size() > 0){
-                materialTaskMaterialTaskAssignMapper.deleteBatchIds(materialTaskAssignRemoveIds);
-            }
         }
         //********************************* MaterialTaskAssign  增删改  结束 *******************************************/
 

+ 2 - 4
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTypeAssignServiceImpl.java

@@ -3,7 +3,7 @@ package com.xjrsoft.module.material.service.impl;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.material.dto.AddMaterialTypeAssignDto;
-import com.xjrsoft.module.material.dto.AddMaterialTypeAssignUserDto;
+import com.xjrsoft.module.material.dto.MaterialAssignUserDto;
 import com.xjrsoft.module.material.entity.MaterialTypeAssign;
 import com.xjrsoft.module.material.mapper.MaterialTypeAssignMapper;
 import com.xjrsoft.module.material.service.IMaterialTypeAssignService;
@@ -13,8 +13,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 @Service
 @AllArgsConstructor
@@ -27,7 +25,7 @@ public class MaterialTypeAssignServiceImpl extends MPJBaseServiceImpl<MaterialTy
         if (addMaterialTypeAssignDto.getUserList() != null && addMaterialTypeAssignDto.getUserList().size() > 0) {
             List<MaterialTypeAssign> materialTypeAssignList = materialTypeMaterialTypeAssignMapper.selectList(Wrappers.<MaterialTypeAssign>query().lambda()
                     .eq(MaterialTypeAssign::getMaterialTypeId, addMaterialTypeAssignDto.getMaterialTypeId()));
-            for (AddMaterialTypeAssignUserDto addMaterialTypeAssignUserDto : addMaterialTypeAssignDto.getUserList()) {
+            for (MaterialAssignUserDto addMaterialTypeAssignUserDto : addMaterialTypeAssignDto.getUserList()) {
                 Optional<MaterialTypeAssign> materialTypeAssignAny = materialTypeAssignList.stream().filter(item -> item.getUserId() == addMaterialTypeAssignUserDto.getUserId()).findAny();
                 if (!materialTypeAssignAny.isPresent()) {
                     MaterialTypeAssign materialTypeAssign = new MaterialTypeAssign();

+ 34 - 25
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskAssignVo.java

@@ -18,66 +18,75 @@ import java.util.List;
 public class MaterialTaskAssignVo {
 
     /**
-    * 主键编号
-    */
+     * 主键编号
+     */
     @ApiModelProperty("主键编号")
     private Long id;
     /**
-    * 材料提交任务(material_task)
-    */
+     * 材料提交任务(material_task)
+     */
     @ApiModelProperty("材料提交任务(material_task)")
     private Long materialTaskId;
     /**
-    * 用户(xjr_user)
-    */
+     * 用户(xjr_user)
+     */
     @ApiModelProperty("用户(xjr_user)")
     private Long userId;
     /**
-    * 用户类型 1=孝职工 2=学生
-    */
+     * 用户类型 1=孝职工 2=学生
+     */
     @ApiModelProperty("用户类型 1=孝职工 2=学生")
     private Integer userType;
     /**
-    * 学号/工号
-    */
+     * 学号/工号
+     */
     @ApiModelProperty("学号/工号")
     private String userNumber;
     /**
-    * 状态 1=未提交 2=待审核 3=通过 4=重做
-    */
+     * 状态 1=未提交 2=待审核 3=通过 4=重做
+     */
     @ApiModelProperty("状态 1=未提交 2=待审核 3=通过 4=重做")
     private Integer status;
     /**
-    * 执行提交 1=未提交 2=按时提交 3=延迟提交
-    */
+     * 执行提交 1=未提交 2=按时提交 3=延迟提交
+     */
     @ApiModelProperty("执行提交 1=未提交 2=按时提交 3=延迟提交")
     private Integer executiveStatus;
     /**
-    * 转办任务分配ID(material_task_assign)
-    */
+     * 转办任务分配ID(material_task_assign)
+     */
     @ApiModelProperty("转办任务分配ID(material_task_assign)")
     private Long transferMaterialTaskId;
     /**
-    * 转办给几人
-    */
+     * 转办给几人
+     */
     @ApiModelProperty("转办给几人")
     private Integer transferAssignPerson;
     /**
-    * 转办已提交人数
-    */
+     * 转办已提交人数
+     */
     @ApiModelProperty("转办已提交人数")
     private Integer transferSubmitedPerson;
     /**
-    * 是否发送消息 0=不发 1=发送
-    */
+     * 是否发送消息 0=不发 1=发送
+     */
     @ApiModelProperty("是否发送消息 0=不发 1=发送")
     private Integer sendMessage;
     /**
-    * 发送消息状态 0=未不发 1=已发送
-    */
+     * 发送消息状态 0=未不发 1=已发送
+     */
     @ApiModelProperty("发送消息状态 0=未不发 1=已发送")
     private Integer sendMessageStatus;
 
+    /**
+     * 用户
+     */
+    @ApiModelProperty("用户")
+    private String userName;
 
-
+    /**
+     * 部门
+     */
+    @ApiModelProperty("部门")
+    private String deptName;
 }

+ 102 - 0
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskWaitPageVo.java

@@ -0,0 +1,102 @@
+package com.xjrsoft.module.material.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class MaterialTaskWaitPageVo {
+    /**
+     * 主键编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+     * 指派人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建人")
+    @ApiModelProperty("指派人")
+    private String createUserName;
+    /**
+     * 任务名称
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("任务名称")
+    @ApiModelProperty("任务名称")
+    private String name;
+    /**
+     * 状态 1=未开始 2=进行中 3=结束
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态 1=未开始 2=进行中 3=结束")
+    @ApiModelProperty("状态 1=未开始 2=进行中 3=结束")
+    private Integer status;
+    /**
+     * 要求完成日期
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("要求完成日期")
+    @ApiModelProperty("要求完成日期")
+    private LocalDateTime requiredCompleteTime;
+    /**
+     * 指派给几人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("指派给几人")
+    @ApiModelProperty("指派给几人")
+    private Integer assignPerson;
+    /**
+     * 已提交人数
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("已提交人数")
+    @ApiModelProperty("已提交人数")
+    private Integer submitedPerson;
+    /**
+     * 按时提交
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("按时提交")
+    @ApiModelProperty("按时提交")
+    private Integer onTimePerson;
+    /**
+     * 延迟提交
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("延迟提交")
+    @ApiModelProperty("延迟提交")
+    private Integer timeDelay;
+
+    /**
+     * 分配ID
+     */
+    @ApiModelProperty("分配ID")
+    private Long assignId;
+    /**
+     * 执行提交 1=未提交 2=按时提交 3=延迟提交
+     */
+    @ApiModelProperty("执行提交 1=未提交 2=按时提交 3=延迟提交")
+    private Integer executiveStatus;
+    /**
+     * 转办给几人
+     */
+    @ApiModelProperty("转办给几人")
+    private Integer transferAssignPerson;
+    /**
+     * 转办已提交人数
+     */
+    @ApiModelProperty("转办已提交人数")
+    private Integer transferSubmitedPerson;
+
+    /**
+     * 审核状态 1=未提交 2=待审核 3=通过 4=重做
+     */
+    @ApiModelProperty("审核状态 1=未提交 2=待审核 3=通过 4=重做")
+    private Integer processStatus;
+}