Эх сурвалжийг харах

+ 施工项目坐标配置

chen.cheng 5 сар өмнө
parent
commit
390ef5c585

+ 16 - 5
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/web/controller/cons/ConsUnitInfoController.java

@@ -4,6 +4,9 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.utils.StringMatchUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -40,7 +43,6 @@ public class ConsUnitInfoController extends BaseController {
      */
     @GetMapping("/list")
     public TableDataInfo list(ConsUnitInfo consUnitInfo) {
-        startPage();
         List<ConsUnitInfo> list = consUnitInfoService.selectConsUnitInfoList(consUnitInfo);
         return getDataTable(list);
     }
@@ -60,10 +62,19 @@ public class ConsUnitInfoController extends BaseController {
      * 获取施工单元详细信息
      */
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") String id) {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(consUnitInfoService.selectConsUnitInfoById(id));
     }
 
+    @GetMapping("/list/exclude/{id}")
+    public AjaxResult excludeChild(@PathVariable(value = "id") Long consUnitId)
+    {
+        List<ConsUnitInfo> consUnitInfos = consUnitInfoService.selectConsUnitInfoList(new ConsUnitInfo());
+        consUnitInfos.removeIf(d -> d.getId().intValue() == consUnitId || ArrayUtils.contains(
+                StringMatchUtils.split(d.getAncestors(), ","), consUnitId + ""));
+        return success(consUnitInfos);
+    }
+
     /**
      * 新增施工单元
      */
@@ -86,8 +97,8 @@ public class ConsUnitInfoController extends BaseController {
      * 删除施工单元
      */
     @Log(title = "施工单元", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable String[] ids) {
-        return toAjax(consUnitInfoService.deleteConsUnitInfoByIds(ids));
+    @DeleteMapping("/{id}")
+    public AjaxResult remove(@PathVariable("id") Long id) {
+        return toAjax(consUnitInfoService.deleteConsUnitInfoById(id));
     }
 }

+ 8 - 8
bd-park/park-backend/park-application/src/main/resources/application-hm.yml

@@ -3,7 +3,7 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 192.168.0.100
+    host: 127.0.0.1
     # 端口,默认为6379
     port: 6379
     # 数据库索引
@@ -28,16 +28,16 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://192.168.0.100:13306/hs_cps?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://127.0.0.1:3306/hs_bds?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: ct!QAZ
+        password: 123456
       # 从库数据源
-      slave:
+      pkb:
         # 从数据源开关/默认关闭
-        enabled: false
-        url:
-        username:
-        password:
+        enabled: true
+        url: jdbc:mysql://127.0.0.1:3306/hs_bds?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: root
+        password: 123456
       # 初始连接数
       initialSize: 5
       # 最小连接池数量

+ 1 - 1
bd-park/park-backend/park-application/src/main/resources/application.yml

@@ -59,7 +59,7 @@ spring:
     basename: i18n/messages
     encoding: UTF-8
   profiles:
-    active: druid
+    active: hm
   # 文件上传
   servlet:
     multipart:

+ 3 - 0
bd-park/park-backend/park-application/src/main/resources/i18n/messages.properties

@@ -36,3 +36,6 @@ no.update.permission=您没有修改数据的权限,请联系管理员添加
 no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
 no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
 no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+
+##cons
+cons.unit.modify.not.self=Failed to modify the construction unit. The upper construction unit cannot be yourself.

+ 37 - 0
bd-park/park-backend/park-application/src/main/resources/i18n/messages_en.properties

@@ -0,0 +1,37 @@
+#错误消息
+not.null=* 必须填写
+user.jcaptcha.error=验证码错误
+user.jcaptcha.expire=验证码已失效
+user.not.exists=用户不存在/密码错误
+user.password.not.match=用户不存在/密码错误
+user.password.retry.limit.count=密码输入错误{0}次
+user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
+user.password.delete=对不起,您的账号已被删除
+user.blocked=用户已封禁,请联系管理员
+role.blocked=角色已封禁,请联系管理员
+login.blocked=很遗憾,访问IP已被列入系统黑名单
+user.logout.success=退出成功
+length.not.valid=长度必须在{min}到{max}个字符之间
+user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
+user.password.not.valid=* 5-50个字符
+user.email.not.valid=邮箱格式错误
+user.mobile.phone.number.not.valid=手机号格式错误
+user.login.success=登录成功
+user.register.success=注册成功
+user.notfound=请重新登录
+user.forcelogout=管理员强制退出,请重新登录
+user.unknown.error=未知错误,请重新登录
+##文件上传消息
+upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
+upload.filename.exceed.length=上传的文件名最长{0}个字符
+##权限
+no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
+no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
+no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
+no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
+no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
+no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+##cons
+cons.unit.modify.not.self=Failed to modify the construction unit {0}. The upper construction unit cannot be yourself.
+cons.unit.delete.no.child=There are lower-level construction units and deletion is not allowed.
+cons.unit.has.no.hole=The construction unit has a designed pile hole, which cannot be deleted.

+ 37 - 0
bd-park/park-backend/park-application/src/main/resources/i18n/messages_zh.properties

@@ -0,0 +1,37 @@
+#错误消息
+not.null=* 必须填写
+user.jcaptcha.error=验证码错误
+user.jcaptcha.expire=验证码已失效
+user.not.exists=用户不存在/密码错误
+user.password.not.match=用户不存在/密码错误
+user.password.retry.limit.count=密码输入错误{0}次
+user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
+user.password.delete=对不起,您的账号已被删除
+user.blocked=用户已封禁,请联系管理员
+role.blocked=角色已封禁,请联系管理员
+login.blocked=很遗憾,访问IP已被列入系统黑名单
+user.logout.success=退出成功
+length.not.valid=长度必须在{min}到{max}个字符之间
+user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
+user.password.not.valid=* 5-50个字符
+user.email.not.valid=邮箱格式错误
+user.mobile.phone.number.not.valid=手机号格式错误
+user.login.success=登录成功
+user.register.success=注册成功
+user.notfound=请重新登录
+user.forcelogout=管理员强制退出,请重新登录
+user.unknown.error=未知错误,请重新登录
+##文件上传消息
+upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
+upload.filename.exceed.length=上传的文件名最长{0}个字符
+##权限
+no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
+no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
+no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
+no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
+no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
+no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
+##cons
+cons.unit.modify.not.self=修改施工{0}单元失败,上级施工单元不能是自己。
+cons.unit.delete.no.child=存在下级施工单元,不允许删除。
+cons.unit.has.no.hole=施工单元存在设计桩孔,不允许删除。

+ 25 - 0
bd-park/park-backend/park-common/src/main/java/com/huashe/park/common/i18n/MessageUtils.java

@@ -0,0 +1,25 @@
+package com.huashe.park.common.i18n;
+
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+import com.huashe.park.common.SpringBeanUtils;
+
+/**
+ * 获取i18n资源文件
+ * 
+ * @author ruoyi
+ */
+public class MessageUtils {
+    /**
+     * 根据消息键和参数 获取消息 委托给spring messageSource
+     *
+     * @param code 消息键
+     * @param args 参数
+     * @return 获取国际化翻译值
+     */
+    public static String message(String code, Object... args) {
+        MessageSource messageSource = SpringBeanUtils.getBean(MessageSource.class);
+        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
+    }
+}

+ 9 - 3
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/mapper/ConsUnitInfoMapper.java

@@ -18,7 +18,7 @@ public interface ConsUnitInfoMapper
      * @param id 施工单元主键
      * @return 施工单元
      */
-    public ConsUnitInfo selectConsUnitInfoById(String id);
+    public ConsUnitInfo selectConsUnitInfoById(Long id);
 
     /**
      * 查询施工单元列表
@@ -50,7 +50,7 @@ public interface ConsUnitInfoMapper
      * @param id 施工单元主键
      * @return 结果
      */
-    public int deleteConsUnitInfoById(String id);
+    public int deleteConsUnitInfoById(Long id);
 
     /**
      * 批量删除施工单元
@@ -58,5 +58,11 @@ public interface ConsUnitInfoMapper
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteConsUnitInfoByIds(String[] ids);
+    public int deleteConsUnitInfoByIds(Long[] ids);
+
+
+    public int hasChildById(Long id);
+
+    public int hasHoleById(Long id);
+
 }

+ 10 - 7
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/IConsUnitInfoService.java

@@ -1,24 +1,23 @@
 package com.huashe.park.core.service;
 
-import com.huashe.park.domain.entity.ConsUnitInfo;
-
 import java.util.List;
 
+import com.huashe.park.domain.entity.ConsUnitInfo;
+
 /**
  * 施工单元Service接口
  * 
  * @author ruoyi
  * @date 2025-02-14
  */
-public interface IConsUnitInfoService 
-{
+public interface IConsUnitInfoService {
     /**
      * 查询施工单元
      * 
      * @param id 施工单元主键
      * @return 施工单元
      */
-    public ConsUnitInfo selectConsUnitInfoById(String id);
+    public ConsUnitInfo selectConsUnitInfoById(Long id);
 
     /**
      * 查询施工单元列表
@@ -50,7 +49,11 @@ public interface IConsUnitInfoService
      * @param ids 需要删除的施工单元主键集合
      * @return 结果
      */
-    public int deleteConsUnitInfoByIds(String[] ids);
+    public int deleteConsUnitInfoByIds(Long[] ids);
+
+    public boolean hasChildById(Long id);
+
+    boolean hasHoleById(Long id);
 
     /**
      * 删除施工单元信息
@@ -58,5 +61,5 @@ public interface IConsUnitInfoService
      * @param id 施工单元主键
      * @return 结果
      */
-    public int deleteConsUnitInfoById(String id);
+    public int deleteConsUnitInfoById(Long id);
 }

+ 27 - 3
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/impl/ConsUnitInfoServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.huashe.common.exception.ServiceException;
+import com.huashe.park.common.i18n.MessageUtils;
 import com.huashe.park.core.mapper.ConsUnitInfoMapper;
 import com.huashe.park.core.service.IConsUnitInfoService;
 import com.huashe.park.domain.entity.ConsUnitInfo;
@@ -17,6 +19,7 @@ import com.huashe.park.domain.entity.ConsUnitInfo;
  */
 @Service
 public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
+
     @Autowired
     private ConsUnitInfoMapper consUnitInfoMapper;
 
@@ -27,7 +30,7 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
      * @return 施工单元
      */
     @Override
-    public ConsUnitInfo selectConsUnitInfoById(String id) {
+    public ConsUnitInfo selectConsUnitInfoById(Long id) {
         return consUnitInfoMapper.selectConsUnitInfoById(id);
     }
 
@@ -50,6 +53,8 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
      */
     @Override
     public int insertConsUnitInfo(ConsUnitInfo consUnitInfo) {
+        ConsUnitInfo parentConsUnit = consUnitInfoMapper.selectConsUnitInfoById(consUnitInfo.getParentId());
+        consUnitInfo.setAncestors(parentConsUnit.getAncestors() + "," + parentConsUnit.getId());
         return consUnitInfoMapper.insertConsUnitInfo(consUnitInfo);
     }
 
@@ -61,6 +66,9 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
      */
     @Override
     public int updateConsUnitInfo(ConsUnitInfo consUnitInfo) {
+        if (consUnitInfo.getParentId().equals(consUnitInfo.getId())) {
+            throw new ServiceException(MessageUtils.message("cons.unit.modify.not.self", consUnitInfo.getName()));
+        }
         return consUnitInfoMapper.updateConsUnitInfo(consUnitInfo);
     }
 
@@ -71,10 +79,20 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
      * @return 结果
      */
     @Override
-    public int deleteConsUnitInfoByIds(String[] ids) {
+    public int deleteConsUnitInfoByIds(Long[] ids) {
         return consUnitInfoMapper.deleteConsUnitInfoByIds(ids);
     }
 
+    @Override
+    public boolean hasChildById(Long id) {
+        return consUnitInfoMapper.hasChildById(id) > 0;
+    }
+
+    @Override
+    public boolean hasHoleById(Long id) {
+        return consUnitInfoMapper.hasHoleById(id) > 0;
+    }
+
     /**
      * 删除施工单元信息
      * 
@@ -82,7 +100,13 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
      * @return 结果
      */
     @Override
-    public int deleteConsUnitInfoById(String id) {
+    public int deleteConsUnitInfoById(Long id) {
+        if (hasChildById(id)) {
+            throw new ServiceException(MessageUtils.message("cons.unit.delete.no.child"));
+        }
+        if (hasHoleById(id)) {
+            throw new ServiceException(MessageUtils.message("cons.unit.has.no.hole"));
+        }
         return consUnitInfoMapper.deleteConsUnitInfoById(id);
     }
 }

+ 13 - 3
bd-park/park-backend/park-core/src/main/resources/mapper/cons/ConsUnitInfoMapper.xml

@@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
     
-    <select id="selectConsUnitInfoById" parameterType="String" resultMap="ConsUnitInfoResult">
+    <select id="selectConsUnitInfoById" resultMap="ConsUnitInfoResult">
         <include refid="selectConsUnitInfoVo"/>
         where id = #{id}
     </select>
@@ -79,14 +79,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </update>
 
-    <delete id="deleteConsUnitInfoById" parameterType="String">
+    <delete id="deleteConsUnitInfoById" >
         delete from cons_cons_unit_info where id = #{id}
     </delete>
 
-    <delete id="deleteConsUnitInfoByIds" parameterType="String">
+    <delete id="deleteConsUnitInfoByIds" parameterType="Long">
         delete from cons_cons_unit_info where id in 
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
+
+    <select id="hasChildById" parameterType="Long" resultType="int">
+        select count(1) from cons_cons_unit_info
+        where parent_id = #{id} limit 1
+    </select>
+
+    <select id="hasHoleById" parameterType="Long" resultType="int">
+        select count(1) from cons_cons_unit_hole_rel
+        where hole_id = #{id} limit 1
+    </select>
 </mapper>

+ 28 - 7
bd-park/park-backend/park-domain/src/main/java/com/huashe/park/domain/entity/ConsUnitInfo.java

@@ -1,10 +1,11 @@
 package com.huashe.park.domain.entity;
 
-import com.huashe.common.annotation.Excel;
-import com.huashe.common.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
+import com.huashe.common.annotation.Excel;
+import com.huashe.common.domain.BaseEntity;
+
 /**
  * 施工单元对象 cons_cons_unit_info
  * 
@@ -15,7 +16,7 @@ public class ConsUnitInfo extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /** 编号 */
-    private String id;
+    private Long id;
 
     /** 强夯类型 */
     @Excel(name = "强夯类型")
@@ -41,14 +42,18 @@ public class ConsUnitInfo extends BaseEntity {
     @Excel(name = "施工单元名称")
     private String name;
 
-    public void setId(String id) {
-        this.id = id;
-    }
+    private String ancestors;
+
+    private Long projectId;
 
-    public String getId() {
+    public Long getId() {
         return id;
     }
 
+    public void setId(Long id) {
+        this.id = id;
+    }
+
     public void setPenningType(Integer penningType) {
         this.penningType = penningType;
     }
@@ -97,6 +102,22 @@ public class ConsUnitInfo extends BaseEntity {
         return name;
     }
 
+    public String getAncestors() {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors) {
+        this.ancestors = ancestors;
+    }
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId())