package com.gkhy.safePlatform.equipment.controller;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
|
import com.gkhy.safePlatform.equipment.entity.*;
|
import com.gkhy.safePlatform.equipment.model.dto.req.EquipmentInfoImportExcel;
|
import com.gkhy.safePlatform.equipment.model.dto.req.EquipmentInfoSaveOrUpdate;
|
import com.gkhy.safePlatform.equipment.model.dto.resp.EquipmentInfoExcel;
|
import com.gkhy.safePlatform.equipment.utils.DateUtils;
|
import com.gkhy.safePlatform.equipment.utils.QueryHelpPlus;
|
import com.gkhy.safePlatform.equipment.utils.poihelper.ExcelLogs;
|
import com.gkhy.safePlatform.equipment.utils.poihelper.ExcelUtil;
|
import com.google.common.collect.Lists;
|
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
import java.sql.Timestamp;
|
|
|
import com.gkhy.safePlatform.equipment.model.dto.resp.EquipmentInfoDto;
|
import com.gkhy.safePlatform.equipment.service.EquipmentInfoService;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import com.gkhy.safePlatform.commons.query.PageQuery;
|
import com.gkhy.safePlatform.commons.utils.PageUtils;
|
import com.gkhy.safePlatform.commons.vo.ResultVO;
|
import com.gkhy.safePlatform.commons.enums.ResultCodes;
|
import com.gkhy.safePlatform.equipment.model.dto.req.EquipmentInfoQueryCriteria;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.Serializable;
|
|
/**
|
* 设备设施详细信息(EquipmentInfo)表控制层
|
*
|
* @author xurui
|
* @since 2022-07-19 14:02:50
|
*/
|
@RestController
|
@RequestMapping("equipmentInfo")
|
public class EquipmentInfoController {
|
/**
|
* 服务对象
|
*/
|
@Resource
|
private EquipmentInfoService equipmentInfoService;
|
|
@Autowired
|
public HttpServletRequest request;
|
|
@Autowired
|
public HttpServletResponse response;
|
|
/**
|
* 分页查询所有数据
|
*
|
* @param pageQuery 查询实体
|
* @return 所有数据
|
*/
|
@PostMapping(value = "/page/list")
|
public ResultVO selectAll(@RequestBody PageQuery<EquipmentInfoQueryCriteria> pageQuery){
|
if(pageQuery.getSearchParams().getInfoType() == null){
|
return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL,"缺少infoType");
|
}
|
|
PageUtils.checkCheck(pageQuery);
|
return this.equipmentInfoService.queryAll(pageQuery);
|
}
|
|
|
/**
|
* 通过主键查询单条数据
|
*
|
* @param id 主键
|
* @return 单条数据
|
*/
|
@GetMapping(value = "/selectOne/{id}")
|
public ResultVO selectOne(@PathVariable Serializable id) {
|
return new ResultVO<>(ResultCodes.OK,this.equipmentInfoService.selectOne(id));
|
}
|
|
/**
|
* 新增或者修改数据
|
*
|
* @param infoDto 实体对象
|
* @return 修改结果
|
*/
|
@PostMapping(value = "/addOrUpdate")
|
public ResultVO update(@RequestBody EquipmentInfoSaveOrUpdate infoDto) {
|
if(infoDto.getInfoType() == null || infoDto.getEquipmentTypeId() == null){
|
return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL,"缺少infoType或者equipmentTypeId");
|
}
|
if(infoDto.getInfoType() == 3){
|
return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL,"infoType值异常");
|
}
|
|
equipmentInfoService.addOrUpdate(infoDto);
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
|
/**
|
* 删除数据
|
*
|
* @param ids 主键结合
|
* @return 删除结果
|
*/
|
@RequestMapping(value = "/delete",method = RequestMethod.POST)
|
public ResultVO delete(@RequestBody Long[] ids) {
|
if(ids == null){
|
return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL);
|
}
|
List<Long> idList = Arrays.asList(ids);
|
|
List<EquipmentInfo> delList = new ArrayList<>();
|
idList.forEach(f->{
|
EquipmentInfo info = new EquipmentInfo();
|
info.setDelFlag(1);
|
info.setId(f);
|
delList.add(info);
|
});
|
this.equipmentInfoService.updateBatchById(delList);
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
|
/**
|
* 统计
|
*
|
* @return 删除结果
|
*/
|
@GetMapping(value = "/statistics")
|
public ResultVO statistics() {
|
|
return new ResultVO<>(ResultCodes.OK,this.equipmentInfoService.statistics());
|
}
|
|
|
|
|
/**
|
* 下载模板
|
*
|
*/
|
@GetMapping(value = "/exportTemplate")
|
public void exportTemplate() throws IOException {
|
Map<String,String> map = new LinkedHashMap<>();
|
map.put("1", "类型/类别外键");
|
map.put("2", "具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 ");
|
map.put("3", "名称");
|
map.put("4", "位号");
|
map.put("5", "用途");
|
map.put("6", "型号");
|
map.put("7", "单位部门外键");
|
map.put("8", "设置部位");
|
map.put("9", "生产日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("10", "使用期限(天)");
|
map.put("11", "生命周期 1:已使用 2:库存中 3:报废");
|
map.put("12", "投用日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("13", "维修状态 1:维修中 2:已修好");
|
map.put("14", "停用状态 1:停用 2.在用 3.维修 4.报废");
|
map.put("15", "上次检查日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("16", "上次检测日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("17", "上次保养日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("18", "下次检查日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("19", "下次检测日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("20", "下次保养日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("21", "负责人ID外键");
|
map.put("22", "负责人部门外键");
|
map.put("23", "供应商");
|
map.put("24", "使用说明");
|
map.put("25", "是否检查 1:是 2:否");
|
map.put("26", "检查周期");
|
map.put("27", "检查提前提醒");
|
map.put("28", "是否检测 1:是 2:否");
|
map.put("29", "检测周期");
|
map.put("30", "检测提前提醒");
|
map.put("31", "是否保养 1:是 2:否");
|
map.put("32", "检查内容");
|
map.put("33", "负责部门/外键");
|
map.put("34", "检查指标");
|
map.put("35", "预警值");
|
map.put("36", "联锁值");
|
map.put("37", "停用理由");
|
map.put("38", "停用后措施");
|
map.put("39", "实际停用日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("40", "停用提交人/外键");
|
map.put("41", "停用提交日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("42", "恢复理由");
|
map.put("43", "恢复填报日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("44", "实际恢复日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("45", "报废理由");
|
map.put("46", "报废填报日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("47", "实际报废日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("48", "保养周期");
|
String fileName = URLEncoder.encode("设备设施管理数据导入模板.xls", "UTF-8");
|
response.setContentType("application/vnd.ms-excel");
|
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
|
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
ExcelUtil.exportExcel(map,new ArrayList<>() , response.getOutputStream());
|
response.getOutputStream().close();
|
}
|
|
|
/**
|
* 导入数据
|
*
|
*/
|
@RequestMapping(value = "/importData")
|
public ResultVO importData(MultipartFile file) throws IOException {
|
String contentType = file.getContentType();
|
if(!"application/vnd.ms-excel".equals(contentType)
|
&& !"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(contentType)) {
|
return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL, "上传的excel格式错误");
|
}
|
|
Collection<EquipmentInfoImportExcel> importExcel = ExcelUtil.importExcel(EquipmentInfoImportExcel.class, file.getInputStream(), "yyyy-MM-dd HH:mm:ss", new ExcelLogs() , 0);
|
|
if (CollectionUtils.isEmpty(importExcel)) {
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
|
List<EquipmentInfo> respList = BeanCopyUtils.copyBeanList((List<EquipmentInfoImportExcel>)importExcel, EquipmentInfo.class);
|
|
equipmentInfoService.saveBatch(respList);
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
|
|
|
|
/**
|
* 导出一览数据
|
*
|
*/
|
@GetMapping(value = "/exportData")
|
public void exportData(EquipmentInfoQueryCriteria queryCriteria) throws IOException {
|
Map<String,String> map = new LinkedHashMap<>();
|
map.put("0", "ID");
|
map.put("1", "类型/类别外键");
|
map.put("2", "具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 ");
|
map.put("3", "名称");
|
map.put("4", "位号");
|
map.put("5", "用途");
|
map.put("6", "型号");
|
map.put("7", "单位部门外键");
|
map.put("8", "设置部位");
|
map.put("9", "生产日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("10", "使用期限(天)");
|
map.put("11", "生命周期 1:已使用 2:库存中 3:报废");
|
map.put("12", "投用日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("13", "维修状态 1:维修中 2:已修好");
|
map.put("14", "停用状态 1:停用 2.在用 3.维修 4.报废");
|
map.put("15", "上次检查日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("16", "上次检测日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("17", "上次保养日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("18", "下次检查日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("19", "下次检测日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("20", "下次保养日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("21", "负责人ID外键");
|
map.put("22", "负责人部门外键");
|
map.put("23", "供应商");
|
map.put("24", "使用说明");
|
map.put("25", "是否检查 1:是 2:否");
|
map.put("26", "检查周期");
|
map.put("27", "检查提前提醒");
|
map.put("28", "是否检测 1:是 2:否");
|
map.put("29", "检测周期");
|
map.put("30", "检测提前提醒");
|
map.put("31", "是否保养 1:是 2:否");
|
map.put("32", "检查内容");
|
map.put("33", "负责部门/外键");
|
map.put("34", "检查指标");
|
map.put("35", "预警值");
|
map.put("36", "联锁值");
|
map.put("37", "停用理由");
|
map.put("38", "停用后措施");
|
map.put("39", "实际停用日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("40", "停用提交人/外键");
|
map.put("41", "停用提交日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("42", "恢复理由");
|
map.put("43", "恢复填报日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("44", "实际恢复日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("45", "报废理由");
|
map.put("46", "报废填报日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("47", "实际报废日期(yyyy-MM-dd HH:mm:ss)");
|
map.put("48", "保养周期");
|
|
String key = DateUtils.date2String(new Date(), DateUtils.PATTERN_ALLTIME_NOSIGN) ;
|
String fileName = URLEncoder.encode("设备设施管理"+key+".xls", "UTF-8");
|
response.setContentType("application/vnd.ms-excel");
|
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
|
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
queryCriteria.setDelFlag(0);
|
List<EquipmentInfoExcel> respList = BeanCopyUtils.copyBeanList(equipmentInfoService.queryAll(queryCriteria), EquipmentInfoExcel.class);
|
|
ExcelUtil.exportExcel(map,respList , response.getOutputStream(),DateUtils.PATTERN_STANDARD);
|
response.getOutputStream().close();
|
}
|
|
|
|
|
public static void main(String[] args) {
|
EquipmentInfoDto infoDto = new EquipmentInfoDto();
|
List<EquipmentRepairDetail> repairDetails = Lists.newArrayList();
|
EquipmentRepairDetail repairDetail = new EquipmentRepairDetail();
|
repairDetail.setInfoTpe(0);
|
repairDetail.setRepairPersonId(0L);
|
repairDetail.setRepairStartDate(new Timestamp(new java.util.Date().getTime()));
|
repairDetail.setRepairEndDate(new Timestamp(new java.util.Date().getTime()));
|
repairDetail.setRepairPersonDepartmentId(0L);
|
repairDetail.setRepairMemo("");
|
repairDetail.setRepairStatus(0);
|
repairDetail.setExceptionInfo("");
|
repairDetails.add(repairDetail);
|
infoDto.setRepaireDetailList(repairDetails);
|
|
//
|
infoDto.setCheckDetailList(new ArrayList());
|
|
//
|
List<EquipmentTestDetail> testDetails = Lists.newArrayList();
|
EquipmentTestDetail equipmentTestDetail = new EquipmentTestDetail();
|
equipmentTestDetail.setTestPersonId(0L);
|
equipmentTestDetail.setTestDate(new Timestamp(new java.util.Date().getTime()));
|
equipmentTestDetail.setTestPersonDepartmentId(0L);
|
equipmentTestDetail.setTestMemo("");
|
equipmentTestDetail.setTestResult(0);
|
equipmentTestDetail.setTestStatus("");
|
testDetails.add(equipmentTestDetail);
|
infoDto.setTestDetailList(testDetails);
|
|
List<EquipmentTakecareDetail> takecareDetails = Lists.newArrayList();
|
EquipmentTakecareDetail takecareDetail = new EquipmentTakecareDetail();
|
takecareDetail.setEquipmentId(0L);
|
takecareDetail.setTakecareMemo("");
|
takecareDetail.setLeadingPersonId(0L);
|
takecareDetail.setTakecareDate(new Timestamp(new java.util.Date().getTime()));
|
takecareDetail.setLeadingPersonDepartmentId(0L);
|
takecareDetails.add(takecareDetail);
|
infoDto.setTakecareDetailList(takecareDetails);
|
|
List<EquipmentTakecareStardardDetail> takecareStardardDetails = Lists.newArrayList();
|
EquipmentTakecareStardardDetail takecareStardardDetail = new EquipmentTakecareStardardDetail();
|
takecareStardardDetail.setFilePath("123");
|
takecareStardardDetails.add(takecareStardardDetail);
|
infoDto.setTakecareStardardeDetailList(takecareStardardDetails);
|
|
|
List<EquipmentCheckStandardDetail> theckStandardeDetails = Lists.newArrayList();
|
EquipmentCheckStandardDetail theckStandardeDetail = new EquipmentCheckStandardDetail();
|
theckStandardeDetail.setIndexNum("1");
|
theckStandardeDetail.setCheckContent("2");
|
theckStandardeDetail.setCheckTarget("3");
|
theckStandardeDetail.setUnit("4");
|
theckStandardeDetail.setCheckPart("5");
|
theckStandardeDetail.setRate("6");
|
theckStandardeDetails.add(theckStandardeDetail);
|
infoDto.setCheckStandardeDetailList(theckStandardeDetails);
|
|
|
|
|
infoDto.setEquipmentTypeId(0L);
|
infoDto.setInfoType(0);
|
infoDto.setqName("");
|
infoDto.setPositionNum("");
|
infoDto.setqUsage("");
|
infoDto.setModel("");
|
infoDto.setDepartmentId(0L);
|
infoDto.setSetPart("");
|
infoDto.setProduceTime(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setUseEndDay("");
|
infoDto.setLifeCycle(0);
|
infoDto.setUseDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setRepairStatus(0);
|
infoDto.setStopStatus(0);
|
infoDto.setPreviousCheckDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setPreviousTestDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setPreviousTakecareDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setNextCheckDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setNextTestDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setNextTakecareDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setLeadingPersonId(0L);
|
infoDto.setLeadingPersonDepartmentId(0L);
|
infoDto.setSupplyName("");
|
infoDto.setUseMemo("");
|
infoDto.setIsNeedCheck(0);
|
infoDto.setCheckCycle("");
|
infoDto.setCheckWarn("");
|
infoDto.setIsNeedTest(0);
|
infoDto.setTestCycle("");
|
infoDto.setTestWarn("");
|
infoDto.setIsNeedTakecare(0);
|
infoDto.setCheckContent("");
|
infoDto.setLeadingDepartmentId(0L);
|
infoDto.setCheckPoint("");
|
infoDto.setAlertNum("");
|
infoDto.setLockNum("");
|
infoDto.setStopReason("");
|
infoDto.setAfterStopStep("");
|
infoDto.setActualStopDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setStopSubmitPersonId(0L);
|
infoDto.setStopSubmitDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setRecoveryReason("");
|
infoDto.setRecoverySubmitDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setActualRecoveryDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setDestoryReason("");
|
infoDto.setDestorySubmitDate(new Timestamp(new java.util.Date().getTime()));
|
infoDto.setActualDestoryDate(new Timestamp(new java.util.Date().getTime()));
|
|
System.out.println(JSONObject.toJSONString(infoDto));
|
|
}
|
}
|