package com.aps.core.controller.mainPlan;
|
|
import com.aps.common.core.utils.poi.ExcelUtil;
|
import com.aps.common.core.utils.uuid.IdUtils;
|
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.DictUtils;
|
import com.aps.core.domain.ApsGasPipingPlan;
|
import com.aps.core.domain.ApsGasPipingPlanTemp;
|
import com.aps.core.service.IApsGasPipingPlanService;
|
import com.aps.core.service.IApsGasPipingPlanTempService;
|
import com.aps.system.api.domain.SysDictData;
|
import jakarta.servlet.http.HttpServletResponse;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.util.List;
|
import java.util.Optional;
|
|
/**
|
* 气体管路计划管理Controller
|
*
|
* @author wwj
|
* @date 2025-04-09
|
*/
|
@RestController
|
@RequestMapping("/gasPiping")
|
public class ApsGasPipingPlanController extends BaseController
|
{
|
@Autowired
|
private IApsGasPipingPlanService apsGasPipingPlanService;
|
@Autowired
|
private IApsGasPipingPlanTempService apsGasPipingPlanTempService;
|
/**
|
* 查询气体管路计划管理列表
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:list")
|
@GetMapping("/list")
|
public TableDataInfo list(ApsGasPipingPlan apsGasPipingPlan)
|
{
|
// startPage();
|
List<ApsGasPipingPlan> list = apsGasPipingPlanService.selectApsGasPipingPlanList(apsGasPipingPlan);
|
List<SysDictData> suspendedDic = DictUtils.getDictCache("aps_is_suspended");
|
List<SysDictData> businessTypeDic = DictUtils.getDictCache("aps_business_type");
|
List<SysDictData> documentStatusDic = DictUtils.getDictCache("aps_document_status");
|
List<SysDictData> accountDic = DictUtils.getDictCache("aps_account");
|
list.parallelStream().forEach(plan->{
|
documentStatusDic.stream().filter(x -> x.getDictValue().equals( plan.getDocumentStatus().trim()))
|
.findFirst().ifPresent(sysDictData -> plan.setDocumentStatus(sysDictData.getDictLabel()));
|
accountDic.stream().filter(x -> x.getDictValue().equals( plan.getAccount().trim()))
|
.findFirst().ifPresent(sysDictData -> plan.setAccount(sysDictData.getDictLabel()));
|
businessTypeDic.stream().filter(x -> x.getDictValue().equals(plan.getBusinessType().trim()))
|
.findFirst().ifPresent(sysDictData -> plan.setBusinessType(sysDictData.getDictLabel()));
|
suspendedDic.stream().filter(x -> x.getDictValue().equals( plan.getIsSuspended()))
|
.findFirst().ifPresent(sysDictData -> plan.setIsSuspended(sysDictData.getDictLabel()));
|
});
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出气体管路计划管理列表
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:export")
|
@Log(title = "气体管路计划管理", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, ApsGasPipingPlan apsGasPipingPlan)
|
{
|
List<ApsGasPipingPlan> planList = apsGasPipingPlanService.selectApsGasPipingPlanList(apsGasPipingPlan);
|
List<SysDictData> suspendedDic = DictUtils.getDictCache("aps_is_suspended");
|
List<SysDictData> businessTypeDic = DictUtils.getDictCache("aps_business_type");
|
List<SysDictData> documentStatusDic = DictUtils.getDictCache("aps_document_status");
|
List<SysDictData> accountDic = DictUtils.getDictCache("aps_account");
|
|
for (int i = 0; i < planList.size(); i++) {
|
ApsGasPipingPlan plan=planList.get(i);
|
String isSuspendedTxt = plan.getIsSuspended().trim();
|
String businessType = plan.getBusinessType().trim();
|
String documentStatusText = plan.getDocumentStatus().trim();
|
String account = plan.getAccount().trim();
|
|
Optional<SysDictData> documentStatusFirst = documentStatusDic.stream().filter(x -> x.getDictValue().equals(documentStatusText)).findFirst();
|
documentStatusFirst.ifPresent(sysDictData -> plan.setDocumentStatus(sysDictData.getDictLabel()));
|
|
Optional<SysDictData> accountFirst = accountDic.stream().filter(x -> x.getDictValue().equals(account)).findFirst();
|
accountFirst.ifPresent(sysDictData -> plan.setAccount(sysDictData.getDictLabel()));
|
|
Optional<SysDictData> businessTypeFirst = businessTypeDic.stream().filter(x -> x.getDictValue().equals(businessType)).findFirst();
|
businessTypeFirst.ifPresent(sysDictData -> plan.setBusinessType(sysDictData.getDictLabel()));
|
|
Optional<SysDictData> isSuspendedFirst = suspendedDic.stream().filter(x -> x.getDictValue().equals(isSuspendedTxt)).findFirst();
|
isSuspendedFirst.ifPresent(sysDictData -> plan.setIsSuspended(sysDictData.getDictLabel()));
|
|
|
}
|
|
ExcelUtil<ApsGasPipingPlan> util = new ExcelUtil<ApsGasPipingPlan>(ApsGasPipingPlan.class);
|
util.exportExcel(response, planList, "气体管路计划管理数据");
|
}
|
|
/**
|
* 获取气体管路计划管理详细信息
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:query")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") String id)
|
{
|
return success(apsGasPipingPlanService.selectApsGasPipingPlanById(id));
|
}
|
|
/**
|
* 新增气体管路计划管理
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:add")
|
@Log(title = "气体管路计划管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody ApsGasPipingPlan apsGasPipingPlan)
|
{
|
return toAjax(apsGasPipingPlanService.insertApsGasPipingPlan(apsGasPipingPlan));
|
}
|
|
/**
|
* 修改气体管路计划管理
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:edit")
|
@Log(title = "气体管路计划管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody ApsGasPipingPlan apsGasPipingPlan)
|
{
|
return toAjax(apsGasPipingPlanService.updateApsGasPipingPlan(apsGasPipingPlan));
|
}
|
|
/**
|
* 删除气体管路计划管理
|
*/
|
@RequiresPermissions("gasPiping:gasPiping:remove")
|
@Log(title = "气体管路计划管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable String[] ids)
|
{
|
return toAjax(apsGasPipingPlanService.deleteApsGasPipingPlanByIds(ids));
|
}
|
/**
|
* 气体管路计划导入
|
*/
|
@PostMapping("/importData")
|
public AjaxResult importData(MultipartFile file) throws Exception {
|
ExcelUtil<ApsGasPipingPlanTemp> util = new ExcelUtil<ApsGasPipingPlanTemp>(ApsGasPipingPlanTemp.class);
|
List<ApsGasPipingPlanTemp> apsGasPipingPlanTemps = util.importExcel(file.getInputStream());
|
//判断导入数据是否为空
|
if (apsGasPipingPlanTemps.size() > 0) {
|
String batchNum= IdUtils.fastUUID();
|
List<SysDictData> suspendedDic = DictUtils.getDictCache("aps_is_suspended");
|
List<SysDictData> businessTypeDic = DictUtils.getDictCache("aps_business_type");
|
List<SysDictData> documentStatusDic = DictUtils.getDictCache("aps_document_status");
|
List<SysDictData> accountDic = DictUtils.getDictCache("aps_account");
|
|
for (int i = 0; i < apsGasPipingPlanTemps.size(); i++) {
|
|
ApsGasPipingPlanTemp planTemp = apsGasPipingPlanTemps.get(i);
|
String isSuspendedTxt = planTemp.getIsSuspended().trim();
|
String businessType = planTemp.getBusinessType().trim();
|
String documentStatusText = planTemp.getDocumentStatus().trim();
|
String account = planTemp.getAccount().trim();
|
|
Optional<SysDictData> documentStatusFirst = documentStatusDic.stream().filter(x -> x.getDictLabel().equals(documentStatusText)).findFirst();
|
documentStatusFirst.ifPresent(sysDictData -> planTemp.setDocumentStatus(sysDictData.getDictValue()));
|
|
Optional<SysDictData> accountFirst = accountDic.stream().filter(x -> x.getDictLabel().equals(account)).findFirst();
|
accountFirst.ifPresent(sysDictData -> planTemp.setAccount(sysDictData.getDictValue()));
|
|
Optional<SysDictData> businessTypeFirst = businessTypeDic.stream().filter(x -> x.getDictLabel().equals(businessType)).findFirst();
|
businessTypeFirst.ifPresent(sysDictData -> planTemp.setBusinessType(sysDictData.getDictValue()));
|
|
|
Optional<SysDictData> isSuspendedFirst = suspendedDic.stream().filter(x -> x.getDictLabel().equals(isSuspendedTxt)).findFirst();
|
isSuspendedFirst.ifPresent(sysDictData -> planTemp.setIsSuspended(sysDictData.getDictValue()));
|
|
planTemp.setId(IdUtils.fastUUID());
|
//插入版本号
|
planTemp.setBatchNumber(batchNum);
|
//插入临时表
|
apsGasPipingPlanTempService.insertApsGasPipingPlanTemp(planTemp);
|
}
|
return AjaxResult.success("导入成功",batchNum);
|
} else {
|
return AjaxResult.error("模板内容为空");
|
}
|
}
|
/***
|
* @Description: 确认上传
|
* @Param: [apsPartPlan]
|
* @return: com.aps.common.core.web.domain.AjaxResult
|
* @Author: wwj
|
* @Date: 2025/4/9
|
*/
|
@GetMapping("/confirmGasPiping")
|
public AjaxResult confirmGasPiping(ApsGasPipingPlanTemp apsGasPipingPlanTemp) {
|
return toAjax(apsGasPipingPlanService.confirmGasPiping(apsGasPipingPlanTemp));
|
}
|
}
|