diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java index 1b40a6876..a686fa2c7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java @@ -1,5 +1,9 @@ package com.zhgd.xmgl.modules.baotou.controller; +import cn.hutool.core.convert.Convert; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; @@ -15,6 +19,11 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -25,10 +34,13 @@ import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Set; /** @@ -219,18 +231,61 @@ public class ContractorMonthlyDetailController { return Result.success(contractorMonthlyDetailService.countQuantityExcel(param)); } - @ApiOperation(value = "月报周报html转word", notes = "月报周报html转word", httpMethod = "POST") + @ApiOperation(value = "导出excel", notes = "导出excel", httpMethod = "POST") @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "file", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "content", value = "excel的json", paramType = "body", required = true, dataType = "String"), }) - @PostMapping(value = "/html2Word") - public void html2Word(HttpServletResponse response, MultipartFile file) { + @PostMapping(value = "/exportExcel") + public void exportExcel(HttpServletResponse response, @RequestBody HashMap map) { + XSSFWorkbook workbook = null; try { - String html = IOUtils.toString(file.getInputStream(), StandardCharsets.UTF_8); - WordUtils.html2Word(response, html); - } catch (IOException e) { + // 1. 创建工作簿 + workbook = new XSSFWorkbook(); + // 2. 创建工作表 + XSSFSheet sheet = workbook.createSheet("Sheet1"); + + //填充数据、设置边框 + JSONObject root = JSON.parseObject(MapUtils.getString(map, "content")); + JSONObject sheets = root.getJSONObject("sheets"); + JSONObject readSheet = (JSONObject) (sheets.entrySet().iterator().next().getValue()); + JSONObject cellData = readSheet.getJSONObject("cellData"); + for (Map.Entry readRow : cellData.entrySet()) { + JSONObject cols = (JSONObject) readRow.getValue(); + XSSFRow r = sheet.createRow(Convert.toInt(readRow.getKey())); + for (Map.Entry readCol : cols.entrySet()) { + JSONObject col = (JSONObject) readCol.getValue(); + Integer columnIndex = Convert.toInt(readCol.getKey()); + r.createCell(columnIndex).setCellValue(col.getString("v")); + XSSFCell cell = r.getCell(columnIndex); + //设置边框 +// r.setRowStyle(); + } + } + + //合并单元格 + JSONArray mergeDatas = readSheet.getJSONArray("mergeData"); + for (int i = 0; i < mergeDatas.size(); i++) { + JSONObject mergeData = mergeDatas.getJSONObject(i); + sheet.addMergedRegion(new CellRangeAddress(mergeData.getInteger("startRow"), mergeData.getInteger("endRow"), mergeData.getInteger("startColumn"), mergeData.getInteger("endColumn"))); + } + + // 5. 设置响应头 + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("导出", "UTF-8")); + // 6. 输出到客户端 + workbook.write(response.getOutputStream()); + } catch (Exception e) { log.error("", e); + } finally { + try { + if (workbook != null) { + workbook.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } } - } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DeviceUnitController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DeviceUnitController.java index bc4433131..4c4f9ba68 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DeviceUnitController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DeviceUnitController.java @@ -134,7 +134,7 @@ public class DeviceUnitController { @OperLog(operModul = "装置管理管理", operType = "", operDesc = "根据施工或epc单位查询epc承包商列表") @ApiOperation(value = "根据施工或epc单位查询epc承包商列表", notes = "根据施工或epc单位查询epc承包商列表", httpMethod = "GET") @ApiImplicitParams({ - @ApiImplicitParam(name = "enterpriseId", value = "单位ID", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "enterpriseId", value = "单位ID", paramType = "query", required = false, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = true, dataType = "String"), }) @GetMapping(value = "/getEpcList") diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java index 2fb6f40cf..b67d06df5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/WorkerAdmissionController.java @@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; @@ -304,7 +305,6 @@ public class WorkerAdmissionController { throw new OpenAlertException("【" + StrUtil.join(",", existNums) + "】编号已存在"); } } - Map allCeNameMap = dictionariesRecordService.selectCertTypeList(new MapBuilder().build()).stream().collect(Collectors.toMap(DictionariesRecord::getId, Function.identity(), (o1, o2) -> o1)); if (CollUtil.isNotEmpty(tableList)) { List errs = new ArrayList<>(); Map typeMap = postWorkTypeService.list(new LambdaQueryWrapper() @@ -316,17 +316,30 @@ public class WorkerAdmissionController { Long workerType = jo.getJSONArray("field3008722075250").getLong(0); PostWorkType type = typeMap.get(workerType); if (type != null) { - //需要证书 - if (JSON.parseArray(jo.getString("field5960144013031")).size() == 0) { - errs.add(jo.getString("field1767683295945") + "需要上传" + type.getPostWorkTypeName() + "资质证"); + //需要上传证书 + String workerName = jo.getString("field1767683295945"); + if (jo.getString("field5960144013031") == null || JSON.parseArray(jo.getString("field5960144013031")).size() == 0) { + errs.add(workerName + "需要上传" + type.getPostWorkTypeName() + "资质证"); } - if (JSON.parseArray(jo.getString("field5342644024091")).size() == 0) { - errs.add(jo.getString("field1767683295945") + "需要上传" + type.getPostWorkTypeName() + "资质验证"); + if (jo.getString("field5342644024091") == null || FlowUtil.isBlank(jo.getString("field5342644024091"))) { + errs.add(workerName + "需要上传" + type.getPostWorkTypeName() + "资质验证"); + } + if (StrUtil.isBlank(jo.getString("field9354421203736"))) { + errs.add(workerName + "需要填写资格证号"); + } + if (FlowUtil.isBlank(jo.getString("field1492921345638"))) { + errs.add(workerName + "需要选择发证机关"); + } + if (StrUtil.isBlank(jo.getString("field2436120887995"))) { + errs.add(workerName + "需要填写取证日期"); + } + if (StrUtil.isBlank(jo.getString("field7888920890828"))) { + errs.add(workerName + "需要填写截止日期"); } } - } - if (CollUtil.isNotEmpty(errs)) { - throw new OpenAlertException(StrUtil.join(",", errs)); + if (CollUtil.isNotEmpty(errs)) { + throw new OpenAlertException(StrUtil.join(",", errs)); + } } } return Result.ok(); @@ -428,9 +441,11 @@ public class WorkerAdmissionController { if (CollUtil.isNotEmpty(l)) { WorkerAdmissionCertificateDetail d = l.get(0); String certificateNumber = d.getCertificateNumber(); - Integer issueCompany = d.getIssueCompany(); - dm.put("certificateNumber", certificateNumber + "、" + getIssueCompany(issueCompany)); - //dm.put("issueCompany", getIssueCompany(issueCompany)); + String issueCompany = getIssueCompany(d.getIssueCompany()); + if (StrUtil.isNotBlank(certificateNumber) || StrUtil.isNotBlank(issueCompany)) { + List list = Arrays.asList(certificateNumber, issueCompany).stream().filter(Objects::nonNull).collect(Collectors.toList()); + dm.put("certificateNumber", StrUtil.join("、", list)); + } } listMap.add(dm); } @@ -646,17 +661,25 @@ public class WorkerAdmissionController { * @param con */ private void setUploadFileName(File unzip, Map nameIdCardMap, String name, Consumer> con) { - List list = FileUtil.listFileNames(unzip.getAbsolutePath() + "/" + name); - for (String filename : list) { - UploadZipWorkAdmissionVo vo = nameIdCardMap.get(StringUtils.substringBeforeLast(new File(filename).getName(), ".")); - if (vo != null) { - String path = minioUtils.uploadGetName(new File(new File(unzip.getAbsolutePath(), name), filename).getAbsolutePath(), true); - HashMap map = new MapBuilder() - .put("name", filename) - .put("url", path) - .build(); - con.accept(new ImmutablePair(vo, JSON.toJSONString(map))); + try { + String path1 = unzip.getAbsolutePath() + "/" + name; + if (!FileUtil.exist(path1)) { + return; } + List list = FileUtil.listFileNames(path1); + for (String filename : list) { + UploadZipWorkAdmissionVo vo = nameIdCardMap.get(StringUtils.substringBeforeLast(new File(filename).getName(), ".")); + if (vo != null) { + String path = minioUtils.uploadGetName(new File(new File(unzip.getAbsolutePath(), name), filename).getAbsolutePath(), true); + HashMap map = new MapBuilder() + .put("name", filename) + .put("url", path) + .build(); + con.accept(new ImmutablePair(vo, JSON.toJSONString(map))); + } + } + } catch (IORuntimeException e) { + log.error("", e); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java index 192fc348f..7eef4d136 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java @@ -53,9 +53,6 @@ public class AnticorrosionEntrust implements Serializable { /** * 填报时间 */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "填报时间") private java.util.Date reportingTime; /** * 填报人 diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionEquipmentTool.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionEquipmentTool.java index afa1c6cdb..14f83b1b2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionEquipmentTool.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionEquipmentTool.java @@ -135,29 +135,29 @@ public class ConstructionEquipmentTool implements Serializable { @TableField(exist = false) @ApiModelProperty(value="施工设备机具分类名称") - private String classificationName ; - @TableField(exist = false) - @ApiModelProperty(value="设备管理员名称") - private java.lang.String equipmentManagerName ; - @TableField(exist = false) - @ApiModelProperty(value="进场经办人名称") - private java.lang.String onSiteHandlerName ; - @TableField(exist = false) - @ApiModelProperty(value="施工单位人员名称") - private java.lang.String constructionUnitPersonnelName ; - @TableField(exist = false) - @ApiModelProperty(value = "EPC安全人员名称") - private java.lang.String epcSafetyPersonnelName; - @TableField(exist = false) - @ApiModelProperty(value = "监理安全人员名称") - private java.lang.String supervisionSafetyPersonnelName; - @TableField(exist = false) - @ApiModelProperty(value = "项目安全经理名称") - private java.lang.String projectSafetySupervisionName; - @TableField(exist = false) - @ApiModelProperty(value = "安质环部设备工程师名称") - private java.lang.String safetyQualityDepartmentName; - @TableField(exist = false) - @ApiModelProperty(value = "所属单位") + private String classificationName; + @TableField(exist = false) + @ApiModelProperty(value = "设备管理员名称") + private java.lang.String equipmentManagerName; + @TableField(exist = false) + @ApiModelProperty(value = "进场经办人名称") + private java.lang.String onSiteHandlerName; + @TableField(exist = false) + @ApiModelProperty(value = "施工单位人员名称") + private java.lang.String constructionUnitPersonnelName; + @TableField(exist = false) + @ApiModelProperty(value = "EPC安全人员名称") + private java.lang.String epcSafetyPersonnelName; + @TableField(exist = false) + @ApiModelProperty(value = "监理安全人员名称") + private java.lang.String supervisionSafetyPersonnelName; + @TableField(exist = false) + @ApiModelProperty(value = "项目安全经理名称") + private java.lang.String projectSafetySupervisionName; + @TableField(exist = false) + @ApiModelProperty(value = "安质环部设备工程师名称") + private java.lang.String safetyQualityDepartmentName; + @TableField(exist = false) + @ApiModelProperty(value = "所属单位名称") private java.lang.String equipmentSourceUnitName ; } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionProjectQualityPrevention.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionProjectQualityPrevention.java index c4c031061..da99444bd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionProjectQualityPrevention.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ConstructionProjectQualityPrevention.java @@ -44,29 +44,44 @@ public class ConstructionProjectQualityPrevention implements Serializable { @ApiModelProperty(value="批 准") private java.lang.Long approval ; /**批准日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value="批准日期") - private java.util.Date approvalDate ; - /**施工承包商*/ - @ApiModelProperty(value="施工承包商") - private java.lang.Long constructionContractor ; - /**单位工程*/ - @ApiModelProperty(value="单位工程") - private java.lang.String unitProject ; - /**涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;6:其他;*/ - @ApiModelProperty(value="涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;6:其他;") - private java.lang.Integer technicalSpecialtiesInvolved ; - /**技术负责人*/ - @ApiModelProperty(value="技术负责人") - private java.lang.Long technicalPersonInCharge ; - /**涉及操作班组*/ - @ApiModelProperty(value="涉及操作班组") - private java.lang.String operationTeamInvolved ; - /**明细表*/ - @ApiModelProperty(value="明细表") - private java.lang.String detailedList ; - /**选择明细表*/ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "批准日期") + private java.util.Date approvalDate; + /** + * 施工承包商 + */ + @ApiModelProperty(value = "施工承包商") + private java.lang.Long constructionContractor; + /** + * 单位工程 + */ + @ApiModelProperty(value = "单位工程") + private java.lang.String unitProject; + /** + * 涉及技术专业:1:土建;2:管道;3:动设备;4:静设备;5:电气;6:仪表; + */ + @Excel(name = "涉及技术专业", width = 15, replace = {"土建_1", "管道_2", "动设备_3", "静设备_4", "电气_5", "仪表_6"}) + @ApiModelProperty(value = "涉及技术专业:1:土建;2:管道;3:动设备;4:静设备;5:电气;6:仪表;") + private java.lang.Integer technicalSpecialtiesInvolved; + /** + * 技术负责人 + */ + @ApiModelProperty(value = "技术负责人") + private java.lang.Long technicalPersonInCharge; + /** + * 涉及操作班组 + */ + @ApiModelProperty(value = "涉及操作班组") + private java.lang.String operationTeamInvolved; + /** + * 明细表 + */ + @ApiModelProperty(value = "明细表") + private java.lang.String detailedList; + /** + * 选择明细表 + */ @ApiModelProperty(value="选择明细表") private java.lang.String selectDetailedList ; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerCheck.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerCheck.java index 72a583c93..1928ee989 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerCheck.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerCheck.java @@ -41,29 +41,40 @@ public class EngineerControllerCheck implements Serializable { @ApiModelProperty(value="装置/单元工程") private java.lang.Long deviceUnitProject ; @ApiModelProperty(value="项目组") - private java.lang.Long projectGroup ; - /**单元号*/ - @ApiModelProperty(value="单元号") - private java.lang.String unitNumber ; - /**EPC承包商*/ - @ApiModelProperty(value="EPC承包商") - private java.lang.Long epcContractor ; - /**施工单位*/ - @ApiModelProperty(value="施工单位") - private java.lang.Long constructionUnit ; - /**涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;6:其他;*/ - @ApiModelProperty(value="涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;6:其他;") - private java.lang.Integer technicalExpertiseInvolved ; - /**联系人*/ - @ApiModelProperty(value="联系人") - private java.lang.Long contactPerson ; - /**联系人电话*/ - @ApiModelProperty(value="联系人电话") - private java.lang.String contactPhoneNumber ; - /**检查、检测时间*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value="检查、检测时间") + private java.lang.Long projectGroup; + /** + * 单元号 + */ + @ApiModelProperty(value = "单元号") + private java.lang.String unitNumber; + /** + * EPC承包商 + */ + @ApiModelProperty(value = "EPC承包商") + private java.lang.Long epcContractor; + /** + * 施工单位 + */ + @ApiModelProperty(value = "施工单位") + private java.lang.Long constructionUnit; + @ApiModelProperty(value = "涉及技术专业:1:土建;2:管道;3:动设备;4:静设备;5:电气;6:仪表;") + private java.lang.Integer technicalExpertiseInvolved; + /** + * 联系人 + */ + @ApiModelProperty(value = "联系人") + private java.lang.Long contactPerson; + /** + * 联系人电话 + */ + @ApiModelProperty(value = "联系人电话") + private java.lang.String contactPhoneNumber; + /** + * 检查、检测时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "检查、检测时间") private java.util.Date inspectionAndTestingTime ; /**检查、检测地点*/ @ApiModelProperty(value="检查、检测地点") diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerLevel.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerLevel.java index 09b12c0a8..ce381073f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerLevel.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/EngineerControllerLevel.java @@ -127,7 +127,7 @@ public class EngineerControllerLevel implements Serializable { private java.lang.Long projectManager; @ApiModelProperty(value = "施工部专业负责人") private java.lang.Long constructionDepartmentProfessionalDirector; - @ApiModelProperty(value = "专业:1:土建工程;2:土建特种;3:静设备工程;4:动设备工程;5:管道工程;6:电气工程;7:仪表工程;8:其他;") + @ApiModelProperty(value = "专业:2:土建;3:静设备工程;4:动设备工程;5:管道工程;6:电气工程;7:仪表工程;8:其他;") private java.lang.String major; @TableField(exist = false) @ApiModelProperty(value = "编制名称") diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/FirstExampleManage.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/FirstExampleManage.java index fa80fee7b..b1ad7c9a8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/FirstExampleManage.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/FirstExampleManage.java @@ -87,10 +87,10 @@ public class FirstExampleManage implements Serializable { @ApiModelProperty(value = "首件样板视频") private java.lang.String firstExampleVideo; /** - * 涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表;7:其他; + * 涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表; */ - @Excel(name = "涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表;7:其他;", width = 15) - @ApiModelProperty(value = "涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表;7:其他;") + @Excel(name = "涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表;", width = 15) + @ApiModelProperty(value = "涉及技术作业:1:土建;2:动设备;3:静设备;4:管道;5:电气;6:仪表;") private java.lang.Integer technicalOperation; /** * 所属项目SN diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/QualityAcceptance.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/QualityAcceptance.java index 984908025..99342dc55 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/QualityAcceptance.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/QualityAcceptance.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.List; @@ -79,6 +81,13 @@ public class QualityAcceptance implements Serializable { */ @ApiModelProperty(value = "更新时间") private java.util.Date updateTime; + /** + * 验收时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "验收时间") + private java.util.Date receptionTime; @TableField(exist = false) private java.lang.String deviceName; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/UnitEngineerOpen.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/UnitEngineerOpen.java index 14306b0b4..acfbb7f6c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/UnitEngineerOpen.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/UnitEngineerOpen.java @@ -83,7 +83,7 @@ public class UnitEngineerOpen implements Serializable { /** * 涉及技术专业 */ - @ApiModelProperty(value="涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;6:其他;") + @ApiModelProperty(value = "涉及技术专业:1:土建;2:管道;3:设备;4:电气;5:仪表;") private java.lang.Integer technicalExpertiseInvolved ; /** * 开工内容 diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/DeviceUnitServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/DeviceUnitServiceImpl.java index fd1df8b0c..1e3c34a68 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/DeviceUnitServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/DeviceUnitServiceImpl.java @@ -178,7 +178,7 @@ public class DeviceUnitServiceImpl extends ServiceImpl deviceUnits = this.queryList(new MapBuilder() - .put("seeI", 1) +// .put("seeI", 1) .put("projectSn", projectSn) .build()); List enterpriseIds = deviceUnits.stream().filter(o -> StrUtil.isNotBlank(o.getEpcContractorIds())).flatMap(o -> { @@ -188,7 +188,7 @@ public class DeviceUnitServiceImpl extends ServiceImpl(); } else { return enterpriseInfoService.list(new LambdaQueryWrapper() - .in(EnterpriseInfo::getId, enterpriseIds)); + .in(EnterpriseInfo::getId, enterpriseIds).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); } } else { //根据施工或epc单位查询epc承包商列表 diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java index 7bfc2f271..5f174fc07 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java @@ -59,7 +59,7 @@ public class EngineerControllerCheckServiceImpl extends ServiceImpl implements IUnitProjectDivisionApplicationService { @Autowired private UnitProjectDivisionApplicationMapper unitProjectDivisionApplicationMapper; + @Lazy + @Autowired + private IQualityAcceptanceService qualityAcceptanceService; + @Override public IPage queryPageList(HashMap param) { QueryWrapper queryWrapper = this.getQueryWrapper(param); Page page = PageUtil.getPage(param); - IPage pageList = baseMapper.queryList(page, queryWrapper,param); + IPage pageList = baseMapper.queryList(page, queryWrapper, param); pageList.setRecords(this.dealList(pageList.getRecords())); return pageList; } @@ -43,7 +53,7 @@ public class UnitProjectDivisionApplicationServiceImpl extends ServiceImpl queryList(HashMap param) { QueryWrapper queryWrapper = getQueryWrapper(param); - return dealList(baseMapper.queryList(queryWrapper,param)); + return dealList(baseMapper.queryList(queryWrapper, param)); } private QueryWrapper getQueryWrapper(HashMap param) { @@ -65,7 +75,7 @@ public class UnitProjectDivisionApplicationServiceImpl extends ServiceImpl map) { UnitProjectDivisionApplication e = new UnitProjectDivisionApplication(); - e.setProjectSn(FlowUtil.getString(map,"projectSn")); - e.setNo(FlowUtil.getString(map,"no")); - e.setDeviceUnitProject(FlowUtil.getPullDownLong(map,"deviceUnitProject")); - e.setDeviceUnitNumber(FlowUtil.getString(map,"deviceUnitNumber")); - e.setContractingMethod(FlowUtil.getPullDownInteger(map,"contractingMethod")); - e.setContractor(FlowUtil.getPullDownLong(map,"contractor")); - e.setEngineeringSupervisionUnit(FlowUtil.getPullDownLong(map,"engineeringSupervisionUnit")); - e.setEngineeringSubcontractor(FlowUtil.getPullDownLong(map,"engineeringSubcontractor")); - e.setRegionalProjectTeam(FlowUtil.getPullDownLong(map,"regionalProjectTeam")); - e.setDetailedList(FlowUtil.getJSONString(map,"detailedList")); - e.setContractorManager(FlowUtil.getPullDownLong(map,"contractorManager")); - e.setContractorManagerDate(FlowUtil.getDate(map,"contractorManagerDate")); - e.setRelatedProfessionalEngineer(FlowUtil.getString(map,"relatedProfessionalEngineer")); - e.setRelatedProfessionalEngineerSignature(FlowUtil.getPullDownLong(map,"relatedProfessionalEngineerSignature")); - e.setRelatedProfessionalEngineerSignatureDate(FlowUtil.getDate(map,"relatedProfessionalEngineerSignatureDate")); - e.setConstructionManager(FlowUtil.getString(map,"constructionManager")); - e.setConstructionManagerSignature(FlowUtil.getPullDownLong(map,"constructionManagerSignature")); - e.setConstructionManagerSignatureDate(FlowUtil.getDate(map,"constructionManagerSignatureDate")); - e.setProjectManager(FlowUtil.getString(map,"projectManager")); - e.setProjectManagerSignature(FlowUtil.getPullDownLong(map,"projectManagerSignature")); - e.setProjectManagerSignatureDate(FlowUtil.getDate(map,"projectManagerSignatureDate")); - e.setConstructionManagementDepartment(FlowUtil.getString(map,"constructionManagementDepartment")); - e.setConstructionManagementDepartmentSignature(FlowUtil.getPullDownLong(map,"constructionManagementDepartmentSignature")); - e.setConstructionManagementDepartmentSignatureDate(FlowUtil.getDate(map,"constructionManagementDepartmentSignatureDate")); + String projectSn = FlowUtil.getString(map, "projectSn"); + e.setProjectSn(projectSn); + e.setNo(FlowUtil.getString(map, "no")); + e.setDeviceUnitProject(FlowUtil.getPullDownLong(map, "deviceUnitProject")); + e.setDeviceUnitNumber(FlowUtil.getString(map, "deviceUnitNumber")); + e.setContractingMethod(FlowUtil.getPullDownInteger(map, "contractingMethod")); + e.setContractor(FlowUtil.getPullDownLong(map, "contractor")); + e.setEngineeringSupervisionUnit(FlowUtil.getPullDownLong(map, "engineeringSupervisionUnit")); + e.setEngineeringSubcontractor(FlowUtil.getPullDownLong(map, "engineeringSubcontractor")); + e.setRegionalProjectTeam(FlowUtil.getPullDownLong(map, "regionalProjectTeam")); + e.setDetailedList(FlowUtil.getJSONString(map, "detailedList")); + e.setContractorManager(FlowUtil.getPullDownLong(map, "contractorManager")); + e.setContractorManagerDate(FlowUtil.getDate(map, "contractorManagerDate")); + e.setRelatedProfessionalEngineer(FlowUtil.getString(map, "relatedProfessionalEngineer")); + e.setRelatedProfessionalEngineerSignature(FlowUtil.getPullDownLong(map, "relatedProfessionalEngineerSignature")); + e.setRelatedProfessionalEngineerSignatureDate(FlowUtil.getDate(map, "relatedProfessionalEngineerSignatureDate")); + e.setConstructionManager(FlowUtil.getString(map, "constructionManager")); + e.setConstructionManagerSignature(FlowUtil.getPullDownLong(map, "constructionManagerSignature")); + e.setConstructionManagerSignatureDate(FlowUtil.getDate(map, "constructionManagerSignatureDate")); + e.setProjectManager(FlowUtil.getString(map, "projectManager")); + e.setProjectManagerSignature(FlowUtil.getPullDownLong(map, "projectManagerSignature")); + e.setProjectManagerSignatureDate(FlowUtil.getDate(map, "projectManagerSignatureDate")); + e.setConstructionManagementDepartment(FlowUtil.getString(map, "constructionManagementDepartment")); + e.setConstructionManagementDepartmentSignature(FlowUtil.getPullDownLong(map, "constructionManagementDepartmentSignature")); + e.setConstructionManagementDepartmentSignatureDate(FlowUtil.getDate(map, "constructionManagementDepartmentSignatureDate")); baseMapper.insert(e); + + //添加到质量验收里面 + if (StrUtil.isNotBlank(e.getDetailedList())) { + Long deviceId = e.getDeviceUnitProject(); + List haveList = qualityAcceptanceService.list( + new LambdaQueryWrapper() + .eq(QualityAcceptance::getDeviceId, deviceId) + ); + JSONArray detailList = JSON.parseArray(e.getDetailedList()); + for (int i = 0; i < detailList.size(); i++) { + JSONObject jsonObject = detailList.getJSONObject(i); + Long currentId = null; + // 处理各级节点 + currentId = processLevel(projectSn, haveList, jsonObject, "field9876885180342", 0L, 1, deviceId); + currentId = processLevel(projectSn, haveList, jsonObject, "field7965485184055", currentId, 2, deviceId); + currentId = processLevel(projectSn, haveList, jsonObject, "field3241485188089", currentId, 3, deviceId); + currentId = processLevel(projectSn, haveList, jsonObject, "field8142185195371", currentId, 4, deviceId); + currentId = processLevel(projectSn, haveList, jsonObject, "field4526985201904", currentId, 5, deviceId); + } + } + } + + /** + * 处理单个层级的方法 + * + * @param projectSn + * @param haveList + * @param jsonObject + * @param fieldName + * @param parentId + * @param levelType + * @param deviceId + * @return + */ + private Long processLevel(String projectSn, List haveList, JSONObject jsonObject, String fieldName, Long parentId, int levelType, Long deviceId) { + String name = jsonObject.getString(fieldName); + + // 查找现有记录 + Optional existing = haveList.stream() + .filter(o -> Objects.equals(o.getName(), name) + && o.getLevelType() == levelType + && Objects.equals(o.getParentId(), parentId)) + .findFirst(); + + if (existing.isPresent()) { + return existing.get().getId(); + } else { + // 不存在则新增 + return addQualityAcceptance(projectSn, name, parentId, levelType, deviceId, haveList); + } + } + + /** + * 添加质量验收 + * + * @param projectSn + * @param name + * @param parentId + * @param levelType + * @param deviceId + * @param haveList + * @return + */ + private Long addQualityAcceptance(String projectSn, String name, long parentId, int levelType, Long deviceId, List haveList) { + QualityAcceptance accept = new QualityAcceptance(); + accept.setDeviceId(deviceId); + accept.setName(name); + accept.setNum(name); + accept.setProjectSn(projectSn); + accept.setParentId(parentId); + accept.setLevelType(levelType); + qualityAcceptanceService.add(accept); + haveList.add(accept); + return accept.getId(); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java index e50d13afe..685e602de 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/SystemUserController.java @@ -249,7 +249,14 @@ public class SystemUserController { }) @PostMapping(value = "/getProjectChilderSystemUserList") public Result> getProjectChilderSystemUserList(@RequestBody Map map) { - return Result.success(systemUserService.getProjectChildernSystemUserList(map)); + map.put(Cts.IGNORE_DATA_SCOPE, Cts.IGNORE_DATA_SCOPE); + List userList = systemUserService.getProjectChildernSystemUserList(map); + for (SystemUser systemUser : userList) { + systemUser.setPassword(null); + systemUser.setOldPassword(null); + systemUser.setShowPassword(null); + } + return Result.success(userList); } @OperLog(operModul = "账号管理", operType = "分页查找项目子账号列表", operDesc = "分页查找项目子账号列表") diff --git a/src/main/java/com/zhgd/xmgl/util/FlowUtil.java b/src/main/java/com/zhgd/xmgl/util/FlowUtil.java index 9a070ff47..cb8b7cb48 100644 --- a/src/main/java/com/zhgd/xmgl/util/FlowUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/FlowUtil.java @@ -241,4 +241,18 @@ public class FlowUtil { return CollUtil.isNotEmpty(classs) ? Long.valueOf(classs.get(classs.size() - 1)) : null; } + /** + * 判断是否为空 + * + * @param obj + * @return + */ + public static boolean isBlank(String obj) { + Object parse = JSON.parse(obj); + if (parse instanceof List) { + return Optional.ofNullable((List) parse).map(m -> m.size() == 0 || m.get(0) == null || StrUtil.isBlank(m.get(0) + "")).orElse(null); + } else { + return false; + } + } } diff --git a/src/main/java/com/zhwl/zw/modules/base/service/impl/ZwLoginServiceImpl.java b/src/main/java/com/zhwl/zw/modules/base/service/impl/ZwLoginServiceImpl.java index 5c94c1686..c8936043d 100644 --- a/src/main/java/com/zhwl/zw/modules/base/service/impl/ZwLoginServiceImpl.java +++ b/src/main/java/com/zhwl/zw/modules/base/service/impl/ZwLoginServiceImpl.java @@ -67,16 +67,19 @@ public class ZwLoginServiceImpl implements IZwLoginService { authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(MapUtils.getString(map,"account"), password)); String token=jwtTokenProvider.createToken(MapUtils.getString(map,"account"),60*60*24); - result.put("token",token); - result.put("userId",systemUser.getUserId()); - result.put("account",systemUser.getAccount()); - result.put("userTel",systemUser.getUserTel()); - result.put("realName",systemUser.getRealName()); - result.put("accountType",systemUser.getAccountType()); + result.put("token", token); + result.put("userId", systemUser.getUserId()); + result.put("account", systemUser.getAccount()); + result.put("userTel", systemUser.getUserTel()); + result.put("realName", systemUser.getRealName()); + result.put("accountType", systemUser.getAccountType()); return result; } catch (AuthenticationException e) { log.error("error:", e); throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY); + } catch (Exception e) { + log.error("error:", e); + throw new OpenAlertException(e.getMessage()); } } } diff --git a/src/main/resources/excel/导出人员申请表模板.xlsx b/src/main/resources/excel/导出人员申请表模板.xlsx index f5769caaa..717ba636f 100644 Binary files a/src/main/resources/excel/导出人员申请表模板.xlsx and b/src/main/resources/excel/导出人员申请表模板.xlsx differ