k94314517
2024-09-25 67ff8bd1223a488542f2504db84f68d17846d149
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -4,6 +4,13 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest;
import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest;
import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
@@ -82,6 +89,12 @@
    @Autowired
    private PlatformShowParamMapper platformShowParamMapper;
    @Autowired
    private ParksMapper parksMapper;
    @Autowired
    private VisitParkMapper visitParkMapper;
    @Override
@@ -728,7 +741,7 @@
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void platformInPark(JobOperateDTO jobOperateDTO){
    public PlatformJob platformInPark(JobOperateDTO jobOperateDTO){
        if(Objects.isNull(jobOperateDTO)
                || Objects.isNull(jobOperateDTO.getJobId())
                || Objects.isNull(jobOperateDTO.getPlatformId())){
@@ -767,17 +780,110 @@
        platformJob.setEditDate(new Date());
        platformJobMapper.updateById(platformJob);
        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
        || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
        || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
            //TODO 下发入园权限
        }
        //存储操作日志
        savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
                Constants.PlatformJobLogType.IN_WAIT.getInfo());
        return platformJob;
    }
    @Override
    public void sendInPark(PlatformJob platformJob){
        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
                || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
                || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
            //查询当前启用的停车场
            List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>()
                    .lambda()
                    .isNotNull(Parks::getHkId)
                    .eq(Parks::getIsdeleted,Constants.ZERO));
            List<VisitPark> visitParkList = new ArrayList<>();
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){
                Boolean sendStatus = true;
                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){
                    for (Parks parks:parksList) {
                        VisitPark visitPark = new VisitPark();
                        visitPark.setIsdeleted(Constants.ZERO);
                        visitPark.setCreateDate(new Date());
                        visitPark.setVisitApplyId(platformJob.getId().toString());
                        visitPark.setCarCode(platformJob.getCarCodeFront());
                        visitPark.setParkId(parks.getId().toString());
                        visitPark.setStartTime(new Date());
                        visitPark.setEndTime(DateUtil.getXMinuteAfterDate(visitPark.getStartTime(),Integer.valueOf(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.POWER_MINUTE).getCode())));
                        visitPark.setParkHkId(parks.getHkId());
                        visitPark.setObjType(Constants.ONE);
                        ParkReservationAddRequest request = new ParkReservationAddRequest();
                        request.setPlateNo(visitPark.getCarCode());
                        request.setParkSyscode(visitPark.getParkHkId());
                        request.setPhoneNo(platformJob.getDrivierPhone());
                        request.setOwner(platformJob.getDriverName());
                        request.setAllowTimes(Constants.ONE+"");
                        request.setIsCharge(Constants.ONE+"");
                        request.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getISO8601Timestamp2(new Date()):DateUtil.getISO8601Timestamp2(visitPark.getStartTime()));
                        request.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31T00:00:00+08:00":DateUtil.getISO8601Timestamp2(visitPark.getEndTime()));
                        BaseResponse response =  HKService.parkReservationAddition(request);
                        visitPark.setHkDate(new Date());
                        if(response!=null
                                && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                            ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData();
                            visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo());
                            visitPark.setHkStatus(Constants.ONE);
                            visitPark.setRemark("包期成功");
                        }else{
                            visitPark.setHkStatus(Constants.TWO);
                            visitPark.setRemark("包期失败~");
                            //下发失败  标记主业务状态为下发失败
                            sendStatus = false;
                        }
                        visitParkList.add(visitPark);
                    }
                    visitParkMapper.insert(visitParkList);
                    platformJob.setInHkdate(new Date());
                    if(sendStatus){
                        platformJob.setInHkstatus(Constants.TWO);
                    }else{
                        platformJob.setInHkstatus(Constants.THREE);
                    }
                    platformJobMapper.updateById(platformJob);
                }
            }
        }
    }
    @Override
    public void cancelInPark(PlatformJob platformJob){
        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)
                || Constants.equalsInteger(platformJob.getType(),Constants.THREE)
                || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
            List<VisitPark> visitParkList = visitParkMapper.selectList(new QueryWrapper<VisitPark>().lambda()
                    .eq(VisitPark::getVisitApplyId,platformJob.getId())
                    .eq(VisitPark::getObjType,Constants.ONE)
                    .eq(VisitPark::getHkStatus,Constants.ONE)
                    .isNotNull(VisitPark::getHkId)
                    .apply(" END_TIME > now() ")
            );
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(visitParkList)){
                for (VisitPark visitPark:visitParkList) {
                    ParkReservationDelRequest param = new ParkReservationDelRequest();
                    param.setReserveOrderNo(visitPark.getHkId());
                    BaseResponse response =  HKService.parkReservationDeletion(param);
                    if(response!=null
                            && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                        visitPark.setHkStatus(Constants.THREE);
                        visitPark.setIsdeleted(Constants.ONE);
                        visitPark.setEditDate(new Date());
                        visitParkMapper.updateById(visitPark);
                    }
                }
            }
        }
    }
    /**
@@ -785,7 +891,7 @@
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void platformCallNumber(JobOperateDTO jobOperateDTO){
    public PlatformJob platformCallNumber(JobOperateDTO jobOperateDTO){
        if(Objects.isNull(jobOperateDTO)
                || Objects.isNull(jobOperateDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -836,6 +942,7 @@
        //存储操作日志
        savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob,
                Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName()));
        return platformJob;
    }
@@ -958,7 +1065,7 @@
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void beginWork(JobOperateDTO jobOperateDTO){
    public PlatformJob beginWork(JobOperateDTO jobOperateDTO){
        if(Objects.isNull(jobOperateDTO)
                || Objects.isNull(jobOperateDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -989,6 +1096,8 @@
        //存储操作日志
        savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob,
                Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName()));
        return platformJob;
    }
@@ -997,7 +1106,7 @@
     */
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void finishWork(JobOperateDTO jobOperateDTO){
    public PlatformJob finishWork(JobOperateDTO jobOperateDTO){
        if(Objects.isNull(jobOperateDTO)
                || Objects.isNull(jobOperateDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -1024,9 +1133,10 @@
            //TODO 外协车装货 查询TMS 电子锁情况
        }else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
            //TODO 外协车卸货 或者 市公司车卸货 则根据任务情况进行下发离园权限
            //TODO 外协车卸货 或者 市公司车卸货 则根据任务情况
        }
        return platformJob;
    }