wuxw
2022-09-10 7bc074e0641f4afc84cea8dfaeff3eacc3f69b03
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java
@@ -11,6 +11,7 @@
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.machine.CarBlackWhiteDto;
import com.java110.dto.machine.CarInoutDetailDto;
import com.java110.dto.machine.CarInoutDto;
import com.java110.dto.machine.MachineDto;
@@ -29,6 +30,7 @@
import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
import com.java110.intf.user.IBuildingOwnerV1InnerServiceSMO;
import com.java110.intf.user.ICarBlackWhiteV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.po.car.CarInoutDetailPo;
@@ -63,7 +65,7 @@
    public static final int CAR_TYPE_MONTH = 1001; //月租车
    public static final int CAR_TYPE_SUB = 1; //成员车辆
    public static final int CAR_TYPE_TEMP = 1003; //临时车辆
    public static final int CAR_TYPE_NO_DATA = 3; //没有数据
    public static final String CAR_TYPE_NO_DATA = "3"; //没有数据
    public static final String TEMP_CAR_OWNER = "临时车车主";
@@ -109,6 +111,9 @@
    @Autowired
    private IParkingBoxAreaV1InnerServiceSMO parkingBoxAreaV1InnerServiceSMOImpl;
    @Autowired
    private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
@@ -121,7 +126,8 @@
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
        //是否是临时车
        int tempCar = CAR_TYPE_MONTH;
        String tempCar = OwnerCarDto.LEASE_TYPE_TEMP;
        String tempCarName ="临时车";
        //查询设备信息
@@ -141,23 +147,28 @@
        //说明是临时车
        if (ownerCarDtos == null || ownerCarDtos.size() == 0) {
            tempCar = CAR_TYPE_NO_DATA;
            tempCarName = "临时车";
        } else {
            reqJson.put("carId", ownerCarDtos.get(0).getCarId());
            if (OwnerCarDto.CAR_TYPE_TEMP.equals(ownerCarDtos.get(0).getCarTypeCd())) {
                tempCar = CAR_TYPE_TEMP;
            }
            // 月租车过期 后就是临时车
            if (ownerCarDtos.get(0).getEndTime().before(DateUtil.getCurrentDate())) {
                tempCar = CAR_TYPE_TEMP;
            tempCar = ownerCarDtos.get(0).getLeaseType();
            tempCarName = ownerCarDtos.get(0).getLeaseTypeName();
            if(ownerCarDtos.size()>1){
                for(OwnerCarDto tmpOwnerCarDto : ownerCarDtos){
                    if(OwnerCarDto.LEASE_TYPE_TEMP.equals(tmpOwnerCarDto.getLeaseType())){
                       continue;
                    }
                    tempCar = tmpOwnerCarDto.getLeaseType();
                    tempCarName = tmpOwnerCarDto.getLeaseTypeName();
                }
            }
        }
        //进场处理
        if (MachineDto.DIRECTION_IN.equals(machineDtos.get(0).getDirection())) {
            carIn(reqJson, machineDtos.get(0), tempCar);
            carIn(reqJson, machineDtos.get(0), tempCar,tempCarName);
        } else {
            carOut(reqJson, machineDtos.get(0), tempCar);
            carOut(reqJson, machineDtos.get(0), tempCar,tempCarName);
        }
    }
@@ -169,7 +180,7 @@
     * @param machineDto
     * @param tempCar
     */
    private void carOut(JSONObject reqJson, MachineDto machineDto, int tempCar) {
    private void carOut(JSONObject reqJson, MachineDto machineDto, String tempCar,String tempCarName) {
        String state = CarInoutDto.STATE_OUT;
        //进场失败记录
@@ -218,7 +229,8 @@
            carInoutDetailPo.setPaId(paId);
            carInoutDetailPo.setRemark(reqJson.getString("remark"));
            carInoutDetailPo.setState(state);
            carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
            carInoutDetailPo.setCarType(CAR_TYPE_NO_DATA.equals(tempCar) ? OwnerCarDto.LEASE_TYPE_TEMP + "" : tempCar + "");
            carInoutDetailPo.setCarTypeName(CAR_TYPE_NO_DATA.equals(tempCar) ? "临时车" : tempCarName);
            int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
            if (flag < 1) {
                throw new CmdException("保存出记录明细失败");
@@ -240,8 +252,30 @@
        carInoutDetailPo.setMachineId(machineDto.getMachineId());
        carInoutDetailPo.setPaId(carInoutDtos.get(0).getPaId());
        carInoutDetailPo.setRemark(reqJson.getString("remark"));
        carInoutDetailPo.setPhotoJpg(reqJson.getString("photoJpg"));
        carInoutDetailPo.setState(state);
        carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
        if(CAR_TYPE_NO_DATA.equals(tempCar)){
            carInoutDetailPo.setCarType(OwnerCarDto.LEASE_TYPE_TEMP);
            carInoutDetailPo.setCarTypeName("临时车");
            //检查是否为黑白名单
            CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
            carBlackWhiteDto.setCarNum(reqJson.getString("carNum"));
            carBlackWhiteDto.setPaId(carInoutDtos.get(0).getPaId());
            carBlackWhiteDto.setValidity("Y");
            List<CarBlackWhiteDto> carBlackWhiteDtos = carBlackWhiteV1InnerServiceSMOImpl.queryCarBlackWhites(carBlackWhiteDto);
            if(carBlackWhiteDtos != null && carBlackWhiteDtos.size() >0 ){
                if(CarBlackWhiteDto.BLACK_WHITE_BLACK.equals(carBlackWhiteDtos.get(0).getBlackWhite())){
                    carInoutDetailPo.setCarType("B");
                    carInoutDetailPo.setCarTypeName("黑名单");
                }else{
                    carInoutDetailPo.setCarType("W");
                    carInoutDetailPo.setCarTypeName("白名单");
                }
            }
        }else{
            carInoutDetailPo.setCarType(tempCar);
            carInoutDetailPo.setCarTypeName(tempCarName);
        }
        int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
        if (flag < 1) {
@@ -365,7 +399,7 @@
     * @param machineDto
     * @param tempCar
     */
    private void carIn(JSONObject reqJson, MachineDto machineDto, int tempCar) {
    private void carIn(JSONObject reqJson, MachineDto machineDto, String tempCar,String tempCarName) {
        String state = CarInoutDto.STATE_IN;
        //进场失败记录
        if (reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))) {
@@ -412,14 +446,36 @@
        carInoutDetailPo.setPaId(paId);
        carInoutDetailPo.setState(state);
        carInoutDetailPo.setRemark(reqJson.getString("remark"));
        carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
        carInoutDetailPo.setPhotoJpg(reqJson.getString("photoJpg"));
        if(CAR_TYPE_NO_DATA.equals(tempCar)){
            carInoutDetailPo.setCarType(OwnerCarDto.LEASE_TYPE_TEMP);
            carInoutDetailPo.setCarTypeName("临时车");
            //检查是否为黑白名单
            CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
            carBlackWhiteDto.setCarNum(reqJson.getString("carNum"));
            carBlackWhiteDto.setPaId(paId);
            carBlackWhiteDto.setValidity("Y");
            List<CarBlackWhiteDto> carBlackWhiteDtos = carBlackWhiteV1InnerServiceSMOImpl.queryCarBlackWhites(carBlackWhiteDto);
            if(carBlackWhiteDtos != null && carBlackWhiteDtos.size() >0 ){
                if(CarBlackWhiteDto.BLACK_WHITE_BLACK.equals(carBlackWhiteDtos.get(0).getBlackWhite())){
                    carInoutDetailPo.setCarType("B");
                    carInoutDetailPo.setCarTypeName("黑名单");
                }else{
                    carInoutDetailPo.setCarType("W");
                    carInoutDetailPo.setCarTypeName("白名单");
                }
            }
        }else{
            carInoutDetailPo.setCarType(tempCar);
            carInoutDetailPo.setCarTypeName(tempCarName);
        }
        flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
        if (flag < 1) {
            throw new CmdException("保存入记录明细失败");
        }
        //月租车
        if (tempCar != CAR_TYPE_NO_DATA && tempCar != CAR_TYPE_TEMP) {
        if (!OwnerCarDto.LEASE_TYPE_TEMP.equals(carInoutDetailPo.getCarType())) {
            return;
        }
@@ -441,7 +497,7 @@
        } else {
            reqJson.put("ownerId", ownerDtos.get(0).getMemberId());
        }
        if (tempCar == CAR_TYPE_NO_DATA) {
        if (CAR_TYPE_NO_DATA.equals(tempCar)) {
            saveTempCar(reqJson, machineDto);
        }
@@ -591,6 +647,7 @@
        ownerCarPo.setRemark("临时车 物联网同步");
        ownerCarPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        ownerCarPo.setUserId("-1");
        ownerCarPo.setLeaseType(OwnerCarDto.LEASE_TYPE_TEMP);
        int flag = ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
        if (flag < 1) {