From 362a89f5f23a21a770a48e01e7656805f9c5e71a Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Tue, 5 Nov 2024 18:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MainProjectCompletePeriodController.java | 1 + .../controller/WorkerAdmissionController.java | 15 ++++++++----- .../xml/MainProjectCompletePeriodMapper.xml | 7 +++++++ .../mapper/xml/SunshineProjectMapper.xml | 2 +- .../MainProjectCompletePeriodServiceImpl.java | 21 ++++++++++++++++--- .../impl/WorkerAdmissionServiceImpl.java | 6 +++--- .../java/com/zhgd/xmgl/util/Fileutils.java | 18 ++++++++++++++++ 7 files changed, 58 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/MainProjectCompletePeriodController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/MainProjectCompletePeriodController.java index e20058350..6e103ec45 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/MainProjectCompletePeriodController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/MainProjectCompletePeriodController.java @@ -67,6 +67,7 @@ public class MainProjectCompletePeriodController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "search", value = "查询", paramType = "query", required = false, dataType = "String"), }) @GetMapping(value = "/page") public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { 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 69bb9e211..6497d4cd4 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 @@ -14,6 +14,7 @@ import com.gexin.fastjson.JSONArray; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmission; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionCertificateDetail; import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail; @@ -138,8 +139,8 @@ public class WorkerAdmissionController { JSONArray idCardList = JSON.parseArray(MapUtils.getString(map, "idCardList")); if (CollUtil.isNotEmpty(numList)) { List nums = workerAdmissionDetailService.list(new LambdaQueryWrapper() - .eq(WorkerAdmissionDetail::getProjectSn, projectSn) - .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)) + .eq(WorkerAdmissionDetail::getProjectSn, projectSn) + .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)) .stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList()); List existNums = new ArrayList<>(); for (int i = 0; i < numList.size(); i++) { @@ -160,7 +161,7 @@ public class WorkerAdmissionController { .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1) .eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList()); List existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper() - .in(WorkerInfo::getIdCard, ids).eq(WorkerInfo::getProjectSn, projectSn)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList()); + .in(WorkerInfo::getIdCard, ids).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList()); existDetailIdCards.addAll(existWorkerIdCards); existDetailIdCards = existDetailIdCards.stream().distinct().collect(Collectors.toList()); if (CollUtil.isNotEmpty(existDetailIdCards)) { @@ -235,6 +236,7 @@ public class WorkerAdmissionController { } List details = workerAdmissionDetailService.queryList(new MapBuilder() .put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList()))) + .put("projectSn", admissions.get(0).getProjectSn()) .put("isCertificateQualified", 1) .build()); List certificateDetails = new ArrayList<>(); @@ -320,10 +322,12 @@ public class WorkerAdmissionController { foldFile.mkdirs(); } if (CollUtil.isNotEmpty(allList)) { + int i = 1; for (Map map : allList) { TemplateExportParams params = new TemplateExportParams(Fileutils.getExportExcelTemplateFile("excel/导出人员申请表模板.xlsx").getAbsolutePath()); Workbook workbook = ExcelExportUtil.exportExcel(params, map); - String fileName = IdUtil.simpleUUID() + ".xlsx"; + String fileName = map.get("certificateIssuingUnitName") + "-" + map.get("certificateIssuingPersonName") + "-" + DateUtil.format(DateUtil.parse(map.get("addTime").toString()), "yyyyMMddHHmmss") + "-" + i++; + fileName = Fileutils.checkFileName(fileName) + ".xlsx"; String path = foldFile + "/" + fileName; FileOutputStream fos = null; try { @@ -365,7 +369,7 @@ public class WorkerAdmissionController { @ApiOperation(value = "根据“导出人员申请表”查询身份证号列表", notes = "根据“导出人员申请表”查询身份证号列表", httpMethod = "POST") @PostMapping(value = "/getIdCardsByExcel") - public Result getIdCardsByExcel(@RequestParam(value = "file") MultipartFile file) throws Exception { + public Result getIdCardsByExcel(@RequestParam(value = "file") MultipartFile file, @RequestParam String projectSn) throws Exception { try { if (file == null) { return Result.error("请上传文件"); @@ -403,6 +407,7 @@ public class WorkerAdmissionController { if (CollUtil.isNotEmpty(idCards)) { Set idCardSet = workerAdmissionDetailService.queryPageList(new MapBuilder() .put("idCards", StrUtil.join(",", idCards)) + .put("projectSn", projectSn) .put("isPass", 1) .put("isCertificateQualified", 1) .build()).getRecords().stream().map(WorkerAdmissionDetail::getIdCard).distinct().collect(Collectors.toSet()); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/MainProjectCompletePeriodMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/MainProjectCompletePeriodMapper.xml index 232aac26c..35d956022 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/MainProjectCompletePeriodMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/MainProjectCompletePeriodMapper.xml @@ -6,6 +6,13 @@ select * from ( select t.* from main_project_complete_period t + where 1=1 + + and concat(t.year,'-',t.month) like CONCAT('%',#{param.search},'%') + + + and concat(t.year,'-',t.month,'-第',CASE t.which_week WHEN 1 THEN '一周' WHEN 2 THEN '二周' WHEN 3 THEN '三周' ELSE '四周' END) like CONCAT('%',#{param.search},'%') + )t ${ew.customSqlSegment} diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/SunshineProjectMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/SunshineProjectMapper.xml index 73ee25c72..10b082e47 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/SunshineProjectMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/SunshineProjectMapper.xml @@ -12,7 +12,7 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompletePeriodServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompletePeriodServiceImpl.java index 3568cb9a2..1378c7a3e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompletePeriodServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/MainProjectCompletePeriodServiceImpl.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.baotou.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -16,6 +17,7 @@ import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; +import java.util.Objects; /** * @Description: 主要工程量完成情况时间段 @@ -54,9 +56,22 @@ public class MainProjectCompletePeriodServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper() + .eq(MainProjectCompletePeriod::getProjectSn, period.getProjectSn()) + .eq(MainProjectCompletePeriod::getDeviceUnitId, period.getDeviceUnitId()) + .eq(MainProjectCompletePeriod::getLevelType, period.getLevelType()) + .eq(MainProjectCompletePeriod::getYear, period.getYear()) + .eq(MainProjectCompletePeriod::getMonth, period.getMonth()); + if (Objects.equals(period.getLevelType(), 2)) { + wrapper.eq(MainProjectCompletePeriod::getWhichWeek, period.getWhichWeek()); + } + List periods = mainProjectCompletePeriodMapper.selectList(wrapper); + if (periods.size() > 0) { + throw new OpenAlertException("该数据已存在"); + } + period.setId(null); + baseMapper.insert(period); } @Override diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionServiceImpl.java index fc6aa0c76..2e9010a67 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionServiceImpl.java @@ -129,8 +129,8 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl map) { String instanceId = FlowUtil.getString(map, "instanceId"); - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(instanceId).singleResult(); - Date approvalTime = historicProcessInstance.getEndTime(); +// HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(instanceId).singleResult(); +// Date approvalTime = historicProcessInstance.getEndTime(); Long certificateIssuingUnit = FlowUtil.getPullDownLong(map, "certificateIssuingUnit"); Long certificateIssuingUnitSafetyManager = FlowUtil.getPullDownLong(map, "certificateIssuingUnitSafetyManager"); Long certificateIssuingPerson = FlowUtil.getPullDownLong(map, "certificateIssuingPerson"); @@ -260,7 +260,7 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl * | : + * mac操作系统文件名不能以.开头 + * linux和Mac基本一直, + * + * @param fileName + * @return + */ + public static String checkFileName(String fileName) { + Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|.]"); + Matcher matcher = pattern.matcher(fileName); + fileName = matcher.replaceAll(""); // 将匹配到的非法字符以空替换 + return fileName; + } + //根据文件修改时间进行比较的内部类 static class CompratorByLastModified implements Comparator { @Override @@ -119,4 +136,5 @@ public class Fileutils { } } + }