liukangdong
2024-12-20 d371c2c5747abc1a2439afdf0d3502f2c2f28d82
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加4个文件
已删除1个文件
已修改14个文件
819 ■■■■ 文件已修改
admin/src/components/business/OperaTmsFactoryParamWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/tmsFactoryParam.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/WholeProvinceController.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsTotalAndReportVehicleQtyResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/SalesOperationVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TotalOutQtyNumVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceBoardVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceMapVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceZXTVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceZxtDetailVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaTmsFactoryParamWindow.vue
@@ -15,7 +15,10 @@
      <el-form-item label="总库存量(万支)" prop="num1">
        <el-input v-model="form.num1" placeholder="请输入总库存量(万支)" v-trim/>
      </el-form-item>
      <el-form-item label="总出库能力(万支)" prop="num2">
      <el-form-item label="8小时出库能力(万支)" prop="num2">
        <el-input v-model="form.param3" placeholder="请输入8小时出库能力(万支)" v-trim/>
      </el-form-item>
      <el-form-item label="最大出库能力(万支)" prop="num2">
        <el-input v-model="form.num2" placeholder="请输入总出库能力(万支)" v-trim/>
      </el-form-item>
    <el-form-item label="排序码" prop="sortnum">
@@ -41,7 +44,8 @@
        name: '',
        sortnum: '',
        num1: '',
        num2: ''
        num2: '',
        param3: ''
      },
      // éªŒè¯è§„则
      rules: {
admin/src/views/business/tmsFactoryParam.vue
@@ -26,10 +26,11 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="名称" min-width="100px"></el-table-column>
        <el-table-column prop="code" label="编码" min-width="100px"></el-table-column>
        <el-table-column prop="num1" label="总库存量(万支)" min-width="100px"></el-table-column>
        <el-table-column prop="num2" label="总出库能力(万支)" min-width="100px"></el-table-column>
        <el-table-column prop="param3" label="8小时出库能力(万支)" min-width="100px"></el-table-column>
        <el-table-column prop="num2" label="最大出库能力(万支)" min-width="100px"></el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="editorName" label="操作人" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column>
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3405,4 +3405,19 @@
        return dateBeforeDay.toString();
    }
    /**
     * èŽ·å–X年后的日期
     * @param date
     * @param beforMonths ä¸‹å¹´ -1  ä¸Šå¹´ 1
     * @return
     */
    public static String getBeforYear(Date date,Integer beforMonths){
        ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault());
        // è½¬æ¢ä¸ºjava.time.LocalDate,计算x天的日期
        LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusYears(beforMonths);
        return dateBeforeDay.toString();
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java
@@ -3,9 +3,7 @@
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.model.ApiResponse;
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.request.*;
import com.doumee.core.tms.model.response.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.response.WmsBaseResponse;
@@ -48,9 +46,29 @@
    @ApiOperation("【TMS】合同列表接口")
    @LoginNoRequired
    @PostMapping("/orderList")
    public ApiResponse<TmsBasePageResponse<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request )   {
        return  ApiResponse.success(tmsService.orderList(request));
    public ApiResponse<TmsBasePageResponse<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest param )   {
        if(param == null){
            param = new TmsOrderListRequest();
        }
        if(param.getParameters() == null){
            param.setParameters( new TmsOrderListParamRequest());
        }
        if(param.getPager() == null){
            param.setPager( new TmsOrderListPagerRequest());
        }
        if(param.getPager().getPage() == null){
            param.getPager().setPage(1);
        }
        if(param.getPager().getRows() == null){
            param.getPager().setRows(10);
        }
        if(StringUtils.isBlank(param.getParameters().getPhoneNumber())){
            param.getParameters().setPhoneNumber("00000000000");//手机号必填
        }
        if(param.getParameters().getContractNumbers()==null || param.getParameters().getContractNumbers().size()==0){
            param.getParameters().setContractNumbers(null);
        }
        return  ApiResponse.success(tmsService.orderList(param));
    }
    @ApiOperation("【TMS】合同详情接口")
    @LoginNoRequired
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/WholeProvinceController.java
@@ -3,15 +3,24 @@
import  com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
import com.doumee.core.tms.model.request.TmsOrderListPagerRequest;
import com.doumee.core.tms.model.request.TmsOrderListParamRequest;
import com.doumee.core.tms.model.request.TmsOrderListRequest;
import com.doumee.core.tms.model.response.TmsBasePageResponse;
import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
import com.doumee.core.tms.model.response.TmsOrderListResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.TmsFactoryParam;
import com.doumee.dao.web.response.platformReport.*;
import com.doumee.service.business.third.BoardService;
import com.doumee.service.business.third.TmsService;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -32,7 +41,10 @@
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/wholeProvince")
public class WholeProvinceController extends BaseController {
    @Autowired
    private TmsService tmsService;
    @Autowired
    private BoardService boardService;
    @LoginNoRequired
    @ApiOperation("中心数据")
    @GetMapping("/centerData")
@@ -95,76 +107,88 @@
        }
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("进销存运营")
    @GetMapping("/salesOperationList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "查询类型:0=周;1=月;2=年;", required = true),
    })
    public ApiResponse<List<SalesOperationVO>> salesOperationList(@RequestParam Integer queryType) {
        List<SalesOperationVO> list = new ArrayList<>();
        Random random = new Random();
        List<String> dayList = DateUtil.getBeforDays(new Date(),7);
        if(Constants.equalsInteger(queryType,Constants.ONE)){
            dayList = DateUtil.getBeforDays(new Date(),30);
        }else if(Constants.equalsInteger(queryType,Constants.TWO)){
            dayList = DateUtil.getBeforMonth(new Date(),12);
        }
        for (String str:dayList) {
            SalesOperationVO data = new SalesOperationVO();
            data.setDateStr(str);
            data.setStockNum(new BigDecimal(random.nextInt(1000)));
            data.setTotalInNum(new BigDecimal(random.nextInt(1000)));
            data.setTotalOutNum(new BigDecimal(random.nextInt(1000)));
            list.add(data);
        }
    @ApiOperation("订单在途跟踪-累计出库量")
    @GetMapping("/totalOutQtyNum")
    public ApiResponse<TotalOutQtyNumVO> totalOutQtyNum() {
        TotalOutQtyNumVO result = boardService.totalOutQtyNum();
        return ApiResponse.success(result);
    }
    @LoginNoRequired
    @ApiOperation("所有烟厂集合")
    @GetMapping("/factoryList")
    public ApiResponse<List<TmsFactoryParam>> factoryList() {
        List<TmsFactoryParam> list = boardService.factoryList();
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("库存利用率")
    @GetMapping("/energyDataList")
    public ApiResponse<List<StockRataVO>> energyDataList() {
        List<StockRataVO> energyDataVOList = new ArrayList<>();
        Random random = new Random();
        for (int i = 1; i <= 5; i++) {
            StockRataVO data = new StockRataVO();
            data.setPlaceName("地点_"+i);
            data.setNowStockNum(new BigDecimal(random.nextInt(200)));
            data.setStockRataNum(new BigDecimal(random.nextInt(200)));
            data.setTotalStockNum(new BigDecimal(random.nextInt(100)));
            energyDataVOList.add(data);
        }
        return ApiResponse.success(energyDataVOList);
    @ApiOperation("仓库资源利用率")
    @GetMapping("/inventoryUseRate")
    public ApiResponse<WholeProvinceZXTVO> inventoryUseRate( ) {
        WholeProvinceZXTVO  list = boardService.inventoryUseRate();
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("运力资源利用率")
    @GetMapping("/tranportAbilityUseRate")
    public ApiResponse<WholeProvinceZXTVO> tranportAbilityUseRate( ) {
        WholeProvinceZXTVO  list = boardService.tranportAbilityUseRate();
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("出库能力利用率")
    @GetMapping("/outAbilityUseRate")
    public ApiResponse<WholeProvinceZXTVO> outAbilityUseRate( ) {
        WholeProvinceZXTVO  list = boardService.outAbilityUseRate();
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("地图本月本年总出库量统计集合(按省份)")
    @GetMapping("/mapYearAndMonthOutList")
    public ApiResponse<List<WholeProvinceMapVO>> mapYearAndMonthOutList( ) {
        List<WholeProvinceMapVO>  list = boardService.mapYearAndMonthOutList();
        return ApiResponse.success(list);
    }
    @ApiOperation("订单任务合同列表接口")
    @LoginNoRequired
    @ApiOperation("上月油耗排行")
    @GetMapping("/lastMonthOil")
    public ApiResponse<List<OilDataVO>> lastMonthOil() {
        List<OilDataVO> oilDataVOList = new ArrayList<>();
        Random random = new Random();
        BigDecimal maxOil = BigDecimal.ZERO;
        BigDecimal lastOil = BigDecimal.ZERO;
        for (int i = 1; i <= 7; i++) {
            OilDataVO oilDataVO = new OilDataVO();
            oilDataVO.setCarNo("皖A8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9));
            if(i==1){
                oilDataVO.setQuantity(new BigDecimal(random.nextInt(100)));
                maxOil = oilDataVO.getQuantity();
            }else{
                oilDataVO.setQuantity(new BigDecimal(random.nextInt(lastOil.intValue())));
            }
            lastOil = oilDataVO.getQuantity();
            oilDataVO.setMaxOil(maxOil);
            oilDataVOList.add(oilDataVO);
    @PostMapping("/orderList")
    public ApiResponse<TmsBasePageResponse<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest param )   {
        if(param == null){
            param = new TmsOrderListRequest();
        }
        return ApiResponse.success(oilDataVOList);
        if(param.getParameters() == null){
            param.setParameters( new TmsOrderListParamRequest());
        }
        if(param.getPager() == null){
            param.setPager( new TmsOrderListPagerRequest());
        }
        if(param.getPager().getPage() == null){
            param.getPager().setPage(1);
        }
        if(param.getPager().getRows() == null){
            param.getPager().setRows(10);
        }
        if(StringUtils.isBlank(param.getParameters().getPhoneNumber())){
            param.getParameters().setPhoneNumber("00000000000");//手机号必填
        }
        if(param.getParameters().getContractNumbers()==null || param.getParameters().getContractNumbers().size()==0){
            param.getParameters().setContractNumbers(null);
        }
        return  ApiResponse.success(tmsService.orderList(param));
    }
    @ApiOperation("合同详情接口")
    @LoginNoRequired
    @PostMapping("/orderInfo")
    public ApiResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request )   {
        return ApiResponse.success(tmsService.orderInfo(request));
    }
}
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: dev
    active: pro
  application:
    name: visitsAdmin
    # å®‰å…¨é…ç½®
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsTotalAndReportVehicleQtyResponse.java
@@ -19,7 +19,7 @@
    @ApiModelProperty(value = "工厂名称" )
    private String   factoryName;//    å­—符串    å·¥åŽ‚åç§°
    @ApiModelProperty(value = "提报运力数" )
    private String   reportQty;//    æ•°å­—    ææŠ¥è¿åŠ›æ•°
    private BigDecimal   reportQty;//    æ•°å­—    ææŠ¥è¿åŠ›æ•°
    @ApiModelProperty(value = "总运力数" )
    private String   totalQty;//    æ•°å­—    æ€»è¿åŠ›æ•°
    private BigDecimal   totalQty;//    æ•°å­—    æ€»è¿åŠ›æ•°
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/SalesOperationVO.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/TotalOutQtyNumVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.doumee.dao.web.response.platformReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * è¿è¾“任务
 *
 * @Author : Rk
 * @create 2024/10/25 10:59
 */
@Data
public class TotalOutQtyNumVO {
    @ApiModelProperty(value = "当前周期出库量(省内)")
    private BigDecimal currentInNum;
    @ApiModelProperty(value = "当前周期出库量(省外)")
    private BigDecimal currentOutNum;
    @ApiModelProperty(value = "上隔天周期出库量(省内)")
    private BigDecimal lastInNum;
    @ApiModelProperty(value = "上个周期出库量(省外)")
    private BigDecimal lastOutNum;
    @ApiModelProperty(value = "去年同期出库量(省内)")
    private BigDecimal sameInNum;
    @ApiModelProperty(value = "去年同期出库量(省外)")
    private BigDecimal sameOutNum;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceBoardVO.java
@@ -1,6 +1,5 @@
package com.doumee.dao.web.response.platformReport;
import com.doumee.dao.business.model.PlatformJob;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -66,13 +65,13 @@
    @ApiModelProperty(value = "进销存运营 - 7日" , hidden = true)
    private List<SalesOperationVO> salesOperationWeekList;
    private List<WholeProvinceZxtDetailVO> salesOperationWeekList;
    @ApiModelProperty(value = "进销存运营 - æœˆåº¦" , hidden = true)
    private List<SalesOperationVO> salesOperationMonthList;
    private List<WholeProvinceZxtDetailVO> salesOperationMonthList;
    @ApiModelProperty(value = "进销存运营 - å¹´åº¦" , hidden = true)
    private List<SalesOperationVO> salesOperationYearList;
    private List<WholeProvinceZxtDetailVO> salesOperationYearList;
    @ApiModelProperty(value = "库存利用率" , hidden = true)
    private List<StockRataVO> stockRataVOListList;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceMapVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.doumee.dao.web.response.platformReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 *
 *
 * @Author : Rk
 * @create 2024/10/25 10:59
 */
@Data
public class WholeProvinceMapVO {
    @ApiModelProperty(value = "本年总数量 ")
    private BigDecimal yearNum;
    @ApiModelProperty(value = "本月总数量 ä¸‡æ”¯")
    private BigDecimal monthNum;
    @ApiModelProperty(value = "省份代码")
    private String provinceCode;
    @ApiModelProperty(value = "省份名称")
    private String provinceName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceZXTVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.doumee.dao.web.response.platformReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 *
 *
 * @Author : Rk
 * @create 2024/10/25 10:59
 */
@Data
public class WholeProvinceZXTVO {
    @ApiModelProperty(value = "利用率 ")
    private BigDecimal useRate;
    @ApiModelProperty(value = "总数量 ä¸‡æ”¯")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "当前值 ä¸‡æ”¯")
    private BigDecimal currentNum;
    @ApiModelProperty(value = "图形明细集合")
    private List<WholeProvinceZxtDetailVO> detailList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceZxtDetailVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.dao.web.response.platformReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 *
 *
 * @Author : Rk
 * @create 2024/10/25 10:59
 */
@Data
public class WholeProvinceZxtDetailVO {
    @ApiModelProperty(value = "烟厂名称")
    private String factoryName;
    @ApiModelProperty(value = "利用率 ")
    private BigDecimal useRate;
    @ApiModelProperty(value = "总数量 ä¸‡æ”¯")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "当前值 ä¸‡æ”¯")
    private BigDecimal currentNum;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -12,6 +12,7 @@
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.dao.web.response.platformReport.WholeProvinceBoardVO;
import java.util.List;
@@ -244,4 +245,10 @@
    void timeOutWork();
    PlatformJob getLastWaitJob(String uuid, LoginUserInfo loginUser);
    void wholeProvinceCenterData(WholeProvinceBoardVO data);
    void centerDataForInOut(WholeProvinceBoardVO data);
    void centerDataOutInRata(WholeProvinceBoardVO data);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -35,6 +35,7 @@
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.dao.web.response.platformReport.WholeProvinceBoardVO;
import com.doumee.service.business.PlatformJobService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -2202,6 +2203,164 @@
    }
    /**
     * ç´¯è®¡å‡ºåº“量统计 - å¤§å±
     * @param data
     */
    @Override
    public void wholeProvinceCenterData(WholeProvinceBoardVO data){
//        //累计本年度出库量
//        List<PlatformJob> platformJobList = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED)
//                .isNotNull(PlatformJob::getDoneDate)
//                .in(PlatformJob::getType,Constants.platformJobType.wxczh,Constants.platformJobType.zyczh)
//                .like( PlatformJob::getDoneDate, DateUtil.getFomartDate(new Date(),"yyyy"))
//        );
//        data.setYearOutTotal(platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
//        data.setYearOutTimes(platformJobList.size());
//
//
//        List<PlatformJob> platformJobsMonthList = platformJobList.stream().filter(i->DateUtil.getFomartDate(i.getDoneDate(),"yyyy-MM").equals(DateUtil.getFomartDate(new Date(),"yyyy-MM"))).collect(Collectors.toList());
//        data.setMonthOutTotal(platformJobsMonthList.stream().filter(i->Objects.nonNull(i.getTotalNum())).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
//        data.setMonthOutTimes(platformJobsMonthList.size());
//        String beforYear = DateUtil.getBeforYear(new Date(),1);
//
//        //累计本年度出库量
//        List<PlatformJob> beforYearPlatformJobList = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED)
//                .isNotNull(PlatformJob::getDoneDate)
//                .in(PlatformJob::getType,Constants.platformJobType.wxczh,Constants.platformJobType.zyczh)
//                .like( PlatformJob::getDoneDate, beforYear.substring(0,4))
//        );
//
//        List<PlatformJob> beforPlatformJobsMonthList = platformJobList.stream().filter(i->DateUtil.getFomartDate(i.getDoneDate(),"yyyy-MM").equals(beforYear.substring(0,7))).collect(Collectors.toList());
//        //同比数据
//        data.setYearOutTotalOnYear(beforYearPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
//        data.setMonthOutTotalOnYear(beforPlatformJobsMonthList.stream().filter(i->Objects.nonNull(i.getTotalNum())).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
//
    }
    @Override
    public void centerDataForInOut(WholeProvinceBoardVO data){
//        //今日完成的出入库所有数据
//        List<PlatformJob> platformJobList = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED)
//                .like( PlatformJob::getDoneDate, DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))
//        );
//        //今日之前 æ‰€æœ‰æœªå®Œæˆçš„出入库数据 - WMS推送
//        List<PlatformJob> wmsPlatformJobList  = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED
//                        ,Constants.PlatformJobStatus.CANCEL)
//                .eq(PlatformJob::getOrigin ,Constants.ONE)
//                .le(PlatformJob::getCreateDate, DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") +" 23:59:59")
//        );
//        //今日之前 æ‰€æœ‰æœªå®Œæˆçš„出入库数据 - é¢„约数据
//        List<PlatformJob> bookPlatformJobList  = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED
//                        ,Constants.PlatformJobStatus.CANCEL)
//                .eq(PlatformJob::getOrigin ,Constants.ONE)
//                .le(PlatformJob::getArriveDate, DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") +" 23:59:59")
//        );
//
//        BigDecimal finishOutTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        BigDecimal unFinishWmsOutTotal = wmsPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        BigDecimal unFinishBookOutTotal = bookPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//
//        BigDecimal finishInTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        BigDecimal unFinishWmsInTotal = wmsPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        BigDecimal unFinishBookInTotal = bookPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//
//        data.setOutTotal(finishOutTotal);
//        data.setOutPlanTotal(finishOutTotal.add(unFinishWmsOutTotal).add(unFinishBookOutTotal));
//
//        data.setInTotal(finishInTotal);
//        data.setInPlanTotal(finishInTotal.add(unFinishWmsInTotal).add(unFinishBookInTotal));
    }
    @Override
    public void centerDataOutInRata(WholeProvinceBoardVO data){
//        //累计本月度所有操作量
//        List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
//                        .selectAll(PlatformJob.class)
//                        .select(" ( select ifnull(sum(p.param3),0) from platform_log p where p.obj_id = platform_job.id  ) ",PlatformJob::getWorkTime)
//                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED)
//                .isNotNull(PlatformJob::getDoneDate)
//                .like( PlatformJob::getDoneDate, DateUtil.getFomartDate(new Date(),"yyyy-MM"))
//        );
//
//        //获取本月所有出库量
//        BigDecimal monthOutTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        Long monthOutWorkTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getWorkTime()).reduce(Long.valueOf(Constants.ZERO),Long::sum);
//        BigDecimal monthInTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        Long monthInWorkTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getWorkTime()).reduce(Long.valueOf(Constants.ZERO),Long::sum);
//
//        data.setMonthOutRata(BigDecimal.ZERO);
//        //月度出库效率
//        if(Objects.nonNull(monthOutTotal) && Objects.nonNull(monthOutWorkTotal) && monthOutWorkTotal>0L && monthOutTotal.compareTo(BigDecimal.ZERO) > 0){
//            BigDecimal workTotal = new BigDecimal(monthOutWorkTotal);
//            data.setMonthOutRata(monthOutTotal.multiply(new BigDecimal(3600)).divide(workTotal,2,BigDecimal.ROUND_UP));
//        }
//
//        //月度入库效率
//
//        data.setMonthInRata(BigDecimal.ZERO);
//        if(Objects.nonNull(monthInTotal) && Objects.nonNull(monthInWorkTotal) && monthInWorkTotal>0L && monthInTotal.compareTo(BigDecimal.ZERO) > 0){
//            BigDecimal workTotal = new BigDecimal(monthInWorkTotal);
//            data.setMonthInRata(monthInTotal.multiply(new BigDecimal(3600)).divide(workTotal,2,BigDecimal.ROUND_UP));
//        }
//
//
//
//        List<PlatformJob> dayPlatformJobList = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>()
//                .lambda()
//                .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE
//                        ,Constants.PlatformJobStatus.AUTHED_LEAVE
//                        ,Constants.PlatformJobStatus.LEAVED)
//                .isNotNull(PlatformJob::getDoneDate)
//                .like( PlatformJob::getDoneDate, DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))
//        );
//
//        BigDecimal dayOutTotal = dayPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        Long dayOutWorkTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.wxczh)||i.getType().equals(Constants.platformJobType.zyczh))).map(i->i.getWorkTime()).reduce(Long.valueOf(Constants.ZERO),Long::sum);
//        BigDecimal dayInTotal = dayPlatformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
//        Long dayInWorkTotal = platformJobList.stream().filter(i->Objects.nonNull(i.getTotalNum())&&(i.getType().equals(Constants.platformJobType.zycxh)||i.getType().equals(Constants.platformJobType.wxcxh)||i.getType().equals(Constants.platformJobType.sgscxh))).map(i->i.getWorkTime()).reduce(Long.valueOf(Constants.ZERO),Long::sum);
//
//        data.setDayOutRata(BigDecimal.ZERO);
//        //日出库效率
//        if(Objects.nonNull(dayOutTotal) && Objects.nonNull(dayOutWorkTotal) && dayOutWorkTotal>0L && dayOutTotal.compareTo(BigDecimal.ZERO) > 0){
//            BigDecimal workTotal = new BigDecimal(dayOutWorkTotal);
//            data.setDayOutRata(dayOutTotal.multiply(new BigDecimal(3600)).divide(workTotal,2,BigDecimal.ROUND_UP));
//        }
//        //日入库效率
//        data.setDayInRata(BigDecimal.ZERO);
//        if(Objects.nonNull(dayInTotal) && Objects.nonNull(dayInWorkTotal) && dayInWorkTotal>0L && dayInTotal.compareTo(BigDecimal.ZERO) > 0){
//            BigDecimal workTotal = new BigDecimal(dayInWorkTotal);
//            data.setMonthInRata(dayInTotal.multiply(new BigDecimal(3600)).divide(workTotal,2,BigDecimal.ROUND_UP));
//        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -229,6 +229,7 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer createFk(Visits visits,Boolean isERP,Integer source) {
        visits.setId(null);
        isValidBaseParam(visits);
        //检查是否必须答题,并且符合答题要求
        ProblemLog problemLog = isValidProblemLog(visits,source);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -14,9 +14,12 @@
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKCarOpenService;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.tms.model.request.TmsFacrotyCodeListRequest;
import com.doumee.core.tms.model.request.TmsOutQtyAndVehicleQtyRequest;
import com.doumee.core.tms.model.response.TmsDistributionOfDeliveryLocResponse;
import com.doumee.core.tms.model.response.TmsInventoryListResponse;
import com.doumee.core.tms.model.response.TmsOutQtyAndVehicleQtyResponse;
import com.doumee.core.tms.model.response.TmsTotalAndReportVehicleQtyResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
@@ -30,8 +33,8 @@
import com.doumee.dao.web.reqeust.CarsJobAndContractDTO;
import com.doumee.dao.web.response.platformReport.*;
import com.doumee.service.business.impl.PlatformJobServiceImpl;
import com.doumee.service.business.impl.VisitsServiceImpl;
import com.doumee.service.business.third.BoardService;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -40,9 +43,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -66,6 +67,8 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private TmsFactoryParamMapper tmsFactoryParamMapper;
    @Autowired
    private PlatformWarnEventJoinMapper platformWarnEventJoinMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
@@ -83,6 +86,8 @@
    private RetentionMapper retentionMapper;
    @Autowired
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
    private TmsService tmsService;
    /**
     * èŽ·å–åŒºåŸŸæ ‘å½¢ç»“æž„æ•°æ®
     * @return
@@ -2036,7 +2041,234 @@
            return null;
        }
    }
    /**
     * å‡ºåº“能力李永利
     * @return
     */
    @Override
    public WholeProvinceZXTVO outAbilityUseRate(){
        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
        result.setCurrentNum(new BigDecimal(0));
        result.setTotalNum(new BigDecimal(0));
        result.setUseRate(new BigDecimal(0));
        result.setDetailList(new ArrayList<>());
        List<TmsFactoryParam> paramList = factoryList();
        List<WholeProvinceZxtDetailVO> list = new ArrayList<>();
        TmsOutQtyAndVehicleQtyRequest param = new TmsOutQtyAndVehicleQtyRequest();
        if(paramList!=null){
            String startDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd");
            String endDate = DateUtil.formatDate(new Date(),"yyyy-MM-dd");
            for(TmsFactoryParam p : paramList){
                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
                t.setFactoryName(p.getName());
                t.setCurrentNum(new BigDecimal(0));
                t.setUseRate(new BigDecimal(0));
                t.setTotalNum(Constants.formatBigdecimal(p.getNum2()));//总出库能力
                if(StringUtils.isBlank(p.getCode())){
                    param.setFacrotyCodeList(new ArrayList<>());
                    param.setDateStart(startDate);
                    param.setDateEnd(endDate);
                    param.getFacrotyCodeList().add(p.getCode());
                    List<TmsOutQtyAndVehicleQtyResponse> response = tmsService.getOutQtyAndVehicleQty(param);//查询出库量
                    t.setCurrentNum(getCurrentOutQryByList(response));
                    if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
                        t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
                    }
                }
                result.getDetailList().add(t);
                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
            }
        }
        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
        }
        return result;
    }
    /**
     * å‡ºåº“能力李永利
     * @return
     */
    @Override
    public    TotalOutQtyNumVO totalOutQtyNum(int queryType){
        TotalOutQtyNumVO  data = new TotalOutQtyNumVO();
        data.setCurrentInNum(new BigDecimal(0));
        data.setLastInNum(new BigDecimal(0));
        data.setSameInNum(new BigDecimal(0));
        //---------省外----------------
        data.setCurrentOutNum(new BigDecimal(0));
        data.setLastOutNum(new BigDecimal(0));
        data.setSameOutNum(new BigDecimal(0));
        return data;
    }
    /**
     * å‡ºåº“能力李永利
     * @return
     */
    @Override
    public    List<WholeProvinceMapVO> mapYearAndMonthOutList(){
        List<WholeProvinceMapVO> result = new ArrayList<>();
        List<TmsFactoryParam> paramList =factoryList();
        if(paramList!=null && paramList.size()>0){
            List<String> codes = new ArrayList<>();
            for(TmsFactoryParam p : paramList){
                if(StringUtils.isBlank(p.getCode())){
                    continue;
                }
                codes.add(p.getCode());
            }
            if(codes.size()>0){
                TmsFacrotyCodeListRequest param = new TmsFacrotyCodeListRequest();
                param.setFacrotyCodeList(codes);
                List<TmsDistributionOfDeliveryLocResponse> response  = tmsService.getDistributionOfDeliveryLocations(param);//查询出库量
                if(response!=null &&response.size()>0){
                    for(TmsDistributionOfDeliveryLocResponse model : response){
                        WholeProvinceMapVO tt = getFromProvinceResultList(model ,result);
                        if(tt == null){
                            tt =new WholeProvinceMapVO();
                            tt.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()));
                            tt.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()));
                            tt.setProvinceCode(model.getFromProvinceCode());
                            tt.setProvinceName(model.getFromProvinceName());
                            result.add(tt);
                        }
                    }
                }
            }
        }
        return result;
    }
    private WholeProvinceMapVO getFromProvinceResultList(TmsDistributionOfDeliveryLocResponse model, List<WholeProvinceMapVO> result) {
        for(WholeProvinceMapVO t : result){
            if(StringUtils.equals(t.getProvinceCode(), model.getFromProvinceCode())){
                t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).add(Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity())));
                t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).add(Constants.formatBigdecimal0Float(model.getYearOutboundQuantity())));
                return   t;
            }
        }
        return  null;
    }
    /**
     * å‡ºåº“能力李永利
     * @return
     */
    @Override
    public     List<TmsFactoryParam> factoryList(){
        List<TmsFactoryParam> paramList = tmsFactoryParamMapper.selectList(new QueryWrapper<TmsFactoryParam>().lambda()
                .eq(TmsFactoryParam::getIsdeleted,Constants.ZERO)
                .orderByAsc(TmsFactoryParam::getSortnum));
        return paramList;
    }
    /**
     * å‡ºåº“能力李永利
     * @return
     */
    @Override
    public WholeProvinceZXTVO tranportAbilityUseRate(){
        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
        result.setCurrentNum(new BigDecimal(0));
        result.setTotalNum(new BigDecimal(0));
        result.setUseRate(new BigDecimal(0));
        result.setDetailList(new ArrayList<>());
        List<TmsFactoryParam> paramList =factoryList();
        if(paramList!=null){
            List<TmsTotalAndReportVehicleQtyResponse> response = tmsService.getTotalAndReportVehicleQty();//查询出库量
            for(TmsFactoryParam p : paramList){
                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
                t.setFactoryName(p.getName());
                t.setCurrentNum(new BigDecimal(0));
                t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//总库存量
                getFromReportVehicleQtyList(p.getCode(),t,response);//处理提报运力和总运力数据
                t.setUseRate(new BigDecimal(0));
                if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
                }
                result.getDetailList().add(t);
                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
            }
        }
        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
        }
        return result;
    }
    private void getFromReportVehicleQtyList(String code,WholeProvinceZxtDetailVO t, List<TmsTotalAndReportVehicleQtyResponse> responses) {
        BigDecimal current = new BigDecimal(0);
        BigDecimal total= new BigDecimal(0);
        if(responses!=null && responses.size()>0){
            for(TmsTotalAndReportVehicleQtyResponse model: responses){
                if(StringUtils.equals(model.getFactoryCode(),code)){
                    total = total.add(Constants.formatBigdecimal(model.getTotalQty()));
                    current = current.add(Constants.formatBigdecimal(model.getReportQty()));
                }
            }
        }
        t.setCurrentNum(current);
        t.setTotalNum(total);
    }
    private BigDecimal getCurrentOutQryByList(List<TmsOutQtyAndVehicleQtyResponse> response) {
        BigDecimal r = new BigDecimal(0);
        if(response!=null && response.size()>0){
            for(TmsOutQtyAndVehicleQtyResponse model: response){
                    r = r.add(Constants.formatBigdecimal(model.getTotalOutQty()));
            }
        }
        return r ;
    }
    /**
     * ä»“库资源利用率
     * @return
     */
    @Override
    public WholeProvinceZXTVO inventoryUseRate(){
        WholeProvinceZXTVO result = new WholeProvinceZXTVO();
        result.setCurrentNum(new BigDecimal(0));
        result.setTotalNum(new BigDecimal(0));
        result.setUseRate(new BigDecimal(0));
        result.setDetailList(new ArrayList<>());
        List<TmsFactoryParam> paramList = factoryList();
        List<TmsInventoryListResponse> responses = tmsService.getRealTimeInventory();
        if(paramList!=null){
            for(TmsFactoryParam p : paramList){
                WholeProvinceZxtDetailVO t = new WholeProvinceZxtDetailVO();
                t.setFactoryName(p.getName());
                t.setCurrentNum(new BigDecimal(0));
                t.setTotalNum(Constants.formatBigdecimal(p.getNum1()));//总库存量
                t.setCurrentNum(getFromInventoryList(p.getCode(),responses));
                t.setUseRate(new BigDecimal(0));
                if(t.getTotalNum().compareTo(new BigDecimal(0)) !=0){
                    t.setUseRate(t.getCurrentNum().divide(t.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
                }
                result.getDetailList().add(t);
                result.setCurrentNum(result.getCurrentNum().add(t.getCurrentNum()));
                result.setTotalNum(result.getTotalNum().add(t.getTotalNum()));
            }
        }
        if(result.getTotalNum().compareTo(new BigDecimal(0)) !=0){
            result.setUseRate(result.getCurrentNum().divide(result.getTotalNum(),4,BigDecimal.ROUND_HALF_UP));
        }
        return result;
    }
    private BigDecimal getFromInventoryList(String code, List<TmsInventoryListResponse> responses) {
        BigDecimal r = new BigDecimal(0);
        if(responses!=null && responses.size()>0){
            for(TmsInventoryListResponse model: responses){
                if(StringUtils.equals(model.getFactoryCode(),code)){
                   r = r.add(Constants.formatBigdecimal(model.getStockQty()));
                }
            }
        }
        return r ;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -197,27 +197,6 @@
     */
    @Override
    public   TmsBasePageResponse<TmsOrderListResponse>  orderList(TmsOrderListRequest param){
        if(param == null){
            param = new TmsOrderListRequest();
        }
        if(param.getParameters() == null){
            param.setParameters( new TmsOrderListParamRequest());
        }
        if(param.getPager() == null){
            param.setPager( new TmsOrderListPagerRequest());
        }
        if(param.getPager().getPage() == null){
            param.getPager().setPage(1);
        }
        if(param.getPager().getRows() == null){
            param.getPager().setRows(10);
        }
       if(StringUtils.isBlank(param.getParameters().getPhoneNumber())){
           param.getParameters().setPhoneNumber("00000000000");//手机号必填
       }
       if(param.getParameters().getContractNumbers()==null || param.getParameters().getContractNumbers().size()==0){
           param.getParameters().setContractNumbers(null);
       }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOrderList[0];
        TmsBaseResponse<TmsBasePageResponse<TmsOrderListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderList[1],JSONObject.toJSONString(param)
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -1,9 +1,9 @@
package com.doumee.service.business.third;
import com.doumee.core.haikang.model.cars.response.CarsAlarmResultListResponse;
import com.doumee.core.haikang.model.param.request.RegionDataRankingTypeRequest;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.dao.business.model.PlatformWarnEvent;
import com.doumee.dao.business.model.TmsFactoryParam;
import com.doumee.dao.web.reqeust.CarsJobAndContractDTO;
import com.doumee.dao.web.response.platformReport.*;
@@ -92,4 +92,14 @@
    List<CarsAlarmResultListResponse> carsEventList();
    List<RegionDataRankingDataResponse> getRegionDataRanking(Integer type);
    WholeProvinceZXTVO inventoryUseRate();
    WholeProvinceZXTVO outAbilityUseRate();
    WholeProvinceZXTVO tranportAbilityUseRate();
    List<TmsFactoryParam> factoryList();
    List<WholeProvinceMapVO> mapYearAndMonthOutList();
    TotalOutQtyNumVO totalOutQtyNum(int queryType);
}