wuxw лет назад: 6
Родитель
Сommit
959db7dce6

+ 200 - 6
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java

@@ -5,12 +5,14 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
 import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
 import com.java110.core.smo.fee.IFeeInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.ICarBlackWhiteInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
 import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
+import com.java110.dto.CommunityMemberDto;
 import com.java110.dto.FeeConfigDto;
 import com.java110.dto.FeeDto;
 import com.java110.dto.hardwareAdapation.CarBlackWhiteDto;
@@ -21,6 +23,7 @@ import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.CommunityMemberTypeConstant;
 import com.java110.utils.constant.FeeTypeConstant;
 import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
 import com.java110.utils.util.Assert;
@@ -56,6 +59,8 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
 
     private static final String MACHINE_DIRECTION_OUT = "3307"; //出去
 
+    private static final String HIRE_SELL_OUT = "hireSellOut"; // 出租或出售车辆出场
+
     private static final String CAR_BLACK = "1111"; // 车辆黑名单
     private static final String CAR_WHITE = "2222"; // 车辆白名单
 
@@ -77,6 +82,9 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
     @Autowired
     private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
 
@@ -154,6 +162,14 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
             return;
         }
 
+        //标识支付完成,检查是否为支付超时
+
+        if (judgeCarOutTimeOut(event, context, reqJson, tmpCarInoutDto, machineDto)) {
+            JSONObject data = computeHourAndMoney(tmpCarInoutDto.getCommunityId(), new Date(), reqJson.getDate("feeRestartTime"));
+            context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "支付已超时,请重新支付", data));
+            return;
+        }
+
         modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto);
         ResponseEntity<String> responseEntity = context.getResponseEntity();
 
@@ -164,6 +180,67 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功"));
     }
 
+    /**
+     * 判断车辆出场是否已经超时
+     *
+     * @param event
+     * @param context
+     * @param reqJson
+     * @param tmpCarInoutDto
+     * @param machineDto
+     * @return
+     */
+    private boolean judgeCarOutTimeOut(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityId(machineDto.getCommunityId());
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.PROPERTY);
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        String storeId = "-1";
+        if (communityMemberDtos != null && communityMemberDtos.size() > 0) {
+            storeId = communityMemberDtos.get(0).getMemberId();
+        }
+
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(machineDto.getCommunityId());
+        feeDto.setPayerObjId(reqJson.getString("inoutId"));
+        feeDto.setIncomeObjId(storeId);
+        feeDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        feeDto.setState("2009001");
+        feeDto.setFeeFlag("2006012");
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+        if (feeDtos == null || feeDtos.size() < 1) {
+            return false;
+        }
+
+        FeeDto tmpFeeDto = feeDtos.get(0);
+
+
+        long dffMin = new Date().getTime() - tmpFeeDto.getEndTime().getTime();
+
+        if (dffMin < 15 * 1000 * 60) {
+            return false;
+        }
+
+        //重新插入 一条 收费记录 收费
+
+        HttpHeaders header = new HttpHeaders();
+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+        AppService service = event.getAppService();
+        //添加单元信息
+        businesses.add(modifyCarInout(reqJson, context, tmpCarInoutDto, "100600", ""));
+        businesses.add(addCarInoutFee(reqJson, context, tmpCarInoutDto.getCommunityId(), DateUtil.getFormatTimeString(tmpFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A)));
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+        context.setResponseEntity(responseEntity);
+        reqJson.put("feeRestartTime", tmpFeeDto.getEndTime());
+
+        return true;
+    }
+
     /**
      * 处理车辆未完成支付出场处理
      *
@@ -210,7 +287,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
                 long day = betweenTime / (60 * 60 * 24 * 1000);
                 JSONObject data = new JSONObject();
                 data.put("day", day);//还剩余多少天
-                modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto);
+                modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto, HIRE_SELL_OUT);
                 context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功", data));
                 return;
             }
@@ -226,8 +303,14 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
             return;
         }
 
+        JSONObject data = computeHourAndMoney(tmpCarInoutDto.getCommunityId(), nowTime, inTime);
+
+        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "车辆未支付,请先支付", data));
+    }
+
+    private JSONObject computeHourAndMoney(String communityId, Date nowTime, Date inTime) {
         FeeConfigDto feeConfigDto = new FeeConfigDto();
-        feeConfigDto.setCommunityId(tmpCarInoutDto.getCommunityId());
+        feeConfigDto.setCommunityId(communityId);
         feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
         List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
 
@@ -258,11 +341,14 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         data.put("money", money);//缴费金额
         data.put("hour", new Double(hour).intValue());//停车时间
         data.put("min", new Double(min).intValue());//停车时间
-
-        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "车辆未支付,请先支付", data));
+        return data;
     }
 
     private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+        modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto, "");
+    }
+
+    private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto, String from) {
         HttpHeaders header = new HttpHeaders();
         context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
         JSONArray businesses = new JSONArray();
@@ -271,6 +357,12 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         businesses.add(modifyCarInout(reqJson, context, tmpCarInoutDto));
         reqJson.put("inoutId", tmpCarInoutDto.getInoutId());
         businesses.add(addCarInoutDetail(reqJson, context, tmpCarInoutDto.getCommunityId(), machineDto));
+        if (HIRE_SELL_OUT.equals(from)) {
+            JSONObject tmpModifyCarInoutFee = modifyCarInoutFee(reqJson, context, tmpCarInoutDto.getCommunityId(), machineDto);
+            if (tmpModifyCarInoutFee != null) {
+                businesses.add(tmpModifyCarInoutFee);
+            }
+        }
         JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
         //将 rest header 信息传递到下层服务中去
         super.freshHttpHeader(header, context.getRequestCurrentHeaders());
@@ -279,14 +371,18 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
     }
 
     private JSONObject modifyCarInout(JSONObject reqJson, DataFlowContext context, CarInoutDto carInoutDto) {
+        return modifyCarInout(reqJson, context, carInoutDto, "100500", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+    }
+
+    private JSONObject modifyCarInout(JSONObject reqJson, DataFlowContext context, CarInoutDto carInoutDto, String state, String endTime) {
         JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_CAR_INOUT);
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessCarInout = new JSONObject();
         businessCarInout.putAll(BeanConvertUtil.beanCovertMap(carInoutDto));
-        businessCarInout.put("state", "100500");
-        businessCarInout.put("outTime", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+        businessCarInout.put("state", state);
+        businessCarInout.put("outTime", endTime);
         //计算 应收金额
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInout", businessCarInout);
         return business;
@@ -321,6 +417,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         //添加单元信息
         businesses.add(addCarInout(reqJson, context, communityId));
         businesses.add(addCarInoutDetail(reqJson, context, communityId, machineDto));
+        businesses.add(addCarInoutFee(reqJson, context, communityId));
 
         JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
 
@@ -335,6 +432,103 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功"));
     }
 
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject addCarInoutFee(JSONObject paramInJson, DataFlowContext dataFlowContext, String communityId) {
+        return addCarInoutFee(paramInJson, dataFlowContext, communityId, DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+    }
+
+
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject addCarInoutFee(JSONObject paramInJson, DataFlowContext dataFlowContext, String communityId, String startTime) {
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityId(communityId);
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.PROPERTY);
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        String storeId = "-1";
+        if (communityMemberDtos != null && communityMemberDtos.size() > 0) {
+            storeId = communityMemberDtos.get(0).getMemberId();
+        }
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("feeId", "-1");
+        businessUnit.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        businessUnit.put("incomeObjId", storeId);
+        businessUnit.put("amount", "-1.00");
+        businessUnit.put("startTime", startTime);
+        businessUnit.put("endTime", DateUtil.getLastTime()); // 临时车将结束时间刷成2038年
+        businessUnit.put("communityId", communityId);
+        businessUnit.put("payerObjId", paramInJson.getString("inoutId"));
+        businessUnit.put("feeFlag", "2006012"); // 一次性费用
+        businessUnit.put("state", "2008001"); // 收费中
+        businessUnit.put("userId", "-1");
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessUnit);
+
+        return business;
+    }
+
+    /**
+     * 出租或出售 车辆出场
+     *
+     * @param reqJson
+     * @param context
+     * @param communityId
+     * @param machineDto
+     * @return
+     */
+    private JSONObject modifyCarInoutFee(JSONObject reqJson, DataFlowContext context, String communityId, MachineDto machineDto) {
+
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityId(communityId);
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.PROPERTY);
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        String storeId = "-1";
+        if (communityMemberDtos != null && communityMemberDtos.size() > 0) {
+            storeId = communityMemberDtos.get(0).getMemberId();
+        }
+
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(communityId);
+        feeDto.setPayerObjId(reqJson.getString("inoutId"));
+        feeDto.setIncomeObjId(storeId);
+        feeDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        feeDto.setState("2008001");
+        feeDto.setFeeFlag("2006012");
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+        if (feeDtos == null || feeDtos.size() < 1) {
+            return null;
+        }
+
+        FeeDto tmpFeeDto = feeDtos.get(0);
+
+        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);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(BeanConvertUtil.beanCovertMap(tmpFeeDto));
+        businessUnit.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        businessUnit.put("state", "2009001"); // 收费中
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessUnit);
+
+        return business;
+    }
 
     /**
      * 添加小区信息

+ 0 - 50
Api/src/test/java/com/java110/AppTest.java

@@ -1,50 +0,0 @@
-package com.java110;
-
-import static org.junit.Assert.assertTrue;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import org.junit.Test;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest 
-{
-    /**
-     * Rigorous Test :-)
-     */
-    @Test
-    public void shouldAnswerWithTrue()
-    {
-        assertTrue( true );
-    }
-
-    @Test
-    public void jsonRemoveTest(){
-        JSONObject jsonObject = JSONObject.parseObject("{\n" +
-                "\t\"name\": \"吴学文\",\n" +
-                "\t\"age\": \"29\",\n" +
-                "\t\"sex\": 1,\n" +
-                "\t\"typeCd\": \"10004\",\n" +
-                "\t\"idCard\": \"632126199109162011\",\n" +
-                "\t\"startTime\": \"2020-01-02 20:40:10\",\n" +
-                "\t\"endTime\": \"2020-02-02 20:39:58\",\n" +
-                "\t\"tel\": \"18999999999\",\n" +
-                "\t\"photos\": [\"data:image/jpeg;base64,/\"]\n" +
-                "\t \"msgCode\": \"1234567\",\n" +
-                "\t\"communityId\": \"7020181217000001\",\n" +
-                "\t\"machineIds\": [\"892019121802160005\", \"892019112915930070\"]\n" +
-                "}");
-
-
-        JSONArray machineIds = jsonObject.getJSONArray("machineIds");
-
-        jsonObject.remove("wuxw");
-
-        System.out.printf(jsonObject.toJSONString());
-
-
-    }
-}

+ 29 - 0
Api/src/test/java/com/java110/api/listener/floor/MachineRoadGateOpenTest.java

@@ -0,0 +1,29 @@
+package com.java110.api.listener.floor;
+
+import com.java110.utils.util.DateUtil;
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.util.Date;
+
+/**
+ * @ClassName MachineRoadGateOpenTest
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/1/27 12:14
+ * @Version 1.0
+ * add by wuxw 2020/1/27
+ **/
+public class MachineRoadGateOpenTest {
+
+    @Test
+    public void soService() throws ParseException {
+        Date aDate = DateUtil.getDateFromString("2020-01-27 12:16:00", DateUtil.DATE_FORMATE_STRING_A);
+        Date bDate = DateUtil.getDateFromString("2020-01-27 12:31:00", DateUtil.DATE_FORMATE_STRING_A);
+
+        long diffMin = bDate.getTime() - aDate.getTime();
+
+        System.out.println("diffMin:" + diffMin);
+        System.out.println("15 min:" + 15 * 60 * 1000);
+    }
+}

+ 4 - 1
FeeService/src/main/java/com/java110/fee/listener/fee/AbstractFeeBusinessServiceDataFlowListener.java

@@ -47,6 +47,8 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         businessFeeInfo.put("feeId", businessFeeInfo.get("fee_id"));
         businessFeeInfo.put("userId", businessFeeInfo.get("user_id"));
         businessFeeInfo.put("payerObjId", businessFeeInfo.get("payer_obj_id"));
+        businessFeeInfo.put("feeFlag", businessFeeInfo.get("fee_flag"));
+        businessFeeInfo.put("state", businessFeeInfo.get("state"));
         businessFeeInfo.remove("bId");
         businessFeeInfo.put("statusCd", statusCd);
     }
@@ -82,7 +84,8 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         currentFeeInfo.put("feeId", currentFeeInfo.get("fee_id"));
         currentFeeInfo.put("userId", currentFeeInfo.get("user_id"));
         currentFeeInfo.put("payerObjId", currentFeeInfo.get("payer_obj_id"));
-
+        currentFeeInfo.put("feeFlag", currentFeeInfo.get("fee_flag"));
+        currentFeeInfo.put("state", currentFeeInfo.get("state"));
 
         currentFeeInfo.put("operate", StatusConstant.OPERATE_DEL);
         getFeeServiceDaoImpl().saveBusinessFeeInfo(currentFeeInfo);

+ 2 - 2
WebService/src/main/resources/components/carInoutPackage/carIn-manage/carInManage.html

@@ -70,7 +70,7 @@
                             <th class="text-center">车牌号</th>
                             <th class="text-center">进场时间</th>
                             <th class="text-center">在场时间(小时)</th>
-                            <th class="text-center">产生费用(元)</th>
+                            <th class="text-center">产生费用</th>
                         </tr>
                         </thead>
                         <tbody>
@@ -80,7 +80,7 @@
                             <td class="text-center">{{carIn.carNum}}</td>
                             <td class="text-center">{{carIn.inTime}}</td>
                             <td class="text-center">{{carIn.continueHours}}</td>
-                            <td class="text-center">{{carIn.money}}</td>
+                            <td class="text-center">{{carIn.money}}</td>
                         </tr>
                         </tbody>
                         <tfoot>

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

@@ -26,6 +26,8 @@ public class FeeDto extends PageDto implements Serializable {
 
     private String squarePrice;
     private String additionalAmount;
+    private String state;
+    private String feeFlag;
 
     private Date arrearsEndTime;
 
@@ -156,4 +158,20 @@ public class FeeDto extends PageDto implements Serializable {
     public void setAdditionalAmount(String additionalAmount) {
         this.additionalAmount = additionalAmount;
     }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getFeeFlag() {
+        return feeFlag;
+    }
+
+    public void setFeeFlag(String feeFlag) {
+        this.feeFlag = feeFlag;
+    }
 }

+ 38 - 5
java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml

@@ -7,9 +7,10 @@
     <!-- 保存费用信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessFeeInfo" parameterType="Map">
         insert into business_pay_fee(
-        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id
+        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state
         ) values (
-        #{amount},#{operate},#{incomeObjId},#{feeTypeCd},#{startTime},#{endTime},#{communityId},#{bId},#{feeId},#{userId},#{payerObjId}
+        #{amount},#{operate},#{incomeObjId},#{feeTypeCd},#{startTime},#{endTime},#{communityId},#{bId},#{feeId},#{userId},#{payerObjId},
+        #{feeFlag},#{state}
         )
     </insert>
 
@@ -19,7 +20,7 @@
         select t.amount,t.operate,t.income_obj_id,t.income_obj_id incomeObjId,t.fee_type_cd,t.fee_type_cd
         feeTypeCd,t.start_time,t.start_time startTime,t.end_time,t.end_time endTime,t.community_id,t.community_id
         communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id userId,t.payer_obj_id,t.payer_obj_id
-        payerObjId
+        payerObjId,t.fee_flag,t.fee_flag feeFlag,t.state
         from business_pay_fee t
         where 1 =1
         <if test="amount !=null and amount != ''">
@@ -55,6 +56,12 @@
         <if test="payerObjId !=null and payerObjId != ''">
             and t.payer_obj_id= #{payerObjId}
         </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
 
     </select>
 
@@ -62,9 +69,10 @@
     <!-- 保存费用信息至 instance表中 add by wuxw 2018-07-03 -->
     <insert id="saveFeeInfoInstance" parameterType="Map">
         insert into pay_fee(
-        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id
+        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state
         ) select
         t.amount,t.income_obj_id,t.fee_type_cd,t.start_time,'0',t.end_time,t.community_id,t.b_id,t.fee_id,t.user_id,t.payer_obj_id
+        ,t.fee_flag,t.state
         from business_pay_fee t where 1=1
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
@@ -97,6 +105,12 @@
         <if test="payerObjId !=null and payerObjId != ''">
             and t.payer_obj_id= #{payerObjId}
         </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
 
     </insert>
 
@@ -106,7 +120,8 @@
         select t.amount,t.income_obj_id,t.income_obj_id incomeObjId,t.fee_type_cd,t.fee_type_cd
         feeTypeCd,t.start_time,t.start_time startTime,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time
         endTime,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id
-        userId,t.payer_obj_id,t.payer_obj_id payerObjId,pfc.square_price squarePrice,pfc.additional_amount additionalAmount
+        userId,t.payer_obj_id,t.payer_obj_id payerObjId,pfc.square_price squarePrice,pfc.additional_amount
+        additionalAmount,t.fee_flag feeFlag,t.state
         from pay_fee t,pay_fee_config pfc
         where 1 =1
         and t.fee_type_cd = pfc.fee_type_cd
@@ -154,6 +169,12 @@
         <if test="payerObjId !=null and payerObjId != ''">
             and t.payer_obj_id= #{payerObjId}
         </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -192,6 +213,12 @@
         <if test="payerObjId !=null and payerObjId != ''">
             , t.payer_obj_id= #{payerObjId}
         </if>
+        <if test="state !=null and state != ''">
+            , t.state= #{state}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            , t.fee_flag= #{feeFlag}
+        </if>
         where 1=1
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
@@ -252,6 +279,12 @@
         <if test="payerObjId !=null and payerObjId != ''">
             and t.payer_obj_id= #{payerObjId}
         </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="feeFlag !=null and feeFlag != ''">
+            and t.fee_flag= #{feeFlag}
+        </if>
 
 
     </select>

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

@@ -16,6 +16,8 @@ public class DateUtil {
 
     private static DateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
 
+    private static final String LAST_TIME = "2038-01-01 00:00:00";
+
     private static Map<String, SimpleDateFormat> formats = new HashMap();
     public static final String DATE_FORMATE_STRING_DEFAULT = "yyyyMMddHHmmss";
     public static final String DATE_FORMATE_STRING_A = "yyyy-MM-dd HH:mm:ss";
@@ -146,6 +148,10 @@ public class DateUtil {
         return getFormatTimeString(new Date(), pattern);
     }
 
+    public static String getLastTime(){
+        return LAST_TIME;
+    }
+
     public static String getNowII() {
         return getFormatTimeString(new Date(), "yyyyMMdd");
     }