Kaynağa Gözat

优化加入智能水电表厂家

Your Name 3 yıl önce
ebeveyn
işleme
944bd5e0f6

+ 85 - 43
java110-bean/src/main/java/com/java110/dto/meterMachine/MeterMachineDto.java

@@ -1,8 +1,11 @@
 package com.java110.dto.meterMachine;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.meterMachineSpec.MeterMachineSpecDto;
+
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -15,20 +18,22 @@ import java.util.Date;
 public class MeterMachineDto extends PageDto implements Serializable {
 
     private String heartbeatTime;
-private String implBean;
-private String address;
-private String prestoreDegrees;
-private String machineName;
-private String roomId;
-private String roomName;
-private String curReadingTime;
-private String machineModel;
-private String curDegrees;
-private String machineId;
-private String meterType;
-private String feeConfigName;
-private String communityId;
-private String feeConfigId;
+    private String implBean;
+    private String address;
+    private String prestoreDegrees;
+    private String machineName;
+    private String roomId;
+    private String roomName;
+    private String curReadingTime;
+    private String machineModel;
+    private String curDegrees;
+    private String machineId;
+    private String meterType;
+    private String feeConfigName;
+    private String communityId;
+    private String feeConfigId;
+
+    private List<MeterMachineSpecDto> specs;
 
 
     private Date createTime;
@@ -39,91 +44,120 @@ private String feeConfigId;
     public String getHeartbeatTime() {
         return heartbeatTime;
     }
-public void setHeartbeatTime(String heartbeatTime) {
+
+    public void setHeartbeatTime(String heartbeatTime) {
         this.heartbeatTime = heartbeatTime;
     }
-public String getImplBean() {
+
+    public String getImplBean() {
         return implBean;
     }
-public void setImplBean(String implBean) {
+
+    public void setImplBean(String implBean) {
         this.implBean = implBean;
     }
-public String getAddress() {
+
+    public String getAddress() {
         return address;
     }
-public void setAddress(String address) {
+
+    public void setAddress(String address) {
         this.address = address;
     }
-public String getPrestoreDegrees() {
+
+    public String getPrestoreDegrees() {
         return prestoreDegrees;
     }
-public void setPrestoreDegrees(String prestoreDegrees) {
+
+    public void setPrestoreDegrees(String prestoreDegrees) {
         this.prestoreDegrees = prestoreDegrees;
     }
-public String getMachineName() {
+
+    public String getMachineName() {
         return machineName;
     }
-public void setMachineName(String machineName) {
+
+    public void setMachineName(String machineName) {
         this.machineName = machineName;
     }
-public String getRoomId() {
+
+    public String getRoomId() {
         return roomId;
     }
-public void setRoomId(String roomId) {
+
+    public void setRoomId(String roomId) {
         this.roomId = roomId;
     }
-public String getRoomName() {
+
+    public String getRoomName() {
         return roomName;
     }
-public void setRoomName(String roomName) {
+
+    public void setRoomName(String roomName) {
         this.roomName = roomName;
     }
-public String getCurReadingTime() {
+
+    public String getCurReadingTime() {
         return curReadingTime;
     }
-public void setCurReadingTime(String curReadingTime) {
+
+    public void setCurReadingTime(String curReadingTime) {
         this.curReadingTime = curReadingTime;
     }
-public String getMachineModel() {
+
+    public String getMachineModel() {
         return machineModel;
     }
-public void setMachineModel(String machineModel) {
+
+    public void setMachineModel(String machineModel) {
         this.machineModel = machineModel;
     }
-public String getCurDegrees() {
+
+    public String getCurDegrees() {
         return curDegrees;
     }
-public void setCurDegrees(String curDegrees) {
+
+    public void setCurDegrees(String curDegrees) {
         this.curDegrees = curDegrees;
     }
-public String getMachineId() {
+
+    public String getMachineId() {
         return machineId;
     }
-public void setMachineId(String machineId) {
+
+    public void setMachineId(String machineId) {
         this.machineId = machineId;
     }
-public String getMeterType() {
+
+    public String getMeterType() {
         return meterType;
     }
-public void setMeterType(String meterType) {
+
+    public void setMeterType(String meterType) {
         this.meterType = meterType;
     }
-public String getFeeConfigName() {
+
+    public String getFeeConfigName() {
         return feeConfigName;
     }
-public void setFeeConfigName(String feeConfigName) {
+
+    public void setFeeConfigName(String feeConfigName) {
         this.feeConfigName = feeConfigName;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getFeeConfigId() {
+
+    public String getFeeConfigId() {
         return feeConfigId;
     }
-public void setFeeConfigId(String feeConfigId) {
+
+    public void setFeeConfigId(String feeConfigId) {
         this.feeConfigId = feeConfigId;
     }
 
@@ -143,4 +177,12 @@ public void setFeeConfigId(String feeConfigId) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public List<MeterMachineSpecDto> getSpecs() {
+        return specs;
+    }
+
+    public void setSpecs(List<MeterMachineSpecDto> specs) {
+        this.specs = specs;
+    }
 }

+ 104 - 0
java110-bean/src/main/java/com/java110/dto/meterMachineSpec/MeterMachineSpecDto.java

@@ -0,0 +1,104 @@
+package com.java110.dto.meterMachineSpec;
+
+import com.java110.dto.PageDto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 智能水电表参数数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class MeterMachineSpecDto extends PageDto implements Serializable {
+
+    private String specId;
+    private String machineId;
+    private String[] machineIds;
+    private String specName;
+    private String specValue;
+    private String communityId;
+    private String mmsId;
+
+
+    private Date createTime;
+
+    private String statusCd = "0";
+
+
+    public String getSpecId() {
+        return specId;
+    }
+
+    public void setSpecId(String specId) {
+        this.specId = specId;
+    }
+
+    public String getMachineId() {
+        return machineId;
+    }
+
+    public void setMachineId(String machineId) {
+        this.machineId = machineId;
+    }
+
+    public String getSpecName() {
+        return specName;
+    }
+
+    public void setSpecName(String specName) {
+        this.specName = specName;
+    }
+
+    public String getSpecValue() {
+        return specValue;
+    }
+
+    public void setSpecValue(String specValue) {
+        this.specValue = specValue;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getMmsId() {
+        return mmsId;
+    }
+
+    public void setMmsId(String mmsId) {
+        this.mmsId = mmsId;
+    }
+
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+
+    public String[] getMachineIds() {
+        return machineIds;
+    }
+
+    public void setMachineIds(String[] machineIds) {
+        this.machineIds = machineIds;
+    }
+}

+ 96 - 0
java110-bean/src/main/java/com/java110/po/meterMachineSpec/MeterMachineSpecPo.java

@@ -0,0 +1,96 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.po.meterMachineSpec;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
+ * add by 吴学文 at 2023-02-23 00:25:39 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+public class MeterMachineSpecPo implements Serializable {
+
+    private String specId;
+    private String machineId;
+    private String specName;
+    private String specValue;
+    private String statusCd = "0";
+    private String communityId;
+    private String mmsId;
+
+    public String getSpecId() {
+        return specId;
+    }
+
+    public void setSpecId(String specId) {
+        this.specId = specId;
+    }
+
+    public String getMachineId() {
+        return machineId;
+    }
+
+    public void setMachineId(String machineId) {
+        this.machineId = machineId;
+    }
+
+    public String getSpecName() {
+        return specName;
+    }
+
+    public void setSpecName(String specName) {
+        this.specName = specName;
+    }
+
+    public String getSpecValue() {
+        return specValue;
+    }
+
+    public void setSpecValue(String specValue) {
+        this.specValue = specValue;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getMmsId() {
+        return mmsId;
+    }
+
+    public void setMmsId(String mmsId) {
+        this.mmsId = mmsId;
+    }
+
+
+}

+ 125 - 0
java110-db/src/main/resources/mapper/common/MeterMachineSpecV1ServiceDaoImplMapper.xml

@@ -0,0 +1,125 @@
+<?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="meterMachineSpecV1ServiceDaoImpl">
+
+
+    <!-- 保存智能水电表参数信息 add by wuxw 2018-07-03 -->
+    <insert id="saveMeterMachineSpecInfo" parameterType="Map">
+        insert into meter_machine_spec(
+        spec_id,machine_id,spec_name,spec_value,community_id,mms_id
+        ) values (
+        #{specId},#{machineId},#{specName},#{specValue},#{communityId},#{mmsId}
+        )
+    </insert>
+
+
+    <!-- 查询智能水电表参数信息 add by wuxw 2018-07-03 -->
+    <select id="getMeterMachineSpecInfo" parameterType="Map" resultType="Map">
+        select t.spec_id,t.spec_id specId,t.machine_id,t.machine_id machineId,t.spec_name,t.spec_name
+        specName,t.spec_value,t.spec_value specValue,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id
+        communityId,t.mms_id,t.mms_id mmsId
+        from meter_machine_spec t
+        where 1 =1
+        <if test="specId !=null and specId != ''">
+            and t.spec_id= #{specId}
+        </if>
+        <if test="machineId !=null and machineId != ''">
+            and t.machine_id= #{machineId}
+        </if>
+        <if test="machineIds !=null">
+            and t.machine_id in
+            <foreach collection="machineIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="specName !=null and specName != ''">
+            and t.spec_name= #{specName}
+        </if>
+        <if test="specValue !=null and specValue != ''">
+            and t.spec_value= #{specValue}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="mmsId !=null and mmsId != ''">
+            and t.mms_id= #{mmsId}
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+
+    </select>
+
+
+    <!-- 修改智能水电表参数信息 add by wuxw 2018-07-03 -->
+    <update id="updateMeterMachineSpecInfo" parameterType="Map">
+        update meter_machine_spec t set t.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,t.b_id = #{newBId}
+        </if>
+        <if test="specName !=null and specName != ''">
+            , t.spec_name= #{specName}
+        </if>
+        <if test="specValue !=null and specValue != ''">
+            , t.spec_value= #{specValue}
+        </if>
+
+        where 1=1
+        <if test="mmsId !=null and mmsId != ''">
+            and t.mms_id= #{mmsId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="specId !=null and specId != ''">
+            and t.spec_id= #{specId}
+        </if>
+        <if test="machineId !=null and machineId != ''">
+            and t.machine_id= #{machineId}
+        </if>
+
+    </update>
+
+    <!-- 查询智能水电表参数数量 add by wuxw 2018-07-03 -->
+    <select id="queryMeterMachineSpecsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from meter_machine_spec t
+        where 1 =1
+        <if test="specId !=null and specId != ''">
+            and t.spec_id= #{specId}
+        </if>
+        <if test="machineId !=null and machineId != ''">
+            and t.machine_id= #{machineId}
+        </if>
+        <if test="machineIds !=null">
+            and t.machine_id in
+            <foreach collection="machineIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="specName !=null and specName != ''">
+            and t.spec_name= #{specName}
+        </if>
+        <if test="specValue !=null and specValue != ''">
+            and t.spec_value= #{specValue}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="mmsId !=null and mmsId != ''">
+            and t.mms_id= #{mmsId}
+        </if>
+
+
+    </select>
+
+</mapper>

+ 68 - 0
java110-interface/src/main/java/com/java110/intf/common/IMeterMachineSpecV1InnerServiceSMO.java

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.intf.common;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.meterMachineSpec.MeterMachineSpecDto;
+import com.java110.po.meterMachineSpec.MeterMachineSpecPo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * 类表述: 服务之前调用的接口类,不对外提供接口能力 只用于接口建调用
+ * add by 吴学文 at 2023-02-23 00:25:39 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@FeignClient(name = "common-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/meterMachineSpecV1Api")
+public interface IMeterMachineSpecV1InnerServiceSMO {
+
+
+    @RequestMapping(value = "/saveMeterMachineSpec", method = RequestMethod.POST)
+    public int saveMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo);
+
+    @RequestMapping(value = "/updateMeterMachineSpec", method = RequestMethod.POST)
+    public int updateMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo);
+
+    @RequestMapping(value = "/deleteMeterMachineSpec", method = RequestMethod.POST)
+    public int deleteMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param meterMachineSpecDto 数据对象分享
+     * @return MeterMachineSpecDto 对象数据
+     */
+    @RequestMapping(value = "/queryMeterMachineSpecs", method = RequestMethod.POST)
+    List<MeterMachineSpecDto> queryMeterMachineSpecs(@RequestBody MeterMachineSpecDto meterMachineSpecDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param meterMachineSpecDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryMeterMachineSpecsCount", method = RequestMethod.POST)
+    int queryMeterMachineSpecsCount(@RequestBody MeterMachineSpecDto meterMachineSpecDto);
+}

+ 16 - 3
service-common/src/main/java/com/java110/common/cmd/meterMachine/DeleteMeterMachineCmd.java

@@ -22,8 +22,11 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.meterMachineSpec.MeterMachineSpecDto;
+import com.java110.intf.common.IMeterMachineSpecV1InnerServiceSMO;
 import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
 import com.java110.po.meterMachine.MeterMachinePo;
+import com.java110.po.meterMachineSpec.MeterMachineSpecPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -31,6 +34,7 @@ import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 /**
  * 类表述:删除
  * 服务编码:meterMachine.deleteMeterMachine
@@ -43,15 +47,18 @@ import org.slf4j.LoggerFactory;
  */
 @Java110Cmd(serviceCode = "meterMachine.deleteMeterMachine")
 public class DeleteMeterMachineCmd extends Cmd {
-  private static Logger logger = LoggerFactory.getLogger(DeleteMeterMachineCmd.class);
+    private static Logger logger = LoggerFactory.getLogger(DeleteMeterMachineCmd.class);
 
     @Autowired
     private IMeterMachineV1InnerServiceSMO meterMachineV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IMeterMachineSpecV1InnerServiceSMO machineSpecV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "machineId", "machineId不能为空");
-Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
 
     }
 
@@ -59,13 +66,19 @@ Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       MeterMachinePo meterMachinePo = BeanConvertUtil.covertBean(reqJson, MeterMachinePo.class);
+        MeterMachinePo meterMachinePo = BeanConvertUtil.covertBean(reqJson, MeterMachinePo.class);
         int flag = meterMachineV1InnerServiceSMOImpl.deleteMeterMachine(meterMachinePo);
 
         if (flag < 1) {
             throw new CmdException("删除数据失败");
         }
 
+        MeterMachineSpecPo meterMachineSpecPo = new MeterMachineSpecPo();
+        meterMachineSpecPo.setCommunityId(meterMachinePo.getCommunityId());
+        meterMachineSpecPo.setMachineId(meterMachinePo.getMachineId());
+        machineSpecV1InnerServiceSMOImpl.deleteMeterMachineSpec(meterMachineSpecPo);
+
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 }

+ 59 - 12
service-common/src/main/java/com/java110/common/cmd/meterMachine/ListMeterMachineCmd.java

@@ -22,6 +22,10 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.meterMachineFactory.MeterMachineFactoryDto;
+import com.java110.dto.meterMachineFactorySpec.MeterMachineFactorySpecDto;
+import com.java110.dto.meterMachineSpec.MeterMachineSpecDto;
+import com.java110.intf.common.IMeterMachineSpecV1InnerServiceSMO;
 import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
 import com.java110.po.meterMachine.MeterMachinePo;
 import com.java110.utils.exception.CmdException;
@@ -30,8 +34,10 @@ import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.java110.dto.meterMachine.MeterMachineDto;
+
 import java.util.List;
 import java.util.ArrayList;
+
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.HttpStatus;
 import org.slf4j.Logger;
@@ -51,34 +57,75 @@ import org.slf4j.LoggerFactory;
 @Java110Cmd(serviceCode = "meterMachine.listMeterMachine")
 public class ListMeterMachineCmd extends Cmd {
 
-  private static Logger logger = LoggerFactory.getLogger(ListMeterMachineCmd.class);
+    private static Logger logger = LoggerFactory.getLogger(ListMeterMachineCmd.class);
     @Autowired
     private IMeterMachineV1InnerServiceSMO meterMachineV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IMeterMachineSpecV1InnerServiceSMO meterMachineSpecV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
     }
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-           MeterMachineDto meterMachineDto = BeanConvertUtil.covertBean(reqJson, MeterMachineDto.class);
+        MeterMachineDto meterMachineDto = BeanConvertUtil.covertBean(reqJson, MeterMachineDto.class);
+
+        int count = meterMachineV1InnerServiceSMOImpl.queryMeterMachinesCount(meterMachineDto);
+
+        List<MeterMachineDto> meterMachineDtos = null;
+
+        if (count > 0) {
+            meterMachineDtos = meterMachineV1InnerServiceSMOImpl.queryMeterMachines(meterMachineDto);
+            freshSpecs(meterMachineDtos);
+        } else {
+            meterMachineDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, meterMachineDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        cmdDataFlowContext.setResponseEntity(responseEntity);
+    }
 
-           int count = meterMachineV1InnerServiceSMOImpl.queryMeterMachinesCount(meterMachineDto);
+    /**
+     * 刷入配置
+     *
+     * @param meterMachineDtos
+     */
+    private void freshSpecs(List<MeterMachineDto> meterMachineDtos) {
 
-           List<MeterMachineDto> meterMachineDtos = null;
+        if (meterMachineDtos == null || meterMachineDtos.size() < 1) {
+            return;
+        }
 
-           if (count > 0) {
-               meterMachineDtos = meterMachineV1InnerServiceSMOImpl.queryMeterMachines(meterMachineDto);
-           } else {
-               meterMachineDtos = new ArrayList<>();
-           }
+        List<String> machineIds = new ArrayList<>();
+        for (MeterMachineDto meterMachineDto : meterMachineDtos) {
+            machineIds.add(meterMachineDto.getMachineId());
+        }
 
-           ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, meterMachineDtos);
+        MeterMachineSpecDto meterMachineSpecDto = new MeterMachineSpecDto();
+        meterMachineSpecDto.setMachineIds(machineIds.toArray(new String[machineIds.size()]));
 
-           ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        List<MeterMachineSpecDto> meterMachineSpecDtos = meterMachineSpecV1InnerServiceSMOImpl.queryMeterMachineSpecs(meterMachineSpecDto);
 
-           cmdDataFlowContext.setResponseEntity(responseEntity);
+        if (meterMachineSpecDtos == null || meterMachineSpecDtos.size() < 1) {
+            return;
+        }
+        List<MeterMachineSpecDto> specs = null;
+        for (MeterMachineDto meterMachineDto : meterMachineDtos) {
+            specs = new ArrayList<>();
+            for (MeterMachineSpecDto tmpMeterMachineFactorySpecDto : meterMachineSpecDtos) {
+                if (meterMachineDto.getMachineId().equals(tmpMeterMachineFactorySpecDto.getMachineId())) {
+                    specs.add(tmpMeterMachineFactorySpecDto);
+                }
+            }
+            meterMachineDto.setSpecs(specs);
+        }
     }
 }

+ 75 - 0
service-common/src/main/java/com/java110/common/cmd/meterMachine/SaveMeterMachineCmd.java

@@ -15,6 +15,7 @@
  */
 package com.java110.common.cmd.meterMachine;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,16 +23,23 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.intf.common.IMeterMachineSpecV1InnerServiceSMO;
 import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.po.meterMachine.MeterMachinePo;
+import com.java110.po.meterMachineSpec.MeterMachineSpecPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 /**
  * 类表述:保存
  * 服务编码:meterMachine.saveMeterMachine
@@ -52,6 +60,12 @@ public class SaveMeterMachineCmd extends Cmd {
     @Autowired
     private IMeterMachineV1InnerServiceSMO meterMachineV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IMeterMachineSpecV1InnerServiceSMO meterMachineSpecV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "machineName", "请求报文中未包含machineName");
@@ -59,23 +73,84 @@ public class SaveMeterMachineCmd extends Cmd {
         Assert.hasKeyAndValue(reqJson, "meterType", "请求报文中未包含meterType");
         Assert.hasKeyAndValue(reqJson, "machineModel", "请求报文中未包含machineModel");
         Assert.hasKeyAndValue(reqJson, "roomId", "请求报文中未包含roomId");
+        Assert.hasKeyAndValue(reqJson, "roomName", "请求报文中未包含房屋名称");
         Assert.hasKeyAndValue(reqJson, "feeConfigId", "请求报文中未包含feeConfigId");
         Assert.hasKeyAndValue(reqJson, "implBean", "请求报文中未包含implBean");
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
 
+        if (!reqJson.containsKey("specs")) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONArray specs = reqJson.getJSONArray("specs");
+        if (specs == null || specs.size() < 1) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONObject specObj = null;
+        for (int specIndex = 0; specIndex < specs.size(); specIndex++) {
+            specObj = specs.getJSONObject(specIndex);
+
+            Assert.hasKeyAndValue(specObj, "specValue", "未包含" + specObj.getString("specName"));
+        }
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setConfigId(reqJson.getString("feeConfigId"));
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        Assert.listOnlyOne(feeConfigDtos, "费用项不存在");
+
         MeterMachinePo meterMachinePo = BeanConvertUtil.covertBean(reqJson, MeterMachinePo.class);
         meterMachinePo.setMachineId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        meterMachinePo.setFeeConfigName(feeConfigDtos.get(0).getFeeName());
+        meterMachinePo.setCurDegrees("0");
+        meterMachinePo.setCurReadingTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        meterMachinePo.setPrestoreDegrees("0");
+        meterMachinePo.setHeartbeatTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         int flag = meterMachineV1InnerServiceSMOImpl.saveMeterMachine(meterMachinePo);
 
         if (flag < 1) {
             throw new CmdException("保存数据失败");
         }
+        if (!reqJson.containsKey("specs")) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONArray specs = reqJson.getJSONArray("specs");
+        if (specs == null || specs.size() < 1) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONObject specObj = null;
+        MeterMachineSpecPo meterMachineSpecPo = null;
+        for (int specIndex = 0; specIndex < specs.size(); specIndex++) {
+            specObj = specs.getJSONObject(specIndex);
+            meterMachineSpecPo = new MeterMachineSpecPo();
+            meterMachineSpecPo.setMachineId(meterMachinePo.getMachineId());
+            meterMachineSpecPo.setSpecId(specObj.getString("specId"));
+            meterMachineSpecPo.setSpecName(specObj.getString("specName"));
+            meterMachineSpecPo.setSpecValue(specObj.getString("specValue"));
+            meterMachineSpecPo.setMmsId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            meterMachineSpecPo.setCommunityId(meterMachinePo.getCommunityId());
+            flag = meterMachineSpecV1InnerServiceSMOImpl.saveMeterMachineSpec(meterMachineSpecPo);
+
+            if (flag < 1) {
+                throw new CmdException("保存数据失败");
+            }
+        }
 
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }

+ 58 - 3
service-common/src/main/java/com/java110/common/cmd/meterMachine/UpdateMeterMachineCmd.java

@@ -15,6 +15,7 @@
  */
 package com.java110.common.cmd.meterMachine;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,8 +23,10 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.intf.common.IMeterMachineSpecV1InnerServiceSMO;
 import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
 import com.java110.po.meterMachine.MeterMachinePo;
+import com.java110.po.meterMachineSpec.MeterMachineSpecPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -46,30 +49,82 @@ import org.slf4j.LoggerFactory;
 @Java110Cmd(serviceCode = "meterMachine.updateMeterMachine")
 public class UpdateMeterMachineCmd extends Cmd {
 
-  private static Logger logger = LoggerFactory.getLogger(UpdateMeterMachineCmd.class);
+    private static Logger logger = LoggerFactory.getLogger(UpdateMeterMachineCmd.class);
 
 
     @Autowired
     private IMeterMachineV1InnerServiceSMO meterMachineV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IMeterMachineSpecV1InnerServiceSMO meterMachineSpecV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "machineId", "machineId不能为空");
-Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+
+        if (!reqJson.containsKey("specs")) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
 
+        JSONArray specs = reqJson.getJSONArray("specs");
+        if (specs == null || specs.size() < 1) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONObject specObj = null;
+        for (int specIndex = 0; specIndex < specs.size(); specIndex++) {
+            specObj = specs.getJSONObject(specIndex);
+
+            Assert.hasKeyAndValue(specObj, "specValue", "未包含" + specObj.getString("specName"));
+        }
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       MeterMachinePo meterMachinePo = BeanConvertUtil.covertBean(reqJson, MeterMachinePo.class);
+        MeterMachinePo meterMachinePo = BeanConvertUtil.covertBean(reqJson, MeterMachinePo.class);
         int flag = meterMachineV1InnerServiceSMOImpl.updateMeterMachine(meterMachinePo);
 
         if (flag < 1) {
             throw new CmdException("更新数据失败");
         }
 
+        if (!reqJson.containsKey("specs")) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONArray specs = reqJson.getJSONArray("specs");
+        if (specs == null || specs.size() < 1) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+            return;
+        }
+
+        JSONObject specObj = null;
+        MeterMachineSpecPo meterMachineSpecPo = null;
+        for (int specIndex = 0; specIndex < specs.size(); specIndex++) {
+            specObj = specs.getJSONObject(specIndex);
+            meterMachineSpecPo = new MeterMachineSpecPo();
+            meterMachineSpecPo.setMachineId(meterMachinePo.getMachineId());
+            meterMachineSpecPo.setSpecId(specObj.getString("specId"));
+            meterMachineSpecPo.setSpecName(specObj.getString("specName"));
+            meterMachineSpecPo.setSpecValue(specObj.getString("specValue"));
+            meterMachineSpecPo.setCommunityId(meterMachinePo.getCommunityId());
+            flag = meterMachineSpecV1InnerServiceSMOImpl.updateMeterMachineSpec(meterMachineSpecPo);
+
+            if (flag < 1) {
+                throw new CmdException("修改数据失败");
+            }
+        }
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 }

+ 77 - 0
service-common/src/main/java/com/java110/common/dao/IMeterMachineSpecV1ServiceDao.java

@@ -0,0 +1,77 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.common.dao;
+
+
+import com.java110.utils.exception.DAOException;
+import com.java110.entity.merchant.BoMerchant;
+import com.java110.entity.merchant.BoMerchantAttr;
+import com.java110.entity.merchant.Merchant;
+import com.java110.entity.merchant.MerchantAttr;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 类表述:
+ * add by 吴学文 at 2023-02-23 00:25:39 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+public interface IMeterMachineSpecV1ServiceDao {
+
+
+    /**
+     * 保存 智能水电表参数信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    int saveMeterMachineSpecInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询智能水电表参数信息(instance过程)
+     * 根据bId 查询智能水电表参数信息
+     * @param info bId 信息
+     * @return 智能水电表参数信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getMeterMachineSpecInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改智能水电表参数信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    int updateMeterMachineSpecInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询智能水电表参数总数
+     *
+     * @param info 智能水电表参数信息
+     * @return 智能水电表参数数量
+     */
+    int queryMeterMachineSpecsCount(Map info);
+
+}

+ 113 - 0
service-common/src/main/java/com/java110/common/dao/impl/MeterMachineSpecV1ServiceDaoImpl.java

@@ -0,0 +1,113 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.common.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.DAOException;
+import com.java110.utils.util.DateUtil;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.common.dao.IMeterMachineSpecV1ServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 类表述:
+ * add by 吴学文 at 2023-02-23 00:25:39 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Service("meterMachineSpecV1ServiceDaoImpl")
+public class MeterMachineSpecV1ServiceDaoImpl extends BaseServiceDao implements IMeterMachineSpecV1ServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(MeterMachineSpecV1ServiceDaoImpl.class);
+
+
+    /**
+     * 保存智能水电表参数信息 到 instance
+     *
+     * @param info bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int saveMeterMachineSpecInfo(Map info) throws DAOException {
+        logger.debug("保存 saveMeterMachineSpecInfo 入参 info : {}", info);
+
+        int saveFlag = sqlSessionTemplate.insert("meterMachineSpecV1ServiceDaoImpl.saveMeterMachineSpecInfo", info);
+
+        return saveFlag;
+    }
+
+
+    /**
+     * 查询智能水电表参数信息(instance)
+     *
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getMeterMachineSpecInfo(Map info) throws DAOException {
+        logger.debug("查询 getMeterMachineSpecInfo 入参 info : {}", info);
+
+        List<Map> businessMeterMachineSpecInfos = sqlSessionTemplate.selectList("meterMachineSpecV1ServiceDaoImpl.getMeterMachineSpecInfo", info);
+
+        return businessMeterMachineSpecInfos;
+    }
+
+
+    /**
+     * 修改智能水电表参数信息
+     *
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int updateMeterMachineSpecInfo(Map info) throws DAOException {
+        logger.debug("修改 updateMeterMachineSpecInfo 入参 info : {}", info);
+
+        int saveFlag = sqlSessionTemplate.update("meterMachineSpecV1ServiceDaoImpl.updateMeterMachineSpecInfo", info);
+
+        return saveFlag;
+    }
+
+    /**
+     * 查询智能水电表参数数量
+     *
+     * @param info 智能水电表参数信息
+     * @return 智能水电表参数数量
+     */
+    @Override
+    public int queryMeterMachineSpecsCount(Map info) {
+        logger.debug("查询 queryMeterMachineSpecsCount 入参 info : {}", info);
+
+        List<Map> businessMeterMachineSpecInfos = sqlSessionTemplate.selectList("meterMachineSpecV1ServiceDaoImpl.queryMeterMachineSpecsCount", info);
+        if (businessMeterMachineSpecInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessMeterMachineSpecInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 89 - 0
service-common/src/main/java/com/java110/common/smo/impl/MeterMachineSpecV1InnerServiceSMOImpl.java

@@ -0,0 +1,89 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.common.smo.impl;
+
+
+import com.java110.common.dao.IMeterMachineSpecV1ServiceDao;
+import com.java110.intf.common.IMeterMachineSpecV1InnerServiceSMO;
+import com.java110.dto.meterMachineSpec.MeterMachineSpecDto;
+import com.java110.po.meterMachineSpec.MeterMachineSpecPo;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.user.UserDto;
+import com.java110.dto.PageDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 类表述: 服务之前调用的接口实现类,不对外提供接口能力 只用于接口建调用
+ * add by 吴学文 at 2023-02-23 00:25:39 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@RestController
+public class MeterMachineSpecV1InnerServiceSMOImpl extends BaseServiceSMO implements IMeterMachineSpecV1InnerServiceSMO {
+
+    @Autowired
+    private IMeterMachineSpecV1ServiceDao meterMachineSpecV1ServiceDaoImpl;
+
+
+    @Override
+    public int saveMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo) {
+        int saveFlag = meterMachineSpecV1ServiceDaoImpl.saveMeterMachineSpecInfo(BeanConvertUtil.beanCovertMap(meterMachineSpecPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int updateMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo) {
+        int saveFlag = meterMachineSpecV1ServiceDaoImpl.updateMeterMachineSpecInfo(BeanConvertUtil.beanCovertMap(meterMachineSpecPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int deleteMeterMachineSpec(@RequestBody  MeterMachineSpecPo meterMachineSpecPo) {
+       meterMachineSpecPo.setStatusCd("1");
+       int saveFlag = meterMachineSpecV1ServiceDaoImpl.updateMeterMachineSpecInfo(BeanConvertUtil.beanCovertMap(meterMachineSpecPo));
+       return saveFlag;
+    }
+
+    @Override
+    public List<MeterMachineSpecDto> queryMeterMachineSpecs(@RequestBody  MeterMachineSpecDto meterMachineSpecDto) {
+
+        //校验是否传了 分页信息
+
+        int page = meterMachineSpecDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            meterMachineSpecDto.setPage((page - 1) * meterMachineSpecDto.getRow());
+        }
+
+        List<MeterMachineSpecDto> meterMachineSpecs = BeanConvertUtil.covertBeanList(meterMachineSpecV1ServiceDaoImpl.getMeterMachineSpecInfo(BeanConvertUtil.beanCovertMap(meterMachineSpecDto)), MeterMachineSpecDto.class);
+
+        return meterMachineSpecs;
+    }
+
+
+    @Override
+    public int queryMeterMachineSpecsCount(@RequestBody MeterMachineSpecDto meterMachineSpecDto) {
+        return meterMachineSpecV1ServiceDaoImpl.queryMeterMachineSpecsCount(BeanConvertUtil.beanCovertMap(meterMachineSpecDto));    }
+
+}