liukangdong
2024-12-13 0c51ea5f39e11279ccebbad241cbb09aa74ee1a2
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加15个文件
已删除1个文件
已修改29个文件
1703 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 453 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -141,18 +141,20 @@
    public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
    public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
    public static final String TSM_PARAM ="TSM_PARAM" ;
    public static final String TMS_ORDER_LIST_URL ="TMS_ORDER_LIST_URL" ;
    public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ;
    public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ;
    public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
    public static final String MYSQL_BACKUP_CDOE ="MYSQL_BACKUP_CDOE" ;
    public static final String MYSQL_BACKUP_DIR ="MYSQL_BACKUP_DIR" ;
    public static final String EVENT_FILES_PRIVATE_DOMAIN ="EVENT_FILES_PRIVATE_DOMAIN" ;
    public static final String EVENT_FILES_PUBLIC_DOMAIN ="EVENT_FILES_PUBLIC_DOMAIN" ;
    public static final String TEMPERATURE_HUMIDITY ="TEMPERATURE_HUMIDITY" ;
    public static final String HK_WXTOKEN_CONFIGID ="HK_WXTOKEN_CONFIGID" ;
    public static final String HK_WXTOKEN_TAGID ="HK_WXTOKEN_TAGID" ;
    public static final String WMS_TOTAL_STOCK_NUM ="WMS_TOTAL_STOCK_NUM" ;
    public static final String WX_REDIRECT_URL = "WX_REDIRECT_URL";
    public static final String HK_CHANGNEI_SCREEN_INDEXCODES = "HK_CHANGNEI_SCREEN_INDEXCODES";
    public static final String CITY_XH_REASON_ID ="CITY_XH_REASON_ID" ;
    public static final String ATWL_XH_PLATFORM_ID ="ATWL_XH_PLATFORM_ID" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCPLATFORM = false;
@@ -213,11 +215,11 @@
     */
    public static String getWxUrl(String code, WxUrlParams paramCode, String ywid) {
        String url = code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid);
        try {
            url = URLEncoder.encode(code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid),"UTF-8");
        }catch (Exception e){
        }
//        try {
//            url = URLEncoder.encode(code,"UTF-8");
//        }catch (Exception e){
//
//        }
        return url;
    }
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -43,6 +43,8 @@
        String visitTimeOutSignOut = "visitTimeOutSignOut";
        //访客申请-未签离数量-通知(给指定接收人)
        String visitTimeOutSignOutNum = "visitTimeOutSignOutNum";
        //访客申请-审批通过通知(给被访问人)
        String visitAuditSuccessToVisiter = "visitAuditSuccessToVisiter";
    }
server/system_service/src/main/java/com/doumee/dao/system/model/Notices.java
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -175,4 +175,11 @@
        return ApiResponse.success(  HKService.findDeviceAlarmPage(param));
    }
    @ApiOperation("【海康】温湿度统计")
    @PostMapping("/getTemperatureHumidityDataPage")
    @LoginNoRequired
    public ApiResponse<BaseResponse> getTemperatureHumidityDataPage(@RequestBody TemperatureHumidityDataRequest request, HttpServletResponse response) {
        return ApiResponse.success(  HKService.temperatureHumidityDataStatistic(request));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
@@ -51,6 +51,8 @@
         RegionEnergyListResponse  data=boardService.energyRegionData();
        return ApiResponse.success(data);
    }
    @LoginNoRequired
    @ApiOperation("实时负荷曲线")
    @GetMapping("/loadCurve")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/FightingAdminController.java
@@ -79,4 +79,14 @@
    }
    @LoginNoRequired
    @ApiOperation("温湿度数据")
    @GetMapping("/getTemperatureHumidityData")
    public ApiResponse<List<TemperatureHumidityDataVO>> getTemperatureHumidityData() {
        List<TemperatureHumidityDataVO> list = boardService.getTemperatureHumidityData();
        return ApiResponse.success(list);
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunActController.java
@@ -36,7 +36,7 @@
@Api(tags = "【看板大屏】园区物流运行调度看板真实")
@RestController
@Slf4j
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRunAct")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRun")
public class PlatformJobRunActController extends BaseController {
    @Autowired
@@ -71,6 +71,7 @@
        BoardCarsListVO data = boardService.platformJobCarsList();
        return ApiResponse.success(data);
    }
    @LoginNoRequired
    @ApiOperation("根据车牌号查询作业信息和合同信息集合")
    @PostMapping("/getCarsJobDetails")
@@ -125,14 +126,7 @@
    @ApiOperation("今日入库量统计")
    @GetMapping("/totalInList")
    public ApiResponse<List<GeneralVO>> totalInList() {
        List<GeneralVO> list = new ArrayList<>();
        for (int i = 1; i < 4; i++) {
            Random random = new Random();
            GeneralVO data = new GeneralVO();
            data.setName("厂区名称_"+i);
            data.setNum(BigDecimal.valueOf(random.nextInt(1000)));
            list.add(data);
        }
        List<GeneralVO> list = boardService.todayTotalInList();
        return ApiResponse.success(list);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java
@@ -40,7 +40,7 @@
@Api(tags = "【看板大屏】园区物流运行调度看板")
@RestController
@Slf4j
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRun")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRunOld")
public class PlatformJobRunController extends BaseController {
    @Autowired
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
@@ -36,12 +36,10 @@
@Slf4j
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/security")
public class SecurityController extends BaseController {
    @Autowired
    private BoardService boardService;
    @Autowired
    private VisitsService visitsService;
    @LoginNoRequired
    @ApiOperation("中心数据")
    @GetMapping("/centerData")
@@ -49,7 +47,6 @@
        SecurityBoardVO data = boardService.centerSecurityData();
        return ApiResponse.success(data);
    }
    @LoginNoRequired
    @ApiOperation("园区安防设备")
@@ -68,8 +65,6 @@
        WaningEventDataVO list = boardService.warningEventData(type);
        return ApiResponse.success(list);
    }
    @LoginNoRequired
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -1,10 +1,15 @@
package com.doumee.core.haikang.model;
import com.doumee.core.tms.model.TMSContants;
import com.doumee.core.utils.Constants;
import javafx.scene.effect.BlendMode;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
@Data
public class HKConstants {
@@ -26,6 +31,453 @@
     */
    public static final String ARTEMIS_PATH = "/artemis";
    public static void main(String[] args) {
        String t ="里程\t-30\t100\n" +
                " è¶…速报警 (设备围栏)\t-30\t8\n" +
                " è¿›å‡ºåŒºåŸŸ/路线报警(设备围栏)\t-30\t2\n" +
                " äººè„¸è€ƒå‹¤\t-30\t11\n" +
                " IC卡考勤\t-30\t11\n" +
                " äººè„¸æ¯”对结果\t-30\t10\n" +
                " ç‰¹æ®Šå¼‚常报警\t-30\t12\n" +
                " å‰å‘碰撞报警\t100\t1\n" +
                " è½¦é“偏向报警\t100\t2\n" +
                " è½¦è·è¿‡è¿‘报警\t100\t3\n" +
                " è¡Œäººç¢°æ’žæŠ¥è­¦\t100\t4\n" +
                " é¢‘繁变道报警\t100\t5\n" +
                " é“路标识超限报警\t100\t6\n" +
                " é“路标志超速报警\t100\t16\n" +
                " ä¸»åŠ¨æŠ“æ‹äº‹ä»¶\t100\t17\n" +
                " è½¦åŽ¢è¿‡é“è¡Œäººæ£€æµ‹\t100\t19\n" +
                " è½¦é“偏离右\t100\t20\n" +
                " è½¦é“偏离左\t100\t21\n" +
                " è·¯å£æŠ¥è­¦\t100\t30\n" +
                " è¶…速报警\t100\t31\n" +
                " æ–‘马线超速\t100\t32\n" +
                " æœªç¤¼è®©è¡Œäºº\t100\t33\n" +
                " è¿è§„占道行驶\t100\t34\n" +
                " é—¯çº¢ç¯\t100\t35\n" +
                " ç–²åŠ³é©¾é©¶æŠ¥è­¦\t101\t1\n" +
                " æŽ¥æ‰“电话报警\t101\t2\n" +
                " æŠ½çƒŸæŠ¥è­¦\t101\t3\n" +
                " åˆ†ç¥žé©¾é©¶æŠ¥è­¦\t101\t4\n" +
                " é©¾é©¶å‘˜å¼‚常 (包括驾驶员离岗)\t101\t5\n" +
                " é®æŒ¡\t101\t6\n" +
                " é©¾é©¶å‘˜äººè„¸èº«ä»½è¯†åˆ«äº‹ä»¶ (驾驶员检测异常,人脸不在库中)\t101\t9\n" +
                " æœªç³»å®‰å…¨å¸¦\t101\t17\n" +
                " æœªç³»å®‰å…¨å¸¦æŠ¥è­¦ å·¥ç¨‹è½¦\t101\t10\n" +
                " çº¢å¤–阻断墨镜\t101\t11\n" +
                " åŒæ‰‹è„±ç¦»æ–¹å‘盘\t101\t18\n" +
                " å•手脱离方向盘\t101\t13\n" +
                " æœªæˆ´å®‰å…¨å¸½\t101\t14\n" +
                " è‡ªåŠ¨æŠ“æ‹\t101\t16\n" +
                " éžæ³•关门\t101\t29\n" +
                " éžæ³•开门\t101\t30\n" +
                " çŽ©æ‰‹æœº\t101\t31\n" +
                " é¥®é…’驾驶\t101\t32\n" +
                " é†‰é…’驾驶\t101\t33\n" +
                " å¤šäººè„¸æŠ¥è­¦\t101\t48\n" +
                " é—­çœ¼\t101\t34\n" +
                " å‰AEB报警\t101\t101\n" +
                " ä¸æˆ´å£ç½©æŠ¥è­¦\t101\t100\n" +
                " èƒŽåŽ‹æŠ¥è­¦\t103\n" +
                " åŽæ–¹æŽ¥è¿‘报警\t102\t1\n" +
                " å·¦ä¾§åŽæ–¹æŽ¥è¿‘报警\t102\t2\n" +
                " å³ä¾§åŽæ–¹æŽ¥è¿‘报警\t102\t3\n" +
                " å‰å‘接近报警\t102\t4\n" +
                " ç–‘似非法注水报警\t102\t5\n" +
                " å‰è¶…声波报警\t102\t238\n" +
                " åŽè¶…声波报警\t102\t239\n" +
                " ç´§æ€¥æŠ¥è­¦\t102\t240\n" +
                " æ€¥åŠ é€Ÿ\t104\t1\n" +
                " æ€¥å‡é€Ÿ\t104\t2\n" +
                " ç¢°æ’ž\t104\t3\n" +
                " ä¾§ç¿»\t104\t4\n" +
                " æ€¥å·¦è½¬å¼¯\t104\t5\n" +
                " æ€¥å³è½¬å¼¯\t104\t6\n" +
                " æ€¥è½¬å¼¯(不区分左和右)\t104\t7\n" +
                " å‰§çƒˆé¢ ç°¸\t104\t255\n" +
                " æµ‹æ¸©æŠ¥è­¦\t170\n" +
                " é©¾é©¶å‘˜è¯ä»¶\t163\t163\n" +
                " å³è½¬å¼¯è¶…速\t238\t1\n" +
                " å³è½¬å¼¯ä¸åœè½¦\t238\t2\n" +
                " ä¸¾å‡äº‹ä»¶\t172\t1\n" +
                " å¯†é—­äº‹ä»¶\t172\t2\n" +
                " è½½é‡äº‹ä»¶\t172\t3\n" +
                " å‰è§†ç›²åŒºåˆ¶åЍ\t249 0xF9\t1\n" +
                " åŽè§†ç›²åŒºåˆ¶åЍ\t249\t2\n" +
                " å‰è¶…声波制动\t249\t3\n" +
                " åŽè¶…声波制动\t249\t4\n" +
                " å·¦è§†ç›²åŒºåˆ¶åЍ\t249\t5\n" +
                " å³è§†ç›²åŒºåˆ¶åЍ\t249\t6\n" +
                " å‰AEB制动\t249\t7\n" +
                " å‰è§†ç›²åŒºé¢„è­¦\t249\t21\n" +
                " åŽè§†ç›²åŒºé¢„è­¦\t249\t22\n" +
                " å‰è¶…声波预警\t249\t23\n" +
                " åŽè¶…声波预警\t249\t24\n" +
                " å·¦è§†ç›²åŒºé¢„è­¦\t249\t25\n" +
                " å³è§†ç›²åŒºé¢„è­¦\t249\t26\n" +
                " å‰AEB预警\t249\t27\n" +
                " ä¸»åŠ¨ä¸ŠæŠ¥æŠ¥è­¦äº‹ä»¶\t160\t0\n" +
                " å·¡æ£€ä¸ŠæŠ¥äº‹ä»¶\t160\t1\n" +
                " ç´§æ€¥æŠ¥è­¦\t25\t1\n" +
                " ç´§æ€¥æŠ¥è­¦\t-32\t0\n" +
                " è¶…速报警\t-32\t16\n" +
                " ç–²åг驾驶\t-32\t32\n" +
                " å±é™©é¢„è­¦\t-32\t33\n" +
                " GNSS模块故障\t-32\t2\n" +
                " GNSS天线未接入\t-32\t3\n" +
                " GNSS天线短路\t-32\t4\n" +
                " ç»ˆç«¯ä¸»ç”µæºæ¬ åŽ‹\t-32\t5\n" +
                " ç»ˆç«¯ä¸»ç”µæºæŽ‰ç”µ\t-32\t6\n" +
                " LCD或者显示屏故障\t-32\t7\n" +
                " TTS模块故障\t-32\t46\n" +
                " æ‘„像头故障\t-32\t9\n" +
                " é“路运输证IC卡模块故障\t-32\t34\n" +
                " è¶…速预警\t-32\t43\n" +
                " ç–²åŠ³é©¾é©¶é¢„è­¦\t-32\t35\n" +
                " è¿è§„行驶报警(2019)\t-32\t45\n" +
                " èƒŽåŽ‹(2019)\t-32\t44\n" +
                " å½“天累计驾驶超时\t-32\t18\n" +
                " è¶…时停车\t-32\t19\n" +
                " è¿›å‡ºåŒºåŸŸ\t-32\t20\n" +
                " è¿›å‡ºè·¯çº¿\t-32\t20\n" +
                " è·¯æ®µè¡Œé©¶æ—¶é—´ä¸è¶³/过长\t-32\t21\n" +
                " è·¯çº¿åç¦»æŠ¥è­¦\t-32\t36\n" +
                " è½¦è¾†VSS故障\t-32\t37\n" +
                " è½¦è¾†æ²¹é‡å¼‚常\t-32\t38\n" +
                " è½¦è¾†è¢«ç›—\t-32\t39\n" +
                " è½¦è¾†éžæ³•点火\t-32\t24\n" +
                " è½¦è¾†éžæ³•位移\t-32\t25\n" +
                " ç¢°æ’žæŠ¥è­¦\t-32\t40\n" +
                " ä¾§ç¿»é¢„è­¦\t-32\t41\n" +
                " äººè„¸é€šçŸ¥\t-30\t13\n" +
                " ä¸Šç­æ‰“卡\t-30\t14\n" +
                " å­˜å‚¨å™¨æ•…障报警\t-30\t23\n" +
                " å¸æœºæ‹”了TF卡\t-30\t50\n" +
                " å‰©ä½™æ²¹é‡ç™¾åˆ†æ¯”\t-30\t102\n" +
                " å¹³å‡æ²¹è€—\t-30\t103\n" +
                " æµ·æ‹”高度\t-30\t104\n" +
                " æ•æ„Ÿè¯äº‹ä»¶\t-30\t900\n" +
                " è½½å®¢ä¸æ‰“表\t-33\t0\n" +
                " ç©ºè½¬é‡\t-33\t2\n" +
                " æ€¥åŠ é€Ÿ\t104\t1\n" +
                " æ€¥å‡é€Ÿ\t104\t2\n" +
                " ç¢°æ’ž\t104\t3\n" +
                " ä¾§ç¿»\t104\t4\n" +
                " æ€¥å·¦è½¬å¼¯\t104\t5\n" +
                " æ€¥å³è½¬å¼¯\t104\t6\n" +
                " è¿è§„运营报警\t-33\t1\n" +
                " å¼‚常交接班\t0\t1\n" +
                " è½½å®¢çŠ¶æ€é•¿æ—¶é—´åœç•™\t0\t2\n" +
                " è¶…速\t0\t3\n" +
                " è€è™Žè¡¨\t0\t5\n" +
                " åŠ«æŒæŠ¥è­¦\t1\t0\n" +
                " è®¾å¤‡ç ´åæŠ¥è­¦\t1\t1\n" +
                " ç”Ÿç†ç–²åŠ³æŠ¥è­¦\t101\t1\n" +
                " å¼€è½¦æ‰“电话报警\t101\t2\n" +
                " å¼€è½¦æŠ½çƒŸæŠ¥è­¦\t101\t3\n" +
                " æ³¨æ„åŠ›åˆ†æ•£\t101\t4\n" +
                " è¶…时驾驶\t101\t8\n" +
                " é©¾é©¶å‘˜æ£€æµ‹å¼‚常(人脸不在库中)\t101\t9\n" +
                " æœªç³»å®‰å…¨å¸¦\t101\t17\n" +
                " åŒæ‰‹è„±ç¦»æ–¹å‘盘\t101\t18\n" +
                " é©¾é©¶å‘˜æ£€æµ‹å¼‚常(未检测到驾驶员)\t101\t5\n" +
                " æŽ¢å¤´é®æŒ¡\t101\t6\n" +
                " ä¸æˆ´å£ç½©æŠ¥è­¦\t101\t100\n" +
                " å…¶ä»–\t101\t255\n" +
                " è·¯å£è¶…速\t100\t7\n" +
                " ä¸ç¤¼è®©è¡Œäºº\t100\t18\n" +
                " è¡Œäººé˜²æ’ž\t100\t19\n" +
                " è½¦è·ç¦»è¿‡è¿‘\t100\t3\n" +
                " è½¦é“偏离右\t100\t20\n" +
                " è½¦é“偏离左\t100\t21\n" +
                " å‰å‘碰撞\t100\t1\n" +
                " å…¶ä»–\t100\t255\n" +
                " ç´§æ€¥æŠ¥è­¦\t-32\t0\n" +
                " é¢„è­¦\t-32\t1\n" +
                " å«æ˜Ÿå®šä½æ¨¡å—发生故障\t-32\t2\n" +
                " å«æ˜Ÿå®šä½å¤©çº¿æœªæŽ¥æˆ–者被剪断\t-32\t3\n" +
                " å«æ˜Ÿå®šä½å¤©çº¿çŸ­è·¯\t-32\t4\n" +
                " ISU ä¸»ç”µæºæ¬ åŽ‹\t-32\t5\n" +
                " ISU ä¸»ç”µæºæŽ‰ç”µ\t-32\t6\n" +
                " LCD显示ISU故障\t-32\t7\n" +
                " è¯­éŸ³åˆæˆæ¨¡å—æ•…éšœ\t-32\t8\n" +
                " æ‘„像头故障\t-32\t9\n" +
                " è®¡ä»·å™¨æ•…éšœ\t-32\t10\n" +
                " æœåŠ¡è¯„ä»·å™¨æ•…éšœ\t-32\t11\n" +
                " LED广告屏幕故障\t-32\t12\n" +
                " LCD显示屏故障\t-32\t13\n" +
                " å®‰å…¨è®¿é—®æ¨¡å—æ•…éšœ\t-32\t14\n" +
                " LED预灯故障\t-32\t15\n" +
                " è¶…速报警\t-32\t16\n" +
                " è¿žç»­é©¾é©¶è¶…æ—¶\t-32\t17\n" +
                " å½“天累计驾驶超时\t-32\t18\n" +
                " è¶…时停车\t-32\t19\n" +
                " è¿›å‡ºåŒºåŸŸ/路线\t-32\t20\n" +
                " è·¯æ®µè¡Œé©¶æ—¶é—´ä¸è¶³\t-32\t21\n" +
                " ç¦è¡Œè·¯æ®µè¡Œé©¶\t-32\t22\n" +
                " è½¦é€Ÿä¼ æ„Ÿå™¨æ•…éšœ\t-32\t23\n" +
                " è½¦è¾†éžæ³•点火\t-32\t24";
        String[] tt  = t.split("\n");
        List<String> list= new ArrayList<>();
        int index = 0;
        for(String s : tt){
            String[] ttt =s.split("\t");
            if(ttt.length<=2){
                System.err.println(s);
                continue;
            }
            String sss = "type"+index+"("+ index+",\""+ttt[0].replace(" ","")+"\"," + ttt[1]+","+ttt[2]+"),";
            list.add(sss);
            index++;
        }
        for(String s :list){
            System.out.println(s);
        }
    }
    public  enum CarsEventType {
        type0(0,"里程",-30,100),
        type1(1,"超速报警(设备围栏)",-30,8),
        type2(2,"进出区域/路线报警(设备围栏)",-30,2),
        type3(3,"人脸考勤",-30,11),
        type4(4,"IC卡考勤",-30,11),
        type5(5,"人脸比对结果",-30,10),
        type6(6,"特殊异常报警",-30,12),
        type7(7,"前向碰撞报警",100,1),
        type8(8,"车道偏向报警",100,2),
        type9(9,"车距过近报警",100,3),
        type10(10,"行人碰撞报警",100,4),
        type11(11,"频繁变道报警",100,5),
        type12(12,"道路标识超限报警",100,6),
        type13(13,"道路标志超速报警",100,16),
        type14(14,"主动抓拍事件",100,17),
        type15(15,"车厢过道行人检测",100,19),
        type16(16,"车道偏离右",100,20),
        type17(17,"车道偏离左",100,21),
        type18(18,"路口报警",100,30),
        type19(19,"超速报警",100,31),
        type20(20,"斑马线超速",100,32),
        type21(21,"未礼让行人",100,33),
        type22(22,"违规占道行驶",100,34),
        type23(23,"闯红灯",100,35),
        type24(24,"疲劳驾驶报警",101,1),
        type25(25,"接打电话报警",101,2),
        type26(26,"抽烟报警",101,3),
        type27(27,"分神驾驶报警",101,4),
        type28(28,"驾驶员异常(包括驾驶员离岗)",101,5),
        type29(29,"遮挡",101,6),
        type30(30,"驾驶员人脸身份识别事件(驾驶员检测异常,人脸不在库中)",101,9),
        type31(31,"未系安全带",101,17),
        type32(32,"未系安全带报警工程车",101,10),
        type33(33,"红外阻断墨镜",101,11),
        type34(34,"双手脱离方向盘",101,18),
        type35(35,"单手脱离方向盘",101,13),
        type36(36,"未戴安全帽",101,14),
        type37(37,"自动抓拍",101,16),
        type38(38,"非法关门",101,29),
        type39(39,"非法开门",101,30),
        type40(40,"玩手机",101,31),
        type41(41,"饮酒驾驶",101,32),
        type42(42,"醉酒驾驶",101,33),
        type43(43,"多人脸报警",101,48),
        type44(44,"闭眼",101,34),
        type45(45,"前AEB报警",101,101),
        type46(46,"不戴口罩报警",101,100),
        type47(47,"后方接近报警",102,1),
        type48(48,"左侧后方接近报警",102,2),
        type49(49,"右侧后方接近报警",102,3),
        type50(50,"前向接近报警",102,4),
        type51(51,"疑似非法注水报警",102,5),
        type52(52,"前超声波报警",102,238),
        type53(53,"后超声波报警",102,239),
        type54(54,"紧急报警",102,240),
        type55(55,"急加速",104,1),
        type56(56,"急减速",104,2),
        type57(57,"碰撞",104,3),
        type58(58,"ä¾§ç¿»",104,4),
        type59(59,"急左转弯",104,5),
        type60(60,"急右转弯",104,6),
        type61(61,"急转弯(不区分左和右)",104,7),
        type62(62,"剧烈颠簸",104,255),
        type63(63,"驾驶员证件",163,163),
        type64(64,"右转弯超速",238,1),
        type65(65,"右转弯不停车",238,2),
        type66(66,"举升事件",172,1),
        type67(67,"密闭事件",172,2),
        type68(68,"载重事件",172,3),
        type69(69,"前视盲区制动",249 ,1),
        type70(70,"后视盲区制动",249,2),
        type71(71,"前超声波制动",249,3),
        type72(72,"后超声波制动",249,4),
        type73(73,"左视盲区制动",249,5),
        type74(74,"右视盲区制动",249,6),
        type75(75,"前AEB制动",249,7),
        type76(76,"前视盲区预警",249,21),
        type77(77,"后视盲区预警",249,22),
        type78(78,"前超声波预警",249,23),
        type79(79,"后超声波预警",249,24),
        type80(80,"左视盲区预警",249,25),
        type81(81,"右视盲区预警",249,26),
        type82(82,"前AEB预警",249,27),
        type83(83,"主动上报报警事件",160,0),
        type84(84,"巡检上报事件",160,1),
        type85(85,"紧急报警",25,1),
        type86(86,"紧急报警",-32,0),
        type87(87,"超速报警",-32,16),
        type88(88,"疲劳驾驶",-32,32),
        type89(89,"危险预警",-32,33),
        type90(90,"GNSS模块故障",-32,2),
        type91(91,"GNSS天线未接入",-32,3),
        type92(92,"GNSS天线短路",-32,4),
        type93(93,"终端主电源欠压",-32,5),
        type94(94,"终端主电源掉电",-32,6),
        type95(95,"LCD或者显示屏故障",-32,7),
        type96(96,"TTS模块故障",-32,46),
        type97(97,"摄像头故障",-32,9),
        type98(98,"道路运输证IC卡模块故障",-32,34),
        type99(99,"超速预警",-32,43),
        type100(100,"疲劳驾驶预警",-32,35),
        type101(101,"违规行驶报警(2019)",-32,45),
        type102(102,"胎压(2019)",-32,44),
        type103(103,"当天累计驾驶超时",-32,18),
        type104(104,"超时停车",-32,19),
        type105(105,"进出区域",-32,20),
        type106(106,"进出路线",-32,20),
        type107(107,"路段行驶时间不足/过长",-32,21),
        type108(108,"路线偏离报警",-32,36),
        type109(109,"车辆VSS故障",-32,37),
        type110(110,"车辆油量异常",-32,38),
        type111(111,"车辆被盗",-32,39),
        type112(112,"车辆非法点火",-32,24),
        type113(113,"车辆非法位移",-32,25),
        type114(114,"碰撞报警",-32,40),
        type115(115,"侧翻预警",-32,41),
        type116(116,"人脸通知",-30,13),
        type117(117,"上班打卡",-30,14),
        type118(118,"存储器故障报警",-30,23),
        type119(119,"司机拔了TF卡",-30,50),
        type120(120,"剩余油量百分比",-30,102),
        type121(121,"平均油耗",-30,103),
        type122(122,"海拔高度",-30,104),
        type123(123,"敏感词事件",-30,900),
        type124(124,"载客不打表",-33,0),
        type125(125,"空转重",-33,2),
        type126(126,"急加速",104,1),
        type127(127,"急减速",104,2),
        type128(128,"碰撞",104,3),
        type129(129,"ä¾§ç¿»",104,4),
        type130(130,"急左转弯",104,5),
        type131(131,"急右转弯",104,6),
        type132(132,"违规运营报警",-33,1),
        type133(133,"异常交接班",0,1),
        type134(134,"载客状态长时间停留",0,2),
        type135(135,"超速",0,3),
        type136(136,"老虎表",0,5),
        type137(137,"劫持报警",1,0),
        type138(138,"设备破坏报警",1,1),
        type139(139,"生理疲劳报警",101,1),
        type140(140,"开车打电话报警",101,2),
        type141(141,"开车抽烟报警",101,3),
        type142(142,"注意力分散",101,4),
        type143(143,"超时驾驶",101,8),
        type144(144,"驾驶员检测异常(人脸不在库中)",101,9),
        type145(145,"未系安全带",101,17),
        type146(146,"双手脱离方向盘",101,18),
        type147(147,"驾驶员检测异常(未检测到驾驶员)",101,5),
        type148(148,"探头遮挡",101,6),
        type149(149,"不戴口罩报警",101,100),
        type150(150,"其他",101,255),
        type151(151,"路口超速",100,7),
        type152(152,"不礼让行人",100,18),
        type153(153,"行人防撞",100,19),
        type154(154,"车距离过近",100,3),
        type155(155,"车道偏离右",100,20),
        type156(156,"车道偏离左",100,21),
        type157(157,"前向碰撞",100,1),
        type158(158,"其他",100,255),
        type159(159,"紧急报警",-32,0),
        type160(160,"预警",-32,1),
        type161(161,"卫星定位模块发生故障",-32,2),
        type162(162,"卫星定位天线未接或者被剪断",-32,3),
        type163(163,"卫星定位天线短路",-32,4),
        type164(164,"ISU主电源欠压",-32,5),
        type165(165,"ISU主电源掉电",-32,6),
        type166(166,"LCD显示ISU故障",-32,7),
        type167(167,"语音合成模块故障",-32,8),
        type168(168,"摄像头故障",-32,9),
        type169(169,"计价器故障",-32,10),
        type170(170,"服务评价器故障",-32,11),
        type171(171,"LED广告屏幕故障",-32,12),
        type172(172,"LCD显示屏故障",-32,13),
        type173(173,"安全访问模块故障",-32,14),
        type174(174,"LED预灯故障",-32,15),
        type175(175,"超速报警",-32,16),
        type176(176,"连续驾驶超时",-32,17),
        type177(177,"当天累计驾驶超时",-32,18),
        type178(178,"超时停车",-32,19),
        type179(179,"进出区域/路线",-32,20),
        type180(180,"路段行驶时间不足",-32,21),
        type181(181,"禁行路段行驶",-32,22),
        type182(182,"车速传感器故障",-32,23),
        type183(183,"车辆非法点火",-32,24),
        type184(184,"胎压报警",103,null),
        type185(185,"测温报警",170,null)
        ;
        // æˆå‘˜å˜é‡
        private int key;
        private  Integer type    ;
        private  Integer subType    ;
        private String name;
        public static String getName(Integer type,Integer subType) {
            for (CarsEventType c : CarsEventType.values()) {
                if (Constants.equalsInteger(c.getType(),type) && Constants.equalsInteger(c.getSubType(),subType)) {
                    return c.getName();
                }
            }
            return null;
        }
        // æž„造方法
        CarsEventType(int key, String name,  Integer type,Integer subType) {
            this.key = key;
            this.subType = subType;
            this.type = type;
            this.name = name;
        }
        public Integer getType() {
            return type;
        }
        public Integer getSubType() {
            return subType;
        }
        public void setSubType(Integer subType) {
            this.subType = subType;
        }
        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 void setType(Integer type) {
            this.type = type;
        }
    }
    /**
     å•点登录模块菜单标识:
     1、安防中心:afzx
@@ -168,6 +620,7 @@
        String[] minitorDataSearchV1= new String[]{"/api/fem/v1/minitor/data/search","分页查询设备监测历史数据"};//分页查询设备监测历史数据
        String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search","分页查询设备监测历史数据"};//分页查询设备监测历史数据
        String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","保存用户及openId绑定信息微信公众号"};//保存用户及openId绑定信息微信公众号
        String[] temperatureHumidityDataStatistic= new String[]{"/api/v2/public/monitor/sensor/list","消防看板-4温湿度统计"};//消防看板-温湿度
    }
    /**
     * é™„录A.55消防设备类型
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -312,6 +312,17 @@
    public static String getTodoListPage(Map<String, String> body)  throws  Exception{
        return startDoGetStringArtemis(HKConstants.InterfacePath.getTodoListPage,body);
    }
    /**
     *消防看板-4温湿度数据
     * @param body
     * @return
     */
    public static String temperatureHumidityDataStatistic(String body) {
        return startDoPostStringArtemisAdmin(HKConstants.InterfacePath.temperatureHumidityDataStatistic,body);
    }
    /**
     *    èŽ·å–é—¨ç¦ç‚¹åˆ—è¡¨
     * @param body
@@ -387,6 +398,17 @@
        saveInterfaceLog(body,result,path,pathStr[1]);
        return result;
    }
    public static String startDoPostStringArtemisAdmin(String[] pathStr,String body){
        Map<String, String> path = getPath(pathStr[0]);
        Map<String, String> header = new HashMap<>();
        header.put("userId", "admin");
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数
        saveInterfaceLog(body,result,path,pathStr[1]);
        return result;
    }
    public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){
        Map<String, String> path = getPath(pathStr[0]);
        Map<String, String> header = new HashMap<>();
@@ -409,15 +431,15 @@
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数
        saveInterfaceLog(body,result,path,pathStr[1]);
        return result;
    }
    public static String startDoPostStringArtemis(String[] pathStr,Map<String, String> querys,Map<String, String> header,String body){
        Map<String, String> path = getPath(pathStr[0]);
        header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, querys, null, "application/json", header);// post请求application/json类型参数
        saveInterfaceLog(body,result,path,pathStr[1]);
        return result;
    }
    /**
     *    ç­¾ç¦»è®¿å®¢é¢„约
@@ -832,6 +854,7 @@
    public static String findAlarmBaseDataStatistic(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.findAlarmBaseDataStatistic,body);
    }
    /**
     *安防看板-- b
     * @param body
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/request/CarsAlarmListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.cars.request;
import lombok.Data;
/**
 * è®¾å¤‡åˆ—表请求信息
 */
@Data
public class CarsAlarmListRequest {
    private Integer   pageSize;//    é¡µé¢å¤§å°    Integer    1000    å¦
    private Integer   pageNo    ;//当前页    Integer    1
    private String   deviceCode    ;//设备终端手机号    String    æ—     æ˜¯
    private String   startTime    ;//开始时间yyyy-MM-dd HH:mm:ss    String    æ—     æ˜¯
    private String   endTime    ;//结束时间yyyy-MM-dd HH:mm:ss    String    æ—     æ˜¯
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.doumee.core.haikang.model.cars.response;
import lombok.Data;
import java.util.List;
import java.util.List;
/**
 * è®¾å¤‡åˆ—表单元信息
 * @param <T>
 */
@Data
public class CarsAlarmListResponse<T> {
        private String   deviceCode;//    è®¾å¤‡ç»ˆç«¯æ‰‹æœºå·    String
        private String   productKey    ;//设备所属型号的产品密钥    String
        private Integer   type    ;//报警类型    Integer
        private Integer   subType    ;//报警子类(报警类型和报警子类可确定唯一报警类型)    Integer
        private Integer   level    ;//报警级别 0x01:1预警 0x02:2报警    Integer
        private Integer   frontCarSpeed    ;//前车速度Km/h    Integer
        private Integer   frontDistance    ;//前车/行人距离    Integer
        private Integer   deviationType    ;//偏离类型 0x01:左侧偏离 0x02:右侧偏离    Integer
        private Integer   roadSignsType    ;//道路标志识别类型 0x01:限速标志 0x02:限高标志 0x03:限重标志    Integer
        private Integer   roadSignsValue    ;//道路标志识别数据    Integer
        private Integer   speed;//    è½¦é€Ÿ å•位Km/h    Integer
        private Integer   altitude;//    æµ·æ‹”高度 å•位m    Short
        private Double   longitude;//    ç»åº¦    Double
        private Double   latitude;//    çº¬åº¦    Double
        private String   time;//    YY-MM-DD-hh-mm-ss ï¼ˆGMT+8时间)    String
        private Integer   accState;//    acc状态    Integer
        private Integer   leftTurnState    ;//左转向状态,0:关闭,1:打开    Integer
        private Integer   rightTurnState;//    å³è½¬å‘状态,0:关闭,1:打开    Integer
        private Integer   wiperState;//    é›¨åˆ®å™¨çŠ¶æ€ï¼Œ 0:关闭,1:打开    Integer
        private Integer   brakingState;//    åˆ¶åŠ¨çŠ¶æ€ï¼Œ0:未制动,1:制动    Integer
        private Integer   cardState    ;//插卡状态,0:未插卡,1:已插卡    Integer
        private Integer   gpsValid;//    å®šä½çŠ¶æ€ï¼Œ0:未定位,1:已定位    Integer
        private String   deviceId;//    ç»ˆç«¯ID    String
        private String   alarmSignTime    ;//报警标识时间    String
        private Integer   index    ;//序号    Integer
        private Integer   attachCount;//    é™„件个数,附件数>0的报警,可以调用“查询设备报警附件”接口查询附件信息    Integer
        private String   alarmSign    ;//报警标识号 ç»ˆç«¯ID-时间-序号-附件数量    String
        private Integer   fatigueDegree;//    ç–²åŠ³ç¨‹åº¦ï¼ŒèŒƒå›´1~10。数值越大表示疲劳程度越严重    Integer
        private String   carSign;//车牌颜色为0时,表示车辆 VIN;否则,表示公安交通管理部门颁发的机动车号牌    String
        private Integer   areaType;//区域、道路类型    Integer
        private Integer   areaId    ;//区域、道路编号    Integer
        private Integer   efcType;//    è¿›å‡ºæŠ¥è­¦ç±»åž‹(0:进入区域,1:离开区域)    Integer
        private String   qualificationNumber    ;//驾驶员从业资格证号    String
        private Integer   chanNo    ;//逻辑通道号    Integer
        private String   attachInfo    ;//报警附件信息,attachFlag为true时该字段有效,详细字段见*表2    Object
        private String   efcName    ;//电子围栏名称    String
        private String   efcUuid    ;//电子围栏uuid    String
        private Integer   limitState    ;//出入限制(1:禁止驶入;2:禁止驶出:3:路线偏离)    Integer
        private String   position;//    æŠ¥è­¦ä½ç½®    String
        private Integer   moveState    ;//运动状态,0:停止,1:行驶    Integer
        private Integer   voltage;//    ç”µç“¶ç”µåŽ‹ï¼Œæ”¾å¤§1000倍    Integer
        private Integer   temperature;//    è®¾å¤‡æ¸©åº¦ï¼Œæ”¾å¤§1000倍    Integer
        private Integer   wakeupType    ;//设备唤醒源    Integer
        private Integer   Tvistatus    ;//后拉相机录像状态    Integer
        private Integer   LTEpower;//    4G模块供电    Integer
        private Integer   LTEstatus;//    4G模块在位信号    Integer
        private Integer   parkmode;//    åœè½¦ç›‘控模式    Integer
        private Integer   uploadType;//    ä¸ŠæŠ¥æ¶ˆæ¯ç±»åž‹    Integer
        private Integer   stayTime ;//    æŠ¥è­¦æ—¶å·²ç»åœç•™çš„æ—¶é•¿ï¼Œåˆ†é’Ÿ    Integer
        private Long   stayId    ;//途经点id    Long
    private String   efcEventInfo;//    ç”µå­å›´æ æŠ¥è­¦è¯¦æƒ…信息    Object
    private String   gpsData    ;//报警对应的GPS信息    Object
    }
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsAlarmResultListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.cars.response;
import lombok.Data;
/**
 * è®¾å¤‡åˆ—表单元信息
 */
@Data
public class CarsAlarmResultListResponse{
        private Integer   type    ;//报警类型    Integer
        private Integer   subType    ;//报警子类(报警类型和报警子类可确定唯一报警类型)    Integer
        private String   time;//    YY-MM-DD-hh-mm-ss ï¼ˆGMT+8时间)    String
        private String carCode;//车牌号
        private String title;//类型名称
        private long timeStamp;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsDeviceDetaisResponse.java
@@ -18,6 +18,7 @@
    private Integer supplementSign;//    è¡¥æŠ¥æ ‡è¯†ï¼ˆ1:补报;0:正常上报)    Integer
    private String  createTime;//    ç³»ç»Ÿæ”¶åˆ°GPS时间yyyy-MM-dd HH:mm:ss    String
    private Integer status;//设备状态 0:离线;1:在线;2:休眠
    private Integer jobStatus;//工作状态 //0空闲 1在途2离线
    private String plateNum;//车牌号
    private String  terminalID;//    ç»ˆç«¯æ‰‹æœºå·    String
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/cars/response/CarsEfcEventInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.doumee.core.haikang.model.cars.response;
import lombok.Data;
/**
 * è®¾å¤‡åˆ—表单元信息
 * @param <T>
 */
@Data
public class CarsEfcEventInfoResponse<T> {
        private String   deviceCode;//    è®¾å¤‡ç»ˆç«¯æ‰‹æœºå·    String
        private String   productKey    ;//设备所属型号的产品密钥    String
        private Integer   type    ;//报警类型    Integer
        private Integer   subType    ;//报警子类(报警类型和报警子类可确定唯一报警类型)    Integer
        private Integer   level    ;//报警级别 0x01:1预警 0x02:2报警    Integer
        private Integer   frontCarSpeed    ;//前车速度Km/h    Integer
        private Integer   frontDistance    ;//前车/行人距离    Integer
        private Integer   deviationType    ;//偏离类型 0x01:左侧偏离 0x02:右侧偏离    Integer
        private Integer   roadSignsType    ;//道路标志识别类型 0x01:限速标志 0x02:限高标志 0x03:限重标志    Integer
        private Integer   roadSignsValue    ;//道路标志识别数据    Integer
        private Integer   speed;//    è½¦é€Ÿ å•位Km/h    Integer
        private Integer   altitude;//    æµ·æ‹”高度 å•位m    Short
        private Double   longitude;//    ç»åº¦    Double
        private Double   latitude;//    çº¬åº¦    Double
        private String   time;//    YY-MM-DD-hh-mm-ss ï¼ˆGMT+8时间)    String
        private Integer   accState;//    acc状态    Integer
        private Integer   leftTurnState    ;//左转向状态,0:关闭,1:打开    Integer
        private Integer   rightTurnState;//    å³è½¬å‘状态,0:关闭,1:打开    Integer
        private Integer   wiperState;//    é›¨åˆ®å™¨çŠ¶æ€ï¼Œ 0:关闭,1:打开    Integer
        private Integer   brakingState;//    åˆ¶åŠ¨çŠ¶æ€ï¼Œ0:未制动,1:制动    Integer
        private Integer   cardState    ;//插卡状态,0:未插卡,1:已插卡    Integer
        private Integer   gpsValid;//    å®šä½çŠ¶æ€ï¼Œ0:未定位,1:已定位    Integer
        private String   deviceId;//    ç»ˆç«¯ID    String
        private String   alarmSignTime    ;//报警标识时间    String
        private Integer   index    ;//序号    Integer
        private Integer   attachCount;//    é™„件个数,附件数>0的报警,可以调用“查询设备报警附件”接口查询附件信息    Integer
        private String   alarmSign    ;//报警标识号 ç»ˆç«¯ID-时间-序号-附件数量    String
        private Integer   fatigueDegree;//    ç–²åŠ³ç¨‹åº¦ï¼ŒèŒƒå›´1~10。数值越大表示疲劳程度越严重    Integer
        private String   carSign;//车牌颜色为0时,表示车辆 VIN;否则,表示公安交通管理部门颁发的机动车号牌    String
        private Integer   areaType;//区域、道路类型    Integer
        private Integer   areaId    ;//区域、道路编号    Integer
        private Integer   efcType;//    è¿›å‡ºæŠ¥è­¦ç±»åž‹(0:进入区域,1:离开区域)    Integer
        private String   qualificationNumber    ;//驾驶员从业资格证号    String
        private Integer   chanNo    ;//逻辑通道号    Integer
        private String   attachInfo    ;//报警附件信息,attachFlag为true时该字段有效,详细字段见*表2    Object
        private String   efcName    ;//电子围栏名称    String
        private String   efcUuid    ;//电子围栏uuid    String
        private Integer   limitState    ;//出入限制(1:禁止驶入;2:禁止驶出:3:路线偏离)    Integer
        private String   position;//    æŠ¥è­¦ä½ç½®    String
        private Integer   moveState    ;//运动状态,0:停止,1:行驶    Integer
        private Integer   voltage;//    ç”µç“¶ç”µåŽ‹ï¼Œæ”¾å¤§1000倍    Integer
        private Integer   temperature;//    è®¾å¤‡æ¸©åº¦ï¼Œæ”¾å¤§1000倍    Integer
        private Integer   wakeupType    ;//设备唤醒源    Integer
        private Integer   Tvistatus    ;//后拉相机录像状态    Integer
        private Integer   LTEpower;//    4G模块供电    Integer
        private Integer   LTEstatus;//    4G模块在位信号    Integer
        private Integer   parkmode;//    åœè½¦ç›‘控模式    Integer
        private Integer   uploadType;//    ä¸ŠæŠ¥æ¶ˆæ¯ç±»åž‹    Integer
        private Integer   stayTime ;//    æŠ¥è­¦æ—¶å·²ç»åœç•™çš„æ—¶é•¿ï¼Œåˆ†é’Ÿ    Integer
        private Long   stayId    ;//途经点id    Long
    private String   efcEventInfo;//    ç”µå­å›´æ æŠ¥è­¦è¯¦æƒ…信息    Object
    private String   gpsData    ;//报警对应的GPS信息    Object
    }
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TemperatureHumidityDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class TemperatureHumidityDataRequest {
    private Integer  pageSize    ;//    Query    Number    false    åˆ†é¡µå¤§å°ï¼ˆ1~999)
    private Integer  pageNo;//        Query    Number    false    å½“前页码(1~100000)
    private String parentIndexCode;//        Query    String    false    e74fcf79bebb492bb750a557bfb12ab9
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/TemperatureHumidityDataResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.doumee.core.haikang.model.param.respose;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class TemperatureHumidityDataResponse {
 @ApiModelProperty(value = "名称")
 private String  name    ;//String    false    è®¾å¤‡åç§°
 @ApiModelProperty(value = "最低温度")
 private String  alarmLow    ;//String    false    æœ€ä½Žæ¸©åº¦
 @ApiModelProperty(value = "最高温度")
 private String  alarmHigh    ;//String    false    æœ€é«˜æ¸©åº¦
 @ApiModelProperty(value = "当前值")
 private String  latestValue    ;//String    false å½“前值
 private String  indexCode    ;//String    false
 @ApiModelProperty(value = "类型:temp æ¸©åº¦  humidity æ¹¿åº¦")
 private String  sensorType    ;//String    false
 private String  parentIndexCode    ;//String    false
 @ApiModelProperty(value = "单位")
 private String  unit    ;//String    false å•位
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
@@ -2,13 +2,13 @@
    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.TypeReference;
    import com.doumee.core.haikang.model.HKConstants;
    import com.doumee.core.haikang.model.cars.BaseCarsPageResponse;
    import com.doumee.core.haikang.model.cars.BaseCarsResponse;
    import com.doumee.core.haikang.model.cars.request.CarsAlarmListRequest;
    import com.doumee.core.haikang.model.cars.request.CarsDeviceRequest;
    import com.doumee.core.haikang.model.cars.request.CarsGpsRequest;
    import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
    import com.doumee.core.haikang.model.cars.response.CarsDeviceResponse;
    import com.doumee.core.haikang.model.cars.response.CarsGpsResponse;
    import com.doumee.core.haikang.model.cars.response.*;
    import com.doumee.core.haikang.model.param.BaseListPageResponse;
    import com.doumee.core.haikang.model.param.BaseResponse;
    import com.doumee.core.haikang.model.param.respose.FindHomeAlarmInfoPageResponse;
@@ -124,6 +124,40 @@
        }
        return list;
    }
    public static List<CarsAlarmResultListResponse> getAlarmEvemtList(List<CarsDeviceDetaisResponse> detaisResponses ,  Date date) {
        List<CarsAlarmResultListResponse> list = new ArrayList<>();
        if(detaisResponses ==null || detaisResponses.size()==0){
            return list ;
        }
        CarsAlarmListRequest param = new CarsAlarmListRequest();
        param.setStartTime(DateUtil.getPlusTime2(DateUtil.getStartOfDay(date)));
        param.setEndTime(DateUtil.getPlusTime2(DateUtil.getEndOfDay(date)));
        param.setPageNo(1);
        param.setPageSize(100);
        for( CarsDeviceDetaisResponse de :detaisResponses ){
            param.setDeviceCode(de.getTerminalID());
            BaseCarsPageResponse<CarsAlarmListResponse>  data = getAlarmList(param);
            if(data!=null &&data.getResults()!=null){
                for(CarsAlarmListResponse model :data.getResults()){
                    CarsAlarmResultListResponse tm = new CarsAlarmResultListResponse();
                    tm.setTime(model.getTime());
                    tm.setCarCode(de.getPlateNum());
                    tm.setType(model.getType());
                    tm.setSubType(model.getSubType());
                    Date tmDate = DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss", tm.getTime() );
                    if(tmDate!=null){
                        tm.setTimeStamp(tmDate.getTime());
                    }
                    tm.setTitle(HKConstants.CarsEventType.getName(tm.getType(),tm.getSubType()));
                    list.add(tm);
                }
            }
        }
        Collections.sort(list, (o1, o2) -> {
            return (int) (o1.getTimeStamp() - o2.getTimeStamp()); //按数量从大到小排序
        });
        return list;
    }
    private static CarsDeviceDetaisResponse getFromListById(String key, List<CarsDeviceDetaisResponse> list) {
        for(CarsDeviceDetaisResponse dd  :list){
@@ -220,7 +254,7 @@
        String url = BASE_URL + "device/list/";
        TreeMap<String, String> BASE_PARAMS = getBaseParams();
        if(StringUtils.isNotBlank(param.getProductKey())){
            BASE_PARAMS.put("productKey", "");//设备型号秘钥
            BASE_PARAMS.put("productKey", param.getProductKey());//设备型号秘钥
        }
        BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//页面大小
        BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//当前页
@@ -233,4 +267,25 @@
        }
        return  null;
    }
    public static BaseCarsPageResponse<CarsAlarmListResponse> getAlarmList(CarsAlarmListRequest param)  {
        String url = BASE_URL + "alarm/list/";
        TreeMap<String, String> BASE_PARAMS = getBaseParams();
        if(StringUtils.isNotBlank(param.getStartTime())){
            BASE_PARAMS.put("startTime", param.getStartTime());
        }
        if(StringUtils.isNotBlank(param.getEndTime())){
            BASE_PARAMS.put("endTime", param.getEndTime());
        }
        BASE_PARAMS.put("deviceCode", param.getDeviceCode());
        BASE_PARAMS.put("pageSize",Constants.equalsInteger(param.getPageSize(),0)? "100":param.getPageSize().toString());//页面大小
        BASE_PARAMS.put("pageNo", Constants.equalsInteger(param.getPageNo(),0)? "1":param.getPageNo().toString());//当前页
        String str = sendRequest(url,BASE_PARAMS);
        TypeReference typeReference =
                new TypeReference<BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>>>(){};
        BaseCarsResponse<BaseCarsPageResponse<CarsAlarmListResponse>>   result = JSONObject.parseObject(str, typeReference.getType());
        if(result!=null && Constants.equalsInteger(result.getStatus(),0)){
            return  result.getData();
        }
        return  null;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -940,6 +940,26 @@
    }
    /**
     *消防看板-4温湿度统计
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>>  temperatureHumidityDataStatistic(TemperatureHumidityDataRequest param){
        log.info("【海康消防看板-4温湿度统计】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.temperatureHumidityDataStatistic(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse> >>(){};
            BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康消防看板-4温湿度统计");
            return  result;
        }catch (Exception e){
            log.error("【海康消防看板-4温湿度统计】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *分页查询消防设备部件状态
     * @return
     */
@@ -1866,6 +1886,7 @@
        }
        return  null;
    }
    /**
     *根据用户标识获取客户端TGC接口
     * @return
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,197 @@
package com.doumee.core.tms.model;
import com.doumee.core.utils.Constants;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
public class TMSContants {
    public interface InterfacePath {
        String[] getSevenArrivalStatus = new String[]{"/tms/zhyt/getSevenArrivalStatus",  "【TMS】近7日到货情况"};//TMS近7日到货情况接口地址
        String[] getCurrentTransportationTask = new String[]{ "【TMS】/zhyt/getCurrentTransportationTask",  "【TMS】当前运输任务"};//TMS当前运输任务接口地址
        String[] getDistributionOfDeliveryLocations = new String[]{"/tms/zhyt/getDistributionOfDeliveryLocations",  "【TMS】全国到货地分布查询查询"};//TMS全国到货地分布查询查询接口地址
        String[] getRealTimeInventory = new String[]{"/tms/zhyt/getRealTimeInventory",  "【TMS】实时库存查询"};//TMS实时库存查询接口地址
        String[] getInboundOutbound = new String[]{"/tms/zhyt/getInboundOutbound",  "【TMS】出入库记录查询"};//TMS出入库记录查询接口地址
        String[] getIntransitDetails = new String[]{"/tms/zhyt/getIntransitDetails",  "【TMS】在途明细列表"};//TMS在途明细列表接口地址
        String[] getOrderList = new String[]{"/tms/zhyt/getIntransitDetails",  "【TMS】合同列表查询"};//TMS合同列表查询接口地址
        String[] getElecByContractNumberList = new String[]{"/tms/zhyt/getElecByContractNumberList",  "【TMS】合同上锁状态"};//TMS合同上锁状态接口地址
        String[] getOrderDetailByContractNumber = new String[]{"/tms/zhyt/getOrderDetailByContractNumber",  "【TMS】合同详情"};//TMS合同详情接口地址
        String[] getGis = new String[]{"/tms/zhyt/getGis",  "【TMS】根据运输单号查询gis轨"};//TMS根据运输单号查询gis轨接口地址
        String[] getOrderStatusByContractNumber = new String[]{";//",  "【TMS】单生命周期"};//3.8订单生命周期
    }
    public  enum TopStatusLevel {
        /**
         * è®¢å•生成
         * è¿å•配载中
         * ä»“库出库中
         * è½¦è¾†è¿è¾“中
         * å·²åˆ°è´§
         * å·²å…¥åº“
         */
        ddsc(0,"订单生成",new Integer[]{ChildStatusLevel.create.getKey()}),
        ydpzz (1,"运单配载中",new Integer[]{ChildStatusLevel.ysdxc.getKey()
                ,ChildStatusLevel.ysdcx.getKey()
                ,ChildStatusLevel.shtg.getKey()
                ,ChildStatusLevel.shwtg.getKey()}),
        ckckz (2,"仓库出库中",new Integer[]{ChildStatusLevel.ddzhddzs.getKey()
                ,ChildStatusLevel.sqzyzwc.getKey()
                ,ChildStatusLevel.clqddzs.getKey()}),
        clysz(3, "车辆运输中",new Integer[]{ChildStatusLevel.clqdapp.getKey()}),
        ydh(4,"已到货",new Integer[]{ChildStatusLevel.ddzhd.getKey()}),
        yrk (5,"已入库",new Integer[]{ChildStatusLevel.ddxhd.getKey()});
        // æˆå‘˜å˜é‡
        private int key;
        private  Integer[] chileIndexList  ;
        private String name;
        // æž„造方法
        TopStatusLevel(int key, String name,  Integer[] chileIndexList) {
            this.key = key;
            this.chileIndexList = chileIndexList;
            this.name = name;
        }
        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 Integer[] getChileIndexList() {
            return chileIndexList;
        }
        public void setChileIndexList(Integer[] chileIndexList) {
            this.chileIndexList = chileIndexList;
        }
    }
    public  interface  StatusCode{
        /**
         * 1-准运证
         * 2-电子锁汽运
         * 3-电子锁非汽运
         * 4-GIS
         * 5-APP
         * 6-人工更新
         */
        int zyz =1;
        int dzsqy =2;
        int dzsfqy =3;
        int gis =4;
        int app =5;
        int rggx =6;
    }
    public  enum ChildStatusLevel {
        /**
         è®¢å•生成(发货仓库联系电话:0551-63451234)    0    è®¢å•生成(发货仓库联系电话:0551-63451234)
         è¿è¾“单形成    1    è¿è¾“单形成
         è¿è¾“单撤销(原因:XXX)    -2    è¿è¾“单撤销(原因:XXX)
         è¿è¾“单审核未通过    -1    è¿è¾“单审核未通过
         è¿è¾“单审核通过    2    è¿è¾“单审核通过
         è¿è¾“单确认        è¿è¾“单确认
         åˆ°è¾¾è£…货地-电子锁汽运    3    è½¦è¾†å·²åˆ°è¾¾è£…货地
         è½¦è¾†å¯è¿-电子锁汽运    4    è½¦è¾†è£…货完成,电子锁已上锁
         è½¦è¾†å¯è¿-APP    4    è½¦è¾†è¿è¾“中
         åˆ°è¾¾å¸è´§åœ°-APP    5    è½¦è¾†å·²åˆ°è¾¾å¸è´§åœ°
         åˆ°è¾¾å¸è´§åœ°-电子锁汽运    5    ç”µå­é”å·²è§£é”ï¼Œè¿è¾“任务已完成
         */
        create(0,0, 0,"订单生成",null),
        ysdxc(1,1,1, "运输单形成",null),
        ysdcx(2, -2,1,"运输单撤销",null ),
        shtg(3,-1, 1,"运输单审核未通过",null ),
        shwtg(4, 2,1,"运输单审核通过",null),
        sqzyzwc(5,6, 1,"申请准运证完成","车辆准运证申请完成" ),
        ddzhddzs(6,3,2,"到达装货地-电子锁汽运","车辆已到达装货地" ),
        clqddzs(7, 4,2,"车辆启运-电子锁汽运","车辆装货完成,电子锁已上锁" ),
        clqdapp(8, 7,3,"车辆启运-APP","车辆运输中" ),
        ddzhd(9, 8,4,"到达卸货地-APP","车辆已到达卸货地" ),
        ddxhd(10, 5,5,"到达卸货地-电子锁汽运","电子锁已解锁,运输任务已完成" ),
        ;
        // æˆå‘˜å˜é‡
        private Integer key;
        private Integer orderStatus;
        private Integer parentIndex;
        private String name;
        private String info;
        // æž„造方法
        ChildStatusLevel(Integer key,Integer orderStatus,Integer parentIndex, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
            this.orderStatus = orderStatus;
            this.parentIndex = parentIndex;
        }
        public static Integer getParentIndexByStatus(int orderStatus) {
            for (ChildStatusLevel c : ChildStatusLevel.values()) {
                if (c.getOrderStatus() == orderStatus) {
                    return c.parentIndex;
                }
            }
            return null;
        }
        public static String getInfo(int orderStatus,String defualt) {
            for (ChildStatusLevel c : ChildStatusLevel.values()) {
                if (c.getOrderStatus() == orderStatus) {
                    return StringUtils.defaultString(c.getInfo(),StringUtils.defaultString(defualt,c.getName()));
                }
            }
            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;
        }
        public int getOrderStatus() {
            return orderStatus;
        }
        public void setOrderStatus(int orderStatus) {
            this.orderStatus = orderStatus;
        }
        public int getParentIndex() {
            return parentIndex;
        }
        public void setParentIndex(int parentIndex) {
            this.parentIndex = parentIndex;
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsCircleStatusListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.doumee.core.tms.model.request;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms合同号查询订单生命周期请求参数")
public class TmsCircleStatusListRequest {
    private String contractNumber    ;//是 åˆåŒå·
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsGisListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.tms.model.request;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms查询GIS集合请求参数")
public class TmsGisListRequest {
    private String transportCode;//    å­—符串    è¿è¾“单号
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms根据合同号查询订单生命周期返回参数")
public class TmsCircleStatusListResponse {
   /**
    */
   private String orderStatusDes    ;//字符串    è®¢å•状态描述
   private String recordDate    ;//字符串    çŠ¶æ€è®°å½•æ—¶é—´
   private Integer  orderStatus;//    å­—符串    è®¢å•状态码
   private Integer type;//    å­—符串    è®¢å•状态记录类型
   private String  canCelReason;//    å­—符串    æ’¤é”€åŽŸå› 
   private String  tel    ;//字符串    å·ç 
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsCircleStatusResultListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms根据合同号查询订单生命周期返回参数")
public class TmsCircleStatusResultListResponse {
   /**
    */
   private Integer  key    ;//字符串    çŠ¶æ€è®°å½•æ—¶é—´
   private String   name    ;//字符串    è®¢å•状态码
   private List<TmsCircleStatusListResponse> secondList    ;//二級数据集合
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms查询GIS返回参数")
public class TmsGisListResponse {
   /**
    */
   private List<TmsGisStartEndInfoResponse> startAndEndPoint;//集合    èµ·ç‚¹ç»ˆç‚¹ä¿¡æ¯
   private List<TmsGisStatusInfoResponse>  gisList    ;//集合    è®¢å•状态码
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStartEndInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms查询GIS èµ·ç‚¹ç»ˆç‚¹ä¿¡æ¯è¿”回参数")
public class TmsGisStartEndInfoResponse {
   /**
    */
   private String startRepertotyName;//    å­—符串    èµ·ç‚¹åç§°
   private String   endRepertotyName;//    å­—符串    ç»ˆç‚¹åç§°
   private String    startLon    ;//字符串    èµ·ç‚¹ç»åº¦
   private String  startLat;//    å­—符串    èµ·ç‚¹çº¬åº¦
   private String endLon    ;//字符串    ç»ˆç‚¹ç»åº¦
   private String  endLat    ;//字符串    ç»ˆç‚¹çº¬åº¦
   private String  plateNumber;//    å­—符串    è½¦ç‰Œå·
   private String   id;//1698530035827830786,
   private String          transportCode;//18451,
   private String          startRepertotyCode;//02001,
   private String         endRepertotyCode;//1134030101,
   private String          volume;//70,
   private String          loadPercent;//0.5385,
   private String         stopNumbers;//0,
   private String           transportDate;//2023-09-04 10:54:52,
   private String          transportMethod;//4,
   private String          generateType;//1,
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsGisStatusInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms查询GIS è®¢å•状态码返回参数")
public class TmsGisStatusInfoResponse {
   /**
    */
   private String startRepertotyName;//    å­—符串    èµ·ç‚¹åç§°
   private String   endRepertotyName;//    å­—符串    ç»ˆç‚¹åç§°
   private String    startLon    ;//字符串    èµ·ç‚¹ç»åº¦
   private String  startLat;//    å­—符串    èµ·ç‚¹çº¬åº¦
   private String endLon    ;//字符串    ç»ˆç‚¹ç»åº¦
   private String  endLat    ;//字符串    ç»ˆç‚¹çº¬åº¦
   private String  plateNumber;//    å­—符串    è½¦ç‰Œå·
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
@@ -3,6 +3,8 @@
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
@@ -10,25 +12,6 @@
@Data
@ApiModel("tms合同详情返回参数")
public class TmsOrderInfoResponse {
    /**
     {
         "code": 0,
         "data": {
             "contractNumber": "112718591",
             "ncCreateDate": "2024-06-20 09:08:01",
             "deliveryEnterprise": "蚌埠成品库",
             "receiveEnterprise": "宿州市卷烟配送中心",
             "transportCode": "39828",
             "transportDate": "2024-06-20 09:04:46.0",
             "driverName": "王付兰",
             "driverTel": "19955211695",
             "plateName": "皖CC2585",
             "orderStatus": "5",
             "orderStatusDesc": "到达卸货地-电子锁汽运"
         },
         "message": "操作成功"
     }
     */
 
    private String   contractNumber    ; //合同号
    private String   deliveryEnterprise    ; //发货地
@@ -42,5 +25,10 @@
    private String   driverTel; //
    private String   orderStatusDesc; //
    private String    plateName; //": "皖CC2585",
    private String    deliveryLon    ; //    å‘货仓库经度
    private String    deliveryLat    ; //    å‘货仓库纬度
    private String    receiveLon    ; //    å¸è´§ä»“库经度
    private String   receiveLat; //        å¸è´§ä»“库纬度
     private List<TmsGisListResponse> gisList;
    private List<TmsCircleStatusResultListResponse> cicleStatusList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -134,6 +134,7 @@
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
                    log.warn("·==++--·推送微信模板信息跳转地址:{}·--++==·", jumpUrl);
                    if(StringUtils.isBlank(response)){
                        log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败");
                    }else{
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformBooksMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformBooks;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/06/28 10:03
 */
public interface PlatformBooksMapper extends BaseMapper<PlatformBooks> {
public interface PlatformBooksMapper extends MPJBaseMapper<PlatformBooks> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -261,6 +261,11 @@
    @ExcelColumn(name="被访人员姓名")
    @TableField(exist = false)
    private String receptMemberName;
    @ApiModelProperty(value = "被访人员电话", example = "1")
    @ExcelColumn(name="被访人员电话")
    @TableField(exist = false)
    private String receptMemberMobile;
    @ApiModelProperty(value = "被访人员海康编码", example = "1")
    @ExcelColumn(name="被访人员姓名")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
@@ -46,6 +46,9 @@
    @ApiModelProperty(value = "拜访时间")
    private String visitTime;
    @ApiModelProperty(value = "显示通知状态")
    private String info;
    @ApiModelProperty(value = "随访人员信息")
    private List<Visits> withVisitsList;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/BoardCarsListVO.java
@@ -1,5 +1,6 @@
package com.doumee.dao.web.response.platformReport;
import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse;
import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -25,6 +26,7 @@
    @ApiModelProperty(value = "离线数量")
    private int offlineNum;
    @ApiModelProperty(value = "报警信息列表")
    List<CarsAlarmResultListResponse> eventList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/FightingAdminCenterDataVO.java
@@ -37,7 +37,7 @@
    private Integer dangerDealedNum;
    @ApiModelProperty(value = "按设备分类统计呵呵" , hidden = true)
    @ApiModelProperty(value = "按设备分类统计" , hidden = true)
    private List<DeviceNumByTypeVO> deviceTypeList;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/OnSitDispatchBoardVO.java
@@ -39,7 +39,7 @@
    @ApiModelProperty(value = "进入车辆作业情况-已完成")
    private int doneNum;
    @ApiModelProperty(value = "4个监控点indexCode集合")
    private List<String> videoIndexCodes;
    private String[] videoIndexCodes;
    @ApiModelProperty(value = "今日月台完成订单统计" , hidden = true)
    private List<PlatformGroupFinishVO> platformGroupFinishList;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TemperatureHumidityDataVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.doumee.dao.web.response.platformReport;
import com.doumee.core.haikang.model.param.respose.TemperatureHumidityDataResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * æ¶ˆé˜²ç®¡æŽ§å¤§å±
 *
 * @Author : Rk
 * @create 2024/10/25 13:53
 */
@Data
public class TemperatureHumidityDataVO {
    @ApiModelProperty(value = "温度")
    private TemperatureHumidityDataResponse temperatureData;
    @ApiModelProperty(value = "湿度")
    private TemperatureHumidityDataResponse humidityData;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -92,11 +92,9 @@
    @Autowired
    private CarDriverMapper carDriverMapper;
    @Autowired
    private VisitsMapper visitsMapper;
    @Autowired
    private VisitsJoinMapper visitsJoinMapper;
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private CarUseBookJoinMapper carUseBookJoinMapper;
@@ -671,7 +669,7 @@
        if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)
                || Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
            //访客记录与访客报备
            Visits visits = visitsJoinMapper.selectJoinOne(Visits.class,
            Visits visits = visitsMapper.selectJoinOne(Visits.class,
                    new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
                            .selectAs(Member::getName,Visits::getReceptMemberName)
                            .selectAs(Company::getName,Visits::getReceptMemberDepartment)
@@ -1732,6 +1730,13 @@
                                SmsConstants.visitContent.visitAuditFail,
                        approveDTO.getCheckInfo(),null
                );
                if(Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)){
                    SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                                    SmsConstants.visitContent.visitAuditSuccessToVisiter,
                            approveDTO.getCheckInfo(),null
                    );
                }
                objCode =  Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)? WxPlatConstants.visitContent.visitAuditSuccess:
                        WxPlatConstants.visitContent.visitAuditFail;
            }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -14,10 +14,13 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.SmsConfigMapper;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SmsEmailService;
import com.doumee.service.business.third.EmayService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -296,17 +299,21 @@
     * @param auditUser
     */
    public static void sendVisitSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
                                    VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
                                    VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
        try{
            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                    objCode).last(" limit 1 "));
            //开启短信通知
            if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
                String content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + smsConfig.getContent();
                Visits visits = visitsMapper.selectById(objId);
                Visits visits = visitsMapper.selectJoinOne(Visits.class,new MPJLambdaWrapper<Visits>().selectAll(Visits.class)
                                .selectAs(SystemUser::getMobile,Visits::getReceptMemberMobile)
                        .leftJoin(SystemUser.class,SystemUser::getMemberId, Visits::getReceptMemberId)
                        .eq(Visits::getId,objId).last(" limit 1 "));
                if(Objects.nonNull(visits)){
                    if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){
                        //您的【访客申请】已经审批通过,请于{预约入园开始时间}前往门卫室访客机签到入园,如有疑问,请联系被访人
                        //您的[访客申请]已经审批通过,请通知访客于{预约入园开始时间}入园,如有疑问,请联系被访人。
                        content = content.replace("{预约入园开始时间}",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
@@ -325,6 +332,10 @@
                        content = content.replace("{未签离数量}",msg);
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditSuccessToVisiter))  {
                        content = content.replace("{预约入园开始时间}",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getReceptMemberMobile().split(",")),SmsConstants.visit,content,visits.getId());
                    }else{
                        //您有一条【车辆入园申请】需要处理,详细信息请前往微信公众号查看。
                        sendBusinessSms(emayService,smsEmailMapper,
@@ -350,7 +361,7 @@
     * @param auditUser
     */
    public static void sendVisitReportSms(SystemDictDataBiz systemDictDataBiz, EmayService emayService , com.doumee.dao.business.dao.SmsEmailMapper smsEmailMapper , SmsConfigMapper smsConfigMapper,
                                          VisitsMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
                                          VisitsJoinMapper visitsMapper, Integer objId, String objCode, String msg, List<String> auditUser){
        try{
            SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getCode,
                    objCode).last(" limit 1 "));
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -82,7 +82,7 @@
    @Autowired
    private RetentionMapper retentionMapper;
    @Autowired
    private VisitsMapper visitsMapper;
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private ApproveMapper approveMapper;
    @Autowired
@@ -1409,6 +1409,18 @@
                            memberId)
            );
//        }
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda().eq(Notices::getObjId,visits.getId())
                .eq(Notices::getType,Constants.equalsInteger(visits.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit)
                        .eq(Notices::getUserId,memberId)
                        .eq(Notices::getSendacopy,Constants.ZERO)
                .last(" limit 1 ")
        );
        if(Objects.nonNull(notices)){
            notices.setInfo(notices.getInfo());
        }else{
            notices.setInfo("暂无");
        }
        return visitDetailVO;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -5,6 +5,7 @@
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.cars.response.CarsAlarmResultListResponse;
import com.doumee.core.haikang.model.cars.response.CarsDeviceDetaisResponse;
import com.doumee.core.haikang.model.param.BaseListPageRequest;
import com.doumee.core.haikang.model.param.BaseListPageResponse;
@@ -31,6 +32,7 @@
import com.doumee.service.business.impl.VisitsServiceImpl;
import com.doumee.service.business.third.BoardService;
import com.doumee.service.business.third.WmsService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -65,6 +67,8 @@
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformBooksMapper platformBooksMapper;
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Autowired
    private PlatformWmsJobMapper platformWmsJobMapper;
@@ -81,6 +85,74 @@
     * @return
     */
    @Override
    public     List<GeneralVO> todayTotalInList(){
        /**
         * 1市公司:根据预约的入园原因为市公司卸货的任务为市公司入库的统计;
         * 2集散中心:WMS推送的入库单据;
         * 3加工入库:预约入园为重庆加工入库的(作业月台为安泰物流卸货月台);
         */
        String[] names = new String[]{"市公司","集散中心","加工入库"};
        String reason =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CITY_XH_REASON_ID).getCode();
        String platformGroupId =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ATWL_XH_PLATFORM_ID).getCode();;
        List<GeneralVO> list = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            Random random = new Random();
            GeneralVO data = new GeneralVO();
            data.setName(names[i]);
            BigDecimal num =new BigDecimal(0);
            if(i == 0){
                List<PlatformBooks> jobs = platformBooksMapper.selectJoinList(PlatformBooks.class, new MPJLambdaWrapper<PlatformBooks>()
                        .select(PlatformJob::getTotalNum)
                         .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformBooks::getJobId)
                        .eq(PlatformBooks::getIsdeleted,Constants.ZERO)
                        .eq(PlatformBooks::getReasonId,reason)
                        .apply("to_days(t1.done_date) = to_days(now())")
                        .eq(PlatformBooks::getStatus,Constants.TWO));
                if(jobs!=null){
                    for(PlatformBooks j :jobs){
                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
                    }
                }
            }else if(i ==1){
                List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>()
                        .select(PlatformJob::getTotalNum)
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .eq(PlatformJob::getOrigin,Constants.ONE)
                        .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
                                , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
                                , Constants.PlatformJobStatus.LEAVED.getKey())
                        .apply("to_days(done_date) = to_days(now())") );
                if(jobs!=null){
                    for(PlatformJob j :jobs){
                        num =num.add(Constants.formatBigdecimal(j.getTotalNum()));
                    }
                }
            }else{
                List<PlatformJob> jobs = platformJobMapper.selectList (new MPJLambdaWrapper<PlatformJob>()
                        .select(PlatformJob::getTotalNum)
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .eq(PlatformJob::getPlatformGroupId,platformGroupId)
                        .apply("to_days(done_date) = to_days(now())")
                        .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
                                , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
                                , Constants.PlatformJobStatus.LEAVED.getKey()) );
                if(jobs!=null){
                    for(PlatformJob j :jobs){
                        num = num.add(Constants.formatBigdecimal(j.getTotalNum()));
                    }
                }
            }
            data.setNum(num);
            list.add(data);
        }
        return list;
    }
    /**
     * èŽ·å–åŒºåŸŸæ ‘å½¢ç»“æž„æ•°æ®
     * @return
     */
    @Override
    public BoardStockListVO stockList( ){
        BoardStockListVO data = new BoardStockListVO();
        double toatalNum = 1d;
@@ -92,7 +164,7 @@
        }
        WmsBaseResponse<WmsInventoryDataResponse> response =  wmsService.getInventoryList();
        if(response!=null && response.getData()!=null && response.getData().size()>=0){
        if(response!=null && response.getData()!=null && response.getData().size()>0){
            List<WmsInventoryJsonResponse> t= response.getData().get(0).getJson();
            if(t!=null &&t.size()>0){
                for(WmsInventoryJsonResponse j :t){
@@ -357,6 +429,7 @@
    public  CarWorkSituationVO carWorkSituation(int limit){
        CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO();
        List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
                        .like(PlatformLog::getCreateDate,DateUtil.getCurrDate())
                .orderByDesc(PlatformLog::getCreateDate)
                .last(" limit "+limit)
        );
@@ -958,15 +1031,19 @@
            //设备状态 0:离线;1:在线;2:休眠
            int online = 0;
            for(CarsDeviceDetaisResponse model:detaisResponses){
                if(Constants.equalsInteger(model.getStatus(),Constants.ONE) ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){
                   //如果是在线或者休眠,查询在途还是空闲
                if(Constants.equalsInteger(model.getStatus(),Constants.ONE)
                        ||Constants.equalsInteger(model.getStatus(),Constants.TWO)){
                   //如果是在线或者休眠,查询在途还是空闲ty
                    codes.add(model.getPlateNum());
                    model.setJobStatus(Constants.ZERO);
                }else
                    model.setJobStatus(Constants.TWO);
                    data.setOfflineNum(data.getOfflineNum()+1);
                }
            if(codes.size()>0){
                //状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·  12取消(WMS)
                long busyNum = platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
                List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda()
                                .select(PlatformJob::getCarCodeFront)
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .in(PlatformJob::getCarCodeFront,codes)
                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()
@@ -978,8 +1055,20 @@
                                ,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()
                                ,Constants.PlatformJobStatus.EXCEPTION.getKey())
                        .groupBy(PlatformJob::getCarCodeFront));
                data.setBusyNum((int)busyNum);//在途有任务数量
                data.setBusyNum( busyNum!=null ?busyNum.size():0);//在途有任务数量
                data.setIdleNum(codes.size() -data.getBusyNum());//无任务空闲数量
                data.setEventList(HKCarOpenService.getAlarmEvemtList(detaisResponses,new Date()));
                if(busyNum != null){
                  FLAG:  for(CarsDeviceDetaisResponse model:detaisResponses){
                        for(PlatformJob job : busyNum){
                            if(StringUtils.equals(job.getCarCodeFront(),model.getPlateNum())){
                                model.setJobStatus(Constants.ONE);
                                continue FLAG;
                            }
                        }
                    }
                }
            }
        }
@@ -1000,6 +1089,14 @@
            alarmDataVO.setErrNum(Constants.formatIntegerNum(response.getData().getMisReportAlarmNum()));
            alarmDataVO.setLiftNum(Constants.formatIntegerNum(response.getData().getHandledAlarmNum()));
            alarmDataVO.setProcessingNum(Constants.formatIntegerNum(response.getData().getUnHandedAlarmNum()));
            alarmDataVO.setStartDate(start);
            alarmDataVO.setEndDate(end);
        }else{
            alarmDataVO.setTotalNum(Constants.ZERO);
            alarmDataVO.setRealNum(Constants.ZERO);
            alarmDataVO.setErrNum(Constants.ZERO);
            alarmDataVO.setLiftNum(Constants.ZERO);
            alarmDataVO.setProcessingNum(Constants.ZERO);
            alarmDataVO.setStartDate(start);
            alarmDataVO.setEndDate(end);
        }
@@ -1074,6 +1171,46 @@
        data.setDangerDealedNum(totalNum !=null?totalNum.intValue():0);//今日处理隐患数量
        return  data;
    }
    /**
     * æ¶ˆé˜² æ¸©æ¹¿åº¦æ•°æ®
     */
    @Override
    public List<TemperatureHumidityDataVO> getTemperatureHumidityData(){
        TemperatureHumidityDataRequest request = new TemperatureHumidityDataRequest();
        List<TemperatureHumidityDataVO> temperatureHumidityDataVOList = new ArrayList<>();
        request.setPageNo(1);
        request.setPageSize(100);
        request.setParentIndexCode(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.TEMPERATURE_HUMIDITY).getCode());
        BaseResponse<BaseListPageResponse<TemperatureHumidityDataResponse>> response = HKService.temperatureHumidityDataStatistic(request);
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
            List<TemperatureHumidityDataResponse> temperatureHumidityDataResponseList = response.getData().getList();
            if(CollectionUtils.isNotEmpty(temperatureHumidityDataResponseList)){
                Set<String> parentIndexCode = new HashSet<String>(temperatureHumidityDataResponseList.stream().map(
                        i->i.getIndexCode().replace("@0","").replace("@1","")
                ).collect(Collectors.toList()));
                for (String code:parentIndexCode) {
                    List<TemperatureHumidityDataResponse> dateList =
                            temperatureHumidityDataResponseList.stream().filter(i->i.getIndexCode().indexOf(code)>=Constants.ZERO).collect(Collectors.toList());
                    TemperatureHumidityDataVO temperatureHumidityDataVO = new TemperatureHumidityDataVO();
                    for (TemperatureHumidityDataResponse data:dateList) {
                        if(data.getSensorType().equals("temp")){
                            temperatureHumidityDataVO.setTemperatureData(data);
                        }else{
                            temperatureHumidityDataVO.setHumidityData(data);
                        }
                    }
                    temperatureHumidityDataVOList.add(temperatureHumidityDataVO);
                }
            }
        }
        return temperatureHumidityDataVOList;
    }
    /**
     * ç”¨ç”µæ€»èƒ½è€—同比、环比和区域用电量集合
     * @return
@@ -1174,7 +1311,7 @@
        3) è‡ªæ¥æ°´äºŒæ°§åŒ–碳排放量(kg)=自来水使用量(m3)×0.91;*/
        data.setCarbon(Constants.formatBigdecimal2Float((carbonElec.multiply(new BigDecimal(0.785)))
                .add(carbonGas.multiply(new BigDecimal(0.19)))
                .add(carbonWater.multiply(new BigDecimal(0.91)))));
                .add(carbonWater.multiply(new BigDecimal(0.91)))).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP));
        return data;
    }
@@ -1219,7 +1356,8 @@
        param.setPeriodType("day");
        BigDecimal total = new BigDecimal(0);
        BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param);
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null&& response.getData().getYvalues()!=null ){
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
                && response.getData()!=null&& response.getData().getYvalues()!=null ){
            for (int i = 0; i < response.getData().getYvalues().get(0).getValue().length; i++) {
                total = total.add(new BigDecimal(StringUtils.defaultString( response.getData().getYvalues().get(0).getValue()[i],"0")));
            }
@@ -1258,8 +1396,21 @@
            data.setRingPercent("0");
            data.setSecondRegionDataList(new ArrayList<>());
        }
        return data;
        if(data.getSecondRegionDataList()!=null && data.getSecondRegionDataList().size()>1){
            int index =-1;
            for (int i = 0; i <data.getSecondRegionDataList().size() ; i++) {
                RegionTopPowerResponse t=data.getSecondRegionDataList().get(i);
                if(Constants.formatBigdecimal(t.getPercent()).compareTo(new BigDecimal(1)) == 0){
                    index =i;
                    break;
                }
            }
            if(index>-1){
                data.getSecondRegionDataList().remove(index);//删除根节点数据
            }
        }
        return  data;
    }
    /**
     * è¿‘12个水电气油耗数据统计
@@ -1330,15 +1481,15 @@
        VisitDataVO result = new VisitDataVO();
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .apply("to_days(create_date)=to_days(now())")
                .in(Visits::getStatus,Constants.VisitStatus.pass,Constants.VisitStatus.xfSuccess )));//待访问
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .apply("to_days(create_date)=to_days(now())")
                .in(Visits::getStatus,Constants.VisitStatus.signout,Constants.VisitStatus.signin )));//已登记
        result.setWaitVisitNum(visitsJoinMapper.selectCount(new MPJLambdaWrapper<Visits>()
                .eq(Visits::getIsdeleted,Constants.ZERO)
                .apply("to_days(create_date)=to_days(now()")
                .apply("to_days(create_date)=to_days(now())")
                .in(Visits::getStatus,Constants.VisitStatus.signout )));//已签离
        /*PageWrap<Visits> pageWrap = new PageWrap<>();
        pageWrap.setCapacity(10);
@@ -1486,7 +1637,7 @@
                    .selectAll( PlatformJob.class)
                    .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+"  order by pl.CREATE_DATE desc  limit 1  ) as newStartDate")
                    //.select(" (  select sum(ifnull(pl.IO_QTY , 0 ))   from platform_wms_detail pl  where   pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum)
                    .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else a.total_num end )",PlatformJob::getWorkNum)
                    .select(" (  case when t.total_num is null  then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id  ) else t.total_num end )",PlatformJob::getWorkNum)
                    .apply("to_days(t.create_date) = to_days(now())")
                    .eq(Platform::getIsdeleted, Constants.ZERO)
                    .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() })
@@ -1734,6 +1885,12 @@
                }
            }
            data.setVideoPluginUrl(getVideoUrl());
            String indexCodes = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_CHANGNEI_SCREEN_INDEXCODES).getCode();
            if(StringUtils.isNotBlank(indexCodes)){
                data.setVideoIndexCodes(indexCodes.split(","));
            }
        }
        return  data;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -5,13 +5,9 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
import com.doumee.core.tms.model.request.TmsOrderListRequest;
import com.doumee.core.tms.model.response.TmsBaseResponse;
import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
import com.doumee.core.tms.model.response.TmsOrderListResponse;
import com.doumee.core.tms.model.TMSContants;
import com.doumee.core.tms.model.request.*;
import com.doumee.core.tms.model.response.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.core.wms.model.request.*;
@@ -25,6 +21,7 @@
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -72,11 +69,120 @@
    @Override
    public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode();
                + TMSContants.InterfacePath.getElecByContractNumberList[0];
        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"【TMS】电子锁上锁时间接口",JSONObject.toJSONString(param)
        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getElecByContractNumberList[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
        return  response;
    }
    /**
     * è¿è¾“单gis轨迹
     * æ ¹æ®åŒºåŸŸID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份,非需要),返回合同列表信息,按照时间倒序展示;
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    @Override
    public   List<TmsGisListResponse>  gisList(TmsGisListRequest param){
       if(param.getTransportCode()==null  ){
          return  new ArrayList<>();
       }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getGis[0];
        TmsBaseResponse<List<TmsGisListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getGis[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsGisListResponse>>>(){});
        if(response ==null){
            return  new ArrayList<>();
        }else{
            return response.getData()==null?new ArrayList<>():response.getData();
        }
    }
    /**
     * è®¢å•生命周期
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    @Override
    public   List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param){
        List<TmsCircleStatusResultListResponse> list =new ArrayList<>();
       if(param.getContractNumber()==null  ){
          return  new ArrayList<>();
       }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOrderStatusByContractNumber[0];
        TmsBaseResponse<List<TmsCircleStatusListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderStatusByContractNumber[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsCircleStatusListResponse>>>(){});
        if(response ==null){
            return  new ArrayList<>();
        }else{
            /**
             *  ddsc(0,"订单生成",new Integer[]{ChildStatusLevel.create.getKey()}),
             *         ydpzz (1,"运单配载中",new Integer[]{ChildStatusLevel.ysdxc.getKey()
             *                 ,ChildStatusLevel.ysdcx.getKey()
             *                 ,ChildStatusLevel.shtg.getKey()
             *                 ,ChildStatusLevel.shwtg.getKey()
             *                 ,ChildStatusLevel.ysdcx.getKey()}),
             *         ckckz (2,"仓库出库中",new Integer[]{ChildStatusLevel.ddzhddzs.getKey()
             *                 ,ChildStatusLevel.clqddzs.getKey()}),
             *         clysz(3, "车辆运输中",new Integer[]{ChildStatusLevel.clqdapp.getKey()}),
             *         ydh(4,"已到货",new Integer[]{ChildStatusLevel.ddzhd.getKey()}),
             *         yrk
             */
            for (int i = 0; i < 6; i++) {
                TmsCircleStatusResultListResponse t = new TmsCircleStatusResultListResponse();
                TMSContants.TopStatusLevel tem = TMSContants.TopStatusLevel.ddsc;
                if(i == 0){
                    tem=TMSContants.TopStatusLevel.yrk;
                } if(i == 1){
                    tem=TMSContants.TopStatusLevel.ydh;
                } if(i == 2){
                    tem=TMSContants.TopStatusLevel.clysz;
                } if(i == 4){
                    tem=TMSContants.TopStatusLevel.ckckz;
                } if(i == 3){
                    tem=TMSContants.TopStatusLevel.ydpzz;
                } if(i == 5){
                    tem=TMSContants.TopStatusLevel.ddsc;
                }
                t.setName(tem.getName());
                t.setKey(tem.getKey());
                t.setSecondList(getSecondCircleStatusList(tem,response.getData()));
                if(t.getSecondList()!=null & t.getSecondList().size()>0){
                    list.add(t);
                }
            }
        }
        return list;
    }
    private List<TmsCircleStatusListResponse> getSecondCircleStatusList(TMSContants.TopStatusLevel tem, List<TmsCircleStatusListResponse> data) {
        if(data ==null ||data.size()==0){
            return  new ArrayList<>();
        }
        List<TmsCircleStatusListResponse> list = new ArrayList<>();
        Integer[] statusList = tem.getChileIndexList();
        if(statusList!=null){
            for(Integer t :statusList){
                for(TmsCircleStatusListResponse status :data){
                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FOUR)
                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
                        status.setOrderStatus(TMSContants.ChildStatusLevel.clqdapp.getKey());
                    }
                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FIVE)
                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
                        status.setOrderStatus(TMSContants.ChildStatusLevel.ddzhd.getKey());
                    }
                    if(Constants.equalsInteger(status.getOrderStatus(),t )){
                        status.setOrderStatusDes(TMSContants.ChildStatusLevel.getInfo(status.getOrderStatus(),null));
                        list.add(status);
                    }
                }
            }
        }
        return list;
    }
    /**
@@ -94,8 +200,8 @@
           param.setContractNumbers(null);
       }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"【TMS】合同列表接口",JSONObject.toJSONString(param)
                    +TMSContants.InterfacePath.getOrderList[0];
        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderList[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
        if(response ==null){
            return  new ArrayList<>();
@@ -110,15 +216,26 @@
     */
    @Override
    public  TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param){
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode();
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"【TMS】合同详情接口",JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
        if(response ==null){
            return new TmsOrderInfoResponse();
        }else{
            return response.getData()==null?new TmsOrderInfoResponse():response.getData();
        TmsOrderInfoResponse result = new TmsOrderInfoResponse();
        if(StringUtils.isBlank(param.getContractNumber())){
            return  result;
        }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOrderDetailByContractNumber[0];
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderDetailByContractNumber[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
        }
        if(result.getTransportCode()!=null){
            TmsGisListRequest p = new TmsGisListRequest();
            p.setTransportCode(result.getTransportCode());
            result.setGisList(gisList(p));
        }
        TmsCircleStatusListRequest p1 = new TmsCircleStatusListRequest();
        p1.setContractNumber(param.getContractNumber());
        result.setCicleStatusList(getCicleStatusList(p1));
        return result;
    }
    /**
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -66,6 +66,8 @@
    FightingAdminCenterDataVO centerFightingAdminData();
    List<TemperatureHumidityDataVO> getTemperatureHumidityData();
    YearDeviceDataVO yearFightingAdminDeviceData();
    List<AlarmEventDataVO> fightingAdminAlertList();
@@ -85,4 +87,6 @@
    List<TransportMeasureVO> transportMeasure(Integer queryType);
    BoardStockListVO stockList();
    List<GeneralVO> todayTotalInList();
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -1,12 +1,7 @@
package com.doumee.service.business.third;
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
import com.doumee.core.tms.model.request.TmsOrderListRequest;
import com.doumee.core.tms.model.response.TmsBaseResponse;
import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
import com.doumee.core.tms.model.response.TmsOrderListResponse;
import com.doumee.core.tms.model.request.*;
import com.doumee.core.tms.model.response.*;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
import com.doumee.core.wms.model.request.WmsBaseRequest;
import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
@@ -40,7 +35,8 @@
     * @return TmsBaseResponse
     */
    List<TmsOrderListResponse> orderList(TmsOrderListRequest param);
    List<TmsGisListResponse>  gisList(TmsGisListRequest param);
    List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param);
    /**
     * åˆåŒè¯¦æƒ…接口
     * @param param å‚æ•°