Просмотр исходного кода

优化 根据业主查询欠费

java110 лет назад: 5
Родитель
Сommit
621e983aa7

+ 63 - 1
docs/document/api/fee/index.md

@@ -9,4 +9,66 @@
 
 ## 2.6.5 确认缴费接口
 
-## 2.6.7 查询停车费
+## 2.6.7 查询停车费
+
+## 2.6.8 查询业主欠费
+
+###### 接口功能
+> 用户通过web端或APP 查询业主欠费情况
+
+###### URL
+> [http://api.java110.com:8008/api/fee.listOwnerOweFee](http://api.java110.com:8008/api/fee.listOwnerOweFee)
+
+###### 支持格式
+> JSON
+
+###### HTTP请求方式
+> GET
+
+###### 请求参数(body部分)
+|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-: |
+|communityId|1|String|30|小区ID|-|
+|ownerId|1|String|30|业主ID|业主ID|
+
+###### 返回协议
+
+|父节点|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-: | :-:|
+|-|code|1|int|-|编码|0成功,其他失败|
+|-|msg|1|String|200|描述,失败时描述失败信息|描述,失败时描述失败信息|
+|-|total|1|int|-|总记录数|总记录数|
+|-|data|1|Array|-|数据信息|
+|data|feeId|1|String|30|费用ID|费用ID|
+|data|feeName|1|String|200|费用名称|费用名称|
+|data|oweFee|1|double|-|欠费金额|欠费金额|
+|data|payObjName|1|String|50|欠费对象|房屋时 房屋名称 车位时 车位名称|
+|data|payObjId|1|String|50|欠费对象Id|房屋时 房屋ID 车位时 车位Id|
+|data|payerObjType|1|String|12|欠费对象类型|房屋时 3333 车位时 6666|
+
+
+
+###### 举例
+> 地址:[http://api.java110.com:8008/api/fee.listOwnerOweFee?communityId=&ownerId=](http://api.java110.com:8008/api/fee.listOwnerOweFee?communityId=&ownerId=)
+
+``` javascript
+请求头信息:
+Content-Type:application/json
+USER_ID:1234
+APP_ID:8000418002
+TRANSACTION_ID:10029082726
+REQ_TIME:20181113225612
+SIGN:aabdncdhdbd878sbdudn898
+请求报文:
+无
+返回报文:
+{"code":0,"msg":"成功","total":1,data:[{
+"feeId":"",
+"feeName":"",
+"oweFee":"",
+"payObjName":"",
+"payObjId":"",
+"payerObjType":""
+}]}
+
+```

+ 7 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeConfigDto.java

@@ -15,6 +15,13 @@ import java.util.Date;
  **/
 public class FeeConfigDto extends PageDto implements Serializable {
 
+    public static final String BILL_TYPE_YEAR = "001";// 按年出账
+    public static final String BILL_TYPE_MONTH = "002";// 每月1日
+    public static final String BILL_TYPE_DAY = "003";// 每日
+    public static final String BILL_TYPE_EVERY = "004";// 实时
+    public static final String BILL_TYPE_ONCE_MONTH = "005";// 一次性按月
+
+
     private String feeTypeCd;
     private String computingFormula;
     private String additionalAmount;

+ 21 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -17,6 +17,9 @@ public class FeeDto extends PageDto implements Serializable {
 
     public static final String STATE_FINISH = "2009001"; // 收费结束
 
+    public static final String PAYER_OBJ_TYPE_ROOM = "3333"; //房屋 6666 是车位
+    public static final String PAYER_OBJ_TYPE_PARKING_SPACE = "6666";//是车位
+
     private String amount;
     private String incomeObjId;
     private String feeTypeCd;
@@ -26,6 +29,7 @@ public class FeeDto extends PageDto implements Serializable {
     private String feeId;
     private String userId;
     private String payerObjId;
+    private String payerObjName;
     private String[] payerObjIds;
     private String[] feeTypeCds;
     private String configId;
@@ -46,6 +50,7 @@ public class FeeDto extends PageDto implements Serializable {
     private String payerObjType;
     private String computingFormula;
     private String isDefault;
+    private double oweFee; // 欠费金额
 
     private String paymentCd;
 
@@ -323,4 +328,20 @@ public class FeeDto extends PageDto implements Serializable {
     public void setPaymentCycle(String paymentCycle) {
         this.paymentCycle = paymentCycle;
     }
+
+    public double getOweFee() {
+        return oweFee;
+    }
+
+    public void setOweFee(double oweFee) {
+        this.oweFee = oweFee;
+    }
+
+    public String getPayerObjName() {
+        return payerObjName;
+    }
+
+    public void setPayerObjName(String payerObjName) {
+        this.payerObjName = payerObjName;
+    }
 }

+ 8 - 0
java110-bean/src/main/java/com/java110/dto/repair/RepairUserDto.java

@@ -20,6 +20,14 @@ public class RepairUserDto extends PageDto implements Serializable {
     //审核用户
     public static final String REPAIR_EVENT_AUDIT_USER = "auditUser";
 
+    public  static final String STATE_DOING = "10001";// 处理中
+    public  static final String STATE_CLOSE = "10002";// 结单
+    public  static final String STATE_BACK = "10003";// 退单
+    public  static final String STATE_TRANSFER = "10004";// 转单
+    public  static final String STATE_SUBMIT = "10005";// 提交
+
+
+
     private String context;
     private String repairId;
     private String[] repairIds;

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

@@ -8,10 +8,10 @@
     <insert id="saveBusinessRepairUserInfo" parameterType="Map">
         insert into business_repair_user(
         operate,context,repair_id,ru_id,state,community_id,b_id,staff_id,staff_name,pre_staff_id,
-        pre_staff_name,repair_event
+        pre_staff_name,repair_event,end_time
         ) values (
         #{operate},#{context},#{repairId},#{ruId},#{state},#{communityId},#{bId},#{staffId},
-        #{staffName},#{preStaffId},#{preStaffName},#{repairEvent}
+        #{staffName},#{preStaffId},#{preStaffName},#{repairEvent},#{endTime}
         )
     </insert>
 

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

@@ -44,6 +44,11 @@ public class ServiceCodeFeeConfigConstant {
      */
     public static final String LIST_FEE = "fee.listFee";
 
+    /**
+     * 查询 业主欠费
+     */
+    public static final String LIST_OWNER_OWE_FEE = "fee.listOwnerOweFee";
+
 
     /**
      * 查询 账单信息

+ 323 - 0
service-api/src/main/java/com/java110/api/listener/fee/ListOwnerOweFeeListener.java

@@ -0,0 +1,323 @@
+package com.java110.api.listener.fee;
+
+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.smo.community.IParkingSpaceInnerServiceSMO;
+import com.java110.core.smo.community.IRoomInnerServiceSMO;
+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
+import com.java110.core.smo.user.IOwnerCarInnerServiceSMO;
+import com.java110.core.smo.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.BillOweFeeDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 查询业主是否有欠费
+ */
+@Java110Listener("listOwnerOweFeeListener")
+public class ListOwnerOweFeeListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeFeeConfigConstant.LIST_OWNER_OWE_FEE;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public IFeeConfigInnerServiceSMO getFeeConfigInnerServiceSMOImpl() {
+        return feeConfigInnerServiceSMOImpl;
+    }
+
+    public void setFeeConfigInnerServiceSMOImpl(IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl) {
+        this.feeConfigInnerServiceSMOImpl = feeConfigInnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        //super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
+        Assert.hasKeyAndValue(reqJson, "ownerId", "未包含小区业主ID");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        //1.0 查询业主房屋 查询业主是否有房屋欠费
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setOwnerId(reqJson.getString("ownerId"));
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        List<FeeDto> resultFees = new ArrayList<>();
+
+        if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() > 0) {
+            getRoomOweFee(ownerRoomRelDtos, reqJson, resultFees);
+        }
+
+        //2.0 查询业主是否有 车位欠费
+
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setOwnerId(reqJson.getString("ownerId"));
+        ownerCarDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+        if (ownerCarDtos != null && ownerCarDtos.size() > 0) {
+            getParkingSpaceOweFee(ownerCarDtos, reqJson, resultFees);
+        }
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(1, resultFees.size(), resultFees);
+        context.setResponseEntity(responseEntity);
+
+    }
+
+
+    private void getParkingSpaceOweFee(List<OwnerCarDto> ownerCarDtos, JSONObject reqJson, List<FeeDto> resultFees) {
+        String payObjName = "";
+        for (OwnerCarDto ownerCarDto : ownerCarDtos) {
+            ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+            parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));
+            parkingSpaceDto.setPsId(ownerCarDto.getPsId());
+            List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+            if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+                continue;
+            }
+            ParkingSpaceDto tmpParkingSpaceDto = parkingSpaceDtos.get(0);
+            payObjName = tmpParkingSpaceDto.getAreaNum() + "停车场" + tmpParkingSpaceDto.getNum() + "车位";
+            FeeDto feeDto = new FeeDto();
+            feeDto.setCommunityId(reqJson.getString("communityId"));
+            feeDto.setPayerObjId(ownerCarDto.getPsId());
+            feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_PARKING_SPACE);
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+            getOweFee(feeDtos, reqJson, resultFees, payObjName);
+        }
+
+    }
+
+    private void getRoomOweFee(List<OwnerRoomRelDto> ownerRoomRelDtos, JSONObject reqJson, List<FeeDto> resultFees) {
+        String payObjName = "";
+        for (OwnerRoomRelDto ownerRoomRelDto : ownerRoomRelDtos) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setCommunityId(reqJson.getString("communityId"));
+            roomDto.setRoomId(ownerRoomRelDto.getRoomId());
+            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+            if (roomDtos == null || roomDtos.size() < 1) {
+                continue;
+            }
+            RoomDto tmpRoomDto = roomDtos.get(0);
+            payObjName = tmpRoomDto.getFloorNum() + "栋" + tmpRoomDto.getUnitNum() + "单元" + tmpRoomDto.getRoomNum() + "室";
+            FeeDto feeDto = new FeeDto();
+            feeDto.setCommunityId(reqJson.getString("communityId"));
+            feeDto.setPayerObjId(ownerRoomRelDto.getRoomId());
+            feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+            getOweFee(feeDtos, reqJson, resultFees, payObjName);
+        }
+
+    }
+
+    private void getOweFee(List<FeeDto> feeDtos, JSONObject reqJson, List<FeeDto> resultFees, String payObjName) {
+        if (feeDtos == null || feeDtos.size() < 1) {
+            return;
+        }
+
+        for (FeeDto feeDto : feeDtos) {
+            Date endTime = feeDto.getEndTime();
+            if (endTime.getTime() > DateUtil.getCurrentDate().getTime()) {//没有欠费
+                continue;
+            }
+
+            FeeConfigDto feeConfigDto = new FeeConfigDto();
+            feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+            feeConfigDto.setConfigId(feeDto.getConfigId());
+            List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+            if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
+                continue;
+            }
+
+            FeeConfigDto tmpFeeConfigDto = feeConfigDtos.get(0);
+
+            if (FeeConfigDto.BILL_TYPE_EVERY.equals(tmpFeeConfigDto.getBillType())) {//直接计算 欠费金额
+                computeFeePriceByRoom(feeDto);
+                double month = dayCompare(endTime, DateUtil.getCurrentDate());
+                BigDecimal feePrice = new BigDecimal(feeDto.getFeePrice());
+                feePrice = feePrice.multiply(new BigDecimal(month));
+                FeeDto tmpFeeDto = new FeeDto();
+                tmpFeeDto.setFeeId(feeDto.getFeeId());
+                tmpFeeDto.setFeeName(feeDto.getFeeName());
+                tmpFeeDto.setOweFee(feePrice.doubleValue());
+                tmpFeeDto.setPayerObjType(feeDto.getPayerObjType());
+                tmpFeeDto.setPayerObjName(payObjName);
+                tmpFeeDto.setPayerObjId(feeDto.getPayerObjId());
+                resultFees.add(tmpFeeDto);
+                continue;
+            }
+            //查询档期欠费账单表 是否有欠费
+            BillOweFeeDto billOweFeeDto = new BillOweFeeDto();
+            billOweFeeDto.setCommunityId(reqJson.getString("communityId"));
+            billOweFeeDto.setFeeId(feeDto.getFeeId());
+            List<BillOweFeeDto> billOweFeeDtos = feeInnerServiceSMOImpl.queryBillOweFees(billOweFeeDto);
+
+            if (billOweFeeDtos == null || billOweFeeDtos.size() < 1) { //没有欠费
+
+                continue;
+            }
+
+            for (BillOweFeeDto tmpBillOweFeeDto : billOweFeeDtos) {
+                FeeDto tmpFeeDto = new FeeDto();
+                tmpFeeDto.setFeeId(feeDto.getFeeId());
+                tmpFeeDto.setFeeName(feeDto.getFeeName());
+                tmpFeeDto.setOweFee(Double.parseDouble(tmpBillOweFeeDto.getBillAmountOwed()));
+                tmpFeeDto.setPayerObjName(payObjName);
+                tmpFeeDto.setPayerObjId(feeDto.getPayerObjId());
+                tmpFeeDto.setPayerObjType(feeDto.getPayerObjType());
+                resultFees.add(tmpFeeDto);
+            }
+
+
+        }
+
+    }
+
+
+    private void computeFeePriceByParkingSpace(FeeDto feeDto) {
+
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setCommunityId(feeDto.getCommunityId());
+        parkingSpaceDto.setPsId(feeDto.getPayerObjId());
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) { //数据有问题
+            return;
+        }
+
+        String computingFormula = feeDto.getComputingFormula();
+        double feePrice = 0.00;
+        if ("1001".equals(computingFormula)) { //面积*单价+附加费
+            BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
+            BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(parkingSpaceDtos.get(0).getArea()));
+            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+            feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        } else if ("2002".equals(computingFormula)) { // 固定费用
+
+            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+            feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        } else {
+            feePrice = -1.00;
+        }
+
+        feeDto.setFeePrice(feePrice);
+
+
+    }
+
+    /**
+     * 根据房屋来算单价
+     *
+     * @param feeDto
+     */
+    private void computeFeePriceByRoom(FeeDto feeDto) {
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(feeDto.getCommunityId());
+        roomDto.setRoomId(feeDto.getPayerObjId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        if (roomDtos == null || roomDtos.size() < 1) { //数据有问题
+            return;
+        }
+
+        String computingFormula = feeDto.getComputingFormula();
+        double feePrice = 0.00;
+        if ("1001".equals(computingFormula)) { //面积*单价+附加费
+            BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
+            BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDtos.get(0).getBuiltUpArea()));
+            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+            feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        } else if ("2002".equals(computingFormula)) { // 固定费用
+            BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+            feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        } else {
+            feePrice = -1.00;
+        }
+
+        feeDto.setFeePrice(feePrice);
+    }
+
+
+    /**
+     * 计算2个日期之间相差的  以年、月、日为单位,各自计算结果是多少
+     * 比如:2011-02-02 到  2017-03-02
+     * 以年为单位相差为:6年
+     * 以月为单位相差为:73个月
+     * 以日为单位相差为:2220天
+     *
+     * @param fromDate
+     * @param toDate
+     * @return
+     */
+    public static double dayCompare(Date fromDate, Date toDate) {
+        Calendar from = Calendar.getInstance();
+        from.setTime(fromDate);
+        Calendar to = Calendar.getInstance();
+        to.setTime(toDate);
+
+        long t1 = from.getTimeInMillis();
+        long t2 = to.getTimeInMillis();
+        long days = (t2 - t1) / (24 * 60 * 60 * 1000);
+
+        BigDecimal tmpDays = new BigDecimal(days);
+        BigDecimal monthDay = new BigDecimal(30);
+
+        return tmpDays.divide(monthDay, 2, RoundingMode.HALF_UP).doubleValue();
+    }
+}

+ 32 - 1
service-api/src/main/java/com/java110/api/listener/ownerRepair/SaveOwnerRepairListener.java

@@ -6,8 +6,16 @@ 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.factory.GenerateCodeFactory;
+import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairUserDto;
+import com.java110.po.owner.RepairPoolPo;
+import com.java110.po.owner.RepairUserPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeOwnerRepairConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
@@ -31,13 +39,36 @@ public class SaveOwnerRepairListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "roomId", "必填,请填写房屋ID");
         Assert.hasKeyAndValue(reqJson, "appointmentTime", "必填,请填写预约时间");
         Assert.hasKeyAndValue(reqJson, "context", "必填,请填写报修内容");
+        Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写提交用户ID");
+        Assert.hasKeyAndValue(reqJson, "userName", "必填,请填写提交用户名称");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区ID");
 
     }
 
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
-        ownerRepairBMOImpl.addOwnerRepair(reqJson, context);
+        JSONObject businessOwnerRepair = new JSONObject();
+        businessOwnerRepair.putAll(reqJson);
+        businessOwnerRepair.put("repairId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_repairId));
+        businessOwnerRepair.put("state", RepairDto.STATE_WAIT);
+        RepairPoolPo repairPoolPo = BeanConvertUtil.covertBean(businessOwnerRepair, RepairPoolPo.class);
+        super.insert(context, repairPoolPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR);
+
+        RepairUserPo repairUserPo = BeanConvertUtil.covertBean(reqJson, RepairUserPo.class);
+        repairUserPo.setContext("订单提交");
+        repairUserPo.setPreStaffId("-1");
+        repairUserPo.setPreStaffName("-1");
+        repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_START_USER);
+        repairUserPo.setStaffId(reqJson.getString("userId"));
+        repairUserPo.setStaffName(reqJson.getString("userName"));
+        repairUserPo.setRepairId(businessOwnerRepair.getString("repairId"));
+        repairUserPo.setState(RepairUserDto.STATE_SUBMIT);
+        repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        repairUserPo.setRuId("-1");
+        super.insert(context,repairUserPo,BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
+
+
     }
 
     @Override

+ 9 - 5
service-front/src/main/java/com/java110/front/smo/ownerRepair/impl/AddOwnerRepairSMOImpl.java

@@ -1,16 +1,17 @@
 package com.java110.front.smo.ownerRepair.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.AbstractComponentSMO;
+import com.java110.core.context.IPageData;
+import com.java110.entity.component.ComponentValidateResult;
+import com.java110.front.smo.ownerRepair.IAddOwnerRepairSMO;
 import com.java110.utils.constant.PrivilegeCodeConstant;
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
-import com.java110.core.context.IPageData;
-import com.java110.core.component.AbstractComponentSMO;
-import com.java110.front.smo.ownerRepair.IAddOwnerRepairSMO;
-import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 /**
@@ -45,8 +46,11 @@ public class AddOwnerRepairSMOImpl extends AbstractComponentSMO implements IAddO
     @Override
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
         ResponseEntity<String> responseEntity = null;
-        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        ComponentValidateResult commonValidateResult = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
 
+        paramIn.put("userId", commonValidateResult.getUserId());
+        paramIn.put("userName", commonValidateResult.getUserName());
+        paramIn.put("storeId", commonValidateResult.getStoreId());
         responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                 ServiceConstant.SERVICE_API_URL + "/api/ownerRepair.saveOwnerRepair",
                 HttpMethod.POST);

+ 2 - 2
service-job/src/main/java/com/java110/job/task/fee/GenerateBillTemplate.java

@@ -208,9 +208,9 @@ public class GenerateBillTemplate extends TaskSystemQuartz {
             return;
         }
 
-        if ("3333".equals(feeDto.getPayerObjType())) {
+        if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) {
             computeFeePriceByRoom(feeDto);
-        } else if ("6666".equals(feeDto.getPayerObjType())) {
+        } else if (FeeDto.PAYER_OBJ_TYPE_PARKING_SPACE.equals(feeDto.getPayerObjType())) {
             computeFeePriceByParkingSpace(feeDto);
         } else {
             return;//这个没有欠费可算

+ 6 - 6
service-log/src/main/java/com/java110/log/LogServiceApplicationStart.java

@@ -22,8 +22,8 @@ import org.springframework.context.ApplicationContext;
  * @date 2016年8月6日
  * @tag
  */
-@SpringBootApplication(scanBasePackages = {"com.java110.service","com.java110.log",
-"com.java110.feign.code","com.java110.core","com.java110.config.properties.code"})
+@SpringBootApplication(scanBasePackages = {"com.java110.service", "com.java110.log",
+        "com.java110.core", "com.java110.config.properties.code"})
 @EnableDiscoveryClient
 @EnableFeignClients(basePackages = {"com.java110.core.smo"})
 public class LogServiceApplicationStart {
@@ -31,12 +31,12 @@ public class LogServiceApplicationStart {
 
 
     public static void main(String[] args) throws Exception {
-        try{
-            ApplicationContext context =  SpringApplication.run(LogServiceApplicationStart.class, args);
+        try {
+            ApplicationContext context = SpringApplication.run(LogServiceApplicationStart.class, args);
 
             ServiceStartInit.initSystemConfig(context);
-        }catch (Throwable e){
-            logger.error("系统启动失败",e);
+        } catch (Throwable e) {
+            logger.error("系统启动失败", e);
         }
 
     }