| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.annotation.Java110Cmd; |
| | | import com.java110.core.context.ICmdDataFlowContext; |
| | | import com.java110.core.event.cmd.AbstractServiceCmdListener; |
| | | import com.java110.core.event.cmd.Cmd; |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.fee.FeeAttrDto; |
| | |
| | | import com.java110.dto.fee.FeeDto; |
| | | import com.java110.dto.owner.OwnerCarDto; |
| | | import com.java110.dto.parking.ParkingSpaceDto; |
| | | import com.java110.dto.payFeeBatch.PayFeeBatchDto; |
| | | import com.java110.dto.payFee.PayFeeBatchDto; |
| | | import com.java110.dto.user.UserDto; |
| | | import com.java110.fee.bmo.fee.IFeeBMO; |
| | | import com.java110.fee.feeMonth.IPayFeeMonth; |
| | | import com.java110.intf.community.IParkingSpaceInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeAttrInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeConfigInnerServiceSMO; |
| | |
| | | import com.java110.intf.user.IUserInnerServiceSMO; |
| | | import com.java110.po.fee.FeeAttrPo; |
| | | import com.java110.po.fee.PayFeePo; |
| | | import com.java110.po.payFeeBatch.PayFeeBatchPo; |
| | | import com.java110.po.payFee.PayFeeBatchPo; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | |
| | | import java.util.List; |
| | | |
| | | @Java110Cmd(serviceCode = "fee.saveParkingSpaceCreateFee") |
| | | public class SaveParkingSpaceCreateFeeCmd extends AbstractServiceCmdListener { |
| | | public class SaveParkingSpaceCreateFeeCmd extends Cmd { |
| | | |
| | | @Autowired |
| | | private IFeeBMO feeBMOImpl; |
| | |
| | | |
| | | @Autowired |
| | | private IUserInnerServiceSMO userInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IPayFeeMonth payFeeMonthImpl; |
| | | |
| | | @Autowired |
| | | private IFeeInnerServiceSMO feeInnerServiceSMOImpl; |
| | |
| | | reqJson.put("feeFlag", feeConfigDtos.get(0).getFeeFlag()); |
| | | reqJson.put("configEndTime", feeConfigDtos.get(0).getEndTime()); |
| | | |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(feeConfigDtos.get(0).getFeeFlag()) && reqJson.containsKey("endTime")) { |
| | | if (!FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag()) && reqJson.containsKey("endTime")) { |
| | | Date endTime = null; |
| | | Date configEndTime = null; |
| | | try { |
| | |
| | | OwnerCarDto ownerCarDto = new OwnerCarDto(); |
| | | |
| | | if ("1000".equals(reqJson.getString("locationTypeCd"))) {//小区 |
| | | // ownerCarDto.setCommunityId(reqJson.getString("communityId")); |
| | | // ownerCarDto.setValid("1"); |
| | | // ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto); |
| | | reqJson.put("locationObjId", "");//刷成空 |
| | | ownerCarDtos = getOwnerCarByParkingArea(reqJson); |
| | | } else if ("2000".equals(reqJson.getString("locationTypeCd"))) {//车辆 |
| | |
| | | int curFailRoomCount = 0; |
| | | //添加单元信息 |
| | | int saveFlag = 0; |
| | | List<ParkingSpaceDto> parkingSpaceDtos = null; |
| | | ParkingSpaceDto parkingSpaceDto = null; |
| | | String carName = ""; |
| | | for (int ownerCarIndex = 0; ownerCarIndex < ownerCarDtos.size(); ownerCarIndex++) { |
| | | curFailRoomCount++; |
| | | feePos.add(BeanConvertUtil.covertBean(feeBMOImpl.addFee(ownerCarDtos.get(ownerCarIndex), reqJson, context), PayFeePo.class)); |
| | | if (!StringUtil.isEmpty(ownerCarDtos.get(ownerCarIndex).getOwnerId())) { |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(reqJson.getString("feeFlag"))) { |
| | | if (!FeeDto.FEE_FLAG_CYCLE.equals(reqJson.getString("feeFlag"))) { |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME, |
| | | reqJson.containsKey("endTime") ? reqJson.getString("endTime") : reqJson.getString("configEndTime"))); |
| | | } |
| | |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, ownerCarDtos.get(ownerCarIndex).getOwnerName())); |
| | | } |
| | | |
| | | parkingSpaceDto = new ParkingSpaceDto(); |
| | | parkingSpaceDto.setCarNum(ownerCarDtos.get(ownerCarIndex).getCarNum()); |
| | | parkingSpaceDto.setCommunityId(ownerCarDtos.get(0).getCommunityId()); |
| | | parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto); |
| | | |
| | | if (parkingSpaceDtos != null && parkingSpaceDtos.size() > 0) { |
| | | carName = parkingSpaceDtos.get(0).getAreaNum() + parkingSpaceDtos.get(0).getNum() + "(" + ownerCarDtos.get(ownerCarIndex).getCarNum() + ")"; |
| | | } else { |
| | | carName = ownerCarDtos.get(ownerCarIndex).getCarNum(); |
| | | } |
| | | |
| | | //付费对象名称 |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME, |
| | | ownerCarDtos.get(ownerCarIndex).getAreaNum() + ownerCarDtos.get(ownerCarIndex).getNum() + "(" + ownerCarDtos.get(ownerCarIndex).getCarNum() + ")")); |
| | | carName)); |
| | | |
| | | if (ownerCarIndex % DEFAULT_ADD_FEE_COUNT == 0 && ownerCarIndex != 0) { |
| | | saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos); |
| | |
| | | |
| | | flag = feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrsPos); |
| | | |
| | | // todo 这里异步的方式计算 月数据 和欠费数据 |
| | | List<String> feeIds = new ArrayList<>(); |
| | | for (PayFeePo feePo : feePos) { |
| | | feeIds.add(feePo.getFeeId()); |
| | | } |
| | | payFeeMonthImpl.doGeneratorFeeMonths(feeIds, feePos.get(0).getCommunityId()); |
| | | |
| | | return flag; |
| | | } |
| | | |