package com.aps.core.controller.basicData; import com.aps.common.core.utils.DateUtils; import com.aps.common.core.utils.poi.ExcelUtil; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.web.page.TableDataInfo; import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsGasPipelineCapacityPlan; import com.aps.core.domain.ApsStandardProcess; import com.aps.core.service.IApsGasPipelineCapacityPlanService; import com.aps.core.service.IApsStandardProcessService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 气体管路产能规划Controller * * @author hjy * @date 2025-04-24 */ @Tag(name = "气体管路产能规划", description = "气体管路产能规划接口") @RestController @RequestMapping("/gasPipelineCapacityPlan") public class ApsGasPipelineCapacityPlanController extends BaseController { @Autowired private IApsGasPipelineCapacityPlanService apsGasPipelineCapacityPlanService; @Autowired private IApsStandardProcessService apsStandardProcessService; /** * 查询气体管路产能规划列表 */ @Operation(summary = "查询气体管路产能规划列表", description = "分页查询") @RequiresPermissions("aps:gasPipelineCapacityPlan:list") @GetMapping("/list") public TableDataInfo list(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { // startPage(); List list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan); ApsStandardProcess apsStandardProcess = new ApsStandardProcess(); apsStandardProcess.setMajor(apsGasPipelineCapacityPlan.getMajor()); apsStandardProcess.setPlant(apsGasPipelineCapacityPlan.getOrgCode()); List processList = apsStandardProcessService.selectApsStandardProcessListAll(apsStandardProcess); if (list.isEmpty()) { for (ApsStandardProcess apsStandardProcessTemp : processList) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); apsGasPipelineCapacityPlanTemp.setProcessName(apsStandardProcessTemp.getProcessName()); apsGasPipelineCapacityPlanTemp.setOrgCode(apsStandardProcessTemp.getPlant()); list.add(apsGasPipelineCapacityPlanTemp); } } if (processList.size() > list.size()) { List newProcess = new ArrayList<>(); for (ApsStandardProcess apsStandardProcessTemp : processList) { boolean flag = true; for (ApsGasPipelineCapacityPlan temp : list) { if (apsStandardProcessTemp.getProcessName().equals(temp.getProcessName())) { flag = false; break; } } if (flag) { newProcess.add(apsStandardProcessTemp.getProcessName()); } } for (String processName : newProcess) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); apsGasPipelineCapacityPlanTemp.setProcessName(processName); list.add(apsGasPipelineCapacityPlanTemp); } } list.sort((a, b) -> a.getProcessName().compareTo(b.getProcessName())); return getDataTable(list); } /** * 导出气体管路产能规划列表 */ @Operation(summary = "导出气体管路产能规划列表", description = "导出") @RequiresPermissions("aps:gasPipelineCapacityPlan:export") @Log(title = "气体管路产能规划", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { List list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan); ExcelUtil util = new ExcelUtil(ApsGasPipelineCapacityPlan.class); util.exportExcel(response, list, "气体管路产能规划数据"); } /** * 复制气体管路产能规划 */ @Operation(summary = "复制气体管路产能规划", description = "复制") // @RequiresPermissions("aps:gasPipelineCapacityPlan:copy") @Log(title = "复制气体管路产能规划", businessType = BusinessType.INSERT) @PutMapping("/copy") public AjaxResult copy( // 格式:yyyy-MM @RequestParam String date, @RequestParam String factory, @RequestParam String major, // 格式:yyyy-MM @RequestParam String toStart, // 格式:yyyy-MM @RequestParam String toEnd) { apsGasPipelineCapacityPlanService.copyPlan(date, factory, major, toStart, toEnd); return success(); } /** * 获取气体管路产能规划详细信息 */ @Operation(summary = "获取气体管路产能规划详细信息", description = "根据id获取") @RequiresPermissions("aps:gasPipelineCapacityPlan:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanById(id)); } /** * 新增气体管路产能规划 */ @Operation(summary = "新增气体管路产能规划", description = "单个新增") @RequiresPermissions("aps:gasPipelineCapacityPlan:add") @Log(title = "气体管路产能规划", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody List apsGasPipelineCapacityPlan) { apsGasPipelineCapacityPlan.forEach(apsGasPipelineCapacityPlanTemp -> { if (apsGasPipelineCapacityPlanTemp.getId() == null) { apsGasPipelineCapacityPlanTemp.setCreateBy(SecurityUtils.getUsername()); apsGasPipelineCapacityPlanTemp.setCreateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlanService.insertApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp); } else { apsGasPipelineCapacityPlanTemp.setUpdateBy(SecurityUtils.getUsername()); apsGasPipelineCapacityPlanTemp.setUpdateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp); } }); return AjaxResult.success(); } /** * 修改气体管路产能规划 */ @Operation(summary = "修改气体管路产能规划", description = "单个修改") @RequiresPermissions("aps:gasPipelineCapacityPlan:edit") @Log(title = "气体管路产能规划", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { return toAjax(apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlan)); } /** * 删除气体管路产能规划 */ @Operation(summary = "删除气体管路产能规划", description = "批量删除") @RequiresPermissions("aps:gasPipelineCapacityPlan:remove") @Log(title = "气体管路产能规划", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(apsGasPipelineCapacityPlanService.deleteApsGasPipelineCapacityPlanByIds(ids)); } }