java110 пре 3 година
родитељ
комит
eef727f49a

+ 9 - 0
java110-bean/src/main/java/com/java110/po/meterWater/MeterWaterPo.java

@@ -19,6 +19,7 @@ public class MeterWaterPo implements Serializable {
     private String feeId;
     private double price;
     private Date createTime;
+    private String statusCd = "0";
 
     public String getRemark() {
         return remark;
@@ -131,4 +132,12 @@ public class MeterWaterPo implements Serializable {
     public void setPrice(double price) {
         this.price = price;
     }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
 }

+ 178 - 0
java110-db/src/main/resources/mapper/fee/MeterWaterV1ServiceDaoImplMapper.xml

@@ -0,0 +1,178 @@
+<?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="meterWaterV1ServiceDaoImpl">
+
+
+
+
+
+    <!-- 保存水电抄表信息 add by wuxw 2018-07-03 -->
+    <insert id="saveMeterWaterInfo" parameterType="Map">
+        insert into meter_water(
+remark,obj_name,fee_id,cur_reading_time,water_id,cur_degrees,price,meter_type,pre_degrees,obj_id,pre_reading_time,community_id,obj_type
+) values (
+#{remark},#{objName},#{feeId},#{curReadingTime},#{waterId},#{curDegrees},#{price},#{meterType},#{preDegrees},#{objId},#{preReadingTime},#{communityId},#{objType}
+)
+    </insert>
+
+
+
+    <!-- 查询水电抄表信息 add by wuxw 2018-07-03 -->
+    <select id="getMeterWaterInfo" parameterType="Map" resultType="Map">
+        select  t.status_cd,t.status_cd statusCd,t.remark,t.obj_name,t.obj_name objName,t.fee_id,t.fee_id feeId,t.cur_reading_time,t.cur_reading_time curReadingTime,t.water_id,t.water_id waterId,t.cur_degrees,t.cur_degrees curDegrees,t.price,t.meter_type,t.meter_type meterType,t.pre_degrees,t.pre_degrees preDegrees,t.obj_id,t.obj_id objId,t.pre_reading_time,t.pre_reading_time preReadingTime,t.community_id,t.community_id communityId,t.obj_type,t.obj_type objType 
+from meter_water t 
+where 1 =1 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="remark !=null and remark != ''">
+   and t.remark= #{remark}
+</if> 
+<if test="objName !=null and objName != ''">
+   and t.obj_name= #{objName}
+</if> 
+<if test="feeId !=null and feeId != ''">
+   and t.fee_id= #{feeId}
+</if> 
+<if test="curReadingTime !=null and curReadingTime != ''">
+   and t.cur_reading_time= #{curReadingTime}
+</if> 
+<if test="waterId !=null and waterId != ''">
+   and t.water_id= #{waterId}
+</if> 
+<if test="curDegrees !=null and curDegrees != ''">
+   and t.cur_degrees= #{curDegrees}
+</if> 
+<if test="price !=null and price != ''">
+   and t.price= #{price}
+</if> 
+<if test="meterType !=null and meterType != ''">
+   and t.meter_type= #{meterType}
+</if> 
+<if test="preDegrees !=null and preDegrees != ''">
+   and t.pre_degrees= #{preDegrees}
+</if> 
+<if test="objId !=null and objId != ''">
+   and t.obj_id= #{objId}
+</if> 
+<if test="preReadingTime !=null and preReadingTime != ''">
+   and t.pre_reading_time= #{preReadingTime}
+</if> 
+<if test="communityId !=null and communityId != ''">
+   and t.community_id= #{communityId}
+</if> 
+<if test="objType !=null and objType != ''">
+   and t.obj_type= #{objType}
+</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="updateMeterWaterInfo" parameterType="Map">
+        update  meter_water t set t.status_cd = #{statusCd}
+<if test="newBId != null and newBId != ''">
+,t.b_id = #{newBId}
+</if> 
+<if test="remark !=null and remark != ''">
+, t.remark= #{remark}
+</if> 
+<if test="objName !=null and objName != ''">
+, t.obj_name= #{objName}
+</if> 
+<if test="feeId !=null and feeId != ''">
+, t.fee_id= #{feeId}
+</if> 
+<if test="curReadingTime !=null and curReadingTime != ''">
+, t.cur_reading_time= #{curReadingTime}
+</if> 
+<if test="curDegrees !=null and curDegrees != ''">
+, t.cur_degrees= #{curDegrees}
+</if> 
+<if test="price !=null and price != ''">
+, t.price= #{price}
+</if> 
+<if test="meterType !=null and meterType != ''">
+, t.meter_type= #{meterType}
+</if> 
+<if test="preDegrees !=null and preDegrees != ''">
+, t.pre_degrees= #{preDegrees}
+</if> 
+<if test="objId !=null and objId != ''">
+, t.obj_id= #{objId}
+</if> 
+<if test="preReadingTime !=null and preReadingTime != ''">
+, t.pre_reading_time= #{preReadingTime}
+</if> 
+<if test="communityId !=null and communityId != ''">
+, t.community_id= #{communityId}
+</if> 
+<if test="objType !=null and objType != ''">
+, t.obj_type= #{objType}
+</if> 
+ where 1=1 <if test="waterId !=null and waterId != ''">
+and t.water_id= #{waterId}
+</if> 
+
+    </update>
+
+    <!-- 查询水电抄表数量 add by wuxw 2018-07-03 -->
+     <select id="queryMeterWatersCount" parameterType="Map" resultType="Map">
+        select  count(1) count 
+from meter_water t 
+where 1 =1 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="remark !=null and remark != ''">
+   and t.remark= #{remark}
+</if> 
+<if test="objName !=null and objName != ''">
+   and t.obj_name= #{objName}
+</if> 
+<if test="feeId !=null and feeId != ''">
+   and t.fee_id= #{feeId}
+</if> 
+<if test="curReadingTime !=null and curReadingTime != ''">
+   and t.cur_reading_time= #{curReadingTime}
+</if> 
+<if test="waterId !=null and waterId != ''">
+   and t.water_id= #{waterId}
+</if> 
+<if test="curDegrees !=null and curDegrees != ''">
+   and t.cur_degrees= #{curDegrees}
+</if> 
+<if test="price !=null and price != ''">
+   and t.price= #{price}
+</if> 
+<if test="meterType !=null and meterType != ''">
+   and t.meter_type= #{meterType}
+</if> 
+<if test="preDegrees !=null and preDegrees != ''">
+   and t.pre_degrees= #{preDegrees}
+</if> 
+<if test="objId !=null and objId != ''">
+   and t.obj_id= #{objId}
+</if> 
+<if test="preReadingTime !=null and preReadingTime != ''">
+   and t.pre_reading_time= #{preReadingTime}
+</if> 
+<if test="communityId !=null and communityId != ''">
+   and t.community_id= #{communityId}
+</if> 
+<if test="objType !=null and objType != ''">
+   and t.obj_type= #{objType}
+</if> 
+
+
+     </select>
+
+</mapper>

+ 68 - 0
java110-interface/src/main/java/com/java110/intf/fee/IMeterWaterV1InnerServiceSMO.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.fee;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.po.meterWater.MeterWaterPo;
+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 2022-07-21 09:17:10 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 = "fee-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/meterWaterV1Api")
+public interface IMeterWaterV1InnerServiceSMO {
+
+
+    @RequestMapping(value = "/saveMeterWater", method = RequestMethod.POST)
+    public int saveMeterWater(@RequestBody  MeterWaterPo meterWaterPo);
+
+    @RequestMapping(value = "/updateMeterWater", method = RequestMethod.POST)
+    public int updateMeterWater(@RequestBody  MeterWaterPo meterWaterPo);
+
+    @RequestMapping(value = "/deleteMeterWater", method = RequestMethod.POST)
+    public int deleteMeterWater(@RequestBody  MeterWaterPo meterWaterPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param meterWaterDto 数据对象分享
+     * @return MeterWaterDto 对象数据
+     */
+    @RequestMapping(value = "/queryMeterWaters", method = RequestMethod.POST)
+    List<MeterWaterDto> queryMeterWaters(@RequestBody MeterWaterDto meterWaterDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param meterWaterDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryMeterWatersCount", method = RequestMethod.POST)
+    int queryMeterWatersCount(@RequestBody MeterWaterDto meterWaterDto);
+}

+ 0 - 80
service-api/src/main/java/com/java110/api/listener/meterWater/DeleteMeterWaterListener.java

@@ -1,80 +0,0 @@
-package com.java110.api.listener.meterWater;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.meterWater.IMeterWaterBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.dto.fee.FeeDto;
-import com.java110.dto.meterWater.MeterWaterDto;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
-import com.java110.po.fee.PayFeePo;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-import java.util.List;
-
-
-/**
- * 保存小区侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("deleteMeterWaterListener")
-public class DeleteMeterWaterListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IMeterWaterBMO meterWaterBMOImpl;
-
-    @Autowired
-    private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
-
-    @Autowired
-    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        MeterWaterDto meterWaterDto = new MeterWaterDto();
-        meterWaterDto.setWaterId(reqJson.getString("waterId"));
-        meterWaterDto.setCommunityId(reqJson.getString("communityId"));
-        List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
-
-        Assert.listOnlyOne(meterWaterDtos, "数据异常未找到费用信息");
-
-        //判断费用是否已经被删除
-        FeeDto feeDto = new FeeDto();
-        feeDto.setFeeId(meterWaterDtos.get(0).getFeeId());
-        feeDto.setCommunityId(meterWaterDtos.get(0).getCommunityId());
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-        if (feeDtos != null && feeDtos.size() > 0) {
-            PayFeePo payFeePo = new PayFeePo();
-            payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId());
-            payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId());
-            super.delete(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_FEE_INFO);
-        }
-        meterWaterBMOImpl.deleteMeterWater(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMeterWaterConstant.DELETE_METERWATER;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-}

+ 113 - 0
service-fee/src/main/java/com/java110/fee/cmd/meterWater/DeleteMeterWaterCmd.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.fee.cmd.meterWater;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
+import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.meterWater.MeterWaterPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+/**
+ * 类表述:删除
+ * 服务编码:meterWater.deleteMeterWater
+ * 请求路劲:/app/meterWater.DeleteMeterWater
+ * add by 吴学文 at 2022-07-21 09:17:10 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行
+ */
+@Java110Cmd(serviceCode = "meterWater.deleteMeterWater")
+public class DeleteMeterWaterCmd extends Cmd {
+    private static Logger logger = LoggerFactory.getLogger(DeleteMeterWaterCmd.class);
+
+    @Autowired
+    private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
+        MeterWaterDto meterWaterDto = new MeterWaterDto();
+        meterWaterDto.setWaterId(reqJson.getString("waterId"));
+        meterWaterDto.setCommunityId(reqJson.getString("communityId"));
+        List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
+
+        Assert.listOnlyOne(meterWaterDtos, "数据异常未找到费用信息");
+        int flag = 0;
+        //判断费用是否已经被删除
+        FeeDto feeDto = new FeeDto();
+        feeDto.setFeeId(meterWaterDtos.get(0).getFeeId());
+        feeDto.setCommunityId(meterWaterDtos.get(0).getCommunityId());
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+        if (feeDtos != null && feeDtos.size() > 0) {
+            PayFeePo payFeePo = new PayFeePo();
+            payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId());
+            payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId());
+            flag = payFeeV1InnerServiceSMOImpl.deletePayFee(payFeePo);
+            if (flag < 1) {
+                throw new CmdException("删除数据失败");
+            }
+        }
+
+        MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(reqJson, MeterWaterPo.class);
+        flag = meterWaterV1InnerServiceSMOImpl.deleteMeterWater(meterWaterPo);
+
+        if (flag < 1) {
+            throw new CmdException("删除数据失败");
+        }
+
+        cmdDataFlowContext.setResponseEntity(ResultVo.success());
+    }
+}

+ 47 - 42
service-api/src/main/java/com/java110/api/listener/meterWater/ListMeterWatersListener.java

@@ -1,35 +1,66 @@
-package com.java110.api.listener.meterWater;
+/*
+ * 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.fee.cmd.meterWater;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+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.RoomDto;
-import com.java110.dto.meterWater.MeterWaterDto;
 import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
-import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
+import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO;
+import com.java110.po.meterWater.MeterWaterPo;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
+import com.java110.dto.meterWater.MeterWaterDto;
+import java.util.List;
+import java.util.ArrayList;
 import org.springframework.http.ResponseEntity;
+import org.springframework.http.HttpStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.List;
 
 /**
- * 查询小区侦听类
+ * 类表述:查询
+ * 服务编码:meterWater.listMeterWater
+ * 请求路劲:/app/meterWater.ListMeterWater
+ * add by 吴学文 at 2022-07-21 09:17:10 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行
  */
-@Java110Listener("listMeterWatersListener")
-public class ListMeterWatersListener extends AbstractServiceApiListener {
+@Java110Cmd(serviceCode = "meterWater.listMeterWaters")
+public class ListMeterWaterCmd extends Cmd {
+
+  private static Logger logger = LoggerFactory.getLogger(ListMeterWaterCmd.class);
+    @Autowired
+    private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl;
 
     @Autowired
     private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
@@ -41,38 +72,13 @@ public class ListMeterWatersListener extends AbstractServiceApiListener {
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
 
     @Override
-    public String getServiceCode() {
-        return ServiceCodeMeterWaterConstant.LIST_METERWATERS;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public IMeterWaterInnerServiceSMO getMeterWaterInnerServiceSMOImpl() {
-        return meterWaterInnerServiceSMOImpl;
-    }
-
-    public void setMeterWaterInnerServiceSMOImpl(IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl) {
-        this.meterWaterInnerServiceSMOImpl = meterWaterInnerServiceSMOImpl;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
 
         MeterWaterDto meterWaterDto = BeanConvertUtil.covertBean(reqJson, MeterWaterDto.class);
         ResultVo resultVo = null;
@@ -97,7 +103,6 @@ public class ListMeterWatersListener extends AbstractServiceApiListener {
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
         context.setResponseEntity(responseEntity);
-
     }
 
     private boolean freshFeeDtoParam(MeterWaterDto meterWaterDto, JSONObject reqJson) {

+ 103 - 50
service-api/src/main/java/com/java110/api/listener/meterWater/SaveMeterWaterListener.java

@@ -1,11 +1,26 @@
-package com.java110.api.listener.meterWater;
+/*
+ * 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.fee.cmd.meterWater;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.meterWater.IMeterWaterBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+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.RoomDto;
 import com.java110.dto.fee.FeeAttrDto;
@@ -15,35 +30,47 @@ import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.payFeeBatch.PayFeeBatchDto;
 import com.java110.dto.user.UserDto;
 import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO;
 import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeePo;
+import com.java110.po.meterWater.MeterWaterPo;
 import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.cache.MappingCache;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
 /**
- * 保存商户侦听
- * add by wuxw 2019-06-30
+ * 类表述:保存
+ * 服务编码:meterWater.saveMeterWater
+ * 请求路劲:/app/meterWater.SaveMeterWater
+ * add by 吴学文 at 2022-07-21 09:17:10 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行
  */
-@Java110Listener("saveMeterWaterListener")
-public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
+@Java110Cmd(serviceCode = "meterWater.saveMeterWater")
+public class SaveMeterWaterCmd extends Cmd {
+
+    private static Logger logger = LoggerFactory.getLogger(SaveMeterWaterCmd.class);
+
+    public static final String CODE_PREFIX_ID = "10";
 
-    @Autowired
-    private IMeterWaterBMO meterWaterBMOImpl;
 
     @Autowired
     private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
@@ -67,10 +94,18 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
+    @Autowired
+    private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl;
+
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
 
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "请求报文中未包含费用类型");
         Assert.hasKeyAndValue(reqJson, "configId", "请求报文中未包含费用项");
         Assert.hasKeyAndValue(reqJson, "objType", "请求报文中未包含objType");
@@ -81,18 +116,13 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "curReadingTime", "请求报文中未包含curReadingTime");
         Assert.hasKeyAndValue(reqJson, "objType", "请求报文中未包含objType");
         Assert.hasKeyAndValue(reqJson, "meterType", "请求报文中未包含抄表类型");
+
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-//        if (FeeConfigDto.FEE_TYPE_CD_WATER.equals(reqJson.getString("feeTypeCd"))) {
-//            reqJson.put("meterType", "1010");
-//        } else if (FeeConfigDto.FEE_TYPE_CD_GAS.equals(reqJson.getString("feeTypeCd"))) {
-//            reqJson.put("meterType", "3030");
-//        } else {
-//            reqJson.put("meterType", "2020");
-//        }
-        //获取抄表对象id(即房屋id)
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
         String objId = reqJson.getString("objId");
         RoomDto roomDto = new RoomDto();
         roomDto.setRoomId(objId);
@@ -124,11 +154,11 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
         if (waterRemarkList.contains(communityId)
                 && FeeConfigDto.FEE_TYPE_CD_METER.equals(reqJson.getString("feeTypeCd"))) {
             reqJson.put("feeId", "-1");
-            meterWaterBMOImpl.addMeterWater(reqJson, context);
+            addMeterWater(reqJson);
         } else if (electricRemarkList.contains(communityId)
                 && FeeConfigDto.FEE_TYPE_CD_WATER.equals(reqJson.getString("feeTypeCd"))) {
             reqJson.put("feeId", "-1");
-            meterWaterBMOImpl.addMeterWater(reqJson, context);
+            addMeterWater(reqJson);
         } else {
             PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
             payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
@@ -142,15 +172,21 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
             payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
             payFeePo.setState(FeeDto.STATE_DOING);
             payFeePo.setBatchId(reqJson.getString("batchId"));
-            payFeePo.setUserId(context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-            super.insert(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+            payFeePo.setUserId("-1");
+            int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
+            if (flag < 1) {
+                throw new CmdException("保存数据失败");
+            }
             FeeAttrPo feeAttrPo = new FeeAttrPo();
             feeAttrPo.setCommunityId(reqJson.getString("communityId"));
             feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
             feeAttrPo.setValue(reqJson.getString("curReadingTime"));
             feeAttrPo.setFeeId(payFeePo.getFeeId());
-            feeAttrPo.setAttrId("-1");
-            super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+            if (flag < 1) {
+                throw new CmdException("保存数据失败");
+            }
             OwnerDto ownerDto = new OwnerDto();
             ownerDto.setCommunityId(reqJson.getString("communityId"));
             ownerDto.setRoomId(reqJson.getString("objId"));
@@ -162,29 +198,56 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
                 feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
                 feeAttrPo.setValue(ownerDtos.get(0).getOwnerId());
                 feeAttrPo.setFeeId(payFeePo.getFeeId());
-                feeAttrPo.setAttrId("-2");
-                super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+                if (flag < 1) {
+                    throw new CmdException("保存数据失败");
+                }
 
                 feeAttrPo = new FeeAttrPo();
                 feeAttrPo.setCommunityId(reqJson.getString("communityId"));
                 feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
                 feeAttrPo.setValue(ownerDtos.get(0).getLink());
                 feeAttrPo.setFeeId(payFeePo.getFeeId());
-                feeAttrPo.setAttrId("-3");
-                super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+                if (flag < 1) {
+                    throw new CmdException("保存数据失败");
+                }
 
                 feeAttrPo = new FeeAttrPo();
                 feeAttrPo.setCommunityId(reqJson.getString("communityId"));
                 feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
                 feeAttrPo.setValue(ownerDtos.get(0).getName());
                 feeAttrPo.setFeeId(payFeePo.getFeeId());
-                feeAttrPo.setAttrId("-4");
-                super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+                if (flag < 1) {
+                    throw new CmdException("保存数据失败");
+                }
             }
             reqJson.put("feeId", payFeePo.getFeeId());
-            meterWaterBMOImpl.addMeterWater(reqJson, context);
+            addMeterWater(reqJson);
         }
+        cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void addMeterWater(JSONObject paramInJson) {
+        MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(paramInJson, MeterWaterPo.class);
+        meterWaterPo.setWaterId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        int flag = meterWaterV1InnerServiceSMOImpl.saveMeterWater(meterWaterPo);
+
+        if (flag < 1) {
+            throw new CmdException("保存数据失败");
+        }
+    }
+
+
 
     /**
      * 生成批次号
@@ -213,14 +276,4 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
         reqJson.put("batchId", payFeeBatchPo.getBatchId());
     }
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMeterWaterConstant.ADD_METERWATER;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
 }

+ 73 - 25
service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java

@@ -1,37 +1,71 @@
-package com.java110.api.listener.meterWater;
+/*
+ * 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.fee.cmd.meterWater;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.meterWater.IMeterWaterBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+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.RoomDto;
 import com.java110.dto.meterWater.MeterWaterDto;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
+import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
 import com.java110.po.fee.PayFeePo;
+import com.java110.po.meterWater.MeterWaterPo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+
 /**
- * 保存水电费侦听
- * add by wuxw 2019-06-30
+ * 类表述:更新
+ * 服务编码:meterWater.updateMeterWater
+ * 请求路劲:/app/meterWater.UpdateMeterWater
+ * add by 吴学文 at 2022-07-21 09:17:10 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行
  */
-@Java110Listener("updateMeterWaterListener")
-public class UpdateMeterWaterListener extends AbstractServiceApiPlusListener {
+@Java110Cmd(serviceCode = "meterWater.updateMeterWater")
+public class UpdateMeterWaterCmd extends Cmd {
+
+  private static Logger logger = LoggerFactory.getLogger(UpdateMeterWaterCmd.class);
+
 
     @Autowired
-    private IMeterWaterBMO meterWaterBMOImpl;
+    private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl;
+
 
     @Autowired
     private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
@@ -39,6 +73,9 @@ public class UpdateMeterWaterListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
     //域
     public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
 
@@ -49,7 +86,7 @@ public class UpdateMeterWaterListener extends AbstractServiceApiPlusListener {
     public static final String ELECTRIC_BLACK_LIST = "ELECTRIC_BLACK_LIST";
 
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空");
         Assert.hasKeyAndValue(reqJson, "preDegrees", "请求报文中未包含preDegrees");
         Assert.hasKeyAndValue(reqJson, "curDegrees", "请求报文中未包含curDegrees");
@@ -59,7 +96,8 @@ public class UpdateMeterWaterListener extends AbstractServiceApiPlusListener {
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
         MeterWaterDto meterWaterDto = new MeterWaterDto();
         meterWaterDto.setWaterId(reqJson.getString("waterId"));
         meterWaterDto.setCommunityId(reqJson.getString("communityId"));
@@ -91,27 +129,37 @@ public class UpdateMeterWaterListener extends AbstractServiceApiPlusListener {
         }
         //如果是水费,且在水费黑名单就直接生成水费记录,不生成费用
         if (waterRemarkList.contains(communityId) && meterType.equals("2020")) {
-            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+            updateMeterWater(reqJson);
         } else if (electricRemarkList.contains(communityId) && meterType.equals("1010")) {
-            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+            updateMeterWater(reqJson);
         } else {
             PayFeePo payFeePo = new PayFeePo();
             payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId());
             payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId());
             payFeePo.setStartTime(reqJson.getString("preReadingTime"));
             //payFeePo.setEndTime(reqJson.getString("curReadingTime"));
-            super.update(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_ONLY_UPDATE_FEE_INFO);
-            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+            int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
+            if (flag < 1) {
+                throw new CmdException("更新数据失败");
+            }
+            updateMeterWater(reqJson);
         }
-    }
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMeterWaterConstant.UPDATE_METERWATER;
+        cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
+    /**
+     * 添加活动信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void updateMeterWater(JSONObject paramInJson) {
+        MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(paramInJson, MeterWaterPo.class);
+        int flag = meterWaterV1InnerServiceSMOImpl.updateMeterWater(meterWaterPo);
+
+        if (flag < 1) {
+            throw new CmdException("更新数据失败");
+        }
     }
 }

+ 77 - 0
service-fee/src/main/java/com/java110/fee/dao/IMeterWaterV1ServiceDao.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.fee.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 2022-07-21 09:17:10 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 IMeterWaterV1ServiceDao {
+
+
+    /**
+     * 保存 水电抄表信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    int saveMeterWaterInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询水电抄表信息(instance过程)
+     * 根据bId 查询水电抄表信息
+     * @param info bId 信息
+     * @return 水电抄表信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getMeterWaterInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改水电抄表信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    int updateMeterWaterInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询水电抄表总数
+     *
+     * @param info 水电抄表信息
+     * @return 水电抄表数量
+     */
+    int queryMeterWatersCount(Map info);
+
+}

+ 112 - 0
service-fee/src/main/java/com/java110/fee/dao/impl/MeterWaterV1ServiceDaoImpl.java

@@ -0,0 +1,112 @@
+/*
+ * 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.fee.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.fee.dao.IMeterWaterV1ServiceDao;
+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 2022-07-21 09:17:10 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("meterWaterV1ServiceDaoImpl")
+public class MeterWaterV1ServiceDaoImpl extends BaseServiceDao implements IMeterWaterV1ServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(MeterWaterV1ServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存水电抄表信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int saveMeterWaterInfo(Map info) throws DAOException {
+        logger.debug("保存 saveMeterWaterInfo 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("meterWaterV1ServiceDaoImpl.saveMeterWaterInfo",info);
+
+        return saveFlag;
+    }
+
+
+    /**
+     * 查询水电抄表信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getMeterWaterInfo(Map info) throws DAOException {
+        logger.debug("查询 getMeterWaterInfo 入参 info : {}",info);
+
+        List<Map> businessMeterWaterInfos = sqlSessionTemplate.selectList("meterWaterV1ServiceDaoImpl.getMeterWaterInfo",info);
+
+        return businessMeterWaterInfos;
+    }
+
+
+    /**
+     * 修改水电抄表信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public int updateMeterWaterInfo(Map info) throws DAOException {
+        logger.debug("修改 updateMeterWaterInfo 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("meterWaterV1ServiceDaoImpl.updateMeterWaterInfo",info);
+
+        return saveFlag;
+    }
+
+     /**
+     * 查询水电抄表数量
+     * @param info 水电抄表信息
+     * @return 水电抄表数量
+     */
+    @Override
+    public int queryMeterWatersCount(Map info) {
+        logger.debug("查询 queryMeterWatersCount 入参 info : {}",info);
+
+        List<Map> businessMeterWaterInfos = sqlSessionTemplate.selectList("meterWaterV1ServiceDaoImpl.queryMeterWatersCount", info);
+        if (businessMeterWaterInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessMeterWaterInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 89 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/MeterWaterV1InnerServiceSMOImpl.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.fee.smo.impl;
+
+
+import com.java110.fee.dao.IMeterWaterV1ServiceDao;
+import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO;
+import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.po.meterWater.MeterWaterPo;
+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 2022-07-21 09:17:10 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 MeterWaterV1InnerServiceSMOImpl extends BaseServiceSMO implements IMeterWaterV1InnerServiceSMO {
+
+    @Autowired
+    private IMeterWaterV1ServiceDao meterWaterV1ServiceDaoImpl;
+
+
+    @Override
+    public int saveMeterWater(@RequestBody  MeterWaterPo meterWaterPo) {
+        int saveFlag = meterWaterV1ServiceDaoImpl.saveMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int updateMeterWater(@RequestBody  MeterWaterPo meterWaterPo) {
+        int saveFlag = meterWaterV1ServiceDaoImpl.updateMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo));
+        return saveFlag;
+    }
+
+     @Override
+    public int deleteMeterWater(@RequestBody  MeterWaterPo meterWaterPo) {
+       meterWaterPo.setStatusCd("1");
+       int saveFlag = meterWaterV1ServiceDaoImpl.updateMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo));
+       return saveFlag;
+    }
+
+    @Override
+    public List<MeterWaterDto> queryMeterWaters(@RequestBody  MeterWaterDto meterWaterDto) {
+
+        //校验是否传了 分页信息
+
+        int page = meterWaterDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            meterWaterDto.setPage((page - 1) * meterWaterDto.getRow());
+        }
+
+        List<MeterWaterDto> meterWaters = BeanConvertUtil.covertBeanList(meterWaterV1ServiceDaoImpl.getMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterDto)), MeterWaterDto.class);
+
+        return meterWaters;
+    }
+
+
+    @Override
+    public int queryMeterWatersCount(@RequestBody MeterWaterDto meterWaterDto) {
+        return meterWaterV1ServiceDaoImpl.queryMeterWatersCount(BeanConvertUtil.beanCovertMap(meterWaterDto));    }
+
+}