瀏覽代碼

+ 终端设计接口

chen.cheng 5 月之前
父節點
當前提交
0f107613dd

+ 10 - 0
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/web/controller/cons/PileMachineInfoController.java

@@ -21,7 +21,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.huashe.common.domain.AjaxResult;
 import com.huashe.park.common.i18n.MessageUtils;
+import com.huashe.park.core.service.IConsUnitInfoService;
 import com.huashe.park.core.service.IPileMachineInfoService;
+import com.huashe.park.domain.dto.cons.MachineBiz;
 import com.huashe.park.domain.dto.cons.MachineLogin;
 import com.huashe.park.domain.entity.PileMachineInfo;
 import com.ruoyi.common.annotation.Anonymous;
@@ -45,6 +47,9 @@ public class PileMachineInfoController extends BaseController {
     private IPileMachineInfoService pileMachineInfoService;
 
     @Autowired
+    private IConsUnitInfoService consUnitInfoService;
+
+    @Autowired
     private TokenService tokenService;
 
     /**
@@ -138,6 +143,11 @@ public class PileMachineInfoController extends BaseController {
         return AjaxResult.success(pileMachineInfo);
     }
 
+    @PostMapping("/terminal/workSection")
+    public AjaxResult machineWorkSection(@RequestBody MachineBiz machineBiz) {
+        return AjaxResult.success(pileMachineInfoService.qryMachineAssignedUnit(machineBiz.getMachineId()));
+    }
+
     /**
      * 删除施工桩机信息
      */

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

@@ -63,9 +63,11 @@ public interface ConsUnitInfoMapper {
 
     int hasChildById(Long id);
 
-
     List<ConsUnitInfo> selectChildrenById(Long id);
 
     int updateConstUnitChildren(@Param("consUnits") List<ConsUnitInfo> consUnits);
 
+    List<String> qryMachineAssignedUnitAncestors(Long machineId);
+
+    List<ConsUnitInfo> qryConsUnitInfoByIds(@Param("ids") List<String> ids);
 }

+ 2 - 0
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/IConsUnitInfoService.java

@@ -65,4 +65,6 @@ public interface IConsUnitInfoService {
     int deleteConsUnitInfoById(Long id);
 
     void importConsUnitHole(ConsUnitInfo consUnitHole);
+
+    List<ConsUnitInfo> machineAssignedUnit(Long machineId);
 }

+ 4 - 0
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/IPileMachineInfoService.java

@@ -2,6 +2,7 @@ package com.huashe.park.core.service;
 
 import java.util.List;
 
+import com.huashe.park.domain.dto.cons.ConstUnitNode;
 import com.huashe.park.domain.entity.PileMachineInfo;
 
 /**
@@ -58,4 +59,7 @@ public interface IPileMachineInfoService {
      * @return 结果
      */
     int deletePileMachineInfoById(Long id);
+
+
+    List<ConstUnitNode> qryMachineAssignedUnit(Long machineId);
 }

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

@@ -1,6 +1,8 @@
 package com.huashe.park.core.service.impl;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
@@ -168,6 +170,15 @@ public class ConsUnitInfoServiceImpl implements IConsUnitInfoService {
         });
     }
 
+    @Override
+    public List<ConsUnitInfo> machineAssignedUnit(Long machineId) {
+        List<String> ancestors = consUnitInfoMapper.qryMachineAssignedUnitAncestors(machineId);
+        // 使用 Java Stream API 将 ancestors 字符串按逗号分割,并去除重复项
+        List<String> unitIds = ancestors.stream().flatMap(s -> Arrays.stream(s.split(","))).distinct()
+            .collect(Collectors.toList());
+        return consUnitInfoMapper.qryConsUnitInfoByIds(unitIds);
+    }
+
     private void updateConsUnitChildren(Long id, String newAncestors, String oldAncestors) {
         List<ConsUnitInfo> children = consUnitInfoMapper.selectChildrenById(id);
         if (CollectionUtils.isEmpty(children)) {

+ 77 - 0
bd-park/park-backend/park-core/src/main/java/com/huashe/park/core/service/impl/PileMachineInfoServiceImpl.java

@@ -1,13 +1,23 @@
 package com.huashe.park.core.service.impl;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Collectors;
 
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.huashe.common.utils.StringUtils;
 import com.huashe.park.core.mapper.PileMachineInfoMapper;
+import com.huashe.park.core.service.IConsUnitInfoService;
 import com.huashe.park.core.service.IPileMachineInfoService;
+import com.huashe.park.core.service.IProjectCoordinateInfoService;
+import com.huashe.park.domain.dto.cons.ConstUnitNode;
+import com.huashe.park.domain.entity.ConsUnitInfo;
 import com.huashe.park.domain.entity.PileMachineInfo;
+import com.huashe.park.domain.entity.ProjectCoordinateInfo;
 
 /**
  * 施工桩机信息Service业务层处理
@@ -20,6 +30,12 @@ public class PileMachineInfoServiceImpl implements IPileMachineInfoService {
     @Autowired
     private PileMachineInfoMapper pileMachineInfoMapper;
 
+    @Autowired
+    private IConsUnitInfoService consUnitInfoService;
+
+    @Autowired
+    private IProjectCoordinateInfoService projectCoordinateInfoService;
+
     /**
      * 查询施工桩机信息
      * 
@@ -87,4 +103,65 @@ public class PileMachineInfoServiceImpl implements IPileMachineInfoService {
     public int deletePileMachineInfoById(Long id) {
         return pileMachineInfoMapper.deletePileMachineInfoById(id);
     }
+
+    @Override
+    public List<ConstUnitNode> qryMachineAssignedUnit(Long machineId) {
+        List<ConsUnitInfo> consUnitInfos = consUnitInfoService.machineAssignedUnit(machineId);
+        List<ProjectCoordinateInfo> projectCoordinateInfos = projectCoordinateInfoService
+            .selectProjectCoordinateInfoList(new ProjectCoordinateInfo());
+        ProjectCoordinateInfo projectCoordinateInfo = projectCoordinateInfos.get(0);
+        // 将 consUnitInfos 使用BeanUtils将子类转换成ConstUnitNode
+        List<ConstUnitNode> constUnitNodes = new ArrayList<>();
+        consUnitInfos.forEach((item) -> {
+            ConstUnitNode constUnitNode = new ConstUnitNode();
+            BeanUtils.copyProperties(item, constUnitNode);
+            constUnitNodes.add(constUnitNode);
+        });
+        List<ConstUnitNode> tree = buildConsUnitTree(constUnitNodes);
+        tree.forEach(item -> item.setCoordinateModel(projectCoordinateInfo));
+        return tree;
+    }
+
+    public List<ConstUnitNode> buildConsUnitTree(List<ConstUnitNode> consUnitInfos) {
+        List<ConstUnitNode> returnList = new ArrayList<>();
+        List<Long> tempList = consUnitInfos.stream().map(ConstUnitNode::getId).collect(Collectors.toList());
+        for (ConstUnitNode dept : consUnitInfos) {
+            // 如果是顶级节点, 遍历该父节点的所有子节点
+            if (!tempList.contains(dept.getParentId())) {
+                recursionFn(consUnitInfos, dept);
+                returnList.add(dept);
+            }
+        }
+        if (returnList.isEmpty()) {
+            returnList = consUnitInfos;
+        }
+        return returnList;
+    }
+
+    private void recursionFn(List<ConstUnitNode> list, ConstUnitNode t) {
+        // 得到子节点列表
+        List<ConstUnitNode> childList = getChildList(list, t);
+        t.setChild(childList);
+        for (ConstUnitNode tChild : childList) {
+            if (hasChild(list, tChild)) {
+                recursionFn(list, tChild);
+            }
+        }
+    }
+
+    private List<ConstUnitNode> getChildList(List<ConstUnitNode> list, ConstUnitNode t) {
+        List<ConstUnitNode> tlist = new ArrayList<>();
+        Iterator<ConstUnitNode> it = list.iterator();
+        while (it.hasNext()) {
+            ConstUnitNode n = it.next();
+            if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) {
+                tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+
+    private boolean hasChild(List<ConstUnitNode> list, ConstUnitNode t) {
+        return !getChildList(list, t).isEmpty();
+    }
 }

+ 16 - 0
bd-park/park-backend/park-core/src/main/resources/mapper/cons/ConsUnitInfoMapper.xml

@@ -136,4 +136,20 @@
             #{item.id}
         </foreach>
     </update>
+
+    <select id="qryMachineAssignedUnitAncestors" resultType="String" parameterType="Long">
+        SELECT concat(unit.ancestors, ',', unit.id)
+        FROM cons_cons_unit_info unit
+                 INNER JOIN cons_cons_unit_machine_rel rel on unit.id = rel.cons_unit_id
+        WHERE rel.machine_id = #{machineId}
+    </select>
+
+    <select id="qryConsUnitInfoByIds" parameterType="String" resultMap="ConsUnitInfoResult">
+        <include refid="selectConsUnitInfoVo"/>
+        where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
 </mapper>

+ 28 - 0
bd-park/park-backend/park-domain/src/main/java/com/huashe/park/domain/dto/cons/ConstUnitNode.java

@@ -0,0 +1,28 @@
+package com.huashe.park.domain.dto.cons;
+
+import java.util.List;
+
+import com.huashe.park.domain.entity.ConsUnitInfo;
+import com.huashe.park.domain.entity.ProjectCoordinateInfo;
+
+public class ConstUnitNode extends ConsUnitInfo {
+    private List<ConstUnitNode> child;
+
+    private ProjectCoordinateInfo coordinateModel;
+
+    public List<ConstUnitNode> getChild() {
+        return child;
+    }
+
+    public void setChild(List<ConstUnitNode> child) {
+        this.child = child;
+    }
+
+    public ProjectCoordinateInfo getCoordinateModel() {
+        return coordinateModel;
+    }
+
+    public void setCoordinateModel(ProjectCoordinateInfo coordinateModel) {
+        this.coordinateModel = coordinateModel;
+    }
+}

+ 23 - 0
bd-park/park-backend/park-domain/src/main/java/com/huashe/park/domain/dto/cons/MachineBiz.java

@@ -0,0 +1,23 @@
+package com.huashe.park.domain.dto.cons;
+
+public class MachineBiz {
+    private Long designId;
+
+    private Long machineId;
+
+    public Long getDesignId() {
+        return designId;
+    }
+
+    public void setDesignId(Long designId) {
+        this.designId = designId;
+    }
+
+    public Long getMachineId() {
+        return machineId;
+    }
+
+    public void setMachineId(Long machineId) {
+        this.machineId = machineId;
+    }
+}

+ 2 - 0
bd-park/park-backend/park-domain/src/main/java/com/huashe/park/domain/entity/ConsUnitInfo.java

@@ -1,5 +1,6 @@
 package com.huashe.park.domain.entity;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
@@ -42,6 +43,7 @@ public class ConsUnitInfo extends BaseEntity {
     @Excel(name = "施工单元名称")
     private String name;
 
+    @JsonIgnore
     private String ancestors;
 
     private Long projectId;