曾成 vor 6 Jahren
Ursprung
Commit
b1daf4c1da

+ 2 - 0
Api/src/main/java/com/java110/api/bmo/fee/IFeeBMO.java

@@ -33,6 +33,8 @@ public interface IFeeBMO extends IApiBaseBMO {
      */
     public JSONObject deleteFee(JSONObject paramInJson, DataFlowContext dataFlowContext);
 
+    public JSONObject updateFee(JSONObject paramInJson, DataFlowContext dataFlowContext);
+
     /**
      * 修改费用信息
      *

+ 9 - 0
Api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -96,6 +96,15 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         return business;
     }
 
+    public JSONObject updateFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", paramInJson);
+        return business;
+    }
+
     /**
      * 添加费用明细信息
      *

+ 48 - 0
Api/src/main/java/com/java110/api/listener/returnPayFee/UpdateReturnPayFeeListener.java

@@ -7,16 +7,24 @@ import com.java110.api.bmo.returnPayFee.IReturnPayFeeBMO;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
+import com.java110.dto.fee.FeeDto;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeReturnPayFeeConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
 
 /**
  * 保存退费表侦听
@@ -28,12 +36,15 @@ public class UpdateReturnPayFeeListener extends AbstractServiceApiListener {
     @Autowired
     private IReturnPayFeeBMO returnPayFeeBMOImpl;
     @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+    @Autowired
     private IFeeBMO feeBMOImpl;
 
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "returnFeeId", "returnFeeId不能为空");
         Assert.hasKeyAndValue(reqJson, "state", "state不能为空");
+        Assert.hasKeyAndValue(reqJson, "feeId", "feeId不能为空");
     }
 
     @Override
@@ -55,11 +66,48 @@ public class UpdateReturnPayFeeListener extends AbstractServiceApiListener {
             reqJson.put("receivedAmount",receivedAmount.split("-")[1]);
             reqJson.put("createTime",reqJson.get("payTime"));
             businesses.add(returnPayFeeBMOImpl.updateFeeDetail(reqJson, context));
+            //修改pay_fee 费用到期时间  以及如果是押金则修改状态为结束收费
+            FeeDto feeDto = new FeeDto();
+            feeDto.setFeeId((String) reqJson.get("feeId"));
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+            FeeDto feeDto1 = feeDtos.get(0);
+            Calendar endCalender = Calendar.getInstance();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            endCalender.setTime(feeDto1.getEndTime());
+            endCalender.add(Calendar.MONTH, -new Double(cycles).intValue());
+            reqJson.put("endTime",sdf.format(endCalender.getTime()));
+            reqJson.put("amount",feeDto1.getAmount());
+            reqJson.put("feeTypeCd",feeDto1.getFeeTypeCd());
+            reqJson.put("communityId",feeDto1.getCommunityId());
+            reqJson.put("payerObjId",feeDto1.getPayerObjId());
+            reqJson.put("incomeObjId",feeDto1.getIncomeObjId());
+            endCalender.setTime(feeDto1.getStartTime());
+            reqJson.put("startTime", sdf.format(endCalender.getTime()));
+            reqJson.put("userId",feeDto1.getUserId());
+            reqJson.put("feeFlag",feeDto1.getFeeFlag());
+            reqJson.put("statusCd",feeDto1.getStatusCd());
+            reqJson.put("state",feeDto1.getState());
+            reqJson.put("configId",feeDto1.getConfigId());
+            reqJson.put("payerObjType",feeDto1.getPayerObjType());
+            if("888800010006".equals(feeDto1.getFeeTypeCds())){
+                reqJson.put("state","2009001");
+            }
+            businesses.add(feeBMOImpl.updateFee(reqJson, context));
+
         }
         //不通过
         if("1200".equals(reqJson.getString("state"))){
             reqJson.put("state","1200");
             businesses.add(returnPayFeeBMOImpl.updateFeeDetail(reqJson, context));
+            reqJson.put("state","1200");
+            String cycles = (String) reqJson.get("cycles");
+            String receivableAmount = (String) reqJson.get("receivableAmount");
+            String receivedAmount = (String) reqJson.get("receivedAmount");
+            reqJson.put("cycles",cycles.split("-")[1]);
+            reqJson.put("receivableAmount",receivableAmount.split("-")[1]);
+            reqJson.put("receivedAmount",receivedAmount.split("-")[1]);
+            reqJson.put("createTime",reqJson.get("payTime"));
+            businesses.add(returnPayFeeBMOImpl.updateFeeDetail(reqJson, context));
         }
 
 

+ 16 - 0
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java

@@ -396,4 +396,20 @@ public class DateUtil {
         int maxDate = a.get(Calendar.DATE);
         return maxDate;
     }
+
+
+    /**
+     * 在给定的日期加上或减去指定月份后的日期
+     *
+     * @param sourceDate 原始时间
+     * @param month      要调整的月份,向前为负数,向后为正数
+     * @return
+     */
+    public static Date stepMonth(Date sourceDate, int month) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(sourceDate);
+        c.add(Calendar.MONTH, month);
+
+        return c.getTime();
+    }
 }