Răsfoiți Sursa

运行记录填报

yuanchao 3 luni în urmă
părinte
comite
ec81e3f2d3

+ 29 - 10
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -16,9 +16,12 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModel
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotThingsModelDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.YfDeviceDO;
 import cn.iocoder.yudao.module.pms.service.IDeviceService;
 import cn.iocoder.yudao.module.pms.service.iotopeationfill.IotOpeationFillService;
+import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
 import com.aliyun.tea.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -31,6 +34,7 @@ import javax.annotation.security.PermitAll;
 import javax.validation.constraints.*;
 import javax.validation.*;
 import javax.servlet.http.*;
+import java.sql.SQLException;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
@@ -58,6 +62,8 @@ public class IotOpeationFillController {
     private IotOpeationFillService iotOpeationFillService;
     @Resource
     private IDeviceService iDeviceService;
+    @Autowired
+    private YfDeviceService yfDeviceService;
 
     @PostMapping("/create")
     @Operation(summary = "创建运行记录填报")
@@ -117,7 +123,13 @@ public class IotOpeationFillController {
     @Operation(summary = "获得运行记录填报分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-opeation-fill:query')")
     public CommonResult<List<IotOpeationFillDO>> getIotOpeationFillPage(@Valid IotOpeationFillPageReqVO pageReqVO) {
-        List<IotOpeationFillDO> fillList = iotOpeationFillService.fillList(pageReqVO);
+        List<IotOpeationFillDO> fillList = new ArrayList<>();
+        List<IotOpeationFillDO> deviceList = iotOpeationFillService.deviceList(pageReqVO);
+        if(deviceList.size()==0){
+            fillList = iotOpeationFillService.fillListByDeptId(pageReqVO);
+        }else{
+            fillList = iotOpeationFillService.fillListByUserId(pageReqVO);
+        }
         return success(BeanUtils.toBean(fillList, IotOpeationFillDO.class));
     }
 
@@ -133,7 +145,7 @@ public class IotOpeationFillController {
     @PermitAll
     @Operation(summary = "获得PMS 功能优化 设备模板属性")
     @Parameter(name = "deviceCategoryName", description = "名称", required = true, example = "1024")
-    public CommonResult<List<IotModelTemplateAttrsDO>> getModelAttrs(@Valid IotModelTemplateAttrsRespVO vo) {
+    public CommonResult<List<IotModelTemplateAttrsDO>> getModelAttrs(@Valid IotModelTemplateAttrsRespVO vo) throws SQLException{
         List<IotModelTemplateAttrsDO> list = iotOpeationFillService.getAttrsById(vo );
 
         /**
@@ -143,14 +155,21 @@ public class IotOpeationFillController {
          * 3、数采无值,已填写 满足
          * 4、数采无值,未填写 满足
          */
-        for (IotModelTemplateAttrsDO attrsDO:list) {
-            DeviceVO dv= new DeviceVO();
-            dv.setDeviceName(vo.getDeviceCode().toLowerCase());
-            dv.setColName(attrsDO.getModelAttr());
-            DeviceVO deviceVO = iDeviceService.getYesInfo(dv);
-            if(!StringUtils.isEmpty(deviceVO)){
-                attrsDO.setFillContent(
-                        String.valueOf(Double.parseDouble(deviceVO.getLatestData())-Double.parseDouble(deviceVO.getEarliestData())));
+        List<YfDeviceDO> allDevice = yfDeviceService.getAllDevice();
+
+        boolean exists = allDevice.stream()
+                .anyMatch(yfDeviceDO -> yfDeviceDO.getSerialNumber().equals(vo.getDeviceCode()));
+
+        if(exists){
+            for (IotModelTemplateAttrsDO attrsDO:list) {
+                DeviceVO dv= new DeviceVO();
+                dv.setDeviceName(vo.getDeviceCode().toLowerCase());
+                dv.setColName(attrsDO.getModelAttr());
+                DeviceVO deviceVO = iDeviceService.getYesInfo(dv);
+                if(!StringUtils.isEmpty(deviceVO)){
+                    attrsDO.setFillContent(
+                            String.valueOf(Double.parseDouble(deviceVO.getLatestData())-Double.parseDouble(deviceVO.getEarliestData())));
+                }
             }
         }
 

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillPageReqVO.java

@@ -75,5 +75,6 @@ public class IotOpeationFillPageReqVO extends PageParam {
     private String orderName;
     private String orderType;
     private int orderStatus;
+    private int userId;
 
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillRespVO.java

@@ -74,4 +74,6 @@ public class IotOpeationFillRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    private Integer userId;
+
 }

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java

@@ -54,6 +54,10 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     int insertFill(List<IotOpeationFillDO> vo);
     int insertFillOrder(List<IotOpeationFillDO> vo);
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo);
+
     PageResult<IotOpeationFillDO> fillList1(IotOpeationFillPageReqVO vo);
 
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java

@@ -71,6 +71,10 @@ public interface IotOpeationFillService {
 
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
 
+    List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo);
+    List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo);
+
     PageResult<IotOpeationFillOrderDO> fillList1(IotOpeationFillPageReqVO vo);
 
     int insertLog(List<IotDeviceRunLogDO> logDO);

+ 15 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java

@@ -108,6 +108,21 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
         return iotOpeationFillMapper.fillList(vo);
     }
 
+    @Override
+    public List<IotOpeationFillDO> fillListByUserId(IotOpeationFillPageReqVO vo) {
+        return iotOpeationFillMapper.fillListByUserId(vo);
+    }
+
+    @Override
+    public List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillPageReqVO vo) {
+        return iotOpeationFillMapper.fillListByDeptId(vo);
+    }
+
+    @Override
+    public List<IotOpeationFillDO> deviceList(IotOpeationFillPageReqVO vo) {
+        return iotOpeationFillMapper.deviceList(vo);
+    }
+
     @Override
     public PageResult<IotOpeationFillOrderDO> fillList1(IotOpeationFillPageReqVO vo) {
         return iotOpeationFillOrderMapper.selectPage(vo);

+ 44 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -58,7 +58,7 @@
 
     </insert>
 
-    <select id="fillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+   <!-- <select id="fillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
     resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
         SELECT * FROM
             rqiot.rq_iot_opeation_fill
@@ -71,6 +71,49 @@
             union
             select id from system_dept where id = #{deptId})
         </if>
+    </select>-->
+    <select id="fillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT * FROM
+        rqiot.rq_iot_opeation_fill
+        WHERE DATE(create_time) = CURDATE()
+        <if test="userId != null  and userId != ''">
+            and device_id in (select device_id from
+            rqiot.rq_iot_device_person where person_id = #{userId})
+        </if>
+    </select>
+
+
+    <select id="deviceList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        select device_id from
+            rqiot.rq_iot_device_person where person_id = #{userId}
+    </select>
+
+    <select id="fillListByUserId" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT * FROM
+        rqiot.rq_iot_opeation_fill
+        WHERE DATE(create_time) = CURDATE()
+        <if test="userId != null  and userId != ''">
+            and device_id in (select device_id from
+            rqiot.rq_iot_device_person where person_id = #{userId})
+        </if>
+    </select>
+
+    <select id="fillListByDeptId" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillDO">
+        SELECT * FROM
+        rqiot.rq_iot_opeation_fill
+        WHERE DATE(create_time) = CURDATE()
+        <if test="deptId != null  and deptId != ''">
+            and dept_id in (SELECT d1.id
+            FROM system_dept d1
+            JOIN system_dept d2 ON d2.id = d1.parent_id
+            WHERE d2.parent_id = #{deptId}
+            union
+            select id from system_dept where id = #{deptId})
+        </if>
     </select>
 
     <select id="fillList1" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"