zhanghl
2025-05-23 6da289fff756eaecc600422d77c4afff1ddebab0
aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java
@@ -1,5 +1,6 @@
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;
@@ -7,9 +8,12 @@
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.ApsShop;
import com.aps.core.domain.ApsStandardProcess;
import com.aps.core.service.IApsGasPipelineCapacityPlanService;
import com.aps.core.service.IApsShopService;
import com.aps.core.service.IApsStandardProcessService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -18,11 +22,13 @@
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
/**
 * 气体管路产能规划Controller
 *
 *
 * @author hjy
 * @date 2025-04-24
 */
@@ -30,53 +36,83 @@
@Tag(name = "气体管路产能规划", description = "气体管路产能规划接口")
@RestController
@RequestMapping("/gasPipelineCapacityPlan")
public class ApsGasPipelineCapacityPlanController extends BaseController
{
public class ApsGasPipelineCapacityPlanController extends BaseController {
    @Autowired
    private IApsGasPipelineCapacityPlanService apsGasPipelineCapacityPlanService;
    @Autowired
    private IApsStandardProcessService apsStandardProcessService;
    @Autowired
    private IApsShopService apsShopService;
    /**
     * 查询气体管路产能规划列表
     */
    @Operation(summary = "查询气体管路产能规划列表", description = "分页查询")
//    @RequiresPermissions("gasPipelineCapacityPlan:gasPipelineCapacityPlan:list")
//    @RequiresPermissions("aps:gasPipelineCapacityPlan:list")
    @GetMapping("/list")
    public TableDataInfo list(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan)
    {
    public TableDataInfo list(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) {
//        startPage();
        List<ApsGasPipelineCapacityPlan> list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan);
        ApsStandardProcess apsStandardProcess = new ApsStandardProcess();
        apsStandardProcess.setMajor(apsGasPipelineCapacityPlan.getMajor());
        apsStandardProcess.setPlant(apsGasPipelineCapacityPlan.getOrgCode());
        List<ApsStandardProcess> processList = apsStandardProcessService.selectApsStandardProcessListAll(apsStandardProcess);
        if(list.isEmpty()){
            for(ApsStandardProcess apsStandardProcessTemp : processList){
        List<ApsShop> apsShops = apsShopService.findShopByFactory(apsGasPipelineCapacityPlan.getOrgCode());
        if (list.isEmpty()) {
            for (ApsStandardProcess apsStandardProcessTemp : processList) {
                ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan();
                apsGasPipelineCapacityPlanTemp.setProcessName(apsStandardProcessTemp.getProcessName());
                apsGasPipelineCapacityPlanTemp.setOrgCode(apsStandardProcessTemp.getPlant());
                apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream()
                        .filter(shop -> Objects.equals(shop.getShopName(), apsStandardProcessTemp.getWorkShop()))
                        .map(ApsShop::getShopCode)
                        .findFirst()
                        .orElse(null));
                list.add(apsGasPipelineCapacityPlanTemp);
            }
        }else if(processList.size()>list.size()){
            List<String> newProcess = new ArrayList<>();
            for(ApsStandardProcess apsStandardProcessTemp : processList){
        } else {
            list.forEach(capacityPlan -> {
                processList.stream().filter(p -> Objects.equals(p.getPlant(), capacityPlan.getOrgCode()))
                        .filter(p -> Objects.equals(p.getMajor(), capacityPlan.getMajor()))
                        .filter(p -> p.getWorkShop() != null)
                        .findFirst().ifPresent(p -> {
                            capacityPlan.setWorkshop(apsShops.stream()
                                    .filter(shop -> Objects.equals(shop.getShopCode(), p.getWorkShop()))
                                    .map(ApsShop::getShopName)
                                    .findFirst()
                                    .orElse(null));
                        });
            });
        }
        if (processList.size() > list.size()) {
            List<ApsStandardProcess> newProcess = new ArrayList<>();
            for (ApsStandardProcess apsStandardProcessTemp : processList) {
                boolean flag = true;
                for(ApsGasPipelineCapacityPlan temp : list){
                    if(apsStandardProcessTemp.getMajor().equals(temp.getMajor())){
                for (ApsGasPipelineCapacityPlan temp : list) {
                    if (apsStandardProcessTemp.getProcessName().equals(temp.getProcessName())) {
                        flag = false;
                        break;
                    }
                }
                if(flag){
                    newProcess.add(apsStandardProcessTemp.getProcessName());
                if (flag) {
                    newProcess.add(apsStandardProcessTemp);
                }
            }
            for(String processName : newProcess){
            for (ApsStandardProcess process : newProcess) {
                ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan();
                apsGasPipelineCapacityPlanTemp.setProcessName(processName);
                apsGasPipelineCapacityPlanTemp.setProcessName(process.getProcessName());
                apsGasPipelineCapacityPlanTemp.setOrgCode(process.getPlant());
                apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream()
                        .filter(shop -> Objects.equals(shop.getShopName(), process.getWorkShop()))
                        .map(ApsShop::getShopCode)
                        .findFirst()
                        .orElse(null));
                list.add(apsGasPipelineCapacityPlanTemp);
            }
        }
        list.sort(Comparator.comparing(ApsGasPipelineCapacityPlan::getProcessName));
        return getDataTable(list);
    }
@@ -84,24 +120,43 @@
     * 导出气体管路产能规划列表
     */
    @Operation(summary = "导出气体管路产能规划列表", description = "导出")
    @RequiresPermissions("gasPipelineCapacityPlan:gasPipelineCapacityPlan:export")
    @RequiresPermissions("aps:gasPipelineCapacityPlan:export")
    @Log(title = "气体管路产能规划", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan)
    {
    public void export(HttpServletResponse response, ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) {
        List<ApsGasPipelineCapacityPlan> list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan);
        ExcelUtil<ApsGasPipelineCapacityPlan> util = new ExcelUtil<ApsGasPipelineCapacityPlan>(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("gasPipelineCapacityPlan:gasPipelineCapacityPlan:query")
    @RequiresPermissions("aps:gasPipelineCapacityPlan:query")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanById(id));
    }
@@ -109,15 +164,18 @@
     * 新增气体管路产能规划
     */
    @Operation(summary = "新增气体管路产能规划", description = "单个新增")
    @RequiresPermissions("gasPipelineCapacityPlan:gasPipelineCapacityPlan:add")
    @RequiresPermissions("aps:gasPipelineCapacityPlan:add")
    @Log(title = "气体管路产能规划", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlan)
    {
    public AjaxResult add(@RequestBody List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlan) {
        apsGasPipelineCapacityPlan.forEach(apsGasPipelineCapacityPlanTemp -> {
            if(apsGasPipelineCapacityPlanTemp.getId()!=null){
            if (apsGasPipelineCapacityPlanTemp.getId() == null) {
                apsGasPipelineCapacityPlanTemp.setCreateBy(SecurityUtils.getUsername());
                apsGasPipelineCapacityPlanTemp.setCreateTime(DateUtils.getNowDate());
                apsGasPipelineCapacityPlanService.insertApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp);
            }else{
            } else {
                apsGasPipelineCapacityPlanTemp.setUpdateBy(SecurityUtils.getUsername());
                apsGasPipelineCapacityPlanTemp.setUpdateTime(DateUtils.getNowDate());
                apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp);
            }
        });
@@ -128,11 +186,10 @@
     * 修改气体管路产能规划
     */
    @Operation(summary = "修改气体管路产能规划", description = "单个修改")
    @RequiresPermissions("gasPipelineCapacityPlan:gasPipelineCapacityPlan:edit")
    @RequiresPermissions("aps:gasPipelineCapacityPlan:edit")
    @Log(title = "气体管路产能规划", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan)
    {
    public AjaxResult edit(@RequestBody ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) {
        return toAjax(apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlan));
    }
@@ -140,11 +197,10 @@
     * 删除气体管路产能规划
     */
    @Operation(summary = "删除气体管路产能规划", description = "批量删除")
    @RequiresPermissions("gasPipelineCapacityPlan:gasPipelineCapacityPlan:remove")
    @RequiresPermissions("aps:gasPipelineCapacityPlan:remove")
    @Log(title = "气体管路产能规划", businessType = BusinessType.DELETE)
   @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(apsGasPipelineCapacityPlanService.deleteApsGasPipelineCapacityPlanByIds(ids));
    }
}