java110 лет назад: 3
Родитель
Сommit
05ccec5517

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/machine/CarInoutDetailDto.java

@@ -33,6 +33,7 @@ public class CarInoutDetailDto extends CarInoutDto implements Serializable {
     private String statusCd = "0";
 
     private String remark;
+    private String state;
 
 
     public String getInoutId() {
@@ -115,4 +116,14 @@ public class CarInoutDetailDto extends CarInoutDto implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
+
+    @Override
+    public String getState() {
+        return state;
+    }
+
+    @Override
+    public void setState(String state) {
+        this.state = state;
+    }
 }

+ 9 - 0
java110-bean/src/main/java/com/java110/po/car/CarInoutDetailPo.java

@@ -23,6 +23,7 @@ public class CarInoutDetailPo implements Serializable {
     private String statusCd = "0";
 
     private String remark;
+    private String state;
 
     public String getDetailId() {
         return detailId;
@@ -103,4 +104,12 @@ public class CarInoutDetailPo implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
 }

+ 7 - 5
java110-db/src/main/resources/mapper/common/CarInoutDetailV1ServiceDaoImplMapper.xml

@@ -8,9 +8,9 @@
     <!-- 保存车辆进出明细信息 add by wuxw 2018-07-03 -->
     <insert id="saveCarInoutDetailInfo" parameterType="Map">
         insert into car_inout_detail(
-        inout_id,machine_id,machine_code,car_inout,pa_id,detail_id,car_num,community_id,remark
+        inout_id,machine_id,machine_code,car_inout,pa_id,detail_id,car_num,community_id,remark,state
         ) values (
-        #{inoutId},#{machineId},#{machineCode},#{carInout},#{paId},#{detailId},#{carNum},#{communityId},#{remark}
+        #{inoutId},#{machineId},#{machineCode},#{carInout},#{paId},#{detailId},#{carNum},#{communityId},#{remark},#{state}
         )
     </insert>
 
@@ -19,12 +19,12 @@
     <select id="getCarInoutDetailInfo" parameterType="Map" resultType="Map">
         select t.inout_id,t.inout_id inoutId,t.machine_id,t.machine_id machineId,t.machine_code,t.machine_code
         machineCode,t.car_inout,t.car_inout carInout,t.pa_id,t.pa_id paId,t.detail_id,t.detail_id
-        detailId,t.car_num,t.car_num carNum,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId,
-        ci.in_time inTime,ci.out_time outTime,cip.real_charge realCharge,ci.pa_id paId,td.name stateName,t.remark
+        detailId,t.car_num,t.car_num carNum,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId,t.state,
+        ci.in_time inTime,ci.out_time outTime,max(cip.real_charge) realCharge,ci.pa_id paId,td.name stateName,t.remark
         from car_inout_detail t
         left join car_inout ci on t.inout_id = ci.inout_id and ci.status_cd = '0' and t.community_id = ci.community_id
         left join car_inout_payment cip on cip.inout_id = ci.inout_id and cip.community_id = ci.community_id
-        left join t_dict td on ci.state = td.status_cd and td.table_columns='state' and td.table_name = 'car_inout'
+        left join t_dict td on t.state = td.status_cd and td.table_columns='state' and td.table_name = 'car_inout'
         where 1 =1
         <if test="inoutId !=null and inoutId != ''">
             and t.inout_id= #{inoutId}
@@ -59,6 +59,8 @@
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
+        group by t.inout_id,t.machine_id,t.machine_code,t.car_inout,t.pa_id,t.detail_id,t.car_num,t.status_cd,t.community_id,
+        ci.in_time ,ci.out_time ,ci.pa_id ,td.name,t.remark
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}

+ 92 - 57
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java

@@ -165,13 +165,21 @@ public class MachineUploadCarLogCmd extends Cmd {
      * @param tempCar
      */
     private void carOut(JSONObject reqJson, MachineDto machineDto, int tempCar) {
+
+        String state = CarInoutDto.STATE_OUT;
+        //进场失败记录
+        if (reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))) {
+            state = CarInoutDto.STATE_IN_FAIL;
+        }
+
+
         String paId = "";
-        if(MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())){
+        if (MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())) {
             ParkingBoxAreaDto parkingBoxAreaDto = new ParkingBoxAreaDto();
             parkingBoxAreaDto.setBoxId(machineDto.getLocationObjId());
             List<ParkingBoxAreaDto> parkingBoxAreaDtos = parkingBoxAreaV1InnerServiceSMOImpl.queryParkingBoxAreas(parkingBoxAreaDto);
-            if(parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1){
-                throw new CmdException("岗亭未配置停车场"+machineDto.getLocationObjId());
+            if (parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1) {
+                throw new CmdException("岗亭未配置停车场" + machineDto.getLocationObjId());
             }
             paId = parkingBoxAreaDtos.get(0).getPaId();
         }
@@ -187,14 +195,33 @@ public class MachineUploadCarLogCmd extends Cmd {
         });
         List<CarInoutDto> carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
 
+        // 没有进场记录
         if (carInoutDtos == null || carInoutDtos.size() < 1) {
             //可能车辆异常情况 没有 进场 补充进场记录
             reqJson.put("inTime", reqJson.getString("outTime"));
-            carIn(reqJson, machineDto, tempCar);
-            carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
+            //carIn(reqJson, machineDto, tempCar);
+            //保存出场明细
+            CarInoutDetailPo carInoutDetailPo = new CarInoutDetailPo();
+            carInoutDetailPo.setCarInout(CarInoutDetailDto.CAR_INOUT_OUT);
+            carInoutDetailPo.setCarNum(reqJson.getString("carNum"));
+            carInoutDetailPo.setCommunityId(reqJson.getString("communityId"));
+            carInoutDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            carInoutDetailPo.setInoutId("-1");
+            carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
+            carInoutDetailPo.setMachineId(machineDto.getMachineId());
+            carInoutDetailPo.setPaId(paId);
+            carInoutDetailPo.setRemark(reqJson.getString("remark"));
+            carInoutDetailPo.setState(state);
+            int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
+            if (flag < 1) {
+                throw new CmdException("保存出记录明细失败");
+            }
+            //出场失败了
+            if (CarInoutDto.STATE_IN_FAIL.equals(state)) {
+                return;
+            }
         }
 
-
         //保存出场明细
         CarInoutDetailPo carInoutDetailPo = new CarInoutDetailPo();
         carInoutDetailPo.setCarInout(CarInoutDetailDto.CAR_INOUT_OUT);
@@ -205,12 +232,19 @@ public class MachineUploadCarLogCmd extends Cmd {
         carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
         carInoutDetailPo.setMachineId(machineDto.getMachineId());
         carInoutDetailPo.setPaId(carInoutDtos.get(0).getPaId());
+        carInoutDetailPo.setRemark(reqJson.getString("remark"));
+        carInoutDetailPo.setState(state);
         int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
 
         if (flag < 1) {
             throw new CmdException("保存出记录明细失败");
         }
 
+        //出场失败了
+        if (CarInoutDto.STATE_IN_FAIL.equals(state)) {
+            return;
+        }
+
         //将状态更新为 出场状态
 
         CarInoutPo carInoutPo = new CarInoutPo();
@@ -226,53 +260,53 @@ public class MachineUploadCarLogCmd extends Cmd {
         }
 
         //写支付记录
-        CarInoutPaymentPo carInoutPaymentPo = new CarInoutPaymentPo();
-        carInoutPaymentPo.setPaymentId(GenerateCodeFactory.getGeneratorId("10"));
-        carInoutPaymentPo.setCommunityId(carInoutDtos.get(0).getCommunityId());
-        carInoutPaymentPo.setInoutId(carInoutDtos.get(0).getInoutId());
-        carInoutPaymentPo.setPaId(carInoutDtos.get(0).getPaId());
-        carInoutPaymentPo.setPayCharge(reqJson.getString("payCharge"));
-        carInoutPaymentPo.setPayType(reqJson.getString("payType"));
-        carInoutPaymentPo.setRealCharge(reqJson.getString("realCharge"));
-        flag = carInoutPaymentV1InnerServiceSMOImpl.saveCarInoutPayment(carInoutPaymentPo);
-        if (flag < 1) {
-            throw new CmdException("更新出场时间失败");
-        }
-
-        //月租车
-        if (tempCar != CAR_TYPE_NO_DATA && tempCar != CAR_TYPE_TEMP) {
-            return;
-        }
-
-        //如果有费用 则缴费
-        boolean hasFee = hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
-
-        double realCharge = Double.parseDouble(carInoutPaymentPo.getRealCharge());
-
-        //有费用 或者 缴费为0 时结束
-        if (hasFee || realCharge == 0) {
-            return;
-        }
-        // 判断是否存在 临时车 虚拟业主
-        OwnerDto ownerDto = new OwnerDto();
-        ownerDto.setCommunityId(reqJson.getString("communityId"));
-        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
-        ownerDto.setOwnerFlag(OwnerDto.OWNER_FLAG_FALSE);
-        ownerDto.setName(TEMP_CAR_OWNER);
-        List<OwnerDto> ownerDtos = buildingOwnerV1InnerServiceSMOImpl.queryBuildingOwners(ownerDto);
-        if (ownerDtos == null || ownerDtos.size() < 1) {
-            return;
-        }
-        JSONObject paramIn = new JSONObject();
-        paramIn.put("inTime", carInoutDtos.get(0).getInTime());
-        paramIn.put("carId", reqJson.getString("carId"));
-        paramIn.put("communityId", carInoutDtos.get(0).getCommunityId());
-        paramIn.put("inoutId", carInoutDtos.get(0).getInoutId());
-        paramIn.put("ownerId", ownerDtos.get(0).getMemberId());
-        saveTempCarFee(paramIn, machineDto);
-
-        //再去缴费
-        hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
+//        CarInoutPaymentPo carInoutPaymentPo = new CarInoutPaymentPo();
+//        carInoutPaymentPo.setPaymentId(GenerateCodeFactory.getGeneratorId("10"));
+//        carInoutPaymentPo.setCommunityId(carInoutDtos.get(0).getCommunityId());
+//        carInoutPaymentPo.setInoutId(carInoutDtos.get(0).getInoutId());
+//        carInoutPaymentPo.setPaId(carInoutDtos.get(0).getPaId());
+//        carInoutPaymentPo.setPayCharge(reqJson.getString("payCharge"));
+//        carInoutPaymentPo.setPayType(reqJson.getString("payType"));
+//        carInoutPaymentPo.setRealCharge(reqJson.getString("realCharge"));
+//        flag = carInoutPaymentV1InnerServiceSMOImpl.saveCarInoutPayment(carInoutPaymentPo);
+//        if (flag < 1) {
+//            throw new CmdException("更新出场时间失败");
+//        }
+//
+//        //月租车
+//        if (tempCar != CAR_TYPE_NO_DATA && tempCar != CAR_TYPE_TEMP) {
+//            return;
+//        }
+//
+//        //如果有费用 则缴费
+//        boolean hasFee = hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
+//
+//        double realCharge = Double.parseDouble(carInoutPaymentPo.getRealCharge());
+//
+//        //有费用 或者 缴费为0 时结束
+//        if (hasFee || realCharge == 0) {
+//            return;
+//        }
+//        // 判断是否存在 临时车 虚拟业主
+//        OwnerDto ownerDto = new OwnerDto();
+//        ownerDto.setCommunityId(reqJson.getString("communityId"));
+//        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
+//        ownerDto.setOwnerFlag(OwnerDto.OWNER_FLAG_FALSE);
+//        ownerDto.setName(TEMP_CAR_OWNER);
+//        List<OwnerDto> ownerDtos = buildingOwnerV1InnerServiceSMOImpl.queryBuildingOwners(ownerDto);
+//        if (ownerDtos == null || ownerDtos.size() < 1) {
+//            return;
+//        }
+//        JSONObject paramIn = new JSONObject();
+//        paramIn.put("inTime", carInoutDtos.get(0).getInTime());
+//        paramIn.put("carId", reqJson.getString("carId"));
+//        paramIn.put("communityId", carInoutDtos.get(0).getCommunityId());
+//        paramIn.put("inoutId", carInoutDtos.get(0).getInoutId());
+//        paramIn.put("ownerId", ownerDtos.get(0).getMemberId());
+//        saveTempCarFee(paramIn, machineDto);
+//
+//        //再去缴费
+//        hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
     }
 
     private boolean hasFeeAndPayFee(CarInoutDto carInoutDto, JSONObject reqJson, CarInoutPo carInoutPo, CarInoutPaymentPo carInoutPaymentPo) {
@@ -326,18 +360,18 @@ public class MachineUploadCarLogCmd extends Cmd {
     private void carIn(JSONObject reqJson, MachineDto machineDto, int tempCar) {
         String state = CarInoutDto.STATE_IN;
         //进场失败记录
-        if(reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))){
+        if (reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))) {
             state = CarInoutDto.STATE_IN_FAIL;
         }
 
         String paId = machineDto.getLocationObjId();
 
-        if(MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())){
+        if (MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())) {
             ParkingBoxAreaDto parkingBoxAreaDto = new ParkingBoxAreaDto();
             parkingBoxAreaDto.setBoxId(machineDto.getLocationObjId());
             List<ParkingBoxAreaDto> parkingBoxAreaDtos = parkingBoxAreaV1InnerServiceSMOImpl.queryParkingBoxAreas(parkingBoxAreaDto);
-            if(parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1){
-                throw new CmdException("岗亭未配置停车场"+machineDto.getLocationObjId());
+            if (parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1) {
+                throw new CmdException("岗亭未配置停车场" + machineDto.getLocationObjId());
             }
             paId = parkingBoxAreaDtos.get(0).getPaId();
         }
@@ -367,6 +401,7 @@ public class MachineUploadCarLogCmd extends Cmd {
         carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
         carInoutDetailPo.setMachineId(machineDto.getMachineId());
         carInoutDetailPo.setPaId(paId);
+        carInoutDetailPo.setState(state);
         carInoutDetailPo.setRemark(reqJson.getString("remark"));
         flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);