1 год назад
Родитель
Сommit
41b37ee30b

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbTypeDTO.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @Description 设备类别DTO
@@ -20,6 +21,11 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbTypeDTO extends BaseDTO implements Serializable {
+    private List<String> parentList;
+
+    private List<String> nameList;
+
+    private Integer flag;
 
     /**
      * 类型id

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbTypeMapper.java

@@ -3,6 +3,7 @@ package com.platform.dao.mapper.sb;
 import com.platform.dao.config.MyMapper;
 import com.platform.dao.dto.sb.SbTypeDTO;
 import com.platform.dao.entity.sb.SbType;
+import com.platform.dao.vo.report.SbInfoTypeReportVO2;
 import com.platform.dao.vo.sb.SbTypeVO;
 import org.springframework.stereotype.Component;
 
@@ -17,6 +18,7 @@ import java.util.List;
  */
 @Component
 public interface SbTypeMapper extends MyMapper<SbType> {
+    List<SbInfoTypeReportVO2> getSbTypeNum(SbTypeDTO dto);
     /**
      * 查询列表
      *

+ 40 - 0
platform-dao/src/main/java/com/platform/dao/vo/report/SbInfoTypeReportVO2.java

@@ -0,0 +1,40 @@
+package com.platform.dao.vo.report;
+
+import com.platform.dao.vo.sb.SbInfoVO;
+import com.platform.dao.vo.sb.SbTypeVO;
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author cyz
+ */
+@Data
+@Accessors(chain = true)
+public class SbInfoTypeReportVO2 implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String id;
+    /**
+     * 每月总数
+     */
+    @Excel(name = "类型名称", orderNum = "1")
+    private String typeName;
+    /**
+     * 总数
+     */
+    @Excel(name = "总数", orderNum = "2")
+    private Integer totalNum = 0;
+    /**
+     * 占比
+     */
+    @Excel(name = "占比", orderNum = "3")
+    private double rate;
+
+    /**
+     * 明细列表
+     */
+    List<SbTypeVO> detailList;
+}

+ 27 - 0
platform-dao/src/main/resources/mapper/sb/SbTypeMapper.xml

@@ -23,10 +23,37 @@
             <if test="type != null and type != ''">
                 and t1.type = #{type}
             </if>
+            <if test="nameList!=null and nameList.size>0">
+                AND t1.name in
+                <foreach item="item" index="index" collection="nameList" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="parentList!=null and parentList.size>0">
+                AND t1.parent_id in
+                <foreach item="item" index="index" collection="parentList" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         order by t1.sort ASC
     </select>
 
+    <select id="getSbTypeNum" parameterType="com.platform.dao.dto.sb.SbTypeDTO"
+            resultType="com.platform.dao.vo.report.SbInfoTypeReportVO2">
+        select count(1) as totalNum,parent_id as id from t_sb_type
+        <where>
+            <if test="parentList!=null and parentList.size>0">
+                AND parent_id in
+                <foreach item="item" index="index" collection="parentList" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        group by parent_id
+    </select>
+
     <select id="selectById" parameterType="java.lang.Object"
             resultType="com.platform.dao.entity.sb.SbType">
         select

+ 16 - 1
platform-rest/src/main/java/com/platform/rest/controller/report/SbInfoReportController.java

@@ -4,6 +4,8 @@ import com.platform.common.util.DateUtils;
 import com.platform.common.util.R;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbMeasureLogDTO;
+import com.platform.dao.dto.sb.SbTypeDTO;
+import com.platform.dao.entity.sb.SbType;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.report.MeasureLogReportVO;
 import com.platform.dao.vo.report.SbInfoTypeReportVO;
@@ -63,5 +65,18 @@ public class SbInfoReportController {
         ExcelUtil.exportResponseDict(response, SbInfoTypeReportVO.class, list, fileName);
     }
 
-    
+    /**
+     * 类型数量统计
+     *
+     * @param dto  查询条件
+     * @param year 查询年份
+     * @return R
+     */
+    @SysLog("类型数量统计报表")
+    @GetMapping("/getSbTypeReport")
+    public R getSbTypeReport(SbTypeDTO dto) {
+        return new R(sbInfoService.getTypeReport(dto));
+    }
+
+
 }

+ 3 - 1
platform-rest/src/main/resources/application-dev.yml

@@ -82,6 +82,8 @@ ignore:
     - /operate/customers/*
     - /repair/application-forms/repair/report
     - /websocket/**
+    - /sb/types/**
+    - /report/sb/infos/**
 platform:
   slf4j:
     data: D://xajg
@@ -98,4 +100,4 @@ remove:
   companyId: 5e902722d762f008b01b9ee1
 
 scheduling:
-  enabled: true
+  enabled: true

+ 4 - 0
platform-service/src/main/java/com/platform/service/sb/SbInfoService.java

@@ -3,8 +3,10 @@ package com.platform.service.sb;
 import com.alibaba.fastjson.JSONObject;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.sb.SbInfoDTO;
+import com.platform.dao.dto.sb.SbTypeDTO;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.vo.report.SbInfoTypeReportVO;
+import com.platform.dao.vo.report.SbInfoTypeReportVO2;
 import com.platform.dao.vo.sb.*;
 import com.platform.service.base.IBaseService;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,6 +24,8 @@ import java.util.Map;
  */
 public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
 
+    List<SbInfoTypeReportVO2> getTypeReport(SbTypeDTO dto);
+
     /**
      * 根据主键更新属性不为null的值
      *

+ 40 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -20,6 +20,7 @@ import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.part.PartInfoDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sb.SbTypeDTO;
 import com.platform.dao.dto.upms.SysDeptDTO;
 import com.platform.dao.dto.upms.SysUserDeptDTO;
 import com.platform.dao.dto.workplace.WorkplaceBacklogDTO;
@@ -53,6 +54,7 @@ import com.platform.dao.vo.SysUserVO;
 import com.platform.dao.vo.export.sb.ExportSbInfoVO;
 import com.platform.dao.vo.query.upms.SysDeptVO;
 import com.platform.dao.vo.report.SbInfoTypeReportVO;
+import com.platform.dao.vo.report.SbInfoTypeReportVO2;
 import com.platform.dao.vo.sb.*;
 import com.platform.office.annotation.Excel;
 import com.platform.service.base.impl.BaseServiceImpl;
@@ -523,6 +525,44 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
     }
 
 
+    @Override
+    public List<SbInfoTypeReportVO2> getTypeReport(SbTypeDTO model) {
+        String id = model.getId();
+        model = new SbTypeDTO();
+        model.setParentId(id);
+        List<SbTypeVO> result = sbTypeMapper.selectVOList(model);
+        SbType sbType = sbTypeMapper.selectById(model.getParentId());
+        if (sbType.getName().equals("机械")){
+            //二级菜单,需将动设备,静设备加进来
+            List<String> list = new ArrayList<>();
+            list.add("机械-动设备");
+            list.add("机械-静设备");
+            model = new SbTypeDTO();
+            model.setNameList(list);
+            List result2 = sbTypeMapper.selectVOList(model);
+            result.addAll(result2);
+        }
+        List<String> list = result.stream().map(SbTypeVO::getId).collect(Collectors.toList());
+        SbTypeDTO sbTypeDTO = new SbTypeDTO();
+        sbTypeDTO.setParentList(list);
+        List<SbTypeVO> sbTypeVOS= sbTypeMapper.selectVOList(sbTypeDTO);
+        List<SbInfoTypeReportVO2> reportVO2s = sbTypeMapper.getSbTypeNum(sbTypeDTO);
+
+        for (SbInfoTypeReportVO2 reportVO2:reportVO2s){
+            List<SbTypeVO> typeVOS = new ArrayList<>();
+                for (SbTypeVO vo:sbTypeVOS){
+                    if (vo.getParentId().equals(reportVO2.getId())){
+                        typeVOS.add(vo);
+                        reportVO2.setTypeName(vo.getName());
+                    }
+                }
+                reportVO2.setDetailList(typeVOS);
+            }
+
+
+        return reportVO2s;
+    }
+
     @Override
     public void modModelByDTOIgnore(SbInfoDTO model) {
        /* SbModelVO sbModelVO = sbModelMapper.getById(model.getModelId());

+ 23 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbTypeServiceImpl.java

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -60,6 +61,28 @@ public class SbTypeServiceImpl extends BaseServiceImpl<SbTypeMapper, SbType, SbT
     @Override
     public List<SbTypeVO> selectVOList(SbTypeDTO model) {
         List<SbTypeVO> result = mapper.selectVOList(model);
+        if (model.getFlag()!=null&&model.getFlag()==1){
+            //需要处理数据,将动设备,静设备等去掉
+            for (int i=0;i<result.size();i++){
+                if (result.get(i).getName().equals("机械-动设备")||result.get(i).getName().equals("机械-静设备")||result.get(i).getName().equals("锅炉")||result.get(i).getName().equals("叉车秤")){
+                    result.remove(i);
+                    i--;
+                }
+            }
+        }
+
+        SbType sbType = mapper.selectById(model.getParentId());
+        if (model.getFlag()!=null&&model.getFlag()==2&&sbType.getName().equals("机械")){
+            //二级菜单,需将动设备,静设备加进来
+            List<String> list = new ArrayList<>();
+            list.add("机械-动设备");
+            list.add("机械-静设备");
+            model = new SbTypeDTO();
+            model.setNameList(list);
+            List result2 = mapper.selectVOList(model);
+            result.addAll(result2);
+        }
+
         return result;
     }