Browse Source

字典项接口

qinhouyu 1 year ago
parent
commit
cd13f6984e

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java

@@ -113,4 +113,13 @@ public class SysDictDataController extends BaseController {
         dictDataService.deleteDictDataByIds(dictCodes);
         return R.ok();
     }
+
+    /**
+     * 字典类型(民用)
+     *
+     */
+    @GetMapping("/dictList/{enginType}")
+    public R dictList(@PathVariable String[] enginType) {
+        return R.ok(dictDataService.dictList(enginType));
+    }
 }

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典表 数据层
@@ -13,7 +15,7 @@ import java.util.List;
  * @author Lion Li
  */
 public interface SysDictDataMapper extends BaseMapperPlus<SysDictDataMapper, SysDictData, SysDictData> {
-
+    List<Map<String,Object>> dictList(@Param("enginType") String[] enginType);
     default List<SysDictData> selectDictDataByType(String dictType) {
         return selectList(
             new LambdaQueryWrapper<SysDictData>()

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.page.TableDataInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典 业务层
@@ -63,4 +64,8 @@ public interface ISysDictDataService {
      * @return 结果
      */
     List<SysDictData> updateDictData(SysDictData dictData);
+
+
+
+    List<Map<String,Object>> dictList(String[] enginType);
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.cache.annotation.CachePut;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典 业务层处理
@@ -127,4 +128,9 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
         throw new ServiceException("操作失败");
     }
 
+    @Override
+    public List<Map<String, Object>> dictList(String[] enginType) {
+        return baseMapper.dictList(enginType);
+    }
+
 }

+ 96 - 3
ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDictDataMapper">
 
     <resultMap type="SysDictData" id="SysDictDataResult">
@@ -19,5 +19,98 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
+    <select id="dictList" resultType="java.util.Map">
+        select
+        t.label,
+        t.value,
+        t.enginClassification,
+        t.enginType,
 
-</mapper> 
+        CONCAT_WS('/', (SELECT dict_name from sys_dict_type WHERE dict_type = t.enginType), (SELECT dict_name from sys_dict_type WHERE dict_type = t.enginClassification), t.label) AS name
+
+
+        from (
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_indoor_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_courtyard_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_overhead' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_indoor_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_courtyard_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_overhead'
+        UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'pipe_jack' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'pipe_jack'
+        UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'engineering_infrastructure' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'engineering_infrastructure'
+        ) as t where 1=1
+        <if test="enginType != null and enginType.length > 0">
+            and t.enginType in
+            <foreach item="item" index="index" collection="enginType" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+
+        </if>
+    </select>
+</mapper>

+ 68 - 66
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringPipeJackingServiceImpl.java

@@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.framework.obs.ObsService;
 import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.ZEngineeringNode;
 import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
@@ -209,94 +210,95 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
         return flag;
     }
 
-    /**
-     * 修改顶管工程
-     */
-    @Override
-    @Transactional(rollbackFor=Exception.class)
-    public Boolean updateByBo(ZEngineeringPipeJackingBo bo) {
-        ZEngineeringPipeJacking update = BeanUtil.toBean(bo, ZEngineeringPipeJacking.class);
-        validEntityBeforeSave(update);
-        //民用
-        if ("民用工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getCivil(bo.getEnginId());
-            if (!civil.isEmpty()){
-                update.setEnginAddre((String) civil.get(0).get("name"));
-            }
-        }
-        //市政
-        else if("市政工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId());
-            if (!civil.isEmpty()){
+    private ZEngineeringPipeJacking updateEnginAddre(ZEngineeringPipeJacking update, String type, String enginId) {
+        List<Map<String, Object>> civil = new ArrayList<>();
+
+        if ("民用工程".equals(type)) {
+            civil = baseMapper.getCivil(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginAddre((String) civil.get(0).get("name"));
             }
-        }
-        //工业
-        else if("工业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId());
-            if (!civil.isEmpty()){
+        } else if ("市政工程".equals(type) || "工业工程".equals(type)) {
+            civil = baseMapper.getSg(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginAddre((String) civil.get(0).get("name"));
             }
-        }
-        // 危险
-        else if("危险作业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getDangerous(bo.getEnginId());
-            if (!civil.isEmpty()){
+        } else if ("危险作业工程".equals(type)) {
+            civil = baseMapper.getDangerous(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginName((String) civil.get(0).get("name"));
                 update.setEnginAddre((String) civil.get(0).get("address"));
             }
-        }
-        //基建
-        else if("基建作业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getInfrastructure(bo.getEnginId());
-            if (!civil.isEmpty()){
+        } else if ("基建作业工程".equals(type)) {
+            civil = baseMapper.getInfrastructure(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginName((String) civil.get(0).get("name"));
                 update.setEnginAddre((String) civil.get(0).get("address"));
             }
         }
+        return update;
+    }
+
+
+
+    /**
+     * 修改顶管工程
+     */
+    @Override
+    @Transactional(rollbackFor=Exception.class)
+    public Boolean updateByBo(ZEngineeringPipeJackingBo bo) {
+        ZEngineeringPipeJacking update = BeanUtil.toBean(bo, ZEngineeringPipeJacking.class);
+        validEntityBeforeSave(update);
+        // 调用新方法
+        update = updateEnginAddre(update, bo.getType(), bo.getEnginId());
         bo.getzEngineeringNodeBo().setCivliId(bo.getId());
         bo.getzEngineeringNodeBo().setCreateTime(bo.getCreateTime());
         nodeService.update(bo.getzEngineeringNodeBo());
         int i = baseMapper.updateById(update);
         if (i>0){
-            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            this.doPhotos(update,bo);
+        }
+        return i>0;
+    }
 
-            // 查询数据库中已存在的文件列表
-            ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
-            bo1.setParentId(update.getId());
-            List<String> existingPhotos = photoService.queryList(bo1).stream()
-                .map(ZEngiineeringPhotoVo::getPicUrl)
-                .collect(Collectors.toList());
+    private void doPhotos(ZEngineeringPipeJacking update,ZEngineeringPipeJackingBo bo) {
+        List<ZEngiineeringPhoto> list = new ArrayList<>();
 
-            // 插入前端传来的新文件
-            for (ZFileBo pic : bo.getFiles()) {
-                if (!existingPhotos.contains(pic)) {
-                    ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
-                    newPhoto.setParentId(bo.getId());
-                    newPhoto.setPicUrl(pic.getUrl());
-                    newPhoto.setFileName(pic.getName());
-                    newPhoto.setCreateBy(String.valueOf(LoginHelper.getUserId()));
-                    newPhoto.setCreateTime(new Date());
-                    list.add(newPhoto);
-                }
-            }
+        // 查询数据库中已存在的文件列表
+        ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+        bo1.setParentId(update.getId());
+        bo1.setCreateTime(update.getCreateTime());
+        List<String> existingPhotos = photoService.queryList(bo1).stream()
+            .map(ZEngiineeringPhotoVo::getPicUrl)
+            .collect(Collectors.toList());
 
-            // 删除数据库中多余的文件
-            List<String> photosToDelete = existingPhotos.stream()
-                .filter(pic -> !bo.getFiles().contains(pic))
-                .collect(Collectors.toList());
-            if (!photosToDelete.isEmpty()) {
-                photosToDelete.forEach(item->{
-                    photoService.deleteWithValidByurls(item);
-                });
+        // 插入前端传来的新文件
+        for (ZFileBo pic : bo.getFiles()) {
+            if (!existingPhotos.contains(pic)) {
+                ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
+                newPhoto.setParentId(bo.getId());
+                newPhoto.setPicUrl(pic.getUrl());
+                newPhoto.setFileName(pic.getName());
+                newPhoto.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                newPhoto.setCreateTime(new Date());
+                list.add(newPhoto);
             }
+        }
 
-            // 批量插入新图片
-            if (!list.isEmpty()) {
-                photoService.insertBatch(list);
-            }
+        // 删除数据库中多余的文件
+        List<String> photosToDelete = existingPhotos.stream()
+            .filter(pic -> !bo.getFiles().contains(pic))
+            .collect(Collectors.toList());
+        if (!photosToDelete.isEmpty()) {
+            photosToDelete.forEach(item->{
+                photoService.deleteWithValidByurls(item);
+            });
+        }
+
+        // 批量插入新图片
+        if (!list.isEmpty()) {
+            photoService.insertBatch(list);
         }
-        return i>0;
     }
 
     /**