From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java |  559 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 559 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java
new file mode 100644
index 0000000..58f1c6a
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ParaThreadingToolController.java
@@ -0,0 +1,559 @@
+package org.jeecg.modules.tms.controller;
+
+import java.io.File;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.PmsUtil;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.tms.entity.*;
+import org.jeecg.modules.tms.enums.AccuracyClass;
+import org.jeecg.modules.tms.service.IBaseToolsService;
+import org.jeecg.modules.tms.service.IParaThreadingToolService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.tms.service.IToolsClassifyService;
+import org.jeecg.modules.tms.service.IToolsConfigPropertyService;
+import org.jeecg.modules.tms.utils.ExcelUtils;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+/**
+ * @Description: tms_para_threading_tool
+ * @Author: jeecg-boot
+ * @Date: 2025-05-12
+ * @Version: V1.0
+ */
+@Api(tags = "tms_para_threading_tool")
+@RestController
+@RequestMapping("/tms/paraThreadingTool")
+@Slf4j
+public class ParaThreadingToolController extends JeecgController<ParaThreadingTool, IParaThreadingToolService> {
+    @Autowired
+    private IParaThreadingToolService paraThreadingToolService;
+    @Autowired
+    private IToolsClassifyService toolsClassifyService;
+    @Autowired
+    private IBaseToolsService baseToolsService;
+    @Autowired
+    private IToolsConfigPropertyService toolsConfigPropertyService;
+
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param paraThreadingTool
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    //@AutoLog(value = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ", notes = "tms_para_threading_tool-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<IPage<ParaThreadingTool>> queryPageList(ParaThreadingTool paraThreadingTool,
+                                                          @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                          HttpServletRequest req) {
+        QueryWrapper<ParaThreadingTool> queryWrapper = QueryGenerator.initQueryWrapper(paraThreadingTool, req.getParameterMap());
+        Page<ParaThreadingTool> page = new Page<ParaThreadingTool>(pageNo, pageSize);
+        IPage<ParaThreadingTool> pageList = paraThreadingToolService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 娣诲姞
+     *
+     * @param paraThreadingTool
+     * @return
+     */
+    @AutoLog(value = "tms_para_threading_tool-娣诲姞")
+    @ApiOperation(value = "tms_para_threading_tool-娣诲姞", notes = "tms_para_threading_tool-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody ParaThreadingTool paraThreadingTool) {
+        paraThreadingToolService.save(paraThreadingTool);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param paraThreadingTool
+     * @return
+     */
+    @AutoLog(value = "tms_para_threading_tool-缂栬緫")
+    @ApiOperation(value = "tms_para_threading_tool-缂栬緫", notes = "tms_para_threading_tool-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<String> edit(@RequestBody ParaThreadingTool paraThreadingTool) {
+        paraThreadingToolService.updateById(paraThreadingTool);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "tms_para_threading_tool-閫氳繃id鍒犻櫎")
+    @ApiOperation(value = "tms_para_threading_tool-閫氳繃id鍒犻櫎", notes = "tms_para_threading_tool-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
+        paraThreadingToolService.removeById(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "tms_para_threading_tool-鎵归噺鍒犻櫎")
+    @ApiOperation(value = "tms_para_threading_tool-鎵归噺鍒犻櫎", notes = "tms_para_threading_tool-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        this.paraThreadingToolService.removeByIds(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    //@AutoLog(value = "tms_para_threading_tool-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "tms_para_threading_tool-閫氳繃id鏌ヨ", notes = "tms_para_threading_tool-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<ParaThreadingTool> queryById(@RequestParam(name = "id", required = true) String id) {
+        ParaThreadingTool paraThreadingTool = paraThreadingToolService.getById(id);
+        if (paraThreadingTool == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹�");
+        }
+        return Result.OK(paraThreadingTool);
+    }
+
+    /**
+     * 瀵煎嚭excel
+     *
+     * @param request
+     * @param paraThreadingTool
+     */
+    //@RequiresPermissions("org.jeecg.modules:tms_para_threading_tool:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, ParaThreadingTool paraThreadingTool) {
+        return super.exportXls(request, paraThreadingTool, ParaThreadingTool.class, "tms_para_threading_tool");
+    }
+
+    /**
+     * 閫氳繃excel瀵煎叆鏁版嵁
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    //@RequiresPermissions("tms_para_threading_tool:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        // 閿欒淇℃伅
+        List<String> errorMessage = new ArrayList<>();
+        int successLines = 0, errorLines = 0, dataLines = 0;
+        List<ParaThreadingTool> paraThreadingToolImportList = new ArrayList<>();
+        try {
+            for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+                // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+                MultipartFile file = entity.getValue();
+                InputStream inputStream = file.getInputStream();
+                Workbook workbook = new XSSFWorkbook(inputStream);
+                Sheet sheet = workbook.getSheetAt(0);
+                for (Row row : sheet) {
+                    ParaThreadingTool paraThreadingTool = new ParaThreadingTool();
+                    int rowNum = row.getRowNum();
+                    int currentRowNum  = rowNum + 1;
+                    //琛ㄥご琛屽拰绌鸿鐣ヨ繃
+                    if (rowNum == 0 || ExcelUtils.isRowEmpty(row)) {
+                        continue;
+                    }
+                    dataLines++;
+                    Cell cell0 = row.getCell(0);
+                    if (cell0 == null || cell0.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏风紪鐮佷负绌�! ");
+                        errorLines++;
+                        continue;
+                    }
+                    Cell cell1 = row.getCell(1);
+                    if (cell1 == null || cell1.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,搴撲綅鍙蜂负绌�! ");
+                        errorLines++;
+                        continue;
+                    }
+                    Cell cell3 = row.getCell(3);
+                    if (cell3 == null || cell3.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓�绾у垎绫诲悕绉颁负绌�! ");
+                        errorLines++;
+                        continue;
+                    }
+
+                    Cell cell4 = row.getCell(4);
+                    if (cell4 == null || cell4.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,浜岀骇鍒嗙被鍚嶇О涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    }
+                    Cell cell5 = row.getCell(5);
+                    if (cell5 == null || cell5.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,涓夌骇鍒嗙被鍚嶇О涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    }
+                    Cell cell6 = row.getCell(6);
+                    if (cell6 == null || cell6.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍥涚骇鍒嗙被鍚嶇О涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    }
+
+                    ToolsClassify classify;
+                    List<ToolsClassify> class1List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                            .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell3))
+                            .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+                    if (CollectionUtil.isEmpty(class1List)) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ涓�绾у垎绫诲悕绉�! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        ToolsClassify classify1 = class1List.get(0);
+                        List<ToolsClassify> class2List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                                .eq(ToolsClassify::getParentId, classify1.getId())
+                                .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell4))
+                                .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+                        if (CollectionUtil.isEmpty(class2List)) {
+                            errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ浜岀骇鍒嗙被鍚嶇О! ");
+                            errorLines++;
+                            continue;
+                        } else {
+                            ToolsClassify classify2 = class2List.get(0);
+                            List<ToolsClassify> class3List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                                    .eq(ToolsClassify::getParentId, classify2.getId())
+                                    .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell5))
+                                    .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+                            if (CollectionUtil.isEmpty(class3List)) {
+                                errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ涓夌骇鍒嗙被鍚嶇О! ");
+                                errorLines++;
+                                continue;
+                            } else {
+                                ToolsClassify classify3 = class3List.get(0);
+                                List<ToolsClassify> class4List = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                                        .eq(ToolsClassify::getParentId, classify3.getId())
+                                        .eq(ToolsClassify::getTypeName, ExcelUtils.getCellValueAsString(cell6))
+                                        .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+                                if (CollectionUtil.isEmpty(class4List)) {
+                                    errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绯荤粺涓嶅瓨鍦ㄨ鍥涚骇鍒嗙被鍚嶇О! ");
+                                    errorLines++;
+                                    continue;
+                                } else {
+                                    classify = class4List.get(0);
+                                    paraThreadingTool.setClassifyId(classify.getId());
+                                }
+                            }
+                        }
+                    }
+
+                    Cell cell2 = row.getCell(2);//搴忓彿(鎴栦紒涓氬唴鍘熶唬鐮�)
+                    paraThreadingTool.setSignCode(ExcelUtils.getCellValueAsString(cell2));
+                    Cell cell7 = row.getCell(7);//鐗╁搧涓枃鍚嶇О
+                    if (cell7 == null || cell7.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鐗╁搧涓枃鍚嶇О涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setChineseName(ExcelUtils.getCellValueAsString(cell7));
+                    }
+                    Cell cell8 = row.getCell(8);//鐗╁搧澶栨枃鍚嶇О
+                    paraThreadingTool.setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8));
+                    Cell cell9 = row.getCell(9);//鏍囧噯绾у埆
+                    paraThreadingTool.setStandardLevel(ExcelUtils.getCellValueAsString(cell9));
+                    Cell cell10 = row.getCell(10);//鏍囧噯鍙�
+                    paraThreadingTool.setStandardCode(ExcelUtils.getCellValueAsString(cell10));
+                    Cell cell11 = row.getCell(11);
+                    if (cell11 == null || cell11.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍨嬪彿/鍥惧彿涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setToolModel(ExcelUtils.getCellValueAsString(cell11));
+                    }
+                    Cell cell12 = row.getCell(12);
+                    String accuracyClassCode;
+                    if (cell12 == null || cell12.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绮惧害绛夌骇涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        accuracyClassCode = AccuracyClass.getCodeFromValue(ExcelUtils.getCellValueAsString(cell12));
+                        if (accuracyClassCode == null) {
+                            errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,绮惧害绛夌骇涓嶇鍚堣姹�! ");
+                            errorLines++;
+                            continue;
+                        }
+                    }
+
+                    BaseTools baseTools = new BaseTools()
+                            .setToolCode(ExcelUtils.getCellValueAsString(cell0))
+                            .setClassifyId(classify.getId())
+                            .setSignCode(ExcelUtils.getCellValueAsString(cell2))
+                            .setChineseName(ExcelUtils.getCellValueAsString(cell7))
+                            .setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8))
+                            .setStandardLevel(ExcelUtils.getCellValueAsString(cell9))
+                            .setStandardCode(ExcelUtils.getCellValueAsString(cell10))
+                            .setToolModel(ExcelUtils.getCellValueAsString(cell11))
+                            .setCurrentCode("0000")//褰撳墠缂栫爜鍒濆鍖�
+                            .setParamaTableName("3")//3锛氳灪绾瑰垁鍏�
+                            .setAccuracyClass(accuracyClassCode);
+
+                    //鏍规嵁鍒�鍏风紪鐮併�佸瀷鍙�/鍥惧彿銆佸垎绫籭d鏌ヨ鍒�鍏蜂俊鎭�
+                    List<BaseTools> toolsList = baseToolsService.list(new LambdaQueryWrapper<BaseTools>()
+                            .eq(BaseTools::getToolCode, ExcelUtils.getCellValueAsString(cell0))
+                            .eq(BaseTools::getClassifyId, classify.getId())
+                            .eq(BaseTools::getToolModel, ExcelUtils.getCellValueAsString(cell11)));
+                    if (CollectionUtil.isEmpty(toolsList)) {
+                        //涓嶅瓨鍦ㄧ浉搴斿垁鍏凤紝鏂板
+                        baseToolsService.save(baseTools);
+                    } else {
+                        //瀛樺湪鐩稿簲鍒�鍏凤紝鏇存柊
+                        BaseTools tools = toolsList.get(0);
+                        baseTools.setId(tools.getId());
+                        baseToolsService.updateById(baseTools);
+                    }
+
+                    paraThreadingTool.setToolCode(baseTools.getId());
+                    ToolsConfigProperty configProperty = new ToolsConfigProperty()
+                            .setChineseName(ExcelUtils.getCellValueAsString(cell7))
+                            .setForeignLanguageName(ExcelUtils.getCellValueAsString(cell8))
+                            .setStandardLevel(ExcelUtils.getCellValueAsString(cell9))
+                            .setStandardCode(ExcelUtils.getCellValueAsString(cell10))
+                            .setToolModel(ExcelUtils.getCellValueAsString(cell11))
+                            .setPositionCode(ExcelUtils.getCellValueAsString(cell1))
+                            .setApplicationType("1");//1:閫氱敤宸ュ叿绫诲瀷
+                    //鏍规嵁鍒�鍏穒d銆佸垎绫籭d鏌ヨ閫氱敤鍙傛暟淇℃伅
+                    List<ToolsConfigProperty> configPropertyList = toolsConfigPropertyService.list(new LambdaQueryWrapper<ToolsConfigProperty>()
+                            .eq(ToolsConfigProperty::getToolCode, baseTools.getId())
+                            .eq(ToolsConfigProperty::getClassifyId, classify.getId())
+                            .eq(ToolsConfigProperty::getStatus, CommonConstant.STATUS_1));
+                    if (CollectionUtil.isEmpty(configPropertyList)) {
+                        //涓嶅瓨鍦ㄩ�氱敤鍙傛暟淇℃伅锛屾柊澧�
+                        configProperty.setStatus(CommonConstant.STATUS_1);
+                        configProperty.setToolCode(baseTools.getId());
+                        configProperty.setClassifyId(classify.getId());
+                        toolsConfigPropertyService.save(configProperty);
+                    } else {
+                        //瀛樺湪閫氱敤鍙傛暟淇℃伅锛屾洿鏂�
+                        ToolsConfigProperty property = configPropertyList.get(0);
+                        configProperty.setId(property.getId());
+                        toolsConfigPropertyService.updateById(configProperty);
+                    }
+
+                    List<ParaThreadingTool> paraThreadingToolList = paraThreadingToolService.list(new LambdaQueryWrapper<ParaThreadingTool>()
+                            .eq(ParaThreadingTool::getToolCode, baseTools.getId())
+                            .eq(ParaThreadingTool::getClassifyId, classify.getId())
+                            .eq(ParaThreadingTool::getToolModel, ExcelUtils.getCellValueAsString(cell11)));
+                    if (CollectionUtil.isNotEmpty(paraThreadingToolList)) {
+                        //瀛樺湪璇ヨ灪绾瑰垁鍏峰弬鏁颁俊鎭紝鏇存柊
+                        ParaThreadingTool threadingTool = paraThreadingToolList.get(0);
+                        paraThreadingTool.setId(threadingTool.getId());
+                    }
+
+                    Cell cell13 = row.getCell(13);//铻虹汗浠e彿
+                    if (cell13 == null || cell13.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗浠e彿涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setThreadCode(ExcelUtils.getCellValueAsString(cell13));
+                    }
+                    Cell cell14= row.getCell(14);//铻鸿窛
+                    if (cell14 == null || cell14.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻鸿窛涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setPitch(ExcelUtils.getCellValueAsString(cell14));
+                    }
+
+                    Cell cell15 = row.getCell(15);//铻虹汗鏃嬪悜
+                    if (cell15 == null || cell15.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗鏃嬪悜涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setRotationDirection(ExcelUtils.getCellValueAsString(cell15));
+                    }
+                    Cell cell16 = row.getCell(16);//铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇
+                    if (cell16 == null || cell16.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setTolerancezoneLevel(ExcelUtils.getCellValueAsString(cell16));
+                    }
+                    Cell cell17 = row.getCell(17);//鍒囧墛鍒冮暱
+                    if (cell17 == null || cell17.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒囧墛鍒冮暱涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setEdgeLength(ExcelUtils.getCellValueAsString(cell17));
+                    }
+                    Cell cell18 = row.getCell(18);//鍒�鍏锋�婚暱
+                    if (cell18 == null || cell18.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋�婚暱涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setTotalLength(ExcelUtils.getCellValueAsString(cell18));
+                    }
+
+                    Cell cell19 = row.getCell(19);//鍒�鍏锋潗鏂�
+                    if (cell19 == null || cell19.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鍒�鍏锋潗鏂欎负绌�! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setToolMaterial(ExcelUtils.getCellValueAsString(cell19));
+                    }
+                    Cell cell20 = row.getCell(20);//闆朵欢鏉愭枡
+                    paraThreadingTool.setPartMaterial(ExcelUtils.getCellValueAsString(cell20));
+                    Cell cell21 = row.getCell(21);//鏄惁娑傚眰
+                    if (cell21 == null || cell21.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏄惁娑傚眰涓虹┖! ");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setPaintcoatFlag(ExcelUtils.getCellValueAsString(cell21));
+                    }
+                    Cell cell22 = row.getCell(22);//澶栧舰灏哄
+                    paraThreadingTool.setExternalDimensions(ExcelUtils.getCellValueAsString(cell22));
+                    Cell cell23 = row.getCell(23);//鏌勯儴瑙勬牸
+                    if (cell23 == null || cell23.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,鏌勯儴瑙勬牸涓虹┖锛�");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setHandleSpecifications(ExcelUtils.getCellValueAsString(cell23));
+                    }
+                    Cell cell24 = row.getCell(24);//闄勫姞鎶�鏈潯浠�
+                    if (cell24 == null || cell24.getCellType() == CellType.BLANK) {
+                        errorMessage.add("绗�" + currentRowNum + "琛岋紝鏁版嵁瀵煎叆澶辫触,闄勫姞鎶�鏈潯浠朵负绌猴紒");
+                        errorLines++;
+                        continue;
+                    } else {
+                        paraThreadingTool.setTechnicalConditions(ExcelUtils.getCellValueAsString(cell24));
+                    }
+
+                    Cell cell25 = row.getCell(25);//闄勫姞鎶�鏈潯浠惰鏄�
+                    paraThreadingTool.setConditionsInfo(ExcelUtils.getCellValueAsString(cell25));
+                    Cell cell26 = row.getCell(26);//鍝佺墝
+                    paraThreadingTool.setBrand(ExcelUtils.getCellValueAsString(cell26));
+                    Cell cell27 = row.getCell(27);//鍒跺紡
+                    paraThreadingTool.setTypes(ExcelUtils.getCellValueAsString(cell27));
+                    Cell cell28 = row.getCell(28);//铻哄瓟绫诲瀷
+                    paraThreadingTool.setScrewHoleType(ExcelUtils.getCellValueAsString(cell28));
+                    Cell cell29 = row.getCell(29);//鍐峰嵈鏂瑰紡
+                    paraThreadingTool.setCoolingMethod(ExcelUtils.getCellValueAsString(cell29));
+                    Cell cell30 = row.getCell(30);//铻虹汗鏍囧噯
+                    paraThreadingTool.setThreadStandard(ExcelUtils.getCellValueAsString(cell30));
+                    Cell cell31 = row.getCell(31);//鎺掑睉妲藉瀷
+                    paraThreadingTool.setFluteSoltType(ExcelUtils.getCellValueAsString(cell31));
+                    Cell cell32 = row.getCell(32);//铻虹汗绫诲瀷
+                    paraThreadingTool.setThreadType(ExcelUtils.getCellValueAsString(cell32));
+                    Cell cell33 = row.getCell(33);//瀵煎悜灏哄
+                    paraThreadingTool.setGuidingSize(ExcelUtils.getCellValueAsString(cell33));
+                    Cell cell34 = row.getCell(34);//杩炴帴瀛斿緞
+                    paraThreadingTool.setConnectionAperture(ExcelUtils.getCellValueAsString(cell34));
+                    Cell cell35 = row.getCell(35);//杩炴帴閿Ы
+                    paraThreadingTool.setConnectingKeyway(ExcelUtils.getCellValueAsString(cell35));
+                    Cell cell36 = row.getCell(36);//闆嗗洟鍏徃缂栫爜
+                    paraThreadingTool.setGroupCompanyCode(ExcelUtils.getCellValueAsString(cell36));
+                    Cell cell37 = row.getCell(37);//闆嗗洟鍏徃鏍囪
+                    if (cell37 == null || cell37.getCellType() == CellType.BLANK) {
+                        //鏍囪涓虹┖锛屾嫾鎺�
+                        String sign = ExcelUtils.getCellValueAsString(cell7)//涓枃鍚嶇О
+                                + "-" + ExcelUtils.getCellValueAsString(cell11)//鍨嬪彿/鍥惧彿
+                                + "-" + ExcelUtils.getCellValueAsString(cell13)//铻虹汗浠e彿
+                                + "-" + ExcelUtils.getCellValueAsString(cell14);//铻鸿窛
+                        paraThreadingTool.setGroupCompanySign(sign);
+                    } else {
+                        paraThreadingTool.setGroupCompanySign(ExcelUtils.getCellValueAsString(cell37));
+                    }
+                    Cell cell38 = row.getCell(38);//宸ュ叿绠�绉�
+                    paraThreadingTool.setShortCalled(ExcelUtils.getCellValueAsString(cell38));
+
+                    paraThreadingToolImportList.add(paraThreadingTool);
+                    successLines++;
+                }
+            }
+            paraThreadingToolService.saveOrUpdateBatch(paraThreadingToolImportList);
+            if (successLines == dataLines) {
+                return Result.OK("鍏�" + dataLines + "琛屾暟鎹叏閮ㄥ鍏ユ垚鍔燂紒");
+            } else {
+                JSONObject result = new JSONObject(5);
+                result.put("successCount", successLines);
+                result.put("msg", "鎬讳笂浼犺鏁帮細" + dataLines + "锛屾垚鍔熷鍏ヨ鏁帮細" + successLines);
+                result.put("errorMsg", errorMessage);
+                String fileUrl = PmsUtil.saveErrorMsgByList(errorMessage, "userImportExcelErrorLog");
+                int lastIndex = fileUrl.lastIndexOf(File.separator);
+                String fileName = fileUrl.substring(lastIndex + 1);
+                result.put("fileUrl", "/sys/common/static/" + fileUrl);
+                result.put("fileName", fileName);
+                Result res = Result.ok(result);
+                res.setCode(201);
+                res.setMessage("鏂囦欢瀵煎叆鎴愬姛锛屼絾鏈夐敊璇��");
+                return res;
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+    
+}

--
Gitblit v1.9.3