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.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.history.HistoricProcessInstance; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.UrlUtil; 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.flow.entity.TaskDispatch; import org.springblade.mdm.flow.service.FlowCommonService; import org.springblade.mdm.flow.service.FlowProgramProperties; import org.springblade.mdm.flow.service.TaskDispatchService; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.mdm.statreport.service.ConfirmTablePrintService; import org.springblade.mdm.statreport.service.DeptRelationConfig; import org.springblade.mdm.statreport.service.NewProgrammingStatService; 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.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 新编程序统计 */ @Slf4j @RestController @AllArgsConstructor @RequestMapping("/statreport/newprogramming") @Tag(name = "新编程序统计", description = "新编程序统计") public class NewProgrammingController { private NewProgrammingStatService newProgrammingStatService; private final HistoryService hisService; private final ParamService paramService; private final MdmDeptService mdmDeptService; private final DeptRelationConfig deptRelationConfig; @GetMapping("/page") @ApiOperationSupport(order = 3) @Operation(summary = "新编程序列表", description = "新编程序列表") public R> page(NewProgrammingQueryVO 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 = newProgrammingStatService.pageQuery(query); return R.data(pages); } @GetMapping("/deptsData") @ApiOperationSupport(order = 3) @Operation(summary = "部门下拉数据", description = "部门下拉数据") public R>> deptIdsData() { String userRole = AuthUtil.getUserRole();//角色别名,多个角色逗号分隔 List userRoleAliasList = Func.toStrList(",", userRole); List> result = new ArrayList<>(); String managerRole = paramService.getProgramManagerRoleAlias(); if(!userRoleAliasList.contains(managerRole) && !AuthUtil.isAdministrator() && !AuthUtil.isAdmin()){ //非数控管理员角色、管理员,限制未只能下拉自己的部门 List deptIds = Func.toLongList(AuthUtil.getDeptId()); for(Long deptId : deptIds){ MdmDept dept = mdmDeptService.getById(deptId); if(dept != null){ /*Map item = new HashMap<>(); item.put("label",dept.getDeptName()); item.put("value",dept.getId()+""); */ result.add(deptToMap(dept)); } } }else{ //全部部门的下拉 Map relMap = deptRelationConfig.getDeptWorkshopMap(); //所有专业组id List deptList = mdmDeptService.listByIds(relMap.keySet().stream().toList()); for (MdmDept dept : deptList) { /* Map item = new HashMap<>(); item.put("label",dept.getDeptName()); item.put("value",dept.getId()+""); */ result.add(deptToMap(dept)); } } return R.data(result); } Map deptToMap(MdmDept dept){ Map item = new HashMap<>(); item.put("label",dept.getDeptName()); item.put("value",dept.getId()+""); return item; } }