service-common/src/main/java/com/java110/common/cmd/machine/CustomCarInOutCmd.java
@@ -21,12 +21,22 @@ import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.parkingBoxArea.ParkingBoxAreaDto; import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto; import com.java110.intf.community.IParkingBoxAreaV1InnerServiceSMO; import com.java110.intf.job.IDataBusInnerServiceSMO; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.DateUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.slf4j.Logger; import com.java110.core.log.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import java.util.List; /** * 类表述:保存 @@ -48,6 +58,13 @@ @Autowired private IMachineOpenDoorBMO machineOpenDoorBMOImpl; @Autowired private IDataBusInnerServiceSMO dataBusInnerServiceSMOImpl; @Autowired private IParkingBoxAreaV1InnerServiceSMO parkingBoxAreaV1InnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息"); @@ -60,6 +77,27 @@ @Override public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { //出场时 先 补充费用信息 if(!"1101".equals(reqJson.getString("type"))) { ParkingBoxAreaDto parkingBoxAreaDto = new ParkingBoxAreaDto(); parkingBoxAreaDto.setBoxId(reqJson.getString("boxId")); parkingBoxAreaDto.setDefaultArea(ParkingBoxAreaDto.DEFAULT_AREA_TRUE); List<ParkingBoxAreaDto> parkingBoxAreaDtos = parkingBoxAreaV1InnerServiceSMOImpl.queryParkingBoxAreas(parkingBoxAreaDto); if(parkingBoxAreaDtos == null || parkingBoxAreaDtos.size()< 1){ throw new CmdException("未包含停车场信息"); } TempCarPayOrderDto tempCarPayOrderDto = new TempCarPayOrderDto(); tempCarPayOrderDto.setCarNum(reqJson.getString("carNum")); tempCarPayOrderDto.setPaId(parkingBoxAreaDtos.get(0).getPaId()); tempCarPayOrderDto.setOrderId(reqJson.getString("inoutId")); tempCarPayOrderDto.setAmount(Double.parseDouble(reqJson.getString("payCharge"))); tempCarPayOrderDto.setPayType(reqJson.getString("payType")); //tempCarPayOrderDto.setMachineId(reqJson.getString("machineId")); ResultVo resultVo = dataBusInnerServiceSMOImpl.notifyTempCarFeeOrder(tempCarPayOrderDto); } ResponseEntity<String> responseEntity = machineOpenDoorBMOImpl.customCarInOut(reqJson); cmdDataFlowContext.setResponseEntity(responseEntity); } service-fee/src/main/java/com/java110/fee/cmd/fee/SaveTempCarFeeConfigCmd.java
@@ -81,7 +81,7 @@ payFeeConfigPo.setAdditionalAmount("0"); payFeeConfigPo.setBillType(FeeConfigDto.BILL_TYPE_YEAR); payFeeConfigPo.setCommunityId(reqJson.getString("communityId")); payFeeConfigPo.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_TEMP_CAR); payFeeConfigPo.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_DYNAMIC); payFeeConfigPo.setComputingFormulaText(""); payFeeConfigPo.setConfigId(reqJson.getString("feeConfigId")); payFeeConfigPo.setEndTime(reqJson.getString("endTime")); service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java
@@ -234,6 +234,7 @@ postParameters.put("type", paramIn.getString("type")); postParameters.put("amount", paramIn.getString("amount")); postParameters.put("payCharge", paramIn.getString("payCharge")); postParameters.put("payType", paramIn.getString("payType")); HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders(outRestTemplate)); ResponseEntity<String> responseEntity = outRestTemplate.exchange(IotConstant.getUrl(IotConstant.CUSTOM_CAR_INOUT), HttpMethod.POST, httpEntity, String.class); if (responseEntity.getStatusCode() != HttpStatus.OK) { service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java
@@ -8,8 +8,10 @@ import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.machine.CarInoutDto; import com.java110.dto.owner.OwnerCarDto; import com.java110.dto.parking.ParkingSpaceDto; import com.java110.intf.common.ICarInoutInnerServiceSMO; import com.java110.intf.community.IParkingSpaceInnerServiceSMO; import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO; import com.java110.intf.fee.IFeeConfigInnerServiceSMO; @@ -19,6 +21,7 @@ import com.java110.po.car.OwnerCarPo; import com.java110.po.ownerCarAttr.OwnerCarAttrPo; import com.java110.po.parking.ParkingSpacePo; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.ResponseConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.exception.ListenerExecuteException; @@ -51,6 +54,9 @@ @Autowired private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl; @Autowired private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException { Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID"); @@ -76,12 +82,36 @@ OwnerCarDto ownerCarDto = new OwnerCarDto(); ownerCarDto.setCommunityId(reqJson.getString("communityId")); ownerCarDto.setCarNum(reqJson.getString("carNum")); ownerCarDto.setCarTypeCds(new String[]{OwnerCarDto.CAR_TYPE_PRIMARY,OwnerCarDto.CAR_TYPE_MEMBER}); // 临时车除外 ownerCarDto.setCarTypeCds(new String[]{OwnerCarDto.CAR_TYPE_PRIMARY, OwnerCarDto.CAR_TYPE_MEMBER}); // 临时车除外 int count = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto); if (count > 0) { throw new IllegalArgumentException("车辆已存在"); } //判断临时车 是否在场 String parkingIn = MappingCache.getValue("TEMP_CAR_IN_PARKING"); if (!"ON".equals(parkingIn)) { return; } ownerCarDto = new OwnerCarDto(); ownerCarDto.setCommunityId(reqJson.getString("communityId")); ownerCarDto.setCarNum(reqJson.getString("carNum")); ownerCarDto.setCarTypeCds(new String[]{OwnerCarDto.CAR_TYPE_TEMP}); // 临时车除外 count = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto); if (count < 1) { return; } CarInoutDto carInoutDto = new CarInoutDto(); carInoutDto.setCarNum(reqJson.getString("carNum")); carInoutDto.setStates(new String[]{CarInoutDto.STATE_PAY, CarInoutDto.STATE_IN, CarInoutDto.STATE_REPAY}); List<CarInoutDto> carInoutDtos = carInoutInnerServiceSMOImpl.queryCarInouts(carInoutDto); if (carInoutDtos != null && carInoutDtos.size() > 0) { throw new CmdException("车辆在场,请出场后再办理月租车"); } } @Override