package com.aps.core.controller;
|
|
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.DictUtils;
|
import com.aps.core.domain.ApsGasPipingPlan;
|
import com.aps.core.domain.ApsPlatePlan;
|
import com.aps.core.domain.ApsPlatePlanTemp;
|
import com.aps.core.service.IApsPlatePlanService;
|
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 ruoyi
|
* @date 2025-04-08
|
*/
|
@RestController
|
@RequestMapping("/ApsPlatePlan")
|
public class ApsPlatePlanController extends BaseController {
|
@Autowired
|
private IApsPlatePlanService apsPlatePlanService;
|
|
/**
|
* 查询钣金计划管理列表
|
*/
|
@RequiresPermissions("ApsPlatePlan:ApsPlatePlan:list")
|
@GetMapping("/list")
|
public TableDataInfo list(ApsPlatePlan apsPlatePlan) {
|
//startPage();
|
List<ApsPlatePlan> list = apsPlatePlanService.selectApsPlatePlanList(apsPlatePlan);
|
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("ApsPlatePlan:ApsPlatePlan:export")
|
@Log(title = "钣金计划管理", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, ApsPlatePlan apsPlatePlan) {
|
List<ApsPlatePlan> planList = apsPlatePlanService.selectApsPlatePlanList(apsPlatePlan);
|
|
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++) {
|
ApsPlatePlan 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<ApsPlatePlan> util = new ExcelUtil<ApsPlatePlan>(ApsPlatePlan.class);
|
util.exportExcel(response, planList, "钣金计划管理数据");
|
}
|
|
/**
|
* 获取钣金计划管理详细信息
|
*/
|
@RequiresPermissions("ApsPlatePlan:ApsPlatePlan:query")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") String id) {
|
return success(apsPlatePlanService.selectApsPlatePlanById(id));
|
}
|
|
/**
|
* 新增钣金计划管理
|
*/
|
@RequiresPermissions("ApsPlatePlan:ApsPlatePlan:add")
|
@Log(title = "钣金计划管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody ApsPlatePlan apsPlatePlan) {
|
return toAjax(apsPlatePlanService.insertApsPlatePlan(apsPlatePlan));
|
}
|
|
/**
|
* 修改钣金计划管理
|
*/
|
@RequiresPermissions("ApsPlatePlan:ApsPlatePlan:edit")
|
@Log(title = "钣金计划管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody ApsPlatePlan apsPlatePlan) {
|
return toAjax(apsPlatePlanService.updateApsPlatePlan(apsPlatePlan));
|
}
|
|
/**
|
* 删除钣金计划管理
|
*/
|
@RequiresPermissions("ApsPlatePlan:ApsPlatePlan:remove")
|
@Log(title = "钣金计划管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable String[] ids) {
|
return toAjax(apsPlatePlanService.deleteApsPlatePlanByIds(ids));
|
}
|
|
/**
|
* 导入Excel数据
|
* @param file
|
* @return
|
* @throws Exception
|
*/
|
@PostMapping("/importData")
|
public AjaxResult importData(MultipartFile file) throws Exception {
|
ExcelUtil<ApsPlatePlanTemp> util = new ExcelUtil<ApsPlatePlanTemp>(ApsPlatePlanTemp.class);
|
List<ApsPlatePlanTemp> platePlanTemps = util.importExcel(file.getInputStream());
|
//判断导入数据是否为空
|
if (platePlanTemps.size() > 0) {
|
String batchNum = apsPlatePlanService.importData(platePlanTemps);
|
return AjaxResult.success("导入成功!",batchNum);
|
} else {
|
return AjaxResult.error("模板内容为空");
|
}
|
}
|
/**
|
* 确认部分计划控制器
|
* @param planTemp 包含部分计划信息的临时对象,用于确认计划
|
* @return 返回操作结果的AjaxResult对象
|
*/
|
@GetMapping("/confirmPart")
|
public AjaxResult confirmPart(ApsPlatePlanTemp planTemp) {
|
return toAjax(apsPlatePlanService.confirmPlan(planTemp));
|
}
|
}
|