liukangdong
2024-12-25 4830578f72f2a9716c260bf343ed5c40cd975f8e
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加2个文件
已修改6个文件
215 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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/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/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 124 ●●●● 补丁 | 查看 | 原始文档 | 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/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -68,7 +68,7 @@
            jobDetail.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY,quartzJob);
            scheduler.scheduleJob(jobDetail,trigger) ;
            // çŠ¶æ€æ ¡éªŒ
//            checkStop(quartzJob) ;
            checkStop(quartzJob) ;
        } catch (SchedulerException e){
            throw new RuntimeException("createJob Fail",e) ;
        }
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/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/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -747,7 +747,7 @@
            //处理新增数据
            BaseResponse result =  HKService.editUser(addHkModel);
            if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
                if(StringUtils.isNotBlank(c.getFaceImg()) && Constants.equalsInteger(c.getFaceStatus(),Constants.ZERO)){
                if(StringUtils.isNotBlank(c.getFaceImg()) && !Constants.equalsInteger(c.getFaceStatus(),Constants.TWO)){
                    //如果有人脸照片,处理人脸照片同步
                    String faceid = dealMemberFace(c,path);
                    if(StringUtils.isBlank(faceid)){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1109,10 +1109,11 @@
                   //如果是在线或者休眠,查询在途还是空闲ty
                    codes.add(model.getPlateNum());
                    model.setJobStatus(Constants.ZERO);
                }else
                }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)
                List<PlatformJob> busyNum = platformJobMapper.selectList(new QueryWrapper<PlatformJob>() .lambda()
@@ -2137,6 +2138,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){
@@ -2144,8 +2149,8 @@
            for(TmsFactoryParam param : paramList){
                if(StringUtils.isNotBlank(factoryCode)){
                    if(StringUtils.equals(param.getCode(),factoryCode)){
                        data.setHoursAbility(data.getHoursAbility().add(Constants.formatBigdecimal(param.getParam3())));
                        data.setMaxAbility(data.getMaxAbility().add(Constants.formatBigdecimal(param.getNum2())));
                        data.setHoursAbility(Constants.formatBigdecimal(param.getParam3()));
                        data.setMaxAbility(Constants.formatBigdecimal(param.getNum2()));
                        code = param.getCode();
                        break;
                    }
@@ -2155,13 +2160,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 +2168,109 @@
            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
@@ -2278,8 +2370,8 @@
                    tt =new WholeProvinceMapVO();
                    tt.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()));
                    tt.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()));
                    tt.setProvinceCode(model.getFromProvinceCode());
                    tt.setProvinceName(model.getFromProvinceName());
                    tt.setProvinceCode(model.getToProvinceCode());
                    tt.setProvinceName(model.getToProvinceName());
                    result.add(tt);
                }
            }
@@ -2289,7 +2381,7 @@
    private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) {
        for(WholeProvinceMapVO t : result){
            if(StringUtils.equals(t.getProvinceCode(), model.getFromProvinceCode())){
            if(StringUtils.equals(t.getProvinceCode(), model.getToProvinceCode())){
                t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).add(Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity())));
                t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).add(Constants.formatBigdecimal0Float(model.getYearOutboundQuantity())));
                return   t;
@@ -2343,7 +2435,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);
    /**
     * åˆåŒè¯¦æƒ…接口