package com.aps.core.controller;
|
|
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.domain.ApsPartPlan;
|
import com.aps.core.domain.ApsPartPlanTemp;
|
import com.aps.core.service.IApsPartPlanService;
|
import com.aps.core.service.IApsPartPlanTempService;
|
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-08
|
*/
|
@RestController
|
@RequestMapping("/partPlan")
|
public class ApsPartPlanController extends BaseController {
|
@Autowired
|
private IApsPartPlanService apsPartPlanService;
|
@Autowired
|
private IApsPartPlanTempService apsPartPlanTempService;
|
/**
|
* 查询零件计划管理列表
|
*/
|
@RequiresPermissions("partPlan:list")
|
@GetMapping("/list")
|
public TableDataInfo list(ApsPartPlan apsPartPlan) {
|
// startPage();
|
List<ApsPartPlan> list = apsPartPlanService.selectApsPartPlanList(apsPartPlan);
|
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("partPlan:export")
|
@Log(title = "零件计划管理", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, ApsPartPlan apsPartPlan) {
|
List<ApsPartPlan> planList = apsPartPlanService.selectApsPartPlanList(apsPartPlan);
|
|
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++) {
|
ApsPartPlan 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<ApsPartPlan> util = new ExcelUtil<ApsPartPlan>(ApsPartPlan.class);
|
util.exportExcel(response, planList, "零件计划管理数据");
|
}
|
|
/**
|
* 获取零件计划管理详细信息
|
*/
|
@RequiresPermissions("partPlan:query")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") String id) {
|
return success(apsPartPlanService.selectApsPartPlanById(id));
|
}
|
|
/**
|
* 新增零件计划管理
|
*/
|
@RequiresPermissions("partPlan:add")
|
@Log(title = "零件计划管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody ApsPartPlan apsPartPlan) {
|
return toAjax(apsPartPlanService.insertApsPartPlan(apsPartPlan));
|
}
|
|
/**
|
* 修改零件计划管理
|
*/
|
@RequiresPermissions("partPlan:edit")
|
@Log(title = "零件计划管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody ApsPartPlan apsPartPlan) {
|
return toAjax(apsPartPlanService.updateApsPartPlan(apsPartPlan));
|
}
|
|
/**
|
* 删除零件计划管理
|
*/
|
@RequiresPermissions("partPlan:remove")
|
@Log(title = "零件计划管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable String[] ids) {
|
return toAjax(apsPartPlanService.deleteApsPartPlanByIds(ids));
|
}
|
|
/**
|
* 零件计划导入
|
*/
|
@PostMapping("/importData")
|
public AjaxResult importData(MultipartFile file) throws Exception {
|
ExcelUtil<ApsPartPlanTemp> util = new ExcelUtil<ApsPartPlanTemp>(ApsPartPlanTemp.class);
|
List<ApsPartPlanTemp> apsPartPlans = util.importExcel(file.getInputStream());
|
//判断导入数据是否为空
|
if (apsPartPlans.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 < apsPartPlans.size(); i++) {
|
|
ApsPartPlanTemp planTemp = apsPartPlans.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());
|
//插入版本号
|
apsPartPlans.get(i).setBatchNumber(batchNum);
|
//插入临时表
|
apsPartPlanTempService.insertApsPartPlanTemp(apsPartPlans.get(i));
|
}
|
|
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
|
*/
|
@PostMapping("/confirmPart")
|
public AjaxResult confirmPart(@RequestBody ApsPartPlanTemp apsPartPlanTemp) {
|
return toAjax(apsPartPlanService.confirmPart(apsPartPlanTemp));
|
}
|
|
|
|
}
|