Przeglądaj źródła

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

his-uncles-father 5 lat temu
rodzic
commit
c2528fee65
23 zmienionych plików z 1240 dodań i 28 usunięć
  1. 18 0
      java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java
  2. 114 0
      java110-bean/src/main/java/com/java110/dto/repairReturnVisit/RepairReturnVisitDto.java
  3. 67 0
      java110-bean/src/main/java/com/java110/po/repairReturnVisit/RepairReturnVisitPo.java
  4. 1 0
      java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
  5. 164 0
      java110-db/src/main/resources/mapper/community/RepairReturnVisitServiceDaoImplMapper.xml
  6. 2 1
      java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
  7. 22 22
      java110-generator/src/main/resources/newBack/template_1.json
  8. 53 0
      java110-interface/src/main/java/com/java110/intf/community/IRepairReturnVisitInnerServiceSMO.java
  9. 5 0
      java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeRepairDispatchStepConstant.java
  10. 56 0
      service-api/src/main/java/com/java110/api/listener/fee/PayFeePreListener.java
  11. 143 0
      service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairForceFinishListener.java
  12. 118 5
      service-community/src/main/java/com/java110/community/api/RepairApi.java
  13. 17 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IDeleteRepairReturnVisitBMO.java
  14. 16 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IGetRepairReturnVisitBMO.java
  15. 17 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/ISaveRepairReturnVisitBMO.java
  16. 17 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IUpdateRepairReturnVisitBMO.java
  17. 34 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/DeleteRepairReturnVisitBMOImpl.java
  18. 44 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/GetRepairReturnVisitBMOImpl.java
  19. 56 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/SaveRepairReturnVisitBMOImpl.java
  20. 34 0
      service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/UpdateRepairReturnVisitBMOImpl.java
  21. 61 0
      service-community/src/main/java/com/java110/community/dao/IRepairReturnVisitServiceDao.java
  22. 98 0
      service-community/src/main/java/com/java110/community/dao/impl/RepairReturnVisitServiceDaoImpl.java
  23. 83 0
      service-community/src/main/java/com/java110/community/smo/impl/RepairReturnVisitInnerServiceSMOImpl.java

+ 18 - 0
java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java

@@ -92,6 +92,8 @@ public class RepairDto extends PageDto implements Serializable {
     private String repairChannel;
     private String maintenanceType;
     private String reqSource;
+    private String visitType;
+    private String visitContext;
     private List<String> repairChannels;
 
     //业主上传维修图片
@@ -432,4 +434,20 @@ public class RepairDto extends PageDto implements Serializable {
     public void setRepairChannels(List<String> repairChannels) {
         this.repairChannels = repairChannels;
     }
+
+    public String getVisitType() {
+        return visitType;
+    }
+
+    public void setVisitType(String visitType) {
+        this.visitType = visitType;
+    }
+
+    public String getVisitContext() {
+        return visitContext;
+    }
+
+    public void setVisitContext(String visitContext) {
+        this.visitContext = visitContext;
+    }
 }

+ 114 - 0
java110-bean/src/main/java/com/java110/dto/repairReturnVisit/RepairReturnVisitDto.java

@@ -0,0 +1,114 @@
+package com.java110.dto.repairReturnVisit;
+
+import com.java110.dto.PageDto;
+import com.java110.dto.repair.RepairDto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 报修回访数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class RepairReturnVisitDto extends RepairDto implements Serializable {
+
+    private String visitId;
+    private String context;
+    private String repairId;
+    private String communityId;
+    private String visitPersonName;
+    private String visitPersonId;
+    private String visitType;
+
+    private String state;
+
+    private Date createTime;
+
+    private String statusCd = "0";
+
+
+    public String getVisitId() {
+        return visitId;
+    }
+
+    public void setVisitId(String visitId) {
+        this.visitId = visitId;
+    }
+
+    public String getContext() {
+        return context;
+    }
+
+    public void setContext(String context) {
+        this.context = context;
+    }
+
+    public String getRepairId() {
+        return repairId;
+    }
+
+    public void setRepairId(String repairId) {
+        this.repairId = repairId;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getVisitPersonName() {
+        return visitPersonName;
+    }
+
+    public void setVisitPersonName(String visitPersonName) {
+        this.visitPersonName = visitPersonName;
+    }
+
+    public String getVisitPersonId() {
+        return visitPersonId;
+    }
+
+    public void setVisitPersonId(String visitPersonId) {
+        this.visitPersonId = visitPersonId;
+    }
+
+    public String getVisitType() {
+        return visitType;
+    }
+
+    public void setVisitType(String visitType) {
+        this.visitType = visitType;
+    }
+
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+}

+ 67 - 0
java110-bean/src/main/java/com/java110/po/repairReturnVisit/RepairReturnVisitPo.java

@@ -0,0 +1,67 @@
+package com.java110.po.repairReturnVisit;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class RepairReturnVisitPo implements Serializable {
+
+    private String visitId;
+private String context;
+private String repairId;
+private String statusCd = "0";
+private String communityId;
+private String visitPersonName;
+private String visitPersonId;
+private String visitType;
+public String getVisitId() {
+        return visitId;
+    }
+public void setVisitId(String visitId) {
+        this.visitId = visitId;
+    }
+public String getContext() {
+        return context;
+    }
+public void setContext(String context) {
+        this.context = context;
+    }
+public String getRepairId() {
+        return repairId;
+    }
+public void setRepairId(String repairId) {
+        this.repairId = repairId;
+    }
+public String getStatusCd() {
+        return statusCd;
+    }
+public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+public String getCommunityId() {
+        return communityId;
+    }
+public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+public String getVisitPersonName() {
+        return visitPersonName;
+    }
+public void setVisitPersonName(String visitPersonName) {
+        this.visitPersonName = visitPersonName;
+    }
+public String getVisitPersonId() {
+        return visitPersonId;
+    }
+public void setVisitPersonId(String visitPersonId) {
+        this.visitPersonId = visitPersonId;
+    }
+public String getVisitType() {
+        return visitType;
+    }
+public void setVisitType(String visitType) {
+        this.visitType = visitType;
+    }
+
+
+
+}

+ 1 - 0
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java

@@ -188,6 +188,7 @@ public class GenerateCodeFactory {
     public static final String CODE_PREFIX_collectionId = "23";
     public static final String CODE_PREFIX_authId = "23";
     public static final String CODE_PREFIX_planId = "24";
+    public static final String CODE_PREFIX_visitId = "24";
 
 
     /**

+ 164 - 0
java110-db/src/main/resources/mapper/community/RepairReturnVisitServiceDaoImplMapper.xml

@@ -0,0 +1,164 @@
+<?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="repairReturnVisitServiceDaoImpl">
+
+
+    <!-- 保存报修回访信息 add by wuxw 2018-07-03 -->
+    <insert id="saveRepairReturnVisitInfo" parameterType="Map">
+        insert into r_repair_return_visit(
+        visit_id,context,repair_id,community_id,visit_person_name,visit_person_id,visit_type
+        ) values (
+        #{visitId},#{context},#{repairId},#{communityId},#{visitPersonName},#{visitPersonId},#{visitType}
+        )
+    </insert>
+
+
+    <!-- 查询报修回访信息 add by wuxw 2018-07-03 -->
+    <select id="getRepairReturnVisitInfo" parameterType="Map" resultType="Map">
+        select t.visit_id,t.visit_id visitId,t.context,t.repair_id
+        statusCd,t.community_id,t.community_id communityId,t.visit_person_name,t.visit_person_name
+        visitPersonName,t.visit_person_id,t.visit_person_id visitPersonId,t.visit_type,t.visit_type visitType,
+        rrp.repair_id repairId,rrp.repair_obj_name repairObjName,rs.repair_type_name repairTypeName,rrp.tel,rrp.repair_name repairName,
+        rrp.appointment_time appointmentTime
+        from r_repair_pool rrp
+        LEFT JOIN r_repair_return_visit t on t.repair_id = rrp.repair_id and t.community_id = rrp.community_id and t.status_cd = '0'
+        left join t_dict d on rrp.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
+        left join r_repair_setting rs on rs.repair_type = rrp.repair_type and rs.status_cd = '0'
+        where 1 = 1
+        and rs.return_visit_flag in ('002','003')
+        <if test="state == 'waiting'">
+            and rrp.state = '1800'
+            and t.repair_id is null
+        </if>
+        <if test="state == 'finish'">
+            and rrp.state = '1900'
+            and t.repair_id is not null
+        </if>
+        <if test="visitId !=null and visitId != ''">
+            and t.visit_id= #{visitId}
+        </if>
+        <if test="context !=null and context != ''">
+            and t.context= #{context}
+        </if>
+        <if test="repairId !=null and repairId != ''">
+            and rrp.repair_id= #{repairId}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and rrp.status_cd= #{statusCd}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and rrp.community_id= #{communityId}
+        </if>
+        <if test="visitPersonName !=null and visitPersonName != ''">
+            and t.visit_person_name= #{visitPersonName}
+        </if>
+        <if test="visitPersonId !=null and visitPersonId != ''">
+            and t.visit_person_id= #{visitPersonId}
+        </if>
+        <if test="visitType !=null and visitType != ''">
+            and t.visit_type= #{visitType}
+        </if>
+        <if test="repairType !=null and repairType != ''">
+            and rrp.repair_type= #{repairType}
+        </if>
+        <if test="repairName !=null and repairName != ''">
+            and rrp.repair_name like '%${repairName}%'
+        </if>
+        <if test="tel !=null and tel != ''">
+            and rrp.tel= #{tel}
+        </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="updateRepairReturnVisitInfo" parameterType="Map">
+        update r_repair_return_visit t set t.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,t.b_id = #{newBId}
+        </if>
+        <if test="context !=null and context != ''">
+            , t.context= #{context}
+        </if>
+        <if test="repairId !=null and repairId != ''">
+            , t.repair_id= #{repairId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            , t.community_id= #{communityId}
+        </if>
+        <if test="visitPersonName !=null and visitPersonName != ''">
+            , t.visit_person_name= #{visitPersonName}
+        </if>
+        <if test="visitPersonId !=null and visitPersonId != ''">
+            , t.visit_person_id= #{visitPersonId}
+        </if>
+        <if test="visitType !=null and visitType != ''">
+            , t.visit_type= #{visitType}
+        </if>
+        where 1=1
+        <if test="visitId !=null and visitId != ''">
+            and t.visit_id= #{visitId}
+        </if>
+
+    </update>
+
+    <!-- 查询报修回访数量 add by wuxw 2018-07-03 -->
+    <select id="queryRepairReturnVisitsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from r_repair_pool rrp
+        LEFT JOIN r_repair_return_visit t on t.repair_id = rrp.repair_id and t.community_id = rrp.community_id and t.status_cd = '0'
+        left join t_dict d on rrp.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
+        left join r_repair_setting rs on rs.repair_type = rrp.repair_type and rs.status_cd = '0'
+        where 1 = 1
+        and rrp.state = '1800'
+        and rs.return_visit_flag in ('002','003')
+        <if test="state == 'waiting'">
+            and t.repair_id is null
+        </if>
+        <if test="state == 'finish'">
+            and t.repair_id is not null
+        </if>
+        <if test="visitId !=null and visitId != ''">
+            and t.visit_id= #{visitId}
+        </if>
+        <if test="context !=null and context != ''">
+            and t.context= #{context}
+        </if>
+        <if test="repairId !=null and repairId != ''">
+            and rrp.repair_id= #{repairId}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and rrp.status_cd= #{statusCd}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and rrp.community_id= #{communityId}
+        </if>
+        <if test="visitPersonName !=null and visitPersonName != ''">
+            and t.visit_person_name= #{visitPersonName}
+        </if>
+        <if test="visitPersonId !=null and visitPersonId != ''">
+            and t.visit_person_id= #{visitPersonId}
+        </if>
+        <if test="visitType !=null and visitType != ''">
+            and t.visit_type= #{visitType}
+        </if>
+        <if test="repairType !=null and repairType != ''">
+            and rrp.repair_type= #{repairType}
+        </if>
+        <if test="repairName !=null and repairName != ''">
+            and rrp.repair_name like '%${repairName}%'
+        </if>
+        <if test="tel !=null and tel != ''">
+            and rrp.tel= #{tel}
+        </if>
+
+
+    </select>
+
+</mapper>

+ 2 - 1
java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml

@@ -116,13 +116,14 @@
         bId, d.name stateName,t.maintenance_type maintenanceType,t.repair_channel repairChannel,
         rs.repair_type_name repairTypeName,rs.repair_way repairWay,rs.return_visit_flag returnVisitFlag,
         t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id repairObjId,
-        t.repair_obj_name repairObjName
+        t.repair_obj_name repairObjName,rrv.visit_type visitType,rrv.context visitContext
         <if test="staffId != null and staffId != ''">
             ,rru.state repairDispatchState,rru.context repairDispatchContext,td.name repairDispatchStateName
         </if>
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
+        left join r_repair_return_visit rrv on t.repair_id = rrv.repair_id and rrv.community_id = t.community_id and rrv.status_cd = '0'
         <if test="staffId != null and staffId != ''">
             ,r_repair_user rru
             ,t_dict td

+ 22 - 22
java110-generator/src/main/resources/newBack/template_1.json

@@ -1,38 +1,38 @@
 {
   "autoMove": true,
-  "id": "planId",
-  "name": "contractCollectionPlan",
-  "desc": "合同收款计划",
-  "shareParam": "storeId",
-  "shareColumn": "store_id",
-  "shareName": "store",
-  "tableName": "contract_collection_plan",
+  "id": "visitId",
+  "name": "repairReturnVisit",
+  "desc": "报修回访",
+  "shareParam": "communityId",
+  "shareColumn": "community_id",
+  "shareName": "community",
+  "tableName": "r_repair_return_visit",
   "param": {
-    "storeId": "store_id",
-    "planId": "plan_id",
-    "contractId": "contract_id",
-    "planName": "plan_name",
-    "feeId": "fee_id",
-    "feeName": "fee_name",
-    "remark": "remark",
+    "visitId": "visit_id",
+    "repairId": "repair_id",
+    "communityId": "community_id",
+    "visitPersonId": "visit_person_id",
+    "visitPersonName": "visit_person_name",
+    "visitType": "visit_type",
+    "context": "context",
     "statusCd": "status_cd"
   },
   "required": [
     {
-      "code": "contractId",
-      "msg": "合同ID不能为空"
+      "code": "repairId",
+      "msg": "报修单不能为空"
     },
     {
-      "code": "feeId",
-      "msg": "费用不能为空"
+      "code": "visitPersonId",
+      "msg": "回访人不能为空"
     },
     {
-      "code": "storeId",
-      "msg": "商户ID不能为空"
+      "code": "communityId",
+      "msg": "小区不能为空"
     },
     {
-      "code": "planName",
-      "msg": "收款计划名称不能为空"
+      "code": "context",
+      "msg": "回访内容不能为空"
     }
   ]
 }

+ 53 - 0
java110-interface/src/main/java/com/java110/intf/community/IRepairReturnVisitInnerServiceSMO.java

@@ -0,0 +1,53 @@
+package com.java110.intf.community;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.repairReturnVisit.RepairReturnVisitDto;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+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;
+
+/**
+ * @ClassName IRepairReturnVisitInnerServiceSMO
+ * @Description 报修回访接口类
+ * @Author wuxw
+ * @Date 2019/4/24 9:04
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@FeignClient(name = "community-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/repairReturnVisitApi")
+public interface IRepairReturnVisitInnerServiceSMO {
+
+
+    @RequestMapping(value = "/saveRepairReturnVisit", method = RequestMethod.POST)
+    public int saveRepairReturnVisit(@RequestBody RepairReturnVisitPo repairReturnVisitPo);
+
+    @RequestMapping(value = "/updateRepairReturnVisit", method = RequestMethod.POST)
+    public int updateRepairReturnVisit(@RequestBody  RepairReturnVisitPo repairReturnVisitPo);
+
+    @RequestMapping(value = "/deleteRepairReturnVisit", method = RequestMethod.POST)
+    public int deleteRepairReturnVisit(@RequestBody  RepairReturnVisitPo repairReturnVisitPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param repairReturnVisitDto 数据对象分享
+     * @return RepairReturnVisitDto 对象数据
+     */
+    @RequestMapping(value = "/queryRepairReturnVisits", method = RequestMethod.POST)
+    List<RepairReturnVisitDto> queryRepairReturnVisits(@RequestBody RepairReturnVisitDto repairReturnVisitDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param repairReturnVisitDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryRepairReturnVisitsCount", method = RequestMethod.POST)
+    int queryRepairReturnVisitsCount(@RequestBody RepairReturnVisitDto repairReturnVisitDto);
+}

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeRepairDispatchStepConstant.java

@@ -28,6 +28,11 @@ public class ServiceCodeRepairDispatchStepConstant {
      */
     public static final String BINDING_REPAIR_FINISH = "ownerRepair.repairFinish";
 
+
+    /**
+     * 强制回单
+     */
+    public static final String BINDING_REPAIR_FORCE_FINISH = "ownerRepair.repairForceFinish";
     /**
      * 抢单
      */

+ 56 - 0
service-api/src/main/java/com/java110/api/listener/fee/PayFeePreListener.java

@@ -9,17 +9,27 @@ import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.app.AppDto;
+import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.feeDiscount.ComputeDiscountDto;
+import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairUserDto;
 import com.java110.entity.center.AppService;
 import com.java110.entity.order.Orders;
+import com.java110.intf.community.IRepairUserInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeDiscountInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.po.owner.RepairPoolPo;
+import com.java110.po.owner.RepairUserPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,6 +73,12 @@ public class PayFeePreListener extends AbstractServiceApiDataFlowListener {
     @Autowired
     private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
 
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IRepairUserInnerServiceSMO repairUserInnerServiceSMO;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_PAY_FEE_PRE;
@@ -111,6 +127,46 @@ public class PayFeePreListener extends AbstractServiceApiDataFlowListener {
             addDiscount(paramObj, businesses, dataFlowContext);
         }
 
+        //判断是否有派单属性ID
+        FeeAttrDto feeAttrDto = new FeeAttrDto();
+        feeAttrDto.setCommunityId(paramObj.getString("communityId"));
+        feeAttrDto.setFeeId(paramObj.getString("feeId"));
+        feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_REPAIR);
+        List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
+        //修改 派单状态
+        if (feeAttrDtos != null && feeAttrDtos.size() > 0) {
+            JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+            business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR);
+            business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
+            business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+            RepairPoolPo repairPoolPo = new RepairPoolPo();
+            repairPoolPo.setRepairId(feeAttrDtos.get(0).getValue());
+            repairPoolPo.setCommunityId(paramObj.getString("communityId"));
+            repairPoolPo.setState(RepairDto.STATE_APPRAISE);
+            business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(RepairPoolPo.class.getSimpleName(), BeanConvertUtil.beanCovertMap(repairPoolPo));
+            businesses.add(business);
+        }
+        //修改报修派单状态
+        if (feeAttrDtos != null && feeAttrDtos.size() > 0) {
+            JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+            business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR_USER);
+            business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 3);
+            business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+            RepairUserDto repairUserDto = new RepairUserDto();
+            repairUserDto.setRepairId(feeAttrDtos.get(0).getValue());
+            repairUserDto.setState(RepairUserDto.STATE_PAY_FEE);
+            //查询待支付状态的记录
+            List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+            Assert.listOnlyOne(repairUserDtoList, "信息错误!");
+            RepairUserPo repairUserPo = new RepairUserPo();
+            repairUserPo.setRuId(repairUserDtoList.get(0).getRuId());
+            repairUserPo.setState(RepairUserDto.STATE_EVALUATE);
+            //如果是待评价状态,就更新开始时间
+            repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            repairUserPo.setContext("待评价");
+            business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(RepairUserPo.class.getSimpleName(), BeanConvertUtil.beanCovertMap(repairUserPo));
+            businesses.add(business);
+        }
 
         dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.ORDER_PROCESS, Orders.ORDER_PROCESS_ORDER_PRE_SUBMIT);
         ResponseEntity<String> responseEntity = feeBMOImpl.callService(dataFlowContext, service.getServiceCode(), businesses);

+ 143 - 0
service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairForceFinishListener.java

@@ -0,0 +1,143 @@
+package com.java110.api.listener.ownerRepair;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.bmo.ownerRepair.IOwnerRepairBMO;
+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.repair.RepairDto;
+import com.java110.dto.repair.RepairUserDto;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.community.IRepairUserInnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.po.owner.RepairUserPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ServiceCodeRepairDispatchStepConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
+import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+/**
+ * 强制回单
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("repairForceFinishListener")
+public class RepairForceFinishListener extends AbstractServiceApiPlusListener {
+
+    private static Logger logger = LoggerFactory.getLogger(RepairForceFinishListener.class);
+
+    @Autowired
+    private IOwnerRepairBMO ownerRepairBMOImpl;
+
+    @Autowired
+    private IRepairUserInnerServiceSMO repairUserInnerServiceSMOImpl;
+
+    @Autowired
+    private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMO;
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "repairId", "未包含报修单信息");
+        Assert.hasKeyAndValue(reqJson, "context", "未包含派单内容");
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+        String userId = reqJson.getString("userId");
+        String userName = reqJson.getString("userName");
+
+        RepairDto repairDto = new RepairDto();
+        repairDto.setRepairId(reqJson.getString("repairId"));
+        repairDto.setCommunityId(reqJson.getString("communityId"));
+        repairDto.setState(RepairDto.STATE_TAKING);
+        List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+        Assert.listOnlyOne(repairDtos, "当前没有需要处理订单");
+
+        //查询正在处理 工单的师傅
+        RepairUserDto repairUserDto = new RepairUserDto();
+        repairUserDto.setRepairId(reqJson.getString("repairId"));
+        repairUserDto.setCommunityId(reqJson.getString("communityId"));
+        repairUserDto.setState(RepairUserDto.STATE_DOING);
+        List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto);
+
+        if (repairUserDtos != null && repairUserDtos.size() > 0) {
+            // 1.0 关闭自己订单
+            RepairUserPo repairUserPo = new RepairUserPo();
+            repairUserPo.setRuId(repairUserDtos.get(0).getRuId());
+            repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            repairUserPo.setState(RepairUserDto.STATE_CLOSE);
+            repairUserPo.setContext(userName + " 强制回单");
+            repairUserPo.setCommunityId(reqJson.getString("communityId"));
+            super.update(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR_USER);
+
+            repairUserPo = new RepairUserPo();
+            repairUserPo.setRuId("-1");
+            repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            repairUserPo.setState(RepairUserDto.STATE_CLOSE);
+            repairUserPo.setRepairId(reqJson.getString("repairId"));
+            repairUserPo.setPreStaffId(repairUserDtos.get(0).getStaffId());
+            repairUserPo.setPreStaffName(repairUserDtos.get(0).getStaffName());
+            repairUserPo.setStaffId(userId);
+            repairUserPo.setStaffName(userName);
+            repairUserPo.setPreRuId(repairUserDtos.get(0).getRuId());
+            repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_AUDIT_USER);
+            repairUserPo.setContext(reqJson.getString("context"));
+            repairUserPo.setCommunityId(reqJson.getString("communityId"));
+            super.insert(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
+        }
+
+        reqJson.put("state", RepairDto.STATE_RETURN_VISIT);
+        ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_RETURN_VISIT);
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
+        context.setResponseEntity(responseEntity);
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeRepairDispatchStepConstant.BINDING_REPAIR_FORCE_FINISH;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+    public IRepairInnerServiceSMO getRepairInnerServiceSMOImpl() {
+        return repairInnerServiceSMOImpl;
+    }
+
+    public void setRepairInnerServiceSMOImpl(IRepairInnerServiceSMO repairInnerServiceSMOImpl) {
+        this.repairInnerServiceSMOImpl = repairInnerServiceSMOImpl;
+    }
+}

+ 118 - 5
service-community/src/main/java/com/java110/community/api/RepairApi.java

@@ -2,14 +2,18 @@ package com.java110.community.api;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.community.bmo.repair.IAppraiseRepairBMO;
+import com.java110.community.bmo.repairReturnVisit.IDeleteRepairReturnVisitBMO;
+import com.java110.community.bmo.repairReturnVisit.IGetRepairReturnVisitBMO;
+import com.java110.community.bmo.repairReturnVisit.ISaveRepairReturnVisitBMO;
+import com.java110.community.bmo.repairReturnVisit.IUpdateRepairReturnVisitBMO;
 import com.java110.dto.appraise.AppraiseDto;
+import com.java110.dto.repairReturnVisit.RepairReturnVisitDto;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 报修 控制类
@@ -20,6 +24,17 @@ public class RepairApi {
     @Autowired
     private IAppraiseRepairBMO appraiseRepairBMOImpl;
 
+    @Autowired
+    private ISaveRepairReturnVisitBMO saveRepairReturnVisitBMOImpl;
+    @Autowired
+    private IUpdateRepairReturnVisitBMO updateRepairReturnVisitBMOImpl;
+    @Autowired
+    private IDeleteRepairReturnVisitBMO deleteRepairReturnVisitBMOImpl;
+
+    @Autowired
+    private IGetRepairReturnVisitBMO getRepairReturnVisitBMOImpl;
+
+
     /**
      * 报修评价
      *
@@ -28,7 +43,105 @@ public class RepairApi {
      */
     @RequestMapping(value = "/appraiseRepair", method = RequestMethod.POST)
     public ResponseEntity<String> appraiseRepair(@RequestBody JSONObject reqJson) {
-        AppraiseDto appraiseDto = BeanConvertUtil.covertBean(reqJson,AppraiseDto.class);
+        AppraiseDto appraiseDto = BeanConvertUtil.covertBean(reqJson, AppraiseDto.class);
         return appraiseRepairBMOImpl.appraiseRepair(appraiseDto);
     }
+
+
+    /**
+     * 微信保存消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /repair/saveRepairReturnVisit
+     * @path /app/repair/saveRepairReturnVisit
+     */
+    @RequestMapping(value = "/saveRepairReturnVisit", method = RequestMethod.POST)
+    public ResponseEntity<String> saveRepairReturnVisit(
+            @RequestHeader(value = "user-id") String userId,
+            @RequestHeader(value = "user-name") String userName,
+            @RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "repairId", "请求报文中未包含repairId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "visitType", "请求报文中未包含满意度");
+        Assert.hasKeyAndValue(reqJson, "context", "请求报文中未包含context");
+
+
+        RepairReturnVisitPo repairReturnVisitPo = BeanConvertUtil.covertBean(reqJson, RepairReturnVisitPo.class);
+        repairReturnVisitPo.setVisitPersonId(userId);
+        repairReturnVisitPo.setVisitPersonName(userName);
+        return saveRepairReturnVisitBMOImpl.save(repairReturnVisitPo);
+    }
+
+    /**
+     * 微信修改消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /repair/updateRepairReturnVisit
+     * @path /app/repair/updateRepairReturnVisit
+     */
+    @RequestMapping(value = "/updateRepairReturnVisit", method = RequestMethod.POST)
+    public ResponseEntity<String> updateRepairReturnVisit(@RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "repairId", "请求报文中未包含repairId");
+        Assert.hasKeyAndValue(reqJson, "visitPersonId", "请求报文中未包含visitPersonId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "context", "请求报文中未包含context");
+        Assert.hasKeyAndValue(reqJson, "visitId", "visitId不能为空");
+
+
+        RepairReturnVisitPo repairReturnVisitPo = BeanConvertUtil.covertBean(reqJson, RepairReturnVisitPo.class);
+        return updateRepairReturnVisitBMOImpl.update(repairReturnVisitPo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /repair/deleteRepairReturnVisit
+     * @path /app/repair/deleteRepairReturnVisit
+     */
+    @RequestMapping(value = "/deleteRepairReturnVisit", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteRepairReturnVisit(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
+
+        Assert.hasKeyAndValue(reqJson, "visitId", "visitId不能为空");
+
+
+        RepairReturnVisitPo repairReturnVisitPo = BeanConvertUtil.covertBean(reqJson, RepairReturnVisitPo.class);
+        return deleteRepairReturnVisitBMOImpl.delete(repairReturnVisitPo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param communityId 小区ID
+     * @return
+     * @serviceCode /repair/queryRepairReturnVisit
+     * @path /app/repair/queryRepairReturnVisit
+     */
+    @RequestMapping(value = "/queryRepairReturnVisit", method = RequestMethod.GET)
+    public ResponseEntity<String> queryRepairReturnVisit(@RequestParam(value = "communityId") String communityId,
+                                                         @RequestParam(value = "repairId",required = false) String repairId,
+                                                         @RequestParam(value = "repairName",required = false) String repairName,
+                                                         @RequestParam(value = "tel",required = false) String tel,
+                                                         @RequestParam(value = "repairType",required = false) String repairType,
+                                                         @RequestParam(value = "state") String state,
+                                                         @RequestParam(value = "page") int page,
+                                                         @RequestParam(value = "row") int row) {
+        RepairReturnVisitDto repairReturnVisitDto = new RepairReturnVisitDto();
+        repairReturnVisitDto.setPage(page);
+        repairReturnVisitDto.setRow(row);
+        repairReturnVisitDto.setCommunityId(communityId);
+        repairReturnVisitDto.setRepairId(repairId);
+        repairReturnVisitDto.setRepairName(repairName);
+        repairReturnVisitDto.setTel(tel);
+        repairReturnVisitDto.setRepairType(repairType);
+        repairReturnVisitDto.setState(state);
+
+        return getRepairReturnVisitBMOImpl.get(repairReturnVisitDto);
+    }
 }

+ 17 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IDeleteRepairReturnVisitBMO.java

@@ -0,0 +1,17 @@
+package com.java110.community.bmo.repairReturnVisit;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import org.springframework.http.ResponseEntity;
+
+public interface IDeleteRepairReturnVisitBMO {
+
+
+    /**
+     * 修改报修回访
+     * add by wuxw
+     * @param repairReturnVisitPo
+     * @return
+     */
+    ResponseEntity<String> delete(RepairReturnVisitPo repairReturnVisitPo);
+
+
+}

+ 16 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IGetRepairReturnVisitBMO.java

@@ -0,0 +1,16 @@
+package com.java110.community.bmo.repairReturnVisit;
+import com.java110.dto.repairReturnVisit.RepairReturnVisitDto;
+import org.springframework.http.ResponseEntity;
+public interface IGetRepairReturnVisitBMO {
+
+
+    /**
+     * 查询报修回访
+     * add by wuxw
+     * @param  repairReturnVisitDto
+     * @return
+     */
+    ResponseEntity<String> get(RepairReturnVisitDto repairReturnVisitDto);
+
+
+}

+ 17 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/ISaveRepairReturnVisitBMO.java

@@ -0,0 +1,17 @@
+package com.java110.community.bmo.repairReturnVisit;
+
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import org.springframework.http.ResponseEntity;
+public interface ISaveRepairReturnVisitBMO {
+
+
+    /**
+     * 添加报修回访
+     * add by wuxw
+     * @param repairReturnVisitPo
+     * @return
+     */
+    ResponseEntity<String> save(RepairReturnVisitPo repairReturnVisitPo);
+
+
+}

+ 17 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/IUpdateRepairReturnVisitBMO.java

@@ -0,0 +1,17 @@
+package com.java110.community.bmo.repairReturnVisit;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import org.springframework.http.ResponseEntity;
+
+public interface IUpdateRepairReturnVisitBMO {
+
+
+    /**
+     * 修改报修回访
+     * add by wuxw
+     * @param repairReturnVisitPo
+     * @return
+     */
+    ResponseEntity<String> update(RepairReturnVisitPo repairReturnVisitPo);
+
+
+}

+ 34 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/DeleteRepairReturnVisitBMOImpl.java

@@ -0,0 +1,34 @@
+package com.java110.community.bmo.repairReturnVisit.impl;
+
+import com.java110.community.bmo.repairReturnVisit.IDeleteRepairReturnVisitBMO;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.intf.community.IRepairReturnVisitInnerServiceSMO;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("deleteRepairReturnVisitBMOImpl")
+public class DeleteRepairReturnVisitBMOImpl implements IDeleteRepairReturnVisitBMO {
+
+    @Autowired
+    private IRepairReturnVisitInnerServiceSMO repairReturnVisitInnerServiceSMOImpl;
+
+    /**
+     * @param repairReturnVisitPo 数据
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> delete(RepairReturnVisitPo repairReturnVisitPo) {
+
+        int flag = repairReturnVisitInnerServiceSMOImpl.deleteRepairReturnVisit(repairReturnVisitPo);
+
+        if (flag > 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 44 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/GetRepairReturnVisitBMOImpl.java

@@ -0,0 +1,44 @@
+package com.java110.community.bmo.repairReturnVisit.impl;
+
+import com.java110.community.bmo.repairReturnVisit.IGetRepairReturnVisitBMO;
+import com.java110.dto.repairReturnVisit.RepairReturnVisitDto;
+import com.java110.intf.community.IRepairReturnVisitInnerServiceSMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("getRepairReturnVisitBMOImpl")
+public class GetRepairReturnVisitBMOImpl implements IGetRepairReturnVisitBMO {
+
+    @Autowired
+    private IRepairReturnVisitInnerServiceSMO repairReturnVisitInnerServiceSMOImpl;
+
+    /**
+     * @param repairReturnVisitDto
+     * @return 订单服务能够接受的报文
+     */
+    public ResponseEntity<String> get(RepairReturnVisitDto repairReturnVisitDto) {
+
+
+        int count = repairReturnVisitInnerServiceSMOImpl.queryRepairReturnVisitsCount(repairReturnVisitDto);
+
+        List<RepairReturnVisitDto> repairReturnVisitDtos = null;
+        if (count > 0) {
+            repairReturnVisitDtos = repairReturnVisitInnerServiceSMOImpl.queryRepairReturnVisits(repairReturnVisitDto);
+        } else {
+            repairReturnVisitDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) repairReturnVisitDto.getRow()), count, repairReturnVisitDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+}

+ 56 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/SaveRepairReturnVisitBMOImpl.java

@@ -0,0 +1,56 @@
+package com.java110.community.bmo.repairReturnVisit.impl;
+
+import com.java110.community.bmo.repairReturnVisit.ISaveRepairReturnVisitBMO;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.repair.RepairDto;
+import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.community.IRepairReturnVisitInnerServiceSMO;
+import com.java110.po.owner.RepairPoolPo;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("saveRepairReturnVisitBMOImpl")
+public class SaveRepairReturnVisitBMOImpl implements ISaveRepairReturnVisitBMO {
+
+    @Autowired
+    private IRepairReturnVisitInnerServiceSMO repairReturnVisitInnerServiceSMOImpl;
+
+    @Autowired
+    private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param repairReturnVisitPo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> save(RepairReturnVisitPo repairReturnVisitPo) {
+
+        repairReturnVisitPo.setVisitId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_visitId));
+        int flag = repairReturnVisitInnerServiceSMOImpl.saveRepairReturnVisit(repairReturnVisitPo);
+
+        if (flag < 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+        }
+
+        RepairPoolPo repairPoolPo = new RepairPoolPo();
+        repairPoolPo.setRepairId(repairReturnVisitPo.getRepairId());
+        repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+        repairPoolPo.setCommunityId(repairReturnVisitPo.getCommunityId());
+        repairPoolPo.setStatusCd("0");
+        flag = repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+
+        if (flag < 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+
+    }
+
+}

+ 34 - 0
service-community/src/main/java/com/java110/community/bmo/repairReturnVisit/impl/UpdateRepairReturnVisitBMOImpl.java

@@ -0,0 +1,34 @@
+package com.java110.community.bmo.repairReturnVisit.impl;
+
+import com.java110.community.bmo.repairReturnVisit.IUpdateRepairReturnVisitBMO;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.intf.community.IRepairReturnVisitInnerServiceSMO;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("updateRepairReturnVisitBMOImpl")
+public class UpdateRepairReturnVisitBMOImpl implements IUpdateRepairReturnVisitBMO {
+
+    @Autowired
+    private IRepairReturnVisitInnerServiceSMO repairReturnVisitInnerServiceSMOImpl;
+
+    /**
+     * @param repairReturnVisitPo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> update(RepairReturnVisitPo repairReturnVisitPo) {
+
+        int flag = repairReturnVisitInnerServiceSMOImpl.updateRepairReturnVisit(repairReturnVisitPo);
+
+        if (flag > 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 61 - 0
service-community/src/main/java/com/java110/community/dao/IRepairReturnVisitServiceDao.java

@@ -0,0 +1,61 @@
+package com.java110.community.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;
+
+/**
+ * 报修回访组件内部之间使用,没有给外围系统提供服务能力
+ * 报修回访服务接口类,要求全部以字符串传输,方便微服务化
+ * 新建客户,修改客户,删除客户,查询客户等功能
+ *
+ * Created by wuxw on 2016/12/27.
+ */
+public interface IRepairReturnVisitServiceDao {
+
+
+    /**
+     * 保存 报修回访信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    void saveRepairReturnVisitInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询报修回访信息(instance过程)
+     * 根据bId 查询报修回访信息
+     * @param info bId 信息
+     * @return 报修回访信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getRepairReturnVisitInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改报修回访信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    void updateRepairReturnVisitInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询报修回访总数
+     *
+     * @param info 报修回访信息
+     * @return 报修回访数量
+     */
+    int queryRepairReturnVisitsCount(Map info);
+
+}

+ 98 - 0
service-community/src/main/java/com/java110/community/dao/impl/RepairReturnVisitServiceDaoImpl.java

@@ -0,0 +1,98 @@
+package com.java110.community.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.community.dao.IRepairReturnVisitServiceDao;
+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;
+
+/**
+ * 报修回访服务 与数据库交互
+ * Created by wuxw on 2017/4/5.
+ */
+@Service("repairReturnVisitServiceDaoImpl")
+//@Transactional
+public class RepairReturnVisitServiceDaoImpl extends BaseServiceDao implements IRepairReturnVisitServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(RepairReturnVisitServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存报修回访信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void saveRepairReturnVisitInfo(Map info) throws DAOException {
+        logger.debug("保存报修回访信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("repairReturnVisitServiceDaoImpl.saveRepairReturnVisitInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存报修回访信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+
+    /**
+     * 查询报修回访信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getRepairReturnVisitInfo(Map info) throws DAOException {
+        logger.debug("查询报修回访信息 入参 info : {}",info);
+
+        List<Map> businessRepairReturnVisitInfos = sqlSessionTemplate.selectList("repairReturnVisitServiceDaoImpl.getRepairReturnVisitInfo",info);
+
+        return businessRepairReturnVisitInfos;
+    }
+
+
+    /**
+     * 修改报修回访信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void updateRepairReturnVisitInfo(Map info) throws DAOException {
+        logger.debug("修改报修回访信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("repairReturnVisitServiceDaoImpl.updateRepairReturnVisitInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改报修回访信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+     /**
+     * 查询报修回访数量
+     * @param info 报修回访信息
+     * @return 报修回访数量
+     */
+    @Override
+    public int queryRepairReturnVisitsCount(Map info) {
+        logger.debug("查询报修回访数据 入参 info : {}",info);
+
+        List<Map> businessRepairReturnVisitInfos = sqlSessionTemplate.selectList("repairReturnVisitServiceDaoImpl.queryRepairReturnVisitsCount", info);
+        if (businessRepairReturnVisitInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessRepairReturnVisitInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 83 - 0
service-community/src/main/java/com/java110/community/smo/impl/RepairReturnVisitInnerServiceSMOImpl.java

@@ -0,0 +1,83 @@
+package com.java110.community.smo.impl;
+
+
+import com.java110.community.dao.IRepairReturnVisitServiceDao;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.repairReturnVisit.RepairReturnVisitDto;
+import com.java110.intf.community.IRepairReturnVisitInnerServiceSMO;
+import com.java110.po.repairReturnVisit.RepairReturnVisitPo;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 报修回访内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class RepairReturnVisitInnerServiceSMOImpl extends BaseServiceSMO implements IRepairReturnVisitInnerServiceSMO {
+
+    @Autowired
+    private IRepairReturnVisitServiceDao repairReturnVisitServiceDaoImpl;
+
+
+    @Override
+    public int saveRepairReturnVisit(@RequestBody RepairReturnVisitPo repairReturnVisitPo) {
+        int saveFlag = 1;
+        repairReturnVisitServiceDaoImpl.saveRepairReturnVisitInfo(BeanConvertUtil.beanCovertMap(repairReturnVisitPo));
+        return saveFlag;
+    }
+
+    @Override
+    public int updateRepairReturnVisit(@RequestBody RepairReturnVisitPo repairReturnVisitPo) {
+        int saveFlag = 1;
+        repairReturnVisitServiceDaoImpl.updateRepairReturnVisitInfo(BeanConvertUtil.beanCovertMap(repairReturnVisitPo));
+        return saveFlag;
+    }
+
+    @Override
+    public int deleteRepairReturnVisit(@RequestBody RepairReturnVisitPo repairReturnVisitPo) {
+        int saveFlag = 1;
+        repairReturnVisitPo.setStatusCd("1");
+        repairReturnVisitServiceDaoImpl.updateRepairReturnVisitInfo(BeanConvertUtil.beanCovertMap(repairReturnVisitPo));
+        return saveFlag;
+    }
+
+    @Override
+    public List<RepairReturnVisitDto> queryRepairReturnVisits(@RequestBody RepairReturnVisitDto repairReturnVisitDto) {
+
+        //校验是否传了 分页信息
+
+        int page = repairReturnVisitDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            repairReturnVisitDto.setPage((page - 1) * repairReturnVisitDto.getRow());
+        }
+
+        List<RepairReturnVisitDto> repairReturnVisits = BeanConvertUtil.covertBeanList(repairReturnVisitServiceDaoImpl.getRepairReturnVisitInfo(BeanConvertUtil.beanCovertMap(repairReturnVisitDto)), RepairReturnVisitDto.class);
+
+        return repairReturnVisits;
+    }
+
+
+    @Override
+    public int queryRepairReturnVisitsCount(@RequestBody RepairReturnVisitDto repairReturnVisitDto) {
+        return repairReturnVisitServiceDaoImpl.queryRepairReturnVisitsCount(BeanConvertUtil.beanCovertMap(repairReturnVisitDto));
+    }
+
+    public IRepairReturnVisitServiceDao getRepairReturnVisitServiceDaoImpl() {
+        return repairReturnVisitServiceDaoImpl;
+    }
+
+    public void setRepairReturnVisitServiceDaoImpl(IRepairReturnVisitServiceDao repairReturnVisitServiceDaoImpl) {
+        this.repairReturnVisitServiceDaoImpl = repairReturnVisitServiceDaoImpl;
+    }
+}