Browse Source

建筑物优化

guarantee-lsq 1 year ago
parent
commit
7715c669f3

+ 42 - 0
platform-dao/src/main/java/com/platform/dao/dto/preparation/BuildingDTO.java

@@ -0,0 +1,42 @@
+package com.platform.dao.dto.preparation;
+
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @Description 筹建管理DTO
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class BuildingDTO extends BaseDTO implements Serializable {
+
+    private String id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 排序
+     */
+    private Integer sort;
+    /**
+     * 上层位置id
+     */
+    private String parentId;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 上层类型名称
+     */
+    private String parentName;
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbPositionDTO.java

@@ -114,4 +114,5 @@ public class SbPositionDTO extends BaseDTO implements Serializable {
     private DataScope dataScope;
 
 
+
 }

+ 0 - 5
platform-dao/src/main/java/com/platform/dao/entity/firm/FirmProducer.java

@@ -101,9 +101,4 @@ public class FirmProducer implements Serializable {
     @Transient
     private DataScope dataScope;
 
-    /**
-     * 大类类型 1 生产厂商 2 建筑物
-     */
-    private Integer parentType;
-
 }

+ 80 - 0
platform-dao/src/main/java/com/platform/dao/entity/preparation/Building.java

@@ -0,0 +1,80 @@
+package com.platform.dao.entity.preparation;
+
+import com.platform.common.bean.DataScope;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 筹建管理实体类
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_building")
+public class Building implements Serializable{
+    /**
+     * 位置id
+     */
+    @Id
+    private String id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 排序
+     */
+    private Integer sort;
+    /**
+     * 上层位置id
+     */
+    private String parentId;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 修改人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 上层类型名称
+     */
+    @Transient
+    private String parentName;
+    /**
+     * 创建人姓名
+     */
+    private String createdUserName;
+    /**
+     * 修改人姓名
+     */
+    private String updateUserName;
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbPosition.java

@@ -121,4 +121,5 @@ public class SbPosition implements Serializable {
     @Transient
     private DataScope dataScope;
 
+
 }

+ 30 - 0
platform-dao/src/main/java/com/platform/dao/mapper/preparation/BuildingMapper.java

@@ -0,0 +1,30 @@
+package com.platform.dao.mapper.preparation;
+
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.dto.preparation.BuildingDTO;
+import com.platform.dao.entity.preparation.Building;
+import com.platform.dao.vo.query.preparation.BuildingVO;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+/**
+ * @Description 筹建管理 mapper
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface BuildingMapper extends MyMapper<Building> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<BuildingVO> selectList(BuildingDTO dto);
+
+    List<BuildingVO> selectLongYanList(BuildingDTO dto);
+
+    String selectNameById(String object);
+}

+ 46 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/preparation/BuildingVO.java

@@ -0,0 +1,46 @@
+package com.platform.dao.vo.query.preparation;
+
+import com.platform.common.bean.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @Description 筹建管理VO结果类
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class BuildingVO extends BaseVO implements Serializable {
+    private String id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 排序
+     */
+    private Integer sort;
+    /**
+     * 上层位置id
+     */
+    private String parentId;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 修改人姓名
+     */
+    private String updateUserName;
+    /**
+     * 上层类型名称
+     */
+    private String parentName;
+
+}

+ 2 - 1
platform-dao/src/main/java/com/platform/dao/vo/sb/SbPositionVO.java

@@ -19,7 +19,7 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 public class SbPositionVO extends BaseVO implements Serializable {
     /**
-     * opc标识:0否1是
+     * opc标识:0否 1是
      */
     private Integer opcFlag;
     /**
@@ -109,4 +109,5 @@ public class SbPositionVO extends BaseVO implements Serializable {
      */
     private String updateUserName;
 
+
 }

+ 38 - 0
platform-dao/src/main/resources/mapper/preparation/BuildingMapper.xml

@@ -0,0 +1,38 @@
+<?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">
+<mapper namespace="com.platform.dao.mapper.preparation.BuildingMapper">
+    <sql id="List_Condition">
+        <if test="name != null and name != ''">
+            and record.name = #{name}
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.preparation.BuildingDTO"
+            resultType="com.platform.dao.vo.query.preparation.BuildingVO">
+        select record.*,parent.name as parentName from t_building as record join t_building parent on record.parent_id = parent.id
+        <where>
+            <include refid="List_Condition"/>
+        </where>
+    </select>
+
+    <select id="selectLongYanList" parameterType="com.platform.dao.dto.preparation.BuildingDTO"
+            resultType="com.platform.dao.vo.query.preparation.BuildingVO">
+        select * from t_building
+        <where>
+            <choose>
+                <when test="parentId != null and parentId != ''">
+                    and parent_id = #{parentId}
+                </when>
+                <otherwise>
+                    and (parent_id is null or parent_id = '')
+                </otherwise>
+            </choose>
+        </where>
+        order by sort asc
+    </select>
+
+    <select id="selectNameById" parameterType="java.lang.Object" resultType="java.lang.String">
+        select name
+        from t_building
+        where id = #{value}
+    </select>
+</mapper>

+ 3 - 3
platform-dao/src/main/resources/mapper/preparation/PreparationMapper.xml

@@ -165,8 +165,8 @@
             resultType="com.platform.dao.vo.query.preparation.PreparationVO">
         select preparation.*,applyU.real_name as userName,sp.name as positionName,dept.name as deptName,psp.name as parentPositionName
         from t_preparation as preparation join t_sys_user applyU on preparation.user_id = applyU.user_id
-        join t_sb_position sp on preparation.position_id = sp.id
-        left join t_sb_position psp on psp.no = preparation.parent_position_id
+        join t_building sp on preparation.position_id = sp.id
+        left join t_building psp on psp.id = preparation.parent_position_id
         join t_sys_dept dept on preparation.depart_id = dept.dept_id
         <where>
             <include refid="List_Condition"/>
@@ -177,7 +177,7 @@
             parameterType="com.platform.dao.dto.preparation.PreparationDTO">
         select preparation.status,count(1) as num
         from t_preparation as preparation join t_sys_user applyU on preparation.user_id = applyU.user_id
-        join t_sb_position sp on preparation.position_id = sp.id
+        join t_building sp on preparation.position_id = sp.id
         join t_sys_dept dept on preparation.depart_id = dept.dept_id
         <where>
             <include refid="List_Condition"/>

+ 116 - 0
platform-rest/src/main/java/com/platform/rest/controller/preparation/BuildingController.java

@@ -0,0 +1,116 @@
+package com.platform.rest.controller.preparation;
+
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.util.R;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.preparation.BuildingDTO;
+import com.platform.dao.vo.query.preparation.BuildingVO;
+import com.platform.dao.vo.sb.SbPositionVO;
+import com.platform.rest.log.annotation.SysLog;
+import com.platform.service.preparation.BuildingService;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Description 筹建管理 控制器
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/preparation/building")
+public class BuildingController {
+
+  private final BuildingService buildingService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<BuildingVO> getById(@PathVariable("id") String id) {
+    return new R(buildingService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param buildingDTO 设备位置DTO
+   * @return R
+   */
+  @SysLog("新增设备位置")
+  @PostMapping
+  public R save(@Validated({AddGroup.class}) @RequestBody BuildingDTO buildingDTO) {
+    return new R<>(buildingService.saveModelByDTO(buildingDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param buildingDTO 设备位置DTO
+   * @return R
+   */
+  @SysLog("修改设备位置")
+  @PutMapping("/{id}")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody BuildingDTO buildingDTO) {
+    buildingService.modModelByDTO(buildingDTO);
+    return new R<>();
+  }
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备位置")
+  @DeleteMapping("/{id}")
+  public R removeById(@PathVariable String id) {
+    buildingService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+  /**
+   * 批量记录
+   *
+   * @param ids 主键
+   * @return R
+   */
+  @SysLog("批量删除设备位置")
+  @DeleteMapping("")
+  public R removeIds(@RequestBody List<String> ids) {
+    buildingService.batchDelete(ids);
+    return new R<>();
+  }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum       当前页码
+   * @param pageSize      每页条数
+   * @param buildingDTO 设备位置DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<SbPositionVO>> query(BuildingDTO buildingDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+    return new R(buildingService.selectPageList(buildingDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param buildingDTO 设备位置DTO
+   * @return R
+   */
+  @GetMapping("/longYan")
+  public R queryLongYan(BuildingDTO buildingDTO) {
+    return new R(buildingService.selectLongYanList(buildingDTO));
+  }
+}

+ 38 - 0
platform-service/src/main/java/com/platform/service/preparation/BuildingService.java

@@ -0,0 +1,38 @@
+package com.platform.service.preparation;
+
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.dto.preparation.BuildingDTO;
+import com.platform.dao.entity.preparation.Building;
+import com.platform.dao.vo.query.preparation.BuildingVO;
+import com.platform.service.base.IBaseService;
+
+import java.util.List;
+
+/**
+ * @Description 筹建管理 service
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface BuildingService extends IBaseService<Building, BuildingDTO> {
+
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     *
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<BuildingVO> selectPageList(BuildingDTO record, int pageNum, int pageSize);
+
+    List<BuildingVO> selectLongYanList(BuildingDTO dto);
+}

+ 50 - 0
platform-service/src/main/java/com/platform/service/preparation/impl/BuildingServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.preparation.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.dto.preparation.BuildingDTO;
+import com.platform.dao.entity.preparation.Building;
+import com.platform.dao.mapper.preparation.BuildingMapper;
+import com.platform.dao.vo.query.preparation.BuildingVO;
+import com.platform.service.base.impl.BaseServiceImpl;
+import com.platform.service.preparation.BuildingService;
+import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+
+import java.util.List;
+
+/**
+ * @Description 筹建管理 service 实现类
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Service("buildingService")
+public class BuildingServiceImpl extends BaseServiceImpl<BuildingMapper, Building, BuildingDTO> implements BuildingService {
+
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<Building> weekend = new Weekend<>(Building.class);
+        WeekendCriteria<Building, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(Building::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<BuildingVO> selectPageList(BuildingDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public List<BuildingVO> selectLongYanList(BuildingDTO dto) {
+        return mapper.selectLongYanList(dto);
+    }
+}
+
+
+

+ 5 - 10
platform-service/src/main/java/com/platform/service/preparation/impl/PreparationServiceImpl.java

@@ -19,6 +19,7 @@ import com.platform.dao.entity.sb.SbPosition;
 import com.platform.dao.entity.upms.SysFile;
 import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.enums.*;
+import com.platform.dao.mapper.preparation.BuildingMapper;
 import com.platform.dao.mapper.preparation.PreparationMapper;
 import com.platform.dao.mapper.preparation.PreparationRecordMapper;
 import com.platform.dao.mapper.sb.SbPositionMapper;
@@ -77,6 +78,8 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
     private SysUserRoleMapper sysUserRoleMapper;
     @Resource
     private PreparationRecordMapper preparationRecordMapper;
+    @Resource
+    private BuildingMapper buildingMapper;
 
     @Override
     public List<ExportPreparationNumVO> getPreparationReportByPositionId(PreparationDTO dto) {
@@ -387,8 +390,8 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
     public PreparationVO getVOById(String id) {
         Preparation preparation = mapper.selectByPrimaryKey(id);
         PreparationVO vo = BeanConverterUtil.copyObjectProperties(preparation, PreparationVO.class);
-        vo.setCompanyName(sbPositionMapper.selectNameById(vo.getParentPositionId()));
-        vo.setPositionName(sbPositionMapper.selectNameById(vo.getPositionId()));
+        vo.setCompanyName(buildingMapper.selectNameById(vo.getParentPositionId()));
+        vo.setPositionName(buildingMapper.selectNameById(vo.getPositionId()));
         if (!StringUtils.isEmpty(vo.getRepairUserId())) {
             vo.setRepairUserName(sysUserMapper.selectUserNameById(vo.getRepairUserId()));
         }
@@ -698,14 +701,6 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         sendMessageToApplyLeader(sendUsers, updPre);
     }
 
-    private String getParentPositionId(String positionId) {
-        SbPosition sbPosition = sbPositionMapper.selectByPrimaryKey(positionId);
-        while (!StringUtils.isEmpty(sbPosition.getParentId())) {
-            sbPosition = sbPositionMapper.selectByPrimaryKey(sbPosition.getParentId());
-        }
-        return sbPosition.getId();
-    }
-
     @Override
     public AbstractPageResultBean<Preparation> selectPageInfo(PreparationDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);