package org.springblade.mdm.statreport.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.producedivision.entity.MdmDept; import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.statreport.service.CuredProgramStatService; import org.springblade.mdm.statreport.service.DeptRelationConfig; import org.springblade.mdm.statreport.service.NewProgrammingStatService; import org.springblade.mdm.statreport.vo.CuredProgramQueryVO; import org.springblade.mdm.statreport.vo.CuredProgramVO; import org.springblade.mdm.statreport.vo.NewProgrammingQueryVO; import org.springblade.mdm.statreport.vo.NewProgrammingVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 固化程序统计,统计一段时间内固化了多少程序 */ @Slf4j @RestController @AllArgsConstructor @RequestMapping("/statreport/cureprogram") @Tag(name = "新编程序统计", description = "新编程序统计") public class CuredProgramController { private final CuredProgramStatService curedProgramStatService; private final ParamService paramService; private final MdmDeptService mdmDeptService; private final DeptRelationConfig deptRelationConfig; @GetMapping("/page") @ApiOperationSupport(order = 3) @Operation(summary = "固化程序列表", description = "固化程序列表") public R> page(CuredProgramQueryVO query) { if(query.getDeptIds() == null || query.getDeptIds().isEmpty()){ //没有传入deptIds,查询用户对应的所有deptId String userRole = AuthUtil.getUserRole();//角色别名,多个角色逗号分隔 List userRoleAliasList = Func.toStrList(",", userRole); String managerRole = paramService.getProgramManagerRoleAlias(); if(!userRoleAliasList.contains(managerRole) && !AuthUtil.isAdministrator() && !AuthUtil.isAdmin()){ //非数控管理员角色、管理员,限制未只能导出自己的程序 query.setDeptIds(Func.toLongList(AuthUtil.getDeptId())); } } IPage pages = curedProgramStatService.pageQuery(query); return R.data(pages); } }