wangxuan 7 hónapja
szülő
commit
7fbbe7a551

+ 9 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckService.java

@@ -38,10 +38,18 @@ public interface ZhcxCommissionCheckService extends IService<ZhcxCommissionCheck
     int wordExport(Map<String, Object> map, HttpServletResponse response);
 
     /**
-     * 试车报告导出
+     * 试车检查报告导出
      * @param map
      * @param response
      * @return
      */
     int exportFile(Map<String, Object> map, HttpServletResponse response) throws Exception;
+
+    /**
+     * 试车标准库导出
+     * @param map
+     * @param response
+     * @return
+     */
+    int exportFile2(Map<String, Object> map, HttpServletResponse response) throws Exception;
 }

+ 210 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckServiceImpl.java

@@ -1072,4 +1072,214 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
         //改动目录的相关内容都得更新目录域
         doc.updateFields();
     }
+
+    @Override
+    public int exportFile2(Map<String, Object> map, HttpServletResponse response) throws Exception{
+        SysFileItemDo fileItemDo = sysFileItemService.getById("d1b3271ce2ec45c2915f2dbcd819f45a");
+        final Document[] indexDoc = {WordHelpUtils.getDoc(fileItemDo.getFullpath())};
+        FormData formData = new FormData();
+        List<Map<String,Object>> mainDataList = new ArrayList<>();
+        Map<String,Object> mainMap = new HashMap<>(16);
+        mainMap.put("projectNames","XXX");
+        mainMap.put("projectCode","XXX");
+        mainMap.put("projectName","XXX");
+        mainMap.put("currentDate",DateUtils.format(new Date()));
+        mainMap.put("machineNo","XXX");
+        mainDataList.add(mainMap);
+        formData.setMainDataList(mainDataList);
+        indexDoc[0] = ExcelExportUtil.fillWordDataByMap(fileItemDo.getFullpath(), formData);
+        List<ZhcxCommissionCheckDetailDo> list = zhcxCommissionCheckDetailDao.listData(map);
+        Document doc = null;
+        DocumentBuilder builder = null;
+        ClassPathResource classPathResource = new ClassPathResource("template/检查内容明细模版.doc");
+        try {
+            doc = new Document(classPathResource.getInputStream());
+            builder = new DocumentBuilder(doc);
+        } catch (Exception e) {
+            ExceptionUtils.printExceptionDetail(e,"空模板获取出现异常");
+            return 0;
+        }
+        //移动到页眉
+        builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY); // 主页眉
+        // 如果有多个页眉,可以选择HeaderFooterType.HEADER_FIRST, HeaderFooterType.HEADER_EVEN等
+        for (com.aspose.words.Field field : doc.getRange().getFields()) {
+            if ("«projectName»".equals(field.getResult())) { // 替换FieldName为你的字段名称
+                // 在这里操作field对象
+                builder.moveToField(field, true);
+                builder.write("XXX");
+                field.setResult("");
+            }
+        }
+        List<JSONObject> resultType = zhcxCommissionCheckDetailDao.getResultDictList();
+        if(list.isEmpty()){
+            return 1;
+        }else {
+            //标题
+            Set<ZhcxCommissionCheckDetailDo> noSet = list.stream().filter(item -> ObjectUtil.isNotEmpty(item.getIstitle()) && "y".equals(item.getIstitle())).collect(Collectors.toSet());
+            Map<String, ZhcxCommissionCheckDetailWordVO> resMap = new HashMap<>();
+            for (ZhcxCommissionCheckDetailDo item : noSet) {
+                ZhcxCommissionCheckDetailWordVO checkDetailWordVO = new ZhcxCommissionCheckDetailWordVO();
+                checkDetailWordVO.setChapterno(item.getChapternopuls());
+                String chtitle = "";
+                String entitle = "";
+                if (StringUtils.isNotBlank(item.getChtitle())){
+                    chtitle = item.getChtitle();
+                }
+                if (StringUtils.isNotBlank(item.getEntitle())){
+                    entitle = item.getEntitle();
+                }
+                checkDetailWordVO.setTitleContent(chtitle+entitle);
+                checkDetailWordVO.setDetailList(new LinkedList<>());
+                resMap.put(item.getChapternopuls(),checkDetailWordVO);
+            }
+            //非标题
+            List<ZhcxCommissionCheckDetailDo> detailLists = list.stream().filter(item -> !(ObjectUtil.isNotEmpty(item.getIstitle()) && "y".equals(item.getIstitle()))).collect(Collectors.toList());
+            for (ZhcxCommissionCheckDetailDo item : detailLists) {
+                String chapternopuls = item.getChapternopuls();
+                int i = chapternopuls.lastIndexOf(".");
+                String key = chapternopuls.substring(0, i);
+                if(!resMap.containsKey(key)){
+                    log.error("不能导出错误的章节号:{}的报告", chapternopuls);
+                    log.error("不能导出错误的章节号key:{}的报告", key);
+                    return 2;
+                }
+                ZhcxCommissionCheckDetailWordVO checkDetailWordVO = resMap.get(key);
+                List<ZhcxCommissionCheckDetailDo> detailList = checkDetailWordVO.getDetailList();
+                detailList.add(item);
+                detailList.sort((a,b)->{
+                            LinkedList<String> a1 = new LinkedList<>(Arrays.asList(a.getChapternopuls().split("\\.")));
+                            LinkedList<String> b1 = new LinkedList<>(Arrays.asList(b.getChapternopuls().split("\\.")));
+                            return sort1(a1,b1);
+                        }
+                );
+            }
+            List<ZhcxCommissionCheckDetailWordVO> resList = new LinkedList<>();
+            for (String s : resMap.keySet()) {
+                resList.add(resMap.get(s));
+            }
+            resList.sort((a,b)->{
+                LinkedList<String> a1 = new LinkedList<>(Arrays.asList(a.getChapterno().split("\\.")));
+                LinkedList<String> b1 = new LinkedList<>(Arrays.asList(b.getChapterno().split("\\.")));
+                return sort1(a1,b1);
+            });
+            builder.moveToDocumentStart();
+            for (ZhcxCommissionCheckDetailWordVO res : resList) {
+                int titleType = res.getChapterno().split("\\.").length;
+                if (titleType==1){
+                    buildText(builder, DEFAULT_FONT_NAME, titleType, 12, true,
+                            res.getChapterno()+"."+res.getTitleContent(), null);
+                }else {
+                    buildText(builder, DEFAULT_FONT_NAME, titleType, 12, true,
+                            res.getChapterno()+res.getTitleContent(), null);
+                }
+                if(ObjectUtil.isNotEmpty(res.getDetailList())){
+                    builder.getFont().setSize(15);
+                    // 插入表头
+                    builder.insertCell();
+                    builder.getCellFormat().setWidth(40);
+                    builder.getRowFormat().setHeight(20);
+                    builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);//设置HeightRule
+                    builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                    buildTextContentTitle(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_6, 12, true,
+                            "NO.", null);
+                    builder.insertCell();
+                    builder.getCellFormat().setWidth(170);
+                    builder.getRowFormat().setHeight(20);
+                    builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);//设置HeightRule
+                    builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                    buildTextContentTitle(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_6, 12, true,
+                            "检查项目", null);
+                    builder.insertCell();
+                    builder.getCellFormat().setWidth(120);
+                    builder.getRowFormat().setHeight(20);
+                    builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);//设置HeightRule
+                    builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                    buildTextContentTitle(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_6, 12, true,
+                            "测试地点", null);
+                    builder.insertCell();
+                    builder.getCellFormat().setWidth(40);
+                    builder.getRowFormat().setHeight(20);
+                    builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);//设置HeightRule
+                    builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                    buildTextContentTitle(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_6, 12, true,
+                            "结果", null);
+                    builder.insertCell();
+                    builder.getCellFormat().setWidth(100);
+                    builder.getRowFormat().setHeight(20);
+                    builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);//设置HeightRule
+                    builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                    buildTextContentTitle(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_6, 12, true,
+                            "备注", null);
+                    builder.endRow();
+                    for (ZhcxCommissionCheckDetailDo detailWordVO:res.getDetailList()){
+                        // 插入表格的第一行
+                        builder.insertCell();
+                        builder.getCellFormat().setWidth(40);
+                        builder.getRowFormat().setHeightRule(HeightRule.AUTO);//设置HeightRule
+                        builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                        // 取的应该是新的章节号 detailWordVO.getChapterno
+                        buildTextContent(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_7, 11, false,
+                                detailWordVO.getChapternopuls(), null);
+
+                        builder.insertCell();
+                        builder.getCellFormat().setWidth(170);
+                        builder.getRowFormat().setHeightRule(HeightRule.AUTO);//设置HeightRule
+                        builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                        String chtestcontent = "";
+                        String entestcontent = "";
+                        if (StringUtils.isNotBlank(detailWordVO.getChtestcontent())){
+                            chtestcontent = detailWordVO.getChtestcontent();
+                        }
+                        if (StringUtils.isNotBlank(detailWordVO.getEntestcontent())){
+                            entestcontent = detailWordVO.getEntestcontent();
+                        }
+                        buildTextContent(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_7, 11, false,
+                                chtestcontent+entestcontent, null);
+
+                        builder.insertCell();
+                        builder.getCellFormat().setWidth(120);
+                        builder.getRowFormat().setHeightRule(HeightRule.AUTO);//设置HeightRule
+                        builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                        String testaddress = "CX BASE长兴基地";
+                        if (StringUtils.isNotBlank(detailWordVO.getTestaddress())){
+                            // 10-> CX BASE长兴基地  20-> USER SITE码头现场
+                            if(detailWordVO.getTestaddress().equals("20")){
+                                testaddress = "USER SITE码头现场";
+                            }
+                        }
+                        buildTextContent(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_7, 11, false,
+                                testaddress, null);
+
+                        builder.insertCell();
+                        builder.getCellFormat().setWidth(40);
+                        builder.getRowFormat().setHeightRule(HeightRule.AUTO);//设置HeightRule
+                        builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                        String testresult = "";
+                        if (StringUtils.isNotBlank(detailWordVO.getTestresult())){
+                            testresult = resultType.stream().filter(dictDo -> detailWordVO.getTestresult().contains(dictDo.getString("VALUE"))).findFirst().get().getString("NAME").toString();
+                        }
+                        buildTextContent(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_7, 11, false,
+                                testresult, null);
+                        builder.insertCell();
+                        builder.getCellFormat().setWidth(100);
+                        builder.getRowFormat().setHeightRule(HeightRule.AUTO);//设置HeightRule
+                        builder.getCellFormat().setOrientation(TextOrientation.HORIZONTAL);
+                        String testnotes = "";
+                        if (StringUtils.isNotBlank(detailWordVO.getTestnotes())){
+                            testnotes = detailWordVO.getTestnotes();
+                        }
+                        buildTextContent(builder, DEFAULT_FONT_NAME, StyleIdentifier.HEADING_7, 11, false,
+                                testnotes, null);
+                        builder.endRow();
+                    }
+                    // 结束表格
+                    builder.endTable();
+                }
+            }
+            indexDoc[0].appendDocument(doc, ImportFormatMode.KEEP_DIFFERENT_STYLES);
+            // 导出world
+            exportWord(indexDoc[0], response);
+        }
+        return 3;
+    }
 }

+ 1 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPMQMServiceImpl.java

@@ -311,7 +311,7 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
             log.info("开启连接三单");
             String projectNoStr = String.join(",", projectNo.stream().map(pn -> "'" + pn + "'").collect(Collectors.toList()));
             //String sqlStr = "SELECT TOP (300) * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"'";
-            String sqlStr = "SELECT * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"' and 项目工号 in (" + projectNoStr+ ") ";
+            String sqlStr = "SELECT * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"' and 项目工号 in (" + projectNoStr+ ") and 部门名称 !='' and 部门名称 is not null";
             log.info("三单连接SQL:" + sqlStr);
             try(ResultSet resultSet = statement.executeQuery(sqlStr)) {
                 while (resultSet.next()) {

+ 12 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementDistributionDetailServiceImpl.java

@@ -12,6 +12,7 @@ import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -73,7 +74,17 @@ public class ZhcxPmqManagementDistributionDetailServiceImpl extends ServiceImpl<
         managementRecoredService.updateById(recoredDo);
         log.info("更新第二层状态成功");
         // 去更新第一层的状态
-        updateClosedStateInFirstFloor(recoredDo.getPmqmid());
+        //updateClosedStateInFirstFloor(recoredDo.getPmqmid());
+        // 异步去更新 第一层状态
+        Thread thread = new Thread(() -> {
+            try {
+                updateClosedStateInFirstFloor(recoredDo.getPmqmid());
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.info("异步去更新第一层状态异常..." + e.getMessage());
+            }
+        });
+        thread.start(); // 启动线程
         return R.ok("更新第二层状态成功");
     }
 

+ 16 - 1
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxCommissionCheckController.java

@@ -63,7 +63,7 @@ public class ZhcxCommissionCheckController {
     }
 
     @PostMapping("wordExport")
-    @ApiOperation("word导出/预览")
+    @ApiOperation("试车检查报告word导出/预览")
     public void wordExport(@RequestBody Map<String,Object> map, HttpServletResponse response) throws Exception {
         int i = commissionCheckService.exportFile(map,response);
         if(i == 0){
@@ -76,5 +76,20 @@ public class ZhcxCommissionCheckController {
             }
         }
     }
+
+    @PostMapping("wordExport2")
+    @ApiOperation("试车标准库word导出/预览")
+    public void wordExport2(@RequestBody Map<String,Object> map, HttpServletResponse response) throws Exception {
+        int i = commissionCheckService.exportFile2(map,response);
+        if(i == 0){
+            throw new CustomException("程序异常");
+        }else if(i == 1){
+            throw new CustomException("检查内容暂无数据");
+        }else {
+            if (i==2){
+                throw new CustomException("存在章节号错误数据");
+            }
+        }
+    }
 }
 

+ 21 - 2
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java

@@ -12,6 +12,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
@@ -36,15 +37,33 @@ public class ZhcxPMQMController {
     @Autowired
     private ZhcxPmqManagementRecoredService managementRecoredService;
 
+    //@Scheduled(cron = "0 30 22 * * *")
     @PostMapping("/gdfnx")
     @ApiOperation("获取NX系统的三单数据")
     public R getDataFromNX() {
         Map<String,String> map2 = new HashMap<>();
         map2.put("dateStr", "2021-01-01 10:10:10");
-        List<Map<String, Object>> list = pmqmService.getPMQMData(map2);
-        return R.ok(list);
+        log.info("开始获取NX系统的三单数据");
+        Thread thread = new Thread(() -> {
+            try {
+                pmqmService.getPMQMData(map2);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.info("开始获取NX系统的三单数据异常..." + e.getMessage());
+            }
+        });
+        thread.start();
+        //List<Map<String, Object>> list = pmqmService.getPMQMData(map2);
+        return R.ok();
     }
 
+//    @Scheduled(cron = "0 0/3 * * * ? ")
+//    public void getDataFromNXJob() {
+//        Map<String,String> map2 = new HashMap<>();
+//        log.info("开始获取NX系统的三单数据");
+//        List<Map<String, Object>> list = pmqmService.getPMQMData(map2);
+//    }
+
     @PostMapping("/gdfnxTest")
     @ApiOperation("获取NX系统的三单数据(测试)")
     public R getDataFromNXTest() {