Browse Source

添加 材料接口

DESKTOP-USV654P\pc 1 year ago
parent
commit
a1ea455ce1

+ 31 - 0
src/main/java/com/xjrsoft/module/material/controller/MaterialTaskController.java

@@ -8,12 +8,15 @@ 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.annotation.XjrLog;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.model.result.R;
 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.app.dto.UpdateEnableMarkDto;
 import com.xjrsoft.module.material.dto.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.alibaba.excel.EasyExcel;
@@ -210,4 +213,32 @@ public class MaterialTaskController {
     public RT<Boolean> assignDelete(@Valid @RequestBody List<Long> ids){
         return RT.ok(materialTaskAssignService.delete(ids));
     }
+
+    @PostMapping(value = "submited")
+    @ApiOperation(value = "提交材料")
+    @SaCheckPermission("materialtask:add")
+    public RT<Boolean> submited(@Valid @RequestBody MaterialTaskAssignAppendixDto dto) {
+        boolean isSuccess = materialTaskService.submited(dto);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping("/approved")
+    @ApiOperation(value = "提交材料审核 enabledMark 不用传")
+    public R approved(@Valid @RequestBody UpdateEnableMarkDto dto) {
+        MaterialTaskAssign materialTaskAssign  = new MaterialTaskAssign();
+        materialTaskAssign.setId(dto.getId());
+        materialTaskAssign.setStatus(3);
+        materialTaskAssignService.updateById(materialTaskAssign);
+        return R.ok(true);
+    }
+
+    @PutMapping("/reject")
+    @ApiOperation(value = "提交材料重新 enabledMark 不用传")
+    public R reject(@Valid @RequestBody UpdateEnableMarkDto dto) {
+        MaterialTaskAssign materialTaskAssign  = new MaterialTaskAssign();
+        materialTaskAssign.setId(dto.getId());
+        materialTaskAssign.setStatus(4);
+        materialTaskAssignService.updateById(materialTaskAssign);
+        return R.ok(true);
+    }
 }

+ 15 - 0
src/main/java/com/xjrsoft/module/material/dto/MaterialTaskAssignAppendixDto.java

@@ -1,7 +1,22 @@
 package com.xjrsoft.module.material.dto;
 
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class MaterialTaskAssignAppendixDto {
+    /**
+     * 材料提交任务分配对象ID
+     */
+    @ApiModelProperty("材料提交任务分配对象ID")
+    private Long materialTaskAssignId;
+
+    /**
+     * materialTaskAppendix
+     */
+    @ApiModelProperty("materialTaskAppendix子表")
+    private List<AddMaterialTaskAppendixDto> materialTaskAppendixList;
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/material/service/IMaterialTaskService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.material.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.material.dto.MaterialTaskAssignAppendixDto;
 import com.xjrsoft.module.material.entity.MaterialTask;
 import lombok.Data;
 import java.util.List;
@@ -37,4 +38,11 @@ public interface IMaterialTaskService extends MPJBaseService<MaterialTask> {
     * @return
     */
     Boolean delete(List<Long> ids);
+    /**
+     * 提交材料
+     *
+     * @param dto
+     * @return
+     */
+    Boolean submited(MaterialTaskAssignAppendixDto dto);
 }

+ 13 - 1
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskAssignServiceImpl.java

@@ -5,9 +5,11 @@ 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.MaterialTask;
 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.mapper.MaterialTaskMapper;
 import com.xjrsoft.module.material.service.IMaterialTaskAssignService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -20,12 +22,14 @@ import java.util.Optional;
 @AllArgsConstructor
 public class MaterialTaskAssignServiceImpl   extends MPJBaseServiceImpl<MaterialTaskAssignMapper, MaterialTaskAssign> implements IMaterialTaskAssignService {
     private final MaterialTaskAssignMapper materialTaskAssignMapper;
-
+    private final MaterialTaskMapper materialTaskMapper;
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(AddMaterialTaskAssignDto addMaterialTaskAssignDto) {
 
         if (addMaterialTaskAssignDto.getUserList() != null && addMaterialTaskAssignDto.getUserList().size() > 0) {
+
+            Integer count = 0;
             List<MaterialTaskAssign> materialTypeAssignList = materialTaskAssignMapper.selectList(Wrappers.<MaterialTaskAssign>query().lambda()
                     .eq(MaterialTaskAssign::getMaterialTaskId, addMaterialTaskAssignDto.getMaterialTaskId()));
             for (MaterialAssignUserDto addMaterialTypeAssignUserDto : addMaterialTaskAssignDto.getUserList()) {
@@ -44,8 +48,16 @@ public class MaterialTaskAssignServiceImpl   extends MPJBaseServiceImpl<Material
                     materialTaskAssign.setTransferAssignPerson(0);
                     materialTaskAssign.setTransferSubmitedPerson(0);
                     materialTaskAssignMapper.insert(materialTaskAssign);
+                    count = count + 1;
+
                 }
             }
+
+            if (count > 0) {
+                MaterialTask materialTask = materialTaskMapper.selectByIdDeep(addMaterialTaskAssignDto.getMaterialTaskId());
+                materialTask.setAssignPerson(materialTask.getAssignPerson() + count);
+                materialTaskMapper.updateById(materialTask);
+            }
         }
         return true;
     }

+ 48 - 6
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -1,21 +1,25 @@
 package com.xjrsoft.module.material.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.material.entity.MaterialTaskAssign;
-import com.xjrsoft.module.material.mapper.MaterialTaskAssignMapper;
+import com.xjrsoft.common.utils.LocalDateTimeUtil;
+import com.xjrsoft.module.material.dto.AddMaterialTaskAppendixDto;
+import com.xjrsoft.module.material.dto.MaterialTaskAssignAppendixDto;
+import com.xjrsoft.module.material.entity.MaterialTask;
 import com.xjrsoft.module.material.entity.MaterialTaskAppendix;
+import com.xjrsoft.module.material.entity.MaterialTaskAssign;
 import com.xjrsoft.module.material.mapper.MaterialTaskAppendixMapper;
-import com.xjrsoft.module.material.entity.MaterialTask;
+import com.xjrsoft.module.material.mapper.MaterialTaskAssignMapper;
 import com.xjrsoft.module.material.mapper.MaterialTaskMapper;
 import com.xjrsoft.module.material.service.IMaterialTaskService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 /**
 * @title: 材料提交任务
@@ -108,7 +112,7 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
                 }
             }
             //已经不存在的id 删除
-            if(materialTaskAppendixRemoveIds.size() > 0){
+            if (materialTaskAppendixRemoveIds.size() > 0) {
                 materialTaskMaterialTaskAppendixMapper.deleteBatchIds(materialTaskAppendixRemoveIds);
             }
         }
@@ -126,4 +130,42 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
 
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean submited(MaterialTaskAssignAppendixDto materialTaskAssignAppendixDto) {
+
+        if (materialTaskAssignAppendixDto.getMaterialTaskAppendixList() != null && materialTaskAssignAppendixDto.getMaterialTaskAppendixList().size() > 0) {
+
+            MaterialTaskAssign materialTaskAssign = materialTaskMaterialTaskAssignMapper.selectByIdDeep(materialTaskAssignAppendixDto.getMaterialTaskAssignId());
+            Integer oldStatus = materialTaskAssign.getStatus();
+            if (oldStatus == 1) {
+                materialTaskAssign.setStatus(2);
+                MaterialTask materialTask = materialTaskMaterialTaskMapper.selectByIdDeep(materialTaskAssign.getTransferMaterialTaskId());
+                if (LocalDateTime.now().compareTo(materialTask.getRequiredCompleteTime()) > 0) {
+                    materialTaskAssign.setExecutiveStatus(2);
+                    materialTask.setOnTimePerson(materialTask.getOnTimePerson() + 1);
+                } else {
+                    materialTaskAssign.setExecutiveStatus(3);
+                    materialTask.setTimeDelay(materialTask.getTimeDelay() + 1);
+                }
+
+                materialTaskMaterialTaskAssignMapper.updateById(materialTaskAssign);
+                materialTask.setSubmitedPerson(materialTask.getSubmitedPerson() + 1);
+                materialTaskMaterialTaskMapper.updateById(materialTask);
+            }
+
+            if (oldStatus == 4) { // 重做删除原来的
+                materialTaskMaterialTaskAppendixMapper.delete(Wrappers.lambdaQuery(MaterialTaskAppendix.class).eq(MaterialTaskAppendix::getMaterialTaskId, materialTaskAssignAppendixDto.getMaterialTaskAssignId()));
+            }
+
+            for (AddMaterialTaskAppendixDto materialTaskAppendixDto : materialTaskAssignAppendixDto.getMaterialTaskAppendixList()) {
+                MaterialTaskAppendix materialTaskAppendix = new MaterialTaskAppendix();
+                materialTaskAppendix.setMaterialTaskId(materialTaskAssignAppendixDto.getMaterialTaskAssignId());
+                materialTaskAppendix.setFileId(materialTaskAppendixDto.getFileId());
+                materialTaskMaterialTaskAppendixMapper.insert(materialTaskAppendix);
+            }
+        }
+        return true;
+    }
 }