车车 4 сар өмнө
parent
commit
d6b078e661

+ 0 - 19
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workflowdesign/WorkflowDesignController.java

@@ -1,11 +1,8 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign;
 
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.WorkflowDesignPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.WorkflowDesignRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.WorkflowDesignSaveReqVO;
@@ -15,16 +12,13 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
-import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.IOException;
 import java.util.List;
 
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 
@@ -78,17 +72,4 @@ public class WorkflowDesignController {
         return success(BeanUtils.toBean(pageResult, WorkflowDesignRespVO.class));
     }
 
-    @GetMapping("/exportWorkflowDesignExcel")
-    @Operation(summary = "导出流程设计 Excel")
-    @PreAuthorize("@ss.hasPermission('iscs:workflow-design:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportWorkflowDesignExcel(@Valid WorkflowDesignPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<WorkflowDesignDO> list = workflowDesignService.getWorkflowDesignPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "流程设计.xls", "数据", WorkflowDesignRespVO.class,
-                        BeanUtils.toBean(list, WorkflowDesignRespVO.class));
-    }
-
 }

+ 37 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/app/workdesign/WorkflowAppController.java

@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.module.iscs.controller.app.workdesign;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.MyWorkReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.MyWorkRespVO;
+import cn.iocoder.yudao.module.iscs.service.workdesign.WorkflowWorkService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+
+@Tag(name = "用户 App - 作业")
+@RestController
+@RequestMapping("/app/iscs/workflow")
+@Validated
+public class WorkflowAppController {
+
+    @Resource
+    private WorkflowWorkService workflowWorkService;
+
+    @GetMapping("/getAppMyWorkPage")
+    @Operation(summary = "我的作业分页")
+    // @PreAuthorize("@ss.hasPermission('app:iscs:workflow-work:query')")
+    public CommonResult<PageResult<MyWorkRespVO>> getAppMyWorkPage(@Valid MyWorkReqVO vo) {
+        PageResult<MyWorkRespVO> pageResult = workflowWorkService.getAppMyWorkPage(vo);
+        return success(pageResult);
+    }
+
+}

+ 3 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/workdesign/WorkflowWorkMapper.java

@@ -43,4 +43,7 @@ public interface WorkflowWorkMapper extends BaseMapperX<WorkflowWorkDO> {
 
     Page<MyWorkRespVO> getMyWorkPage(Page page, @Param(value = "vo") MyWorkReqVO vo);
 
+    Page<MyWorkRespVO> getAppMyWorkPage(Page page, @Param(value = "vo") MyWorkReqVO vo);
+
+
 }

+ 7 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkService.java

@@ -84,6 +84,13 @@ public interface WorkflowWorkService extends IService<WorkflowWorkDO> {
      */
     PageResult<MyWorkRespVO> getMyWorkPage(MyWorkReqVO vo);
 
+    /**
+     * 我的作业分页
+     * @param vo
+     * @return
+     */
+    PageResult<MyWorkRespVO> getAppMyWorkPage(MyWorkReqVO vo);
+
     /**
      * 我的节点详情
      * @param nodeId

+ 13 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkServiceImpl.java

@@ -215,6 +215,19 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
         return respVOPageResult;
     }
 
+    @Override
+    public PageResult<MyWorkRespVO> getAppMyWorkPage(MyWorkReqVO vo) {
+        Long loginUserId = getLoginUserId();
+        vo.setLoginUserId(loginUserId);
+        Page page = new Page<>().setSize(vo.getPageSize()).setCurrent(vo.getPageNo());
+        // 获取和我相关的作业
+        Page<MyWorkRespVO> myWorkPage = workflowWorkMapper.getAppMyWorkPage(page, vo);
+        PageResult<MyWorkRespVO> respVOPageResult = new PageResult<>();
+        respVOPageResult.setList(myWorkPage.getRecords());
+        respVOPageResult.setTotal(myWorkPage.getTotal());
+        return respVOPageResult;
+    }
+
     @Override
     public WorkflowWorkNodeRespVO getMyWorkNodeDetail(Long nodeId) {
         WorkflowWorkNodeDO byId = workflowWorkNodeService.getById(nodeId);

+ 48 - 0
yudao-module-iscs/src/main/resources/mapper/workdesign/WorkflowWorkMapper.xml

@@ -56,4 +56,52 @@
         </where>
         ORDER BY work_node.update_time DESC
     </select>
+    <select id="getAppMyWorkPage"
+            resultType="cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.MyWorkRespVO">
+        SELECT
+        work_node.work_id,
+        ww.name,
+        ww.order_no,
+        ww.urgency_level,
+        ww.completion_time,
+        ww.cancellation_time,
+        ww.cancellation_reason,
+        ww.initiator_name,
+        su.nickname as worker_user_name,
+        work_node.id as node_id,
+        work_node.start_time as work_time,
+        work_node.id as current_node_id,
+        work_node.node_name as current_node_name,
+        work_node.approval_status
+        FROM
+        isc_workflow_work_node work_node
+        left join isc_workflow_work ww on ww.id = work_node.work_id
+        left join system_users su on su.id = work_node.worker_user_id
+        <where>
+            work_node.deleted = b'0'
+            AND ww.status != 'unreleased'
+            AND ww.status != 'scheduled'
+            AND work_node.approval_status != 'pending'
+            AND (
+            -- 条件1:节点自身负责人ID匹配
+            work_node.worker_user_id = #{vo.loginUserId}
+            -- 条件2:关联表中负责人ID匹配
+            OR EXISTS (
+            SELECT 1
+            FROM isc_workflow_work_node_user work_node_user
+            WHERE
+            work_node_user.node_id = work_node.id
+            AND work_node_user.deleted = b'0'
+            AND work_node_user.user_id = #{vo.loginUserId} ) )
+            <if test="vo.key != null and vo.key.trim != ''">
+                AND (ww.name like concat('%',#{vo.key},'%')
+                OR ww.order_no like concat('%',#{vo.key},'%')
+                OR ww.initiator_name like concat('%',#{vo.key},'%'))
+            </if>
+            <if test="vo.approvalStatus != null and vo.approvalStatus.trim != ''">
+                AND work_node.approval_status = #{vo.approvalStatus}
+            </if>
+        </where>
+        ORDER BY FIELD(approval_status, 'unaudited', 'approved', 'rejected', 'pending'), work_node.update_time DESC
+    </select>
 </mapper>

+ 1 - 1
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java

@@ -74,7 +74,7 @@ public class DictDataController {
 
     @GetMapping("/page")
     @Operation(summary = "/获得字典类型的分页列表")
-    @PreAuthorize("@ss.hasPermission('system:dict:query')")
+    // @PreAuthorize("@ss.hasPermission('system:dict:query')")
     public CommonResult<PageResult<DictDataRespVO>> getDictTypePage(@Valid DictDataPageReqVO pageReqVO) {
         PageResult<DictDataDO> pageResult = dictDataService.getDictDataPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, DictDataRespVO.class));