1098226878
2021-09-01 f0d3683e8591f220112d69e92e97e5da8f81d457
楼栋回写
11个文件已修改
4个文件已添加
414 ■■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/community/CommunityAttrDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportData/ReportDataDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportData/ReportDataHeaderDto.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/community/CommunityServiceDaoImplMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-interface/src/main/java/com/java110/intf/community/IFloorAttrInnerServiceSMO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/dao/IFloorAttrServiceDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/dao/impl/FloorAttrServiceDaoImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/smo/impl/FloorAttrInnerServiceSMOImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/hcGov/IReportReturnDataAdapt.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/hcGov/asyn/BaseHcGovSendAsyn.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/hcGov/asyn/impl/BaseHcGovSendAsynImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovAdapt.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovReturnAdapt.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/kafka/JobServiceKafka.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/community/CommunityAttrDto.java
@@ -15,6 +15,9 @@
 **/
public class CommunityAttrDto extends PageDto implements Serializable {
    public static final String SPEC_CD_GOV = "9329000004";
    public static final String SPEC_CD_GOV_SECURE = "8329000004";
    private String attrId;
    private String communityId;
    private String specCd;
java110-bean/src/main/java/com/java110/dto/reportData/ReportDataDto.java
New file
@@ -0,0 +1,28 @@
package com.java110.dto.reportData;
import com.alibaba.fastjson.JSONObject;
import java.io.Serializable;
public class ReportDataDto implements Serializable {
    private ReportDataHeaderDto reportDataHeaderDto;
    private JSONObject reportDataBodyDto;
    public ReportDataHeaderDto getReportDataHeaderDto() {
        return reportDataHeaderDto;
    }
    public void setReportDataHeaderDto(ReportDataHeaderDto reportDataHeaderDto) {
        this.reportDataHeaderDto = reportDataHeaderDto;
    }
    public JSONObject getReportDataBodyDto() {
        return reportDataBodyDto;
    }
    public void setReportDataBodyDto(JSONObject reportDataBodyDto) {
        this.reportDataBodyDto = reportDataBodyDto;
    }
}
java110-bean/src/main/java/com/java110/dto/reportData/ReportDataHeaderDto.java
New file
@@ -0,0 +1,95 @@
package com.java110.dto.reportData;
import java.io.Serializable;
public class ReportDataHeaderDto implements Serializable {
    public static final int CODE_SUCCESS = 0;
    public static final int CODE_ERROR = -1;
    public static final String MSG_SUCCESS= "成功";
    public static final String MSG_ERROR= "系统错误";
    public static final String RETUR_CODE= "1001"; //已发送
    public static final String RETUR_SUCCESS_CODE= "2002"; //处理成功
    public static final String RETUR_ERROR_CODE= "3003";//处理失败
    public static final String RETUR_AGAIN_CODE= "4004";//重新发送
    public static final String SYSTEM_COMMUNITY_TYPE= "777777";
    public static final String SYSTEM_GOV_TYPE= "999999";
    //暂时写死建筑物类型  一个ID 为612021083132790001    住宅
    public static final String SYSTEM_FLOOR_TYPE= "612021083132790001";
    private String serviceCode;
    private String tranId;
    private String reqTime;
    private String sign;
    private String resTime;
    private int code;
    private String msg;
    private String extCommunityId;
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getTranId() {
        return tranId;
    }
    public void setTranId(String tranId) {
        this.tranId = tranId;
    }
    public String getReqTime() {
        return reqTime;
    }
    public void setReqTime(String reqTime) {
        this.reqTime = reqTime;
    }
    public String getSign() {
        return sign;
    }
    public void setSign(String sign) {
        this.sign = sign;
    }
    public String getResTime() {
        return resTime;
    }
    public void setResTime(String resTime) {
        this.resTime = resTime;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public String getExtCommunityId() {
        return extCommunityId;
    }
    public void setExtCommunityId(String extCommunityId) {
        this.extCommunityId = extCommunityId;
    }
}
java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
@@ -11,6 +11,8 @@
import com.auth0.jwt.interfaces.DecodedJWT;
import com.java110.core.context.ApiDataFlow;
import com.java110.core.context.DataFlow;
import com.java110.dto.reportData.ReportDataDto;
import com.java110.dto.reportData.ReportDataHeaderDto;
import com.java110.utils.cache.JWTCache;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.CommonConstant;
@@ -380,6 +382,31 @@
    }
    /**
     * md5签名
     *
     * @param reportDataDto
     * @return
     */
    public static void authReportDataSign(ReportDataDto reportDataDto, String code) throws NoAuthorityException {
        ReportDataHeaderDto reportDataHeaderDto = reportDataDto.getReportDataHeaderDto();
        if (reportDataHeaderDto == null) {
            throw new IllegalArgumentException("参数错误");
        }
        String newSign = md5(reportDataHeaderDto.getTranId() + reportDataHeaderDto.getReqTime() + reportDataDto.getReportDataBodyDto().toJSONString() + code).toLowerCase();
        if (!newSign.equals(reportDataHeaderDto.getSign())) {
            throw new IllegalArgumentException("签名失败");
        }
    }
    public static void generatorReportDataSign(ReportDataDto reportDataDto, String code) {
        ReportDataHeaderDto reportDataHeaderDto = reportDataDto.getReportDataHeaderDto();
        if (reportDataHeaderDto == null) {
            throw new IllegalArgumentException("参数错误");
        }
        String newSign = md5(reportDataHeaderDto.getTranId() + reportDataHeaderDto.getReqTime() + reportDataDto.getReportDataBodyDto().toJSONString() + code).toLowerCase();
        reportDataHeaderDto.setSign(newSign);
    }
    /**
     * 加载公钥
     *
     * @param publicPemData
java110-db/src/main/resources/mapper/community/CommunityServiceDaoImplMapper.xml
@@ -143,6 +143,12 @@
        <if test="communityId != null and communityId !=''">
            and sa.community_id = #{communityId}
        </if>
        <if test="specCd != null and specCd !=''">
            and sa.spec_cd = #{specCd}
        </if>
        <if test="value != null and value !=''">
            and sa.value = #{value}
        </if>
        <if test="communityIds != null ">
            and sa.community_id in
            <foreach collection="communityIds" item="item" index="index" open="(" close=")" separator=",">
java110-interface/src/main/java/com/java110/intf/community/IFloorAttrInnerServiceSMO.java
@@ -50,4 +50,12 @@
     */
    @RequestMapping(value = "/saveFloorAttr", method = RequestMethod.POST)
    int saveFloorAttr(@RequestBody FloorAttrPo floorAttrPo);
    /**
     * 保存 楼栋属性
     *
     * @param floorAttrPo 数据对象分享
     * @return 小区下的小区楼记录数
     */
    @RequestMapping(value = "/updateFloorAttrInfoInstance", method = RequestMethod.POST)
    int updateFloorAttrInfoInstance(@RequestBody FloorAttrPo floorAttrPo);
}
service-community/src/main/java/com/java110/community/dao/IFloorAttrServiceDao.java
@@ -67,7 +67,7 @@
     * @param info 修改信息
     * @throws DAOException DAO异常
     */
    void updateFloorAttrInfoInstance(Map info) throws DAOException;
    int updateFloorAttrInfoInstance(Map info) throws DAOException;
    /**
service-community/src/main/java/com/java110/community/dao/impl/FloorAttrServiceDaoImpl.java
@@ -102,7 +102,7 @@
     * @throws DAOException DAO异常
     */
    @Override
    public void updateFloorAttrInfoInstance(Map info) throws DAOException {
    public int updateFloorAttrInfoInstance(Map info) throws DAOException {
        logger.debug("修改考勤班组属性信息Instance 入参 info : {}", info);
        int saveFlag = sqlSessionTemplate.update("floorAttrServiceDaoImpl.updateFloorAttrInfoInstance", info);
@@ -110,6 +110,7 @@
        if (saveFlag < 1) {
            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR, "修改考勤班组属性信息Instance数据失败:" + JSONObject.toJSONString(info));
        }
        return saveFlag;
    }
    /**
service-community/src/main/java/com/java110/community/smo/impl/FloorAttrInnerServiceSMOImpl.java
@@ -56,6 +56,11 @@
        return floorAttrServiceDaoImpl.saveFloorAttr(BeanConvertUtil.beanCovertMap(floorAttrPo));
    }
    @Override
    public int updateFloorAttrInfoInstance(@RequestBody FloorAttrPo floorAttrPo) {
        return floorAttrServiceDaoImpl.updateFloorAttrInfoInstance(BeanConvertUtil.beanCovertMap(floorAttrPo));
    }
    public IFloorAttrServiceDao getFloorAttrServiceDaoImpl() {
        return floorAttrServiceDaoImpl;
    }
service-job/src/main/java/com/java110/job/adapt/hcGov/IReportReturnDataAdapt.java
New file
@@ -0,0 +1,7 @@
package com.java110.job.adapt.hcGov;
import com.java110.dto.reportData.ReportDataDto;
public interface IReportReturnDataAdapt {
    void reportReturn(ReportDataDto reportDataDto, String extCommunityId);
}
service-job/src/main/java/com/java110/job/adapt/hcGov/asyn/BaseHcGovSendAsyn.java
@@ -6,6 +6,9 @@
    public JSONObject createHeadersOrBody(JSONObject body,String extCommunityId,String serviceCode,String secure);
    public void saveHcGovLog(JSONObject paramIn,String communityId,String topic,String objId,String secure);
    public void updateHcGovLog(JSONObject paramIn);
    public void sendKafka(String topic,JSONObject massage,String communityId,String objId,String secure);
}
service-job/src/main/java/com/java110/job/adapt/hcGov/asyn/impl/BaseHcGovSendAsynImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.reportData.ReportDataHeaderDto;
import com.java110.intf.common.IHcGovTranslateDetailInnerServiceSMO;
import com.java110.intf.common.IHcGovTranslateInnerServiceSMO;
import com.java110.job.adapt.hcGov.HcGovConstant;
@@ -38,7 +39,7 @@
    }
    protected void saveHcGovLog(JSONObject paramIn,String communityId,String topic,String objId,String secure) {
     public void saveHcGovLog(JSONObject paramIn,String communityId,String topic,String objId,String secure) {
        Assert.hasKeyAndValue(paramIn, "header", "请求报文中未包含header");
        Assert.hasKeyAndValue(paramIn, "body", "请求报文中未包含body");
        JSONObject heard = paramIn.getJSONObject("header");
@@ -56,7 +57,7 @@
        hcGovTranslatePo.setReqTime(heard.getString("reqTime"));
        hcGovTranslatePo.setServiceCode(heard.getString("serviceCode"));
        hcGovTranslatePo.setSign(heard.getString("sign"));
        hcGovTranslatePo.setState("1001");
        hcGovTranslatePo.setState(ReportDataHeaderDto.RETUR_CODE);
        hcGovTranslatePo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        hcGovTranslatePo.setRemark("物业系统自动推送楼栋信息到政务系统");
        int flag = hcGovTranslateInnerServiceSMOImpl.saveHcGovTranslate(hcGovTranslatePo);
@@ -74,6 +75,33 @@
        }
    }
     public void updateHcGovLog(JSONObject paramIn) {
        Assert.hasKeyAndValue(paramIn, "header", "请求报文中未包含header");
        Assert.hasKeyAndValue(paramIn, "body", "请求报文中未包含body");
        JSONObject heard = paramIn.getJSONObject("header");
        JSONObject body = paramIn.getJSONObject("body");
        HcGovTranslatePo hcGovTranslatePo = new HcGovTranslatePo();
        hcGovTranslatePo.setTranId(heard.getString("tranId"));
         hcGovTranslatePo.setState(ReportDataHeaderDto.RETUR_SUCCESS_CODE);
        if(!Integer.toString(ReportDataHeaderDto.CODE_SUCCESS).equals(heard.getString("code"))){
            hcGovTranslatePo.setState(ReportDataHeaderDto.RETUR_ERROR_CODE);
        }
        hcGovTranslatePo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        int flag = hcGovTranslateInnerServiceSMOImpl.updateHcGovTranslate(hcGovTranslatePo);
        if(flag < 1){
            throw new IllegalArgumentException("更新物业系统保存楼栋日志失败");
        }
        HcGovTranslateDetailPo hcGovTranslateDetailPo = new HcGovTranslateDetailPo();
        hcGovTranslateDetailPo.setTranId(hcGovTranslatePo.getTranId());
        hcGovTranslateDetailPo.setResBody(paramIn.toJSONString());
        flag = hcGovTranslateDetailInnerServiceSMOImpl.updateHcGovTranslateDetail(hcGovTranslateDetailPo);
        if(flag < 1){
            throw new IllegalArgumentException("物业系统保存楼栋推送报文明细日志失败");
        }
    }
    public void sendKafka(String topic,JSONObject massage,String communityId,String objId,String secure) {
        try {
            KafkaFactory.sendKafkaMessage(topic,massage.toJSONString());
service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovAdapt.java
@@ -125,7 +125,7 @@
        body.put("layerCount", layerCount);
        body.put("unitCount", floorUse);
        body.put("floorUse", tmpCommunityDto.getName() + "_住宅");
        body.put("personName", "HC小区管理系统");
        body.put("personName", "小区管理系统");
        body.put("personLink", "18909711234");
        JSONObject kafkaData = baseHcGovSendAsynImpl.createHeadersOrBody(body, extCommunityId, HcGovConstant.ADD_FLOOR_ACTION, HcGovConstant.COMMUNITY_SECURE);
service-job/src/main/java/com/java110/job/adapt/hcGov/floor/AddFloorToHcGovReturnAdapt.java
New file
@@ -0,0 +1,87 @@
/*
 * 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.job.adapt.hcGov.floor;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.community.CommunityAttrDto;
import com.java110.dto.floorAttr.FloorAttrDto;
import com.java110.dto.hcGovTranslate.HcGovTranslateDto;
import com.java110.dto.reportData.ReportDataDto;
import com.java110.intf.common.IHcGovTranslateInnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IFloorAttrInnerServiceSMO;
import com.java110.job.adapt.hcGov.IReportReturnDataAdapt;
import com.java110.po.floorAttr.FloorAttrPo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * 新增楼栋同步HC政务接口 返回
 * <p>
 * 接口协议地址: https://gitee.com/java110/microCommunityInformation/tree/master/info-doc#1%E6%A5%BC%E6%A0%8B%E4%B8%8A%E4%BC%A0
 *
 * @desc add by 吴学文 16:20
 */
@Component(value = "ADD_FLOOR_RETURN")
public class AddFloorToHcGovReturnAdapt implements IReportReturnDataAdapt {
    @Autowired
    private IFloorAttrInnerServiceSMO floorAttrInnerServiceSMOImpl;
    @Autowired
    private IHcGovTranslateInnerServiceSMO hcGovTranslateInnerServiceSMOImpl;
    @Override
    public void reportReturn(ReportDataDto reportDataDto, String extCommunityId) {
        HcGovTranslateDto hcGovTranslateDto = new HcGovTranslateDto();
        hcGovTranslateDto.setTranId(reportDataDto.getReportDataHeaderDto().getTranId());
        hcGovTranslateDto.setServiceCode(reportDataDto.getReportDataHeaderDto().getServiceCode());
        List<HcGovTranslateDto> hcGovTranslateDtos = hcGovTranslateInnerServiceSMOImpl.queryHcGovTranslates(hcGovTranslateDto);
        if (hcGovTranslateDtos == null || hcGovTranslateDtos.size() < 1) {
            throw new IllegalArgumentException("查询推送报文失败。不是同一订单信息");
        }
        FloorAttrDto floorAttrDto = new FloorAttrDto();
        floorAttrDto.setFloorId(hcGovTranslateDtos.get(0).getObjId());
        floorAttrDto.setCommunityId(hcGovTranslateDtos.get(0).getCommunityId());
        floorAttrDto.setSpecCd(CommunityAttrDto.SPEC_CD_GOV);
        List<FloorAttrDto> floorAttrDtos = floorAttrInnerServiceSMOImpl.queryFloorAttrs(floorAttrDto);
        FloorAttrPo floorAttrPo = new FloorAttrPo();
        floorAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
        floorAttrPo.setFloorId(floorAttrDto.getFloorId());
        floorAttrPo.setCommunityId(floorAttrDto.getCommunityId());
        floorAttrPo.setSpecCd(floorAttrDto.getSpecCd());
        floorAttrPo.setValue(reportDataDto.getReportDataBodyDto().getString("extFloorId"));
        if (floorAttrDtos == null || floorAttrDtos.size() < 1) {
            int flag = floorAttrInnerServiceSMOImpl.saveFloorAttr(floorAttrPo);
            if (flag < 1) {
                throw new IllegalArgumentException("保存楼栋属性失败");
            }
        } else {
            floorAttrPo.setAttrId(floorAttrDtos.get(0).getAttrId());
            int flag = floorAttrInnerServiceSMOImpl.updateFloorAttrInfoInstance(floorAttrPo);
            if (flag < 1) {
                throw new IllegalArgumentException("修改楼栋属性失败");
            }
        }
    }
}
service-job/src/main/java/com/java110/job/kafka/JobServiceKafka.java
@@ -3,15 +3,26 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.base.controller.BaseController;
import com.java110.core.context.BusinessServiceDataFlow;
import com.java110.core.factory.AuthenticationFactory;
import com.java110.core.factory.DataTransactionFactory;
import com.java110.dto.community.CommunityAttrDto;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.reportData.ReportDataDto;
import com.java110.dto.reportData.ReportDataHeaderDto;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.job.adapt.hcGov.HcGovConstant;
import com.java110.job.adapt.hcGov.IReportReturnDataAdapt;
import com.java110.job.adapt.hcGov.asyn.BaseHcGovSendAsyn;
import com.java110.job.smo.IJobServiceSMO;
import com.java110.utils.constant.KafkaConstant;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.constant.StatusConstant;
import com.java110.utils.exception.InitConfigDataException;
import com.java110.utils.exception.InitDataFlowContextException;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.kafka.KafkaFactory;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,6 +30,7 @@
import org.springframework.kafka.annotation.KafkaListener;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -29,8 +41,14 @@
    private final static Logger logger = LoggerFactory.getLogger(JobServiceKafka.class);
    public static final String KAFKA_RETURN = "_RETURN";
    @Autowired
    private IJobServiceSMO jobServiceSMOImpl;
    @Autowired
    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
    @Autowired
    private BaseHcGovSendAsyn baseHcGovSendAsynImpl;
    @KafkaListener(topics = {"jobServiceTopic"})
    public void listen(ConsumerRecord<?, ?> record) {
@@ -73,20 +91,88 @@
    @KafkaListener(topics = {"${kafka.hcGovTopic}"})
    public void hcGovListen(ConsumerRecord<?, ?> record) {
        logger.info("kafka的key: " + record.key());
        logger.info("kafka的value: " + record.value().toString());
        String orderInfo = record.value().toString();
        logger.debug("hcGovkafka 接收到数据", orderInfo);
        doListen(orderInfo);
        try {
            logger.debug("hcGovkafka 接收到数据", orderInfo);
            //responseJson = jobServiceSMOImpl.service(businessServiceDataFlow);
        } catch (Exception e) {
            logger.error("请求订单异常", e);
        } finally {
        }
    }
    private void doListen(String orderInfo) {
        JSONObject reqJson = JSONObject.parseObject(orderInfo);
        ReportDataDto reportDataDto = null;
        JSONObject header = reqJson.getJSONObject("header");
        String extCommunityId = header.getString("extCommunityId");
        //签名校验
        CommunityDto community = null;
        try {
            //获得小区对象
            String secure = getExtCommunityCode(extCommunityId);
            //报文合规性校验
            preValiateOrderInfo(orderInfo);
            //构建对象
            reportDataDto = freshReportDataDto(orderInfo);
            //签名认证
            AuthenticationFactory.authReportDataSign(reportDataDto, secure);
            //适配器
            IReportReturnDataAdapt reportDataAdapt = ApplicationContextFactory.getBean(reportDataDto.getReportDataHeaderDto().getServiceCode() + KAFKA_RETURN, IReportReturnDataAdapt.class);
            if (reportDataAdapt == null) {
                throw new IllegalArgumentException("serviceCode 错误 请检查");
            }
            //业务处理
            reportDataAdapt.reportReturn(reportDataDto, extCommunityId);
        } catch (Exception e) {
            logger.error("政务回写失败", e);
        }finally {
            //回写日志表
            baseHcGovSendAsynImpl.updateHcGovLog(reqJson);
        }
    }
    /**
     * 获取小区密钥
     *
     * @param extCommunityId
     * @return
     */
    private String getExtCommunityCode(String extCommunityId) {
        CommunityAttrDto communityAttrDto = new CommunityAttrDto();
        communityAttrDto.setSpecCd(CommunityAttrDto.SPEC_CD_GOV);
        communityAttrDto.setValue(extCommunityId);
        List<CommunityAttrDto> tmpCommunityAttrDtos = communityInnerServiceSMOImpl.getCommunityAttrs(communityAttrDto);
        if (tmpCommunityAttrDtos == null || tmpCommunityAttrDtos.size() < 1) {
            return HcGovConstant.COMMUNITY_SECURE;
        }
        communityAttrDto = new CommunityAttrDto();
        communityAttrDto.setSpecCd(CommunityAttrDto.SPEC_CD_GOV_SECURE);
        communityAttrDto.setCommunityId(tmpCommunityAttrDtos.get(0).getCommunityId());
        tmpCommunityAttrDtos = communityInnerServiceSMOImpl.getCommunityAttrs(communityAttrDto);
        if (tmpCommunityAttrDtos == null || tmpCommunityAttrDtos.size() < 1) {
            return HcGovConstant.COMMUNITY_SECURE;
        }
        return tmpCommunityAttrDtos.get(0).getValue();
    }
    /**
     * 构建对象
     *
     * @param orderInfo
     * @return
     */
    private ReportDataDto freshReportDataDto(String orderInfo) {
        ReportDataDto reportDataDto = new ReportDataDto();
        JSONObject reqJson = JSONObject.parseObject(orderInfo);
        ReportDataHeaderDto reportDataHeaderDto = BeanConvertUtil.covertBean(reqJson.getJSONObject("header"), ReportDataHeaderDto.class);
        reportDataDto.setReportDataHeaderDto(reportDataHeaderDto);
        reportDataDto.setReportDataBodyDto(reqJson.getJSONObject("body"));
        return reportDataDto;
    }
    /**
     * 这里预校验,请求报文中不能有 dataFlowId