jiangping
2024-12-24 537671dd0a367dfa9ef3f0dd3d33db2d4838ceed
最新版本541200007
已添加2个文件
已修改5个文件
261 ■■■■ 文件已修改
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderNoFinishListResponse.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutboundCapabilityInfoResponse.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutboundCapabilityResponse.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java
@@ -23,6 +23,7 @@
        String[] getOutQtyAndVehicleQty = new String[]{"/tms/zhyt/getOutQtyAndVehicleQty",  "【TMS】指定时间范围内累计出库量"};//3.8指定时间范围内累计出库量
        String[] getSevenArrivalStatusAndDetails = new String[]{"/tms/zhyt/getSevenArrivalStatusAndDetails",  "【TMS】近7日到货情况(含明细)"};//3.13近7日到货情况(含明细)
        String[] getNotFinishOrderList = new String[]{"/tms/zhyt/getNotFinishOrderList",  "【TMS】未完成订单"};//3.13未完成订单
        String[] getOutboundCapability = new String[]{"/tms/zhyt/getOutboundCapability",  "【TMS】出库能力统计"};//3.14出库能力统计
    }
    public  enum TopStatusLevel {
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderNoFinishListResponse.java
@@ -11,45 +11,30 @@
@Data
@ApiModel("tms未完成合同列表返回参数")
public class TmsOrderNoFinishListResponse {
    @ApiModelProperty(value = "营销订单编码" )
    private String    orderNumber;//    å­—符串    è¥é”€è®¢å•编码
    @ApiModelProperty(value = "合同号" )
    private String    contractNumber;//    å­—符串    åˆåŒå·
    @ApiModelProperty(value = "制单日期" )
    private String     ncCreateDate    ;//    å­—符串    åˆ¶å•日期    è¿”回年月日,比如:2024-07-08
    @ApiModelProperty(value = "工厂名称" )
    private String     factoryName;//        å­—符串    å·¥åŽ‚åç§°
    @ApiModelProperty(value = "工厂编码" )
    private String     factoryCode;//        å­—符串    å·¥åŽ‚ç¼–ç 
    @ApiModelProperty(value = "运输单号" )
    private String    transportCode    ;//字符串    è¿è¾“单号
    @ApiModelProperty(value = "运输车辆" )
    private String       plateNumber;//    å­—符串    è¿è¾“车辆
    @ApiModelProperty(value = "状态" )
    private Integer      status;//    å­—符串    çŠ¶æ€
    @ApiModelProperty(value = "状态描述" )
    private String      statusDesc;//    å­—符串    çŠ¶æ€
    @ApiModelProperty(value = "任务下达时间" )
    private String     transportDate;//    å­—符串    ä»»åŠ¡ä¸‹è¾¾æ—¶é—´
    @ApiModelProperty(value = "订单创建日期" )
    private String     createDate    ;//字符串    è®¢å•创建日期
    @ApiModelProperty(value = "发货地" )
    private String     deliveryEnterprise    ;//字符串    å‘货地
    @ApiModelProperty(value = "车牌号" )
    private String     platNumber;//        å­—符串    è½¦ç‰Œå·
    @ApiModelProperty(value = "合同号" )
    private String     contractNumber;//        å­—符串    åˆåŒå·
    @ApiModelProperty(value = "状态 0未启运;1在途;2到货" )
    private String     status;//        å­—符串    çŠ¶æ€    0  æœªå¯è¿ï¼›1   åœ¨é€”ï¼›2  åˆ°è´§
    @ApiModelProperty(value = "到达时间" )
    private String     arrivedDate;//        å­—符串    åˆ°è¾¾æ—¶é—´
    @ApiModelProperty(value = "出库时间" )
    private String     outDate    ;//    å­—符串    å‡ºåº“æ—¶é—´
    @ApiModelProperty(value = "运输计划形成时间" )
    private String     transportDate;//        å­—符串    è¿è¾“计划形成时间
    @ApiModelProperty(value = "数量(万支)" )
    private String      ncTotality;//        æ•°å­—    æ•°é‡(万支)
    @ApiModelProperty(value = "到货地" )
    private String     receiveEnterprise    ;//字符串    åˆ°è´§åœ°
    @ApiModelProperty(value = "司机姓名" )
    private String     driverName    ;//字符串    å¸æœºå§“名
    @ApiModelProperty(value = "司机手机号" )
    private String    driverTel    ;//字符串    å¸æœºæ‰‹æœºå·
    @ApiModelProperty(value = "预计到达时间" )
    private String     plannedArrivedDate    ;//字符串    é¢„计到达时间
    @ApiModelProperty(value = "运输量" )
    private String    totalQty;//    æ•°å­—    è¿è¾“量
    @ApiModelProperty(value = "发货仓库经度" )
    private String    deliveryLon;//    æ•°å­—    å‘货仓库经度
    @ApiModelProperty(value = "发货仓库维度" )
    private String    deliveryLat    ;//数字    å‘货仓库维度
    @ApiModelProperty(value = "收货仓库经度" )
    private String    receiveLon;//    æ•°å­—    æ”¶è´§ä»“库经度
    @ApiModelProperty(value = "收货仓库维度" )
    private String    receiveLat;//    æ•°å­—    æ”¶è´§ä»“库维度
    @ApiModelProperty(value = "车辆经度" )
    private String    platLon    ;//数字    è½¦è¾†ç»åº¦
    @ApiModelProperty(value = "车辆经度" )
    private String    platLat    ;//数字    è½¦è¾†ç»åº¦
    private String      arriveEnterprise;//        å­—符串    åˆ°è´§åœ°
    @ApiModelProperty(value = "订单类型" )
    private String      dispatchType    ;//    å­—符串    è®¢å•类型
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutboundCapabilityInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms出库能力统计明细返回参数")
public class TmsOutboundCapabilityInfoResponse {
    @ApiModelProperty(value = "制单日期" )
    private String     ncCreateDate    ;//    å­—符串    åˆ¶å•日期    è¿”回年月日,比如:2024-07-08
    @ApiModelProperty(value = "工厂名称" )
    private String     factoryName;//        å­—符串    å·¥åŽ‚åç§°
    @ApiModelProperty(value = "工厂编码" )
    private String     factoryCode;//        å­—符串    å·¥åŽ‚ç¼–ç 
    @ApiModelProperty(value = "运输单号" )
    private String     transportCode;//        å­—符串    è¿è¾“单号
    @ApiModelProperty(value = "车牌号" )
    private String     platNumber;//        å­—符串    è½¦ç‰Œå·
    @ApiModelProperty(value = "合同号" )
    private String     contractNumber;//        å­—符串    åˆåŒå·
    @ApiModelProperty(value = "状态 0未启运;1在途;2到货" )
    private String     status;//        å­—符串    çŠ¶æ€    0  æœªå¯è¿ï¼›1   åœ¨é€”ï¼›2  åˆ°è´§
    @ApiModelProperty(value = "到达时间" )
    private String     arrivedDate;//        å­—符串    åˆ°è¾¾æ—¶é—´
    @ApiModelProperty(value = "出库时间" )
    private String     outDate    ;//    å­—符串    å‡ºåº“æ—¶é—´
    @ApiModelProperty(value = "运输计划形成时间" )
    private String     transportDate;//        å­—符串    è¿è¾“计划形成时间
    @ApiModelProperty(value = "数量(万支)" )
    private BigDecimal ncTotality;//        æ•°å­—    æ•°é‡(万支)
    @ApiModelProperty(value = "到货地" )
    private String      arriveEnterprise;//        å­—符串    åˆ°è´§åœ°
    @ApiModelProperty(value = "订单类型" )
    private String      dispatchType    ;//    å­—符串    è®¢å•类型
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutboundCapabilityResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms出库能力统计返回参数")
public class TmsOutboundCapabilityResponse {
    @ApiModelProperty(value = "当日订单量" )
    private List<TmsOutboundCapabilityInfoResponse> currentDayOrderList;//     å½“日订单量
    @ApiModelProperty(value = "当日订单量" )
    private List<TmsOutboundCapabilityInfoResponse> currentDayAgoOrderList;//     æ˜¨æ—¥åŠä¹‹å‰è®¢å•量
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -2137,6 +2137,10 @@
        WholeProvinceBoardVO data = new WholeProvinceBoardVO();
        data.setMaxAbility(new BigDecimal(0));
        data.setHoursAbility(new BigDecimal(0));
        data.setCurrentPlanNum(new BigDecimal(0));
        data.setCurrentOrderNum(new BigDecimal(0));
        data.setCrrentRestNum(new BigDecimal(0));
        data.setCrrentOutNum(new BigDecimal(0));
        List<TmsFactoryParam> paramList = factoryList();
        String code = null;
        if(paramList!=null){
@@ -2155,13 +2159,7 @@
                }
            }
        }
        if(isDebug){
            data.setCurrentPlanNum(new BigDecimal(1220));
            data.setCurrentOrderNum(new BigDecimal(32340));
            data.setCrrentOutNum(new BigDecimal(3450));
            data.setCrrentRestNum(new BigDecimal(456450));
        }
        Date date = new Date();
      /*  Date date = new Date();
        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
        param.setDateEnd(DateUtil.getShortTime(date));
        param.setDateStart(DateUtil.getShortTime(date));
@@ -2169,16 +2167,111 @@
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);//查询指定厂区
        }
        List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);//去年同期
        List<TmsOutQtyAndVehicleQtyResponse> listSame=  tmsService.getOutQtyAndVehicleQty(param);
        if(listSame!=null ){
            for(TmsOutQtyAndVehicleQtyResponse model : listSame){
                data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getTotalOutQty())));//今日出库量
                data.setCrrentOutCarNum(data.getCrrentOutCarNum()+(Constants.formatIntegerNum(model.getVehicleQty())));//今日出库车次
            }
        }
        }*/
        initOutboundCapability(data,factoryCode);
        return  data;
    }
    private void initOutboundCapability(WholeProvinceBoardVO data, String code) {
        TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
        if(StringUtils.isNotBlank(code)){
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add(code);
        }
        TmsOutboundCapabilityResponse result=  tmsService.getOutboundCapability(param);
        if(result !=null){
            List<String> planCodes = new ArrayList<>();
            List<String> todayCodes = new ArrayList<>();
            String todayDate = DateUtil.getShortTime(new Date());
            if(result.getCurrentDayOrderList()!=null && result.getCurrentDayOrderList().size()>0){
                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayOrderList()){
                    data.setCurrentOrderNum(data.getCurrentOrderNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                    /**
                     * DISPATCH_TYPE in(1,2) ä¸” TRANSPORT_CODE不为空,sum(NC_TOTALITY)  +      DISPATCH_TYPE not in(1,2) sum(NC_TOTALITY)
                     *     ä»Šæ—¥å‡ºåº“下达的计划任务总量
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode())
                            && (StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                    }
                    if(!(StringUtils.equals("1",model.getDispatchType()) || StringUtils.equals("2",model.getDispatchType()))){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日计划量
                    }
                    /**
                     * ä»Šæ—¥ä¸‹è¾¾å‡ºåº“的计划任务对应的运输车次数
                     * TRANSPORT_CODE不为空count(transport_code )
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                        planCodes.add(model.getTransportCode());
                    }
                    /**
                     * ä»Šæ—¥ä¸‹è¾¾å‡ºåº“的计划任务对应的运输车次数
                     * TRANSPORT_CODE不为空count(transport_code )
                     */
                    if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                        planCodes.add(model.getTransportCode());
                    }
                    /**
                     *  out_date为当日,sum(NC_TOTALITY) ä»Šæ—¥å®Œæˆçš„出库作业任务总量
                     * TRANSPORT_CODE不为空 ä¸”out_date为当日 count(transport_code)      ä»Šæ—¥å®Œæˆçš„出库作业任务的运输车次数
                     */
                    if(StringUtils.isNotBlank(model.getOutDate()) && model.getOutDate().length()> 10){
                        String tDate = model.getOutDate().substring(0,10);
                        if(tDate.equals(todayDate)){
                            //如果是当日
                            data.setCrrentOutNum(data.getCrrentOutNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日订单量
                        }
                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),todayCodes)){
                            todayCodes.add(model.getTransportCode());
                        }
                    }
                }
            }
            if(result.getCurrentDayAgoOrderList()!=null && result.getCurrentDayAgoOrderList().size()>0){
                for(TmsOutboundCapabilityInfoResponse model :result.getCurrentDayAgoOrderList()){
                    /**
                     * out_date为空,sum(NC_TOTALITY)    æ˜¨å¤©æœªå®Œæˆå‡ºåº“计划任务
                     * out_date为空 ä¸”TRANSPORT_CODE不为空 * count(transport_code )    æ˜¨å¤©æœªå®Œæˆå‡ºåº“计划任务车次
                     */
                    if(StringUtils.isBlank(model.getOutDate())){
                        data.setCurrentPlanNum(data.getCurrentPlanNum().add(Constants.formatBigdecimal(model.getNcTotality())));//今日计划量
                        if(StringUtils.isNotBlank(model.getTransportCode()) && notInList(model.getTransportCode(),planCodes)){
                            planCodes.add(model.getTransportCode());
                        }
                    }
                }
            }
            data.setCurrentPlanCarNum(planCodes.size());//今日计划车次
            data.setCrrentOutCarNum(todayCodes.size());//今日出库车次
        }
        data.setCrrentRestNum(data.getCurrentPlanNum().subtract(data.getCrrentOutNum()));
        data.setCrrentRestCarNum(data.getCurrentPlanCarNum() -data.getCrrentOutCarNum());
        if(data.getCrrentRestNum().compareTo(new BigDecimal(0)) <=0){
            data.setCrrentRestNum(new BigDecimal(0));
        }
        if(data.getCrrentRestCarNum()<=0){
            data.setCrrentRestCarNum(0);
        }
    }
    private boolean notInList(String transportCode, List<String> planCodes) {
        for(String s :planCodes){
            if(StringUtils.equals(transportCode,s)){
                return  false;
            }
        }
        return true;
    }
    /**
     * å‡ºåº“能力李永利
     * @return
@@ -2343,7 +2436,7 @@
        String flag = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.SCREEN_SEVENT_ARRIVAL_STARTDATE).getCode();
        if(StringUtils.equals(flag,"-1")){
            startDate =DateUtil.getBeginDayOfMonth(0);
            date = DateUtil.addMonthToDate(startDate,7);
            date = DateUtil.addDaysToDate(startDate,7);
        }
        param.setNcCreateDateFrom(DateUtil.getShortTime(startDate));
        param.setNcCreateDateThrough(DateUtil.getShortTime(date));
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -208,6 +208,23 @@
    }
    /**
     * å‡ºåº“能力统计
     * æŸ¥è¯¢æŸä¸ªåŽ‚/全部厂的今日计划量、今日出库量、今日未出库量数据。
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    @Override
    public    TmsOutboundCapabilityResponse getOutboundCapability(TmsFacrotyCodeListRequest param){
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOutboundCapability[0];
        TmsBaseResponse<TmsOutboundCapabilityResponse > response = sendHttpRequest(url,TMSContants.InterfacePath.getOutboundCapability[1],JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<TmsOutboundCapabilityResponse>>(){});
        if(response ==null || response.getData() == null){
            return  new TmsOutboundCapabilityResponse();
        }
        return  response.getData();
    }
    /**
     * åˆåŒåˆ—表接口
     * æ ¹æ®åŒºåŸŸID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份,非需要),返回合同列表信息,按照时间倒序展示;
     * @param param å‚æ•°
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -31,6 +31,7 @@
    TmsBasePageResponse<TmsOrderListResponse> orderList(TmsOrderListRequest param);
    List<TmsGisListResponse>  gisList(TmsGisListRequest param);
    TmsBasePageResponse<TmsOrderNoFinishListResponse> getNotFinishOrderList(TmsOrderNoFinishListRequest param);
    TmsOutboundCapabilityResponse getOutboundCapability(TmsFacrotyCodeListRequest param);
    List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param);
    /**
     * åˆåŒè¯¦æƒ…接口