Bläddra i källkod

pms 瑞都日报 动态属性

zhangcl 1 vecka sedan
förälder
incheckning
92da579c3e
11 ändrade filer med 113 tillägg och 10 borttagningar
  1. 8 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdailyreportattrs/IotDailyReportAttrsController.java
  2. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdailyreportattrs/vo/IotDailyReportAttrsPageReqVO.java
  3. 23 4
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/IotRdDailyReportController.java
  4. 7 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/vo/IotRdDailyReportRespVO.java
  5. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotdailyreportattrs/IotDailyReportAttrsDO.java
  6. 10 4
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotrddailyreport/IotRdDailyReportDO.java
  7. 28 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotdailyreportattrs/IotDailyReportAttrsMapper.java
  8. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdailyreportattrs/IotDailyReportAttrsService.java
  9. 7 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdailyreportattrs/IotDailyReportAttrsServiceImpl.java
  10. 8 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java
  11. 5 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java

+ 8 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdailyreportattrs/IotDailyReportAttrsController.java

@@ -77,6 +77,14 @@ public class IotDailyReportAttrsController {
         return success(BeanUtils.toBean(pageResult, IotDailyReportAttrsRespVO.class));
     }
 
+    @GetMapping("/dailyReportAttrs")
+    @Operation(summary = "获得日报扩展模板属性列表")
+    @PreAuthorize("@ss.hasPermission('rq:iot-daily-report-attrs:query')")
+    public CommonResult<List<IotDailyReportAttrsRespVO>> dailyReportAttrs(@Valid IotDailyReportAttrsPageReqVO pageReqVO) {
+        List<IotDailyReportAttrsDO> dailyReportAttrs = iotDailyReportAttrsService.getIotDailyReportAttrs(pageReqVO);
+        return success(BeanUtils.toBean(dailyReportAttrs, IotDailyReportAttrsRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出日报扩展模板属性 Excel")
     @PreAuthorize("@ss.hasPermission('rq:iot-daily-report-attrs:export')")

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotdailyreportattrs/vo/IotDailyReportAttrsPageReqVO.java

@@ -8,6 +8,7 @@ import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
@@ -81,4 +82,9 @@ public class IotDailyReportAttrsPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+    /**
+     * 扩展字段
+     */
+    @Schema(description = "施工工艺id集合", example = "123,234")
+    private List<String> techniqueIds;
 }

+ 23 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/IotRdDailyReportController.java

@@ -7,20 +7,19 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
-import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotdailyreportattrs.vo.IotDailyReportAttrsPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotrddailyreport.vo.IotRdDailyReportPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotrddailyreport.vo.IotRdDailyReportRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotrddailyreport.vo.IotRdDailyReportSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorder.IotMainWorkOrderDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdailyreportattrs.IotDailyReportAttrsDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo.IotProjectInfoDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask.IotProjectTaskDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotrddailyreport.IotRdDailyReportDO;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
+import cn.iocoder.yudao.module.pms.service.iotdailyreportattrs.IotDailyReportAttrsService;
 import cn.iocoder.yudao.module.pms.service.iotprojectinfo.IotProjectInfoService;
 import cn.iocoder.yudao.module.pms.service.iotprojecttask.IotProjectTaskService;
 import cn.iocoder.yudao.module.pms.service.iotrddailyreport.IotRdDailyReportService;
@@ -28,6 +27,7 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -39,6 +39,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -67,6 +68,12 @@ public class IotRdDailyReportController {
     @Resource
     private IotDeviceService iotDeviceService;
 
+    @Resource
+    private IotDailyReportAttrsService iotDailyReportAttrsService;
+
+    @Resource
+    private DictDataService dictDataService;
+
     @Resource
     private AdminUserApi adminUserApi;
 
@@ -111,6 +118,18 @@ public class IotRdDailyReportController {
      */
     private IotRdDailyReportRespVO buildDailyReport(IotRdDailyReportDO dailyReport) {
         IotRdDailyReportRespVO dailyReportVO = BeanUtils.toBean(dailyReport, IotRdDailyReportRespVO.class);
+        // 查询施工工艺集合
+        Set<Long> techniqueIds = dailyReportVO.getTechniqueIds();
+        // List<DictDataDO> techniques = dictDataService.getDictDataListByDictType("rq_iot_project_technology_rd");
+        if (CollUtil.isNotEmpty(techniqueIds)) {
+            Set<String> stringTechniqueIds = techniqueIds.stream()
+                    .map(lg -> lg.toString())
+                    .collect(Collectors.toSet());
+            IotDailyReportAttrsPageReqVO pageReqVO = new IotDailyReportAttrsPageReqVO();
+            pageReqVO.setTechniqueIds(new ArrayList<>(stringTechniqueIds));
+            List<IotDailyReportAttrsDO> attrs = iotDailyReportAttrsService.getIotDailyReportAttrs(pageReqVO);
+            dailyReportVO.setDailyReportAttrs(attrs);
+        }
         // 查询日报对应的项目信息
         if (ObjUtil.isNotEmpty(dailyReport.getProjectId())) {
             IotProjectInfoDO project = iotProjectInfoService.getIotProjectInfo(dailyReport.getProjectId());

+ 7 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/vo/IotRdDailyReportRespVO.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotrddailyreport.vo;
 
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdailyreportattrs.IotDailyReportAttrsDO;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -8,6 +9,7 @@ import lombok.Data;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.List;
 import java.util.Set;
 
 @Schema(description = "管理后台 - 瑞都日报 Response VO")
@@ -45,7 +47,7 @@ public class IotRdDailyReportRespVO {
 
     @Schema(description = "施工设备([123,233])")
     @ExcelProperty("施工设备([123,233])")
-    private String deviceIds;
+    private Set<Long> deviceIds;
 
     @Schema(description = "时间节点-开始")
     @ExcelProperty("时间节点-开始")
@@ -233,4 +235,8 @@ public class IotRdDailyReportRespVO {
     @Schema(description = "公司id", example = "125")
     @ExcelProperty("公司id")
     private Long companyId;
+
+    @Schema(description = "工作量属性", example = "累计施工-层,当日泵车台次...")
+    @ExcelProperty("工作量属性")
+    private List<IotDailyReportAttrsDO> dailyReportAttrs;
 }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotdailyreportattrs/IotDailyReportAttrsDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.pms.dal.dataobject.iotdailyreportattrs;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskattrs.IotTaskAttrModelProperty;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -96,7 +97,7 @@ public class IotDailyReportAttrsDO extends BaseDO {
      * 不同专业公司的扩展属性
      */
     @TableField(typeHandler = JacksonTypeHandler.class)
-    private String extProperty;
+    private IotTaskAttrModelProperty extProperty;
     /**
      * 排序值
      */

+ 10 - 4
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotrddailyreport/IotRdDailyReportDO.java

@@ -1,19 +1,22 @@
 package cn.iocoder.yudao.module.pms.dal.dataobject.iotrddailyreport;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskattrs.IotTaskAttrModelProperty;
 import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import lombok.*;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.Set;
 
 /**
  * 瑞都日报 DO
  *
  * @author ruiqi
  */
-@TableName("rq_iot_rd_daily_report")
+@TableName(value="rq_iot_rd_daily_report", autoResultMap = true)
 @KeySequence("rq_iot_rd_daily_report_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -51,11 +54,13 @@ public class IotRdDailyReportDO extends BaseDO {
     /**
      * 施工工艺([123,233])
      */
-    private String techniqueIds;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private Set<Long> techniqueIds;
     /**
      * 施工设备([123,233])
      */
-    private String deviceIds;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private Set<Long> deviceIds;
     /**
      * 时间节点-开始
      */
@@ -163,7 +168,8 @@ public class IotRdDailyReportDO extends BaseDO {
     /**
      * 不同专业公司的扩展属性值
      */
-    private String extProperty;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private IotTaskAttrModelProperty extProperty;
     /**
      * 排序值
      */

+ 28 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotdailyreportattrs/IotDailyReportAttrsMapper.java

@@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotdailyreportattrs.vo.IotDa
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdailyreportattrs.IotDailyReportAttrsDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 日报扩展模板属性 Mapper
  *
@@ -41,4 +43,30 @@ public interface IotDailyReportAttrsMapper extends BaseMapperX<IotDailyReportAtt
                 .orderByDesc(IotDailyReportAttrsDO::getId));
     }
 
+    default List<IotDailyReportAttrsDO> dailyReportAttrs(IotDailyReportAttrsPageReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<IotDailyReportAttrsDO>()
+                .eqIfPresent(IotDailyReportAttrsDO::getTemplateId, reqVO.getTemplateId())
+                .eqIfPresent(IotDailyReportAttrsDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(IotDailyReportAttrsDO::getProjectId, reqVO.getProjectId())
+                .eqIfPresent(IotDailyReportAttrsDO::getProjectClassification, reqVO.getProjectClassification())
+                .eqIfPresent(IotDailyReportAttrsDO::getWellType, reqVO.getWellType())
+                .eqIfPresent(IotDailyReportAttrsDO::getWellCategory, reqVO.getWellCategory())
+                .eqIfPresent(IotDailyReportAttrsDO::getTechnique, reqVO.getTechnique())
+                .inIfPresent(IotDailyReportAttrsDO::getTechnique, reqVO.getTechniqueIds())
+                .likeIfPresent(IotDailyReportAttrsDO::getName, reqVO.getName())
+                .eqIfPresent(IotDailyReportAttrsDO::getIdentifier, reqVO.getIdentifier())
+                .eqIfPresent(IotDailyReportAttrsDO::getDataType, reqVO.getDataType())
+                .eqIfPresent(IotDailyReportAttrsDO::getRequired, reqVO.getRequired())
+                .eqIfPresent(IotDailyReportAttrsDO::getUnit, reqVO.getUnit())
+                .eqIfPresent(IotDailyReportAttrsDO::getAccessMode, reqVO.getAccessMode())
+                .eqIfPresent(IotDailyReportAttrsDO::getDefaultValue, reqVO.getDefaultValue())
+                .eqIfPresent(IotDailyReportAttrsDO::getMaxValue, reqVO.getMaxValue())
+                .eqIfPresent(IotDailyReportAttrsDO::getMinValue, reqVO.getMinValue())
+                .eqIfPresent(IotDailyReportAttrsDO::getExtProperty, reqVO.getExtProperty())
+                .eqIfPresent(IotDailyReportAttrsDO::getSort, reqVO.getSort())
+                .eqIfPresent(IotDailyReportAttrsDO::getRemark, reqVO.getRemark())
+                .eqIfPresent(IotDailyReportAttrsDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(IotDailyReportAttrsDO::getCreateTime, reqVO.getCreateTime()));
+    }
+
 }

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdailyreportattrs/IotDailyReportAttrsService.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotdailyreportattrs.vo.IotDa
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdailyreportattrs.IotDailyReportAttrsDO;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 日报扩展模板属性 Service 接口
@@ -52,4 +53,12 @@ public interface IotDailyReportAttrsService {
      */
     PageResult<IotDailyReportAttrsDO> getIotDailyReportAttrsPage(IotDailyReportAttrsPageReqVO pageReqVO);
 
+    /**
+     * 获得日报扩展模板属性列表
+     *
+     * @param pageReqVO 列表查询
+     * @return 日报扩展模板属性列表
+     */
+    List<IotDailyReportAttrsDO> getIotDailyReportAttrs(IotDailyReportAttrsPageReqVO pageReqVO);
+
 }

+ 7 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotdailyreportattrs/IotDailyReportAttrsServiceImpl.java

@@ -11,6 +11,8 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
+import java.util.List;
+
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_DAILY_REPORT_ATTRS_NOT_EXISTS;
 
@@ -68,4 +70,9 @@ public class IotDailyReportAttrsServiceImpl implements IotDailyReportAttrsServic
         return iotDailyReportAttrsMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<IotDailyReportAttrsDO> getIotDailyReportAttrs(IotDailyReportAttrsPageReqVO pageReqVO) {
+        return iotDailyReportAttrsMapper.dailyReportAttrs(pageReqVO);
+    }
+
 }

+ 8 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java

@@ -107,4 +107,12 @@ public interface DictDataService {
      */
     List<DictDataDO> getDictDataListByDictType(String dictType);
 
+    /**
+     * 获得指定数据类型 指定value集合 的字典数据列表
+     *
+     * @param dictType 字典类型
+     * @return 字典数据列表
+     */
+    List<DictDataDO> getDictDataListByDictTypeAndValues(String dictType, Collection<String> values);
+
 }

+ 5 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java

@@ -176,4 +176,9 @@ public class DictDataServiceImpl implements DictDataService {
         return list;
     }
 
+    @Override
+    public List<DictDataDO> getDictDataListByDictTypeAndValues(String dictType, Collection<String> values) {
+        return dictDataMapper.selectByDictTypeAndValues(dictType, values);
+    }
+
 }