java110
2022-07-21 eef727f49a4f6d7357943bf75413e9be712999fb
优化代码
2个文件已删除
1个文件已修改
2 文件已重命名
7个文件已添加
1252 ■■■■ 已修改文件
java110-bean/src/main/java/com/java110/po/meterWater/MeterWaterPo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/MeterWaterV1ServiceDaoImplMapper.xml 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-interface/src/main/java/com/java110/intf/fee/IMeterWaterV1InnerServiceSMO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/listener/meterWater/DeleteMeterWaterListener.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/meterWater/DeleteMeterWaterCmd.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/meterWater/ListMeterWaterCmd.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/meterWater/SaveMeterWaterCmd.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/meterWater/UpdateMeterWaterCmd.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/dao/IMeterWaterV1ServiceDao.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/dao/impl/MeterWaterV1ServiceDaoImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/smo/impl/MeterWaterV1InnerServiceSMOImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/meterWater/MeterWaterPo.java
@@ -19,6 +19,7 @@
    private String feeId;
    private double price;
    private Date createTime;
    private String statusCd = "0";
    public String getRemark() {
        return remark;
@@ -131,4 +132,12 @@
    public void setPrice(double price) {
        this.price = price;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
}
java110-db/src/main/resources/mapper/fee/MeterWaterV1ServiceDaoImplMapper.xml
New file
@@ -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>
java110-interface/src/main/java/com/java110/intf/fee/IMeterWaterV1InnerServiceSMO.java
New file
@@ -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);
}
service-api/src/main/java/com/java110/api/listener/meterWater/DeleteMeterWaterListener.java
File was deleted
service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java
File was deleted
service-fee/src/main/java/com/java110/fee/cmd/meterWater/DeleteMeterWaterCmd.java
New file
@@ -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());
    }
}
service-fee/src/main/java/com/java110/fee/cmd/meterWater/ListMeterWaterCmd.java
old mode 100755 new mode 100644
File was renamed from 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 org.springframework.http.ResponseEntity;
import java.util.ArrayList;
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;
/**
 * 查询小区侦听类
 * 类表述:查询
 * 服务编码: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 @@
    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 @@
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
        context.setResponseEntity(responseEntity);
    }
    private boolean freshFeeDtoParam(MeterWaterDto meterWaterDto, JSONObject reqJson) {
service-fee/src/main/java/com/java110/fee/cmd/meterWater/SaveMeterWaterCmd.java
old mode 100755 new mode 100644
File was renamed from 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.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 {
    @Autowired
    private IMeterWaterBMO meterWaterBMOImpl;
    private static Logger logger = LoggerFactory.getLogger(SaveMeterWaterCmd.class);
    public static final String CODE_PREFIX_ID = "10";
    @Autowired
    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
@@ -67,10 +94,18 @@
    @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 @@
        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 @@
        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 @@
            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 @@
                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("保存数据失败");
        }
    }
    /**
     * 生成批次号
@@ -211,16 +274,6 @@
        }
        reqJson.put("batchId", payFeeBatchPo.getBatchId());
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeMeterWaterConstant.ADD_METERWATER;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
}
service-fee/src/main/java/com/java110/fee/cmd/meterWater/UpdateMeterWaterCmd.java
New file
@@ -0,0 +1,165 @@
/*
 * 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.DataFlowContext;
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.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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * 类表述:更新
 * 服务编码: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行
 */
@Java110Cmd(serviceCode = "meterWater.updateMeterWater")
public class UpdateMeterWaterCmd extends Cmd {
  private static Logger logger = LoggerFactory.getLogger(UpdateMeterWaterCmd.class);
    @Autowired
    private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl;
    @Autowired
    private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
    @Autowired
    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
    @Autowired
    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
    //域
    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
    //键(水费黑名单)
    public static final String WATER_BLACK_LIST = "WATER_BLACK_LIST";
    //键(电费黑名单)
    public static final String ELECTRIC_BLACK_LIST = "ELECTRIC_BLACK_LIST";
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空");
        Assert.hasKeyAndValue(reqJson, "preDegrees", "请求报文中未包含preDegrees");
        Assert.hasKeyAndValue(reqJson, "curDegrees", "请求报文中未包含curDegrees");
        Assert.hasKeyAndValue(reqJson, "preReadingTime", "请求报文中未包含preReadingTime");
        Assert.hasKeyAndValue(reqJson, "curReadingTime", "请求报文中未包含curReadingTime");
        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, "数据异常未找到费用信息");
        RoomDto roomDto = new RoomDto();
        roomDto.setRoomId(meterWaterDtos.get(0).getObjId());
        List<RoomDto> roomList = roomInnerServiceSMOImpl.queryRooms(roomDto);
        Assert.listOnlyOne(roomList, "查询房屋信息错误!");
        //获取抄表对象所属小区id
        String communityId = roomList.get(0).getCommunityId();
        //获取抄表类型
        String meterType = meterWaterDtos.get(0).getMeterType();
        //取出开关映射的备注值(水费黑名单)
        String waterRemark = MappingCache.getRemark(DOMAIN_COMMON, WATER_BLACK_LIST);
        List<String> waterRemarkList = new ArrayList<>();
        if (!StringUtil.isEmpty(waterRemark)) {
            String[] waterSplit = waterRemark.split(",");
            //将数组转成list集合(水费黑名单集合)
            waterRemarkList = Arrays.asList(waterSplit);
        }
        //取出开关映射的备注值(电费黑名单)
        String electricRemark = MappingCache.getRemark(DOMAIN_COMMON, ELECTRIC_BLACK_LIST);
        List<String> electricRemarkList = new ArrayList<>();
        if (!StringUtil.isEmpty(electricRemark)) {
            String[] electricSplit = electricRemark.split(",");
            //将数组转成list集合(电费黑名单集合)
            electricRemarkList = Arrays.asList(electricSplit);
        }
        //如果是水费,且在水费黑名单就直接生成水费记录,不生成费用
        if (waterRemarkList.contains(communityId) && meterType.equals("2020")) {
            updateMeterWater(reqJson);
        } else if (electricRemarkList.contains(communityId) && meterType.equals("1010")) {
            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"));
            int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
            if (flag < 1) {
                throw new CmdException("更新数据失败");
            }
            updateMeterWater(reqJson);
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
    /**
     * 添加活动信息
     *
     * @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("更新数据失败");
        }
    }
}
service-fee/src/main/java/com/java110/fee/dao/IMeterWaterV1ServiceDao.java
New file
@@ -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);
}
service-fee/src/main/java/com/java110/fee/dao/impl/MeterWaterV1ServiceDaoImpl.java
New file
@@ -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());
    }
}
service-fee/src/main/java/com/java110/fee/smo/impl/MeterWaterV1InnerServiceSMOImpl.java
New file
@@ -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));    }
}