From a3fa685014ca577779c47aa540a7735ae58fb30d Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期一, 26 五月 2025 11:49:18 +0800
Subject: [PATCH] 工具入库申请功能

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java |  143 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 91 insertions(+), 52 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
index 26f4bef..d19e690 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java
@@ -13,16 +13,20 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.ImportExcelUtil;
 import org.jeecg.common.util.StrUtils;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.system.mapper.SysDictItemMapper;
+import org.jeecg.modules.system.mapper.SysDictMapper;
 import org.jeecg.modules.tms.entity.ToolsClassify;
 import org.jeecg.modules.tms.mapper.ToolsClassifyMapper;
 import org.jeecg.modules.tms.service.IToolsClassifyService;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -49,6 +53,12 @@
 
     @Value("${jeecg.path.upload}")
     private String upLoadPath;
+
+    @Autowired
+    private SysDictMapper sysDictMapper;
+
+    @Autowired
+    private SysDictItemMapper sysDictItemMapper;
     @Override
     public IPage<ToolsClassify> queryPageList(Page<ToolsClassify> page, Map<String, String[]> parameterMap) {
         QueryWrapper<ToolsClassify> queryWrapper = Wrappers.query();
@@ -68,7 +78,7 @@
         return this.baseMapper.queryPageList(page, queryWrapper);
     }
     public List<CommonGenericTree> loadTree() {
-        List<ToolsClassify> toolsClassifyList = this.list();
+        List<ToolsClassify> toolsClassifyList = this.lambdaQuery().orderByAsc(ToolsClassify::getId).list();
         List<CommonGenericTree> commonGenericTreeList = loadTree(toolsClassifyList);
         return commonGenericTreeList;
     }
@@ -78,20 +88,15 @@
         List<CommonGenericTree> list = new ArrayList<>();
         Map<String, CommonGenericTree> map = new HashMap<>();
         CommonGenericTree<ToolsClassify> node = new CommonGenericTree<>();
-        node.setKey("-1");
-        node.setTitle("宸ュ叿鍒嗙被");
-        node.setRField1("");
-        node.setRField2("");
-        node.setEntity(new ToolsClassify().setId("-1").setClassifyId("0").setTypeName("宸ュ叿鍒嗙被").setLeafFlag("2"));
-        list.add(node);
         if (CollectionUtils.isNotEmpty(toolsClassifyList)) {
             CommonGenericTree<ToolsClassify> tcNode;
+            CommonGenericTree<ToolsClassify> childNode;
             for (ToolsClassify tc : toolsClassifyList) {
-                if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) {
+                ToolsClassify child = tc;
+                if (StrUtils.isBlankOrNull(tc.getParentId())) {
                     tcNode = new CommonGenericTree<>();
                     tcNode.setKey(tc.getId());
                     tcNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName());
-                    tcNode.setParentId(node.getKey());
                     tcNode.setIcon("");
                     tcNode.setType(1);
                     tcNode.setValue(tc.getId());
@@ -99,32 +104,23 @@
                     tcNode.setRField1(tc.getClassifyId());
                     tcNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId());
                     tcNode.setEntity(tc);
-                    node.addChildren(tcNode);
+                    list.add(tcNode);
                     map.put(tc.getId(), tcNode);
-                }
-            }
-            CommonGenericTree<ToolsClassify> childNode;
-            for (ToolsClassify tc : toolsClassifyList) {
-                ToolsClassify child = tc;
-                if (map.containsKey(child.getParentId())) {
-                    if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) {
-                        toolsClassify = tc;
-                    } else {
-                        tcNode = map.get(child.getParentId());
-                        childNode = new CommonGenericTree<>();
-                        childNode.setKey(tc.getId());
-                        childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName());
-                        childNode.setParentId(tc.getParentId());
-                        childNode.setIcon("");
-                        childNode.setType(0);
-                        childNode.setValue(tc.getId());
-                        childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false);
-                        childNode.setRField1(tc.getClassifyId());
-                        childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId());
-                        childNode.setEntity(tc);
-                        tcNode.addChildren(childNode);
-                        map.put(child.getId(), childNode);
-                    }
+                } else {
+                    tcNode = map.get(child.getParentId());
+                    childNode = new CommonGenericTree<>();
+                    childNode.setKey(tc.getId());
+                    childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName());
+                    childNode.setParentId(tc.getParentId());
+                    childNode.setIcon("");
+                    childNode.setType(0);
+                    childNode.setValue(tc.getId());
+                    childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false);
+                    childNode.setRField1(tc.getClassifyId());
+                    childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId());
+                    childNode.setEntity(tc);
+                    tcNode.addChildren(childNode);
+                    map.put(child.getId(), childNode);
                 }
             }
         }
@@ -188,6 +184,7 @@
             // 鑾峰彇绗竴涓伐浣滆〃
             Sheet sheet = workbook.getSheetAt(0);
             for(Row row : sheet) {
+                int rowNum = row.getRowNum()+1;
                 ToolsClassify newToolsClassify = new ToolsClassify();
                 if (row.getRowNum() == 0)
                     continue;
@@ -197,6 +194,8 @@
                 String name = nameCell.getStringCellValue();
                 Cell parentNumCell = row.getCell(2);
                 String parentNum = parentNumCell.getStringCellValue();
+                Cell seqCell = row.getCell(3);
+                String seq = seqCell.getStringCellValue();
                 Cell leafFlagCell = row.getCell(4);
                 String leafFlag = leafFlagCell.getStringCellValue();
                 Cell paraTypeFlagCell = row.getCell(5);
@@ -207,47 +206,87 @@
                 }else if("鍚�".equals(leafFlag)){
                     leafFlag = "2";
                 }else {
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鏄惁涓哄彾瀛愯妭鐐瑰~鍐欓敊璇紝璇峰~鍐欌�樻槸鈥欐垨鈥欏惁鈥�");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鏄惁涓哄彾瀛愯妭鐐瑰~鍐欓敊璇紝璇峰~鍐欌�樻槸鈥欐垨鈥欏惁鈥�");
                     errorLines++;
                     continue;
                 }
                 if(StringUtils.isBlank(num)){
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被缂栫爜涓嶈兘涓虹┖");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被缂栫爜涓嶈兘涓虹┖");
                     errorLines++;
                     continue;
                 }
                 if(StringUtils.isBlank(name)){
-                    errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被鍚嶇О涓嶈兘涓虹┖");
+                    errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被鍚嶇О涓嶈兘涓虹┖");
                     errorLines++;
                     continue;
                     //鍒ゆ柇鏄惁鏈変笂绾у垎绫�
                 }
+                //鍒ゆ柇鍙傛暟妯℃澘鏄惁瀛樺湪
+                if(StringUtils.isNotBlank(paraTypeFlag)){
+                    List<DictModel> dictList = sysDictMapper.queryDictItemValueByCodeAndText("tool_para_type",paraTypeFlag);
+                    if(CollectionUtils.isNotEmpty(dictList)){
+                        paraTypeFlag = dictList.get(0).getValue();
+                    }else {
+                        errorMessage.add("绗�"+rowNum+"琛岋紝鍙傛暟妯℃澘涓嶅瓨鍦�");
+                        errorLines++;
+                        continue;
+                    }
+                }
+
                 if(StringUtils.isNotBlank(parentNum)){
                     ToolsClassify toolsClassify = this.lambdaQuery()
                             .eq(ToolsClassify::getClassifyId,parentNum)
                             .eq(ToolsClassify::getLeafFlag,"2").one();
                     if(toolsClassify == null){
-                        errorMessage.add("绗�"+row.getRowNum()+1+"琛岋紝鍒嗙被缂栫爜涓�"+num+"鐨勬暟鎹殑涓婄骇鍒嗙被缂栧彿涓嶅瓨鍦ㄦ垨涓哄彾瀛愯妭鐐�");
+                        errorMessage.add("绗�"+rowNum+"琛岋紝鍒嗙被缂栫爜涓�"+num+"鐨勬暟鎹殑涓婄骇鍒嗙被缂栧彿涓嶅瓨鍦ㄦ垨涓哄彾瀛愯妭鐐�");
                         errorLines++;
                     }else {
-                        newToolsClassify.setClassifyId(num)
-                                .setTypeName(name)
-                                .setStatus("1")
-                                .setLeafFlag(leafFlag)
-                                .setParentId(toolsClassify.getId())
-                                .setParaTypeFlag(paraTypeFlag);
-                        this.save(newToolsClassify);
+                        //鍒ゆ柇缂栫爜鏄惁閲嶅锛岄噸澶嶇殑杩涜鏇存柊
+                        ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
+                        if(tools != null){
+                            tools.setClassifyId(num)
+                                    .setTypeName(name)
+                                    .setStatus("1")
+                                    .setLeafFlag(leafFlag)
+                                    .setSeq(seq)
+                                    .setParentId(toolsClassify.getId())
+                                    .setParaTypeFlag(paraTypeFlag);
+                            this.updateById(tools);
+                        }else{
+                            newToolsClassify.setClassifyId(num)
+                                    .setTypeName(name)
+                                    .setStatus("1")
+                                    .setLeafFlag(leafFlag)
+                                    .setSeq(seq)
+                                    .setParentId(toolsClassify.getId())
+                                    .setParaTypeFlag(paraTypeFlag);
+                            this.save(newToolsClassify);
+                        }
                         successLines++;
                     }
                     //濡傛灉娌″~鍐欎笂绾у垎绫荤紪鍙凤紝鍒欐柊澧炲埌鏍硅妭鐐�
                 }else {
-                    newToolsClassify.setClassifyId(num)
-                            .setTypeName(name)
-                            .setStatus("1")
-                            .setParentId("-1")
-                            .setLeafFlag(leafFlag)
-                            .setParaTypeFlag(paraTypeFlag);
-                    this.save(newToolsClassify);
+                    //鍒ゆ柇缂栫爜鏄惁閲嶅锛岄噸澶嶇殑杩涜鏇存柊
+                    ToolsClassify tools = this.lambdaQuery().eq(ToolsClassify::getClassifyId,num).one();
+                    if(tools != null){
+                        tools.setClassifyId(num)
+                                .setTypeName(name)
+                                .setStatus("1")
+                                .setLeafFlag(leafFlag)
+                                .setSeq(seq)
+                                .setParentId("-1")
+                                .setParaTypeFlag(paraTypeFlag);
+                        this.updateById(tools);
+                    }else {
+                        newToolsClassify.setClassifyId(num)
+                                .setTypeName(name)
+                                .setStatus("1")
+                                .setParentId("-1")
+                                .setSeq(seq)
+                                .setLeafFlag(leafFlag)
+                                .setParaTypeFlag(paraTypeFlag);
+                        this.save(newToolsClassify);
+                    }
                     successLines++;
                 }
             }

--
Gitblit v1.9.3