k94314517
2024-09-25 67ff8bd1223a488542f2504db84f68d17846d149
代码初始化
已添加7个文件
已修改17个文件
920 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -44,6 +44,7 @@
    public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ;
    public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ;
    public static final String PLATFORM ="PLATFORM" ;
    public static final String POWER_MINUTE ="POWER_MINUTE" ;
    public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ;
    public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ;
    public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ;
@@ -745,6 +746,55 @@
    }
    public  enum PlatformWarnEvent {
        STOP_TIMEOUT(0, "停靠超时","${carCode}月台停靠超时" ),
        STOP_ERROR(1, "停靠错误","${carCode}月台停靠错误" );
        // æˆå‘˜å˜é‡
        private int key;
        private String name;
        private String info;
        // æž„造方法
        PlatformWarnEvent(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformWarnEvent c : PlatformWarnEvent.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * æœˆå°ä½œä¸š çŠ¶æ€
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1229,6 +1229,20 @@
    }
    /**
     * å¾—到X分钟后的时间(时间格式)
     *
     * @param date
     * @param minute
     * @return
     */
    public static Date getXMinuteAfterDate(Date date, int minute) {
        Calendar now = Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.MINUTE, now.get(Calendar.MINUTE) + minute);
        return now.getTime();
    }
    /**
     * å¾—到两个日期之间相差的天数
     *
     * @param newDate
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -164,7 +164,8 @@
    @PostMapping("/platformInPark")
    public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.platformInPark(jobOperateDTO);
        PlatformJob platformJob = platformJobService.platformInPark(jobOperateDTO);
        platformJobService.sendInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
@@ -172,7 +173,11 @@
    @PostMapping("/platformCallNumber")
    public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.platformCallNumber(jobOperateDTO);
        PlatformJob oldPlatformJob = platformJobService.findById(jobOperateDTO.getJobId());
        PlatformJob platformJob = platformJobService.platformCallNumber(jobOperateDTO);
        if(Constants.equalsInteger(oldPlatformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
            platformJobService.sendInPark(platformJob);
        }
        return ApiResponse.success("操作成功");
    }
@@ -205,7 +210,8 @@
    @PostMapping("/beginWork")
    public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.beginWork(jobOperateDTO);
        PlatformJob platformJob = platformJobService.beginWork(jobOperateDTO);
        platformJobService.cancelInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
@@ -214,7 +220,9 @@
    @PostMapping("/finishWork")
    public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.finishWork(jobOperateDTO);
        PlatformJob platformJob = platformJobService.finishWork(jobOperateDTO);
        //下发离园权限
        platformJobService.sendInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWarnEventCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.PlatformWarnEvent;
import com.doumee.service.business.PlatformWarnEventService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
@Api(tags = "月台预警信息")
@RestController
@RequestMapping("/business/platformWarnEvent")
public class PlatformWarnEventCloudController extends BaseController {
    @Autowired
    private PlatformWarnEventService platformWarnEventService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:platformwarnevent:create")
    public ApiResponse create(@RequestBody PlatformWarnEvent platformWarnEvent) {
        return ApiResponse.success(platformWarnEventService.create(platformWarnEvent));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:platformwarnevent:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        platformWarnEventService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:platformwarnevent:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        platformWarnEventService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:platformwarnevent:update")
    public ApiResponse updateById(@RequestBody PlatformWarnEvent platformWarnEvent) {
        platformWarnEventService.updateById(platformWarnEvent);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:platformwarnevent:query")
    public ApiResponse<PageData<PlatformWarnEvent>> findPage (@RequestBody PageWrap<PlatformWarnEvent> pageWrap) {
        return ApiResponse.success(platformWarnEventService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformwarnevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformWarnEvent> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(PlatformWarnEvent.class).export(platformWarnEventService.findPage(pageWrap).getRecords(), "月台预警信息", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformwarnevent:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(platformWarnEventService.findById(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWmsJobCloudController.java
@@ -84,8 +84,7 @@
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformwmsjob:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(platformWmsJobService.findById(id));
    public ApiResponse<PlatformWmsJob> findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -56,6 +56,9 @@
    @Autowired
    private PlatformReasonService platformReasonService;
    @Autowired
    private PlatformWmsJobService platformWmsJobService;
    @ApiOperation("入园原因")
@@ -149,4 +152,12 @@
        return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO));
    }
    @ApiOperation("WMS运输单详情")
    @GetMapping("/wmsJobDetail")
    public ApiResponse<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) {
        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
@@ -55,6 +55,9 @@
    @Autowired
    private PlatformService platformService;
    @Autowired
    private PlatformWmsJobService platformWmsJobService;
    @ApiOperation("获取月台组信息")
    @PostMapping("/getPlatformGroupList")
    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
@@ -100,7 +103,8 @@
    @PostMapping("/platformInPark")
    public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.platformInPark(jobOperateDTO);
        PlatformJob platformJob = platformJobService.platformInPark(jobOperateDTO);
        platformJobService.sendInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
@@ -108,7 +112,11 @@
    @PostMapping("/platformCallNumber")
    public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.platformCallNumber(jobOperateDTO);
        PlatformJob oldPlatformJob = platformJobService.findById(jobOperateDTO.getJobId());
        PlatformJob platformJob = platformJobService.platformCallNumber(jobOperateDTO);
        if(Constants.equalsInteger(oldPlatformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
            platformJobService.sendInPark(platformJob);
        }
        return ApiResponse.success("操作成功");
    }
@@ -141,7 +149,8 @@
    @PostMapping("/beginWork")
    public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.beginWork(jobOperateDTO);
        PlatformJob platformJob = platformJobService.beginWork(jobOperateDTO);
        platformJobService.cancelInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
@@ -150,9 +159,18 @@
    @PostMapping("/finishWork")
    public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        jobOperateDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.finishWork(jobOperateDTO);
        PlatformJob platformJob = platformJobService.finishWork(jobOperateDTO);
        //下发离园权限
        platformJobService.sendInPark(platformJob);
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("WMS运输单详情")
    @GetMapping("/wmsJobDetail")
    public ApiResponse<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) {
        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformWarnEventMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformWarnEvent;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
public interface PlatformWarnEventMapper extends BaseMapper<PlatformWarnEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -12,6 +12,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
@@ -188,10 +190,14 @@
    private String workCarCode;
    @ApiModelProperty(value = "开始时间 yyyy-MM-dd", example = "1")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date queryDateStart;
    @ApiModelProperty(value = "结束时间 yyyy-MM-dd", example = "1")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date queryDateEnd;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWarnEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * æœˆå°é¢„警信息
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
@Data
@ApiModel("月台预警信息")
@TableName("`platform_warn_event`")
public class PlatformWarnEvent {
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "月台主键", example = "1")
    @ExcelColumn(name="月台主键")
    private Integer platformId;
    @ApiModelProperty(value = "预警标题")
    @ExcelColumn(name="预警标题")
    private String title;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
    private String carCode;
    @ApiModelProperty(value = "事件内容")
    @ExcelColumn(name="事件内容")
    private String eventContent;
    @ApiModelProperty(value = "任务主键", example = "1")
    @ExcelColumn(name="任务主键")
    private Integer platformJobId;
    @ApiModelProperty(value = "预警类型 0 =  ä½œä¸šè¶…æ—¶ ï¼›1=停靠错误", example = "1")
    @ExcelColumn(name="预警类型 0 =  ä½œä¸šè¶…æ—¶ ï¼›1=停靠错误")
    private Integer eventType;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsJob.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.dao.business.vo.WmsJobContractVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -9,6 +10,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -109,11 +112,21 @@
    @ApiModelProperty(value = "合同号`")
    @ExcelColumn(name="合同号`")
    private String contractNum;
    @ApiModelProperty(value = "是否新数据`")
    @TableField(exist = false)
    private int isNew;
    @ApiModelProperty(value = "总数量")
    @TableField(exist = false)
    private BigDecimal ioQty;
    @ApiModelProperty(value = "月台_WMS作业通知单明细")
    @TableField(exist = false)
    private List<PlatformWmsDetail> platformWmsDetailList;
    @ApiModelProperty(value = "合同列表")
    @TableField(exist = false)
    private List<WmsJobContractVO> wmsJobContractVOList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
@@ -67,12 +67,12 @@
    @ExcelColumn(name="车牌号")
    private String carCode;
    @ApiModelProperty(value = "海康标识", example = "1")
    @ApiModelProperty(value = "海康标识 é¢„约标识 reserveOrderNo", example = "1")
    @ExcelColumn(name="海康标识")
    private Integer hkId;
    private String hkId;
    @ApiModelProperty(value = "海康同步状态 0未同步 1已同步 2同步失败", example = "1")
    @ExcelColumn(name="海康同步状态 0未同步 1已同步 2同步失败")
    @ApiModelProperty(value = "海康同步状态 0未同步 1已同步 2同步失败 3已取消", example = "1")
    @ExcelColumn(name="海康同步状态 0未同步 1已同步 2同步失败 3已取消")
    private Integer hkStatus;
    @ApiModelProperty(value = "海康最近同步时间")
@@ -91,6 +91,10 @@
    @ExcelColumn(name="停车库海康编码")
    private String parkHkId;
    @ApiModelProperty(value = "业务类型:0=访客报备;1=月台物流车", example = "1")
    @ExcelColumn(name="业务类型:0=访客报备;1=月台物流车")
    private Integer objType;
    @ApiModelProperty(value = "停车场名称", example = "1")
    @TableField(exist = false)
    private String parksName;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.dao.business.vo;
import com.doumee.dao.business.model.Approve;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformWmsDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/5/23 14:56
 */
@Data
public class WmsJobContractVO {
    @ApiModelProperty(value = "合同号")
    private String contractCode;
    @ApiModelProperty(value = "收货地")
    private String address;
    @ApiModelProperty(value = "明细信息")
    private List<PlatformWmsDetail> platformWmsDetailList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SavePlatformWarnEventDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.doumee.dao.web.reqeust;
import com.baomidou.mybatisplus.annotation.TableName;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * æœˆå°é¢„警信息
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
@Data
public class SavePlatformWarnEventDTO {
    @ApiModelProperty(value = "月台主键", example = "1")
    private Integer platformId;
    @ApiModelProperty(value = "车牌号")
    private String carCode;
    @ApiModelProperty(value = "任务主键", example = "1")
    private Integer platformJobId;
    @ApiModelProperty(value = "预警类型 0 =  ä½œä¸šè¶…æ—¶ ï¼›1=停靠错误", example = "1")
    private Integer eventType;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -137,13 +137,25 @@
     * é€šçŸ¥å…¥å›­
     * @param jobOperateDTO
     */
    void platformInPark(JobOperateDTO jobOperateDTO);
    PlatformJob platformInPark(JobOperateDTO jobOperateDTO);
    /**
     * ä¸‹å‘入园权限
     * @param platformJob
     */
    void sendInPark(PlatformJob platformJob);
    /**
     * å–消入园权限
     * @param platformJob
     */
    void cancelInPark(PlatformJob platformJob);
    /**
     * æœˆå°å«å·
     * @param jobOperateDTO
     */
    void platformCallNumber(JobOperateDTO jobOperateDTO);
    PlatformJob platformCallNumber(JobOperateDTO jobOperateDTO);
    /**
     * è½¬ç§»æœˆå°
@@ -167,7 +179,7 @@
     * æ‰‹åŠ¨å¼€å§‹ä½œä¸š
     * @param jobOperateDTO
     */
    void beginWork(JobOperateDTO jobOperateDTO);
    PlatformJob beginWork(JobOperateDTO jobOperateDTO);
    /**
     * æœˆå°ç›¸æœº å¼€å§‹ä½œä¸š
@@ -179,7 +191,7 @@
     * å®Œæˆä½œä¸š
     * @param jobOperateDTO
     */
    void finishWork(JobOperateDTO jobOperateDTO);
    PlatformJob finishWork(JobOperateDTO jobOperateDTO);
    /**
     * æ‰‹åŠ¨æŽˆæƒè½¦è¾†ç¦»åœº
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWarnEventService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformWarnEvent;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import java.util.List;
/**
 * æœˆå°é¢„警信息Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
public interface PlatformWarnEventService {
    /**
     * åˆ›å»º
     *
     * @param platformWarnEvent å®žä½“对象
     * @return Integer
     */
    Integer create(PlatformWarnEvent platformWarnEvent);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param platformWarnEvent å®žä½“对象
     */
    void delete(PlatformWarnEvent platformWarnEvent);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param platformWarnEvent å®žä½“对象
     */
    void updateById(PlatformWarnEvent platformWarnEvent);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param platformWarnEvents å®žä½“集
     */
    void updateByIdInBatch(List<PlatformWarnEvent> platformWarnEvents);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return PlatformWarnEvent
     */
    PlatformWarnEvent findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param platformWarnEvent å®žä½“对象
     * @return PlatformWarnEvent
     */
    PlatformWarnEvent findOne(PlatformWarnEvent platformWarnEvent);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param platformWarnEvent å®žä½“对象
     * @return List<PlatformWarnEvent>
     */
    List<PlatformWarnEvent> findList(PlatformWarnEvent platformWarnEvent);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<PlatformWarnEvent>
     */
    PageData<PlatformWarnEvent> findPage(PageWrap<PlatformWarnEvent> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param platformWarnEvent å®žä½“对象
     * @return long
     */
    long count(PlatformWarnEvent platformWarnEvent);
    void savePlatformWarnEvent(SavePlatformWarnEventDTO savePlatformWarnEventDTO);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWmsJobService.java
@@ -94,4 +94,7 @@
     * @return long
     */
    long count(PlatformWmsJob platformWmsJob);
    PlatformWmsJob findByDetailId(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -7,6 +7,8 @@
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.respose.ParkReservationAddResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
@@ -1467,16 +1469,24 @@
                        visitPark.setStartTime(visits.getStarttime());
                        visitPark.setEndTime(visits.getEndtime());
                        visitPark.setParkHkId(parks.getHkId());
                        visitPark.setObjType(Constants.ZERO);
                        CarChargeAddRequest param = new CarChargeAddRequest();
                        param.setPlateNo(visitPark.getCarCode());
                        param.setParkSyscode(visitPark.getParkHkId());
                        param.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getDate(new Date(),"yyyy-MM-dd"):DateUtil.getShortTimeToNull(visitPark.getStartTime()));
                        param.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31":DateUtil.getShortTimeToNull(visitPark.getEndTime()));
                        BaseResponse response = HKService.carChargeAddtion(param);
                        ParkReservationAddRequest request = new ParkReservationAddRequest();
                        request.setPlateNo(visitPark.getCarCode());
                        request.setParkSyscode(visitPark.getParkHkId());
                        request.setPhoneNo(visits.getPhone());
                        request.setOwner(visits.getName());
                        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{
@@ -1486,6 +1496,7 @@
                            sendStatus = false;
                        }
                        parkBookList.add(visitPark);
                    }
                    visitParkMapper.insert(parkBookList);
                }
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;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -342,7 +342,7 @@
                    .le(platform.getQueryDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(platform.getQueryDateEnd()))
            );
            //查询2日期相差天数
            Integer sumDays = DateUtil.daysBetweenDates(platform.getQueryDateStart(),platform.getQueryDateEnd());
            Integer sumDays = DateUtil.daysBetweenDates(platform.getQueryDateEnd(),platform.getQueryDateStart())+1;
            for (Platform bean:platformList) {
                List<PlatformJob> beanJobList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),bean.getId())).collect(Collectors.toList());
                bean.setStopCount(beanJobList.size());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,185 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformWarnEventMapper;
import com.doumee.dao.business.model.PlatformWarnEvent;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import com.doumee.service.business.PlatformWarnEventService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * æœˆå°é¢„警信息Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/09/25 09:41
 */
@Service
public class PlatformWarnEventServiceImpl implements PlatformWarnEventService {
    @Autowired
    private PlatformWarnEventMapper platformWarnEventMapper;
    @Override
    public Integer create(PlatformWarnEvent platformWarnEvent) {
        platformWarnEventMapper.insert(platformWarnEvent);
        return platformWarnEvent.getId();
    }
    @Override
    public void deleteById(Integer id) {
        platformWarnEventMapper.deleteById(id);
    }
    @Override
    public void delete(PlatformWarnEvent platformWarnEvent) {
        UpdateWrapper<PlatformWarnEvent> deleteWrapper = new UpdateWrapper<>(platformWarnEvent);
        platformWarnEventMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        platformWarnEventMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(PlatformWarnEvent platformWarnEvent) {
        platformWarnEventMapper.updateById(platformWarnEvent);
    }
    @Override
    public void updateByIdInBatch(List<PlatformWarnEvent> platformWarnEvents) {
        if (CollectionUtils.isEmpty(platformWarnEvents)) {
            return;
        }
        for (PlatformWarnEvent platformWarnEvent: platformWarnEvents) {
            this.updateById(platformWarnEvent);
        }
    }
    @Override
    public PlatformWarnEvent findById(Integer id) {
        return platformWarnEventMapper.selectById(id);
    }
    @Override
    public PlatformWarnEvent findOne(PlatformWarnEvent platformWarnEvent) {
        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
        return platformWarnEventMapper.selectOne(wrapper);
    }
    @Override
    public List<PlatformWarnEvent> findList(PlatformWarnEvent platformWarnEvent) {
        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
        return platformWarnEventMapper.selectList(wrapper);
    }
    @Override
    public PageData<PlatformWarnEvent> findPage(PageWrap<PlatformWarnEvent> pageWrap) {
        IPage<PlatformWarnEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<PlatformWarnEvent> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(PlatformWarnEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(PlatformWarnEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(PlatformWarnEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(PlatformWarnEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getPlatformId() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getPlatformId, pageWrap.getModel().getPlatformId());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getCarCode() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getCarCode, pageWrap.getModel().getCarCode());
        }
        if (pageWrap.getModel().getEventContent() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getEventContent, pageWrap.getModel().getEventContent());
        }
        if (pageWrap.getModel().getPlatformJobId() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getPlatformJobId, pageWrap.getModel().getPlatformJobId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(PlatformWarnEvent::getEventType, pageWrap.getModel().getEventType());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(platformWarnEventMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(PlatformWarnEvent platformWarnEvent) {
        QueryWrapper<PlatformWarnEvent> wrapper = new QueryWrapper<>(platformWarnEvent);
        return platformWarnEventMapper.selectCount(wrapper);
    }
    @Override
    public void savePlatformWarnEvent(SavePlatformWarnEventDTO savePlatformWarnEventDTO){
        if(Objects.isNull(savePlatformWarnEventDTO)
             || Objects.isNull(savePlatformWarnEventDTO.getEventType())
             || StringUtils.isBlank(savePlatformWarnEventDTO.getCarCode())
        ){
            return;
        }
        PlatformWarnEvent platformWarnEvent = new PlatformWarnEvent();
        platformWarnEvent.setCreateDate(new Date());
        platformWarnEvent.setIsdeleted(Constants.ZERO);
        platformWarnEvent.setPlatformId(savePlatformWarnEventDTO.getPlatformId());
        Constants.PlatformWarnEvent cPl = Constants.PlatformWarnEvent.STOP_TIMEOUT;
        if(Constants.equalsInteger(savePlatformWarnEventDTO.getEventType(),Constants.ZERO)){
            if(Objects.isNull(savePlatformWarnEventDTO.getPlatformJobId())){
                return;
            }
            platformWarnEvent.setPlatformJobId(savePlatformWarnEventDTO.getPlatformJobId());
        }else  if(Constants.equalsInteger(savePlatformWarnEventDTO.getEventType(),Constants.ONE)){
            cPl = Constants.PlatformWarnEvent.STOP_ERROR;
        }
        platformWarnEvent.setTitle(cPl.getName());
        platformWarnEvent.setEventContent(cPl.getInfo().replace("${carCode}",savePlatformWarnEventDTO.getCarCode()));
        platformWarnEventMapper.insert(platformWarnEvent);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
@@ -1,10 +1,15 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformWmsDetailMapper;
import com.doumee.dao.business.PlatformWmsJobMapper;
import com.doumee.dao.business.model.PlatformWmsDetail;
import com.doumee.dao.business.model.PlatformWmsJob;
import com.doumee.dao.business.vo.WmsJobContractVO;
import com.doumee.service.business.PlatformWmsJobService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,7 +19,9 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
 * æœˆå°_WMS作业通知单行数据Service实现
@@ -26,6 +33,9 @@
    @Autowired
    private PlatformWmsJobMapper platformWmsJobMapper;
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Override
    public Integer create(PlatformWmsJob platformWmsJob) {
@@ -72,6 +82,41 @@
        return platformWmsJobMapper.selectById(id);
    }
    @Override
    public PlatformWmsJob findByDetailId(Integer id) {
        PlatformWmsJob platformWmsJob = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda().eq(PlatformWmsJob::getJobId,id).last(" limit 1 "));
        if(Objects.isNull(platformWmsJob)){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到运单信息");
        }
        List<PlatformWmsDetail> platformWmsDetailList = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>()
                .lambda().eq(PlatformWmsDetail::getJobId,id));
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){
            platformWmsJob.setIoQty(
                    platformWmsDetailList.stream().map(m->m.getIoQty()).reduce(BigDecimal.ZERO,BigDecimal::add)
            );
            //获取所有合同号
            List<String> ioCodeList = platformWmsDetailList.stream().map(m->m.getIocode()).collect(Collectors.toList());
            Set<String> ioCodeSet = new HashSet<String>(ioCodeList);
            List<WmsJobContractVO> wmsJobContractVOList = new ArrayList<>();
            for (String ioCode:ioCodeSet) {
                WmsJobContractVO wmsJobContractVO = new WmsJobContractVO();
                wmsJobContractVO.setContractCode(ioCode);
                wmsJobContractVO.setAddress(platformWmsJob.getRepertotyAddress());
                wmsJobContractVO.setPlatformWmsDetailList(
                        platformWmsDetailList.stream().filter(i->i.getIocode().equals(ioCode)).collect(Collectors.toList())
                );
                wmsJobContractVOList.add(wmsJobContractVO);
            }
            platformWmsJob.setWmsJobContractVOList(wmsJobContractVOList);
        }else{
            platformWmsJob.setIoQty(BigDecimal.ZERO);
        }
        return platformWmsJob;
    }
    @Override
    public PlatformWmsJob findOne(PlatformWmsJob platformWmsJob) {
        QueryWrapper<PlatformWmsJob> wrapper = new QueryWrapper<>(platformWmsJob);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -103,7 +103,6 @@
        }catch (Exception e){
        }
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -21,9 +21,11 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import com.doumee.service.business.DeviceEventService;
import com.doumee.service.business.InterfaceLogService;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
@@ -82,6 +84,8 @@
    private PlatformEventMapper platformEventMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
    @Autowired
    private PlatformWarnEventServiceImpl platformWarnEventService;
    /**
     * æµ·åº·é—¨ç¦äº‹ä»¶æŽ¨é€
     * @param param
@@ -1026,7 +1030,14 @@
     * @param status
     */
    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
        //TODO-----------------处理车辆进入错误月台业务逻辑
        //处理车辆进入错误月台业务逻辑
        SavePlatformWarnEventDTO savePlatformWarnEventDTO = new SavePlatformWarnEventDTO();
        savePlatformWarnEventDTO.setPlatformJobId(model.getId());
        savePlatformWarnEventDTO.setPlatformId(model.getPlatformId());
        savePlatformWarnEventDTO.setCarCode(model.getCarCodeFront());
        savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.STOP_ERROR.getKey());
        platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO);
        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));