Bladeren bron

Merge remote-tracking branch 'origin/master'

hejiahui 2 jaren geleden
bovenliggende
commit
9e28e14586
17 gewijzigde bestanden met toevoegingen van 490 en 23 verwijderingen
  1. 51 4
      src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java
  2. 23 0
      src/main/java/com/steerinfo/dil/controller/TmstruckTotalResultController.java
  3. 8 0
      src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java
  4. 20 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.java
  5. 3 0
      src/main/java/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.java
  6. 9 0
      src/main/java/com/steerinfo/dil/service/IStatisticalReportService.java
  7. 3 0
      src/main/java/com/steerinfo/dil/service/ITmstruckTotalResultService.java
  8. 38 0
      src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java
  9. 1 1
      src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java
  10. 3 1
      src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java
  11. 23 1
      src/main/java/com/steerinfo/dil/service/impl/TmstruckSelfMachineService.java
  12. 9 6
      src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java
  13. 10 0
      src/main/java/com/steerinfo/dil/service/impl/TmstruckTotalResultServiceImpl.java
  14. 3 3
      src/main/java/com/steerinfo/dil/util/DataChange.java
  15. 142 5
      src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml
  16. 21 1
      src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml
  17. 123 1
      src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml

+ 51 - 4
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -11,10 +11,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -35,6 +32,8 @@ public class StatisticalReportController extends BaseRESTfulController {
     @Autowired
     ColumnDataUtil columnDataUtil;
 
+
+
     private final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
 
     private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -108,6 +107,11 @@ public class StatisticalReportController extends BaseRESTfulController {
         }
         mapValue.put("orderTypee",orderType);
         mapValue.put("shipperId",shipperId);
+        if(orderType==1 && mapValue.get("orderField")==null){
+            //如果没有使用排序且查询的表格类型为销售钢材内部专用表格,默认规格排序
+            mapValue.put("orderField","materialCode");
+            mapValue.put("orderType","desc");
+        }
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
         List<Map<String, Object>> report = statisticalReportService.getAllSaleReport(mapValue);
@@ -687,6 +691,43 @@ public class StatisticalReportController extends BaseRESTfulController {
         }
         //分页数据
         List<Map<String, Object>> report = statisticalReportService.getSaleSteelReport(map);
+        for (Map<String, Object> stringObjectMap : report) {
+            String shippingAddressIds = (String) stringObjectMap.get("shippingAddressIds");
+            String capacityNumbers= (String) stringObjectMap.get("capacityNumbers");
+            //确认是否有多个收货单位
+            if (shippingAddressIds !=null && !("".equals(shippingAddressIds))){
+                String[] split = shippingAddressIds.split(",");
+                String address="";
+                int i=0;
+                for (String s : split) {
+                    i++;
+                    String getaddress = statisticalReportService.getaddress(DataChange.dataToBigDecimal(s));
+                    if (i==1){
+                        address+="旧地址:"+getaddress+",";
+                    }else if (i==2){
+                        address+="新地址:"+getaddress;
+                    }
+                }
+                stringObjectMap.put("addressPlace",address);
+            }
+            //确认是否有多个车牌号
+            if (capacityNumbers!=null &&!("".equals(capacityNumbers))){
+                String[] split = capacityNumbers.split(",");
+                String capacityNumber="";
+                int flag=0;
+                for (String s : split) {
+                    flag++;
+                    String s1 = statisticalReportService.getcapacityNumber(DataChange.dataToBigDecimal(s));
+                    if (flag==1){
+                        capacityNumber+="旧车号:"+s1+",";
+                    }else if (flag==2){
+                        capacityNumber+="新车号:"+s1;
+                        break;
+                    }
+                }
+                stringObjectMap.put("capacityNo",capacityNumber);
+            }
+        }
         return success(report);
     }
 
@@ -774,4 +815,10 @@ public class StatisticalReportController extends BaseRESTfulController {
         List<Map<String, Object>> report = statisticalReportService.getInwardSaleSteelOrder(map);
         return success(report);
     }
+
+    @ApiOperation(value="根据车序号查询销售订单状态")
+    @PostMapping("/getSteelReportDetailsBySmId")
+    public RESTfulResult getSteelReportDetailsBySmId(@RequestParam BigDecimal saleOrderMaterialId){
+        return success(statisticalReportService.getSteelReportDetailsBySmId(saleOrderMaterialId));
+    }
 }

+ 23 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckTotalResultController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
 
@@ -33,6 +34,8 @@ public class TmstruckTotalResultController extends BaseRESTfulController {
     ITmstruckTotalResultService tmstruckTotalResultService;
     @Autowired
     ColumnDataUtil columnDataUtil;
+    private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     @ApiOperation(value="添加总实绩 ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "map", value = "订单Id", required = false, dataType = "Map"),
@@ -91,4 +94,24 @@ public class TmstruckTotalResultController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,qualityResult);
         return success(pageList);
     }
+
+
+    @PostMapping("/getAllReverseResult")
+    public RESTfulResult getAllReverseResult(@RequestBody(required=false) Map<String,Object> mapValue,
+                                             Integer apiId,
+                                             Integer pageNum,
+                                             Integer pageSize,
+                                             String con,
+                                             String  userId,
+                                             String startTime,
+                                             String endTime){
+        PageHelper.startPage(pageNum,pageSize);
+        mapValue.put("con",con);
+        mapValue.put("userId",userId);
+        DataChange.queryDataByDateTime(startTime,endTime,mapValue,sdfDateTime);
+        //分页查询
+        List<Map<String, Object>> qualityResult = tmstruckTotalResultService.getAllReverseResult(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,qualityResult);
+        return success(pageList);
+    }
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/mapper/StatisticalReportMapper.java

@@ -79,4 +79,12 @@ public interface StatisticalReportMapper {
     List<Map<String, Object>> getInwardSaleSteelReport(Map<String, Object> map);
 
     List<Map<String, Object>> getInwardSaleSteelOrder(Map<String, Object> map);
+
+    Map<String, Object> getSteelReportDetailsBySmId(BigDecimal saleOrderMaterialId);
+
+    List<Map<String, Object>> getSteelReportDetailsListBySmId(BigDecimal saleOrderMaterialId);
+
+    String queryAddress(BigDecimal addressid);
+
+    String queryCapacityNumber(BigDecimal capacityNumber);
 }

+ 20 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.java

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -90,6 +91,22 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
     */
     String querynote(String orderNumber);
 
+    /**
+     * @author:zyf
+     * @version:1.0
+     * @Date:2022-09-21
+     * @Description:用于获取时间导致的变化
+    */
+    Date queryDate(String orderNumber);
+
+    /**
+     * @author:zyf
+     * @version:1.0
+     * @Date:2022-09-21
+     * @Description:用于获取对应的备注的一部分
+    */
+    String querypartOfNote(String orderNumber);
+
     /**
      * @author:zyf
      * @version:1.0
@@ -116,4 +133,7 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
 
     //根据运输订单号查询当前物资,判断出厂是否需要装货
     List<String> getMaterial(String orderNumber);
+
+    Integer getCanWorkStatus(BigDecimal orderId);
+
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.java

@@ -19,4 +19,7 @@ public interface TmstruckTotalResultMapper extends IBaseMapper<TmstruckTotalResu
     List<Map<String,Object>> selectCountList(Map<String,Object> map);
     //查询包月作业
     List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue);
+
+    //查询倒库
+    List<Map<String,Object>>  getAllReverseResult(Map<String,Object> map);
 }

+ 9 - 0
src/main/java/com/steerinfo/dil/service/IStatisticalReportService.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -74,5 +75,13 @@ public interface IStatisticalReportService {
     List<Map<String, Object>> getInwardSaleSteelReport(Map<String, Object> map);
 
     List<Map<String, Object>> getInwardSaleSteelOrder(Map<String, Object> map);
+
+    Map<String,Object> getSteelReportDetailsBySmId(BigDecimal saleOrderMaterialId);
+
+    //获取收货地址
+    String getaddress(BigDecimal addressid);
+
+    //获取车牌号
+    String getcapacityNumber(BigDecimal capacitynumber);
 }
 

+ 3 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckTotalResultService.java

@@ -16,4 +16,7 @@ public interface ITmstruckTotalResultService {
     List<Map<String,Object>> selectCountList(Map<String,Object> map);
     //查询包月作业
     List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue);
+
+    //查询倒库作业
+    List<Map<String, Object>> getAllReverseResult(Map<String, Object> mapValue);
 }

+ 38 - 0
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -254,6 +254,8 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         return saleSteelReport;
     }
 
+
+
     @Override
     public List<Map<String, Object>> getInwardSaleSteelReport(Map<String, Object> map) {
         return statisticalReportMapper.getInwardSaleSteelReport(map);
@@ -282,4 +284,40 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         }
         return results;
     }
+
+    @Override
+    public Map<String,Object> getSteelReportDetailsBySmId(BigDecimal saleOrderMaterialId) {
+        //获取主表数据
+        Map<String,Object> map = statisticalReportMapper.getSteelReportDetailsBySmId(saleOrderMaterialId);
+        //获取子表数据
+        List<Map<String,Object>> mapList = statisticalReportMapper.getSteelReportDetailsListBySmId(saleOrderMaterialId);
+        if (map != null){
+            if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("queueStartTime") != null && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() == 0){
+                map.put("orderStatus","排队中");
+                map.put("orderStatusTime",map.get("queueStartTime"));
+            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && DataChange.dataToBigDecimal(map.get("lineSqe")).intValue() != 0 && map.get("outGateTime") == null){
+                map.put("orderStatus","已进厂");
+                map.put("orderStatusTime",map.get("entryGateTime"));
+            }else if(DataChange.dataToBigDecimal(map.get("orderStatu")).intValue() == 5 && map.get("outGateTime") != null){
+                map.put("orderStatus","已出厂");
+                map.put("orderStatusTime",map.get("outGateTime"));
+            }
+            map.put("mapList",mapList);
+        }
+        return map;
+    }
+
+    @Override
+    public String getaddress(BigDecimal addressid) {
+        String address = statisticalReportMapper.queryAddress(addressid);
+        return address;
+    }
+
+    @Override
+    public String getcapacityNumber(BigDecimal capacitynumber) {
+        String s = statisticalReportMapper.queryCapacityNumber(capacitynumber);
+        return s;
+    }
+
+
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -161,7 +161,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         String capacityNumber = (String) mesMap.get("capacityNumber");
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
         int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
-        if(orderType == 11){//内转计时调用方法
+        if(orderType == 11 || orderType == 15 || orderType == 16){//内转计时调用方法
             return orderType11Use(map, mesMap, capacityNumber, resultTotalId);
         }
         else if (orderType == 21){//调用计时作业方法

+ 3 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -210,7 +210,9 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 Double nowNetWeight = tmstruckLeaveFactoryResultMapper.getNowNetWeight(orderNumber);
                 // 得到销售订单下单总重量
                 Double saleWeight = tmstruckLeaveFactoryResultMapper.getSaleMaterialWeight(saleOrderId);
-                if (allNetWeight + nowNetWeight > saleWeight) {
+                //判断当前订单是否可出厂
+                Integer canWork = tmstruckLeaveFactoryResultMapper.getCanWorkStatus(DataChange.dataToBigDecimal(mesMap.get("orderId")));
+                if (allNetWeight + nowNetWeight > saleWeight && canWork == null) {
                     throw new Exception("该销售订单吨位已超额,不允许出厂,请提醒司机走流程卸货!");
                 }
             }

+ 23 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckSelfMachineService.java

@@ -3,13 +3,17 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
 import com.steerinfo.dil.service.ITmstruckSelfMachineService;
+import org.checkerframework.checker.regex.RegexUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author luobang
@@ -49,7 +53,25 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
     public Map<String, Object> getDeliveryOrder(String orderNumber) {
         //1.根据运输订单号查询主干信息
         Map<String,Object> map = tmstruckLeaveFactoryResultMapper.getDeliveryOrder(orderNumber);
-        map.put("note",tmstruckLeaveFactoryResultMapper.querynote(orderNumber));
+        //备注信息的查找以及修改
+        String note=tmstruckLeaveFactoryResultMapper.querynote(orderNumber);
+        Date date=tmstruckLeaveFactoryResultMapper.queryDate(orderNumber);
+        if (date!=null&&!("".equals(date))){
+            map.put("note",note);
+        }else {
+            String regex="\\d{1,2}\\.\\d{1,2}";
+            Pattern pattern=Pattern.compile(regex);
+            Matcher matcher=pattern.matcher(note);
+            StringBuffer stringBuffer=new StringBuffer();
+            stringBuffer.append(note);
+            String partOfNote = tmstruckLeaveFactoryResultMapper.querypartOfNote(orderNumber);
+            while (matcher.find()){
+                String group = matcher.group();
+                /*note=note.replace(group,partOfNote);*/
+                note=matcher.replaceAll(partOfNote);
+            }
+            map.put("note",note);
+        }
         map.put("orderNumber",orderNumber);
         if(map !=null){
             List<Map<String, Object>> deliveryOrderMaterialList = tmstruckLeaveFactoryResultMapper.getDeliveryOrderMaterial(orderNumber);

+ 9 - 6
src/main/java/com/steerinfo/dil/service/impl/TmstruckTimeTaskResultServiceImpl.java

@@ -18,10 +18,8 @@ import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * TmstruckTimeTskResult服务实现:
@@ -60,6 +58,11 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
     private static final String TwoHour="16吨吊车,12吨吊车,35吨吊车,25吨吊车,70吨吊车,80吨吊车,50吨吊车";
 
     private static final String FourHour="220吨吊车,130吨吊车,120吨吊车,150吨吊车,100吨吊车";
+    private static final Set<String> FourHourSet;
+    static {
+        String arr[]={"220吨吊车","130吨吊车","120吨吊车","150吨吊车","100吨吊车"};
+        FourHourSet=Arrays.stream(arr).collect(Collectors.toSet());
+    }
 
     private static final String DxTemp="达兴能源二厂,化工厂";
 
@@ -349,7 +352,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
                 }
                 //特殊情况,根据不同计时规则重新计算
                 //4小时规则:100吨以上吊车
-                if (FourHour.contains(capacityTypeName)){
+                if (FourHourSet.contains(capacityTypeName)){
                     if (hour<4&&hour>=0){
                         //1、如实际使用时间不足4小时按照(使用时间+4小时)进行最终结算
                         tmstruckTimeTaskResult.setResultAboutTime(4+hour+"小时"+minutes+"分钟");
@@ -568,7 +571,7 @@ public class TmstruckTimeTaskResultServiceImpl implements ITmstruckTimeTaskResul
                         tmstruckTimeTaskResult1.setResultAboutTime(hour+"小时"+minutes+"分钟");
                     }
                     //如果为100吨以上吊车
-                }else if (FourHour.contains(capacityTypeName)){
+                }else if (FourHourSet.contains(capacityTypeName)){
                     //1、如实际使用时间不足4小时按照(使用时间+4小时)进行最终结算
                     if (hour<0) {
                         tmstruckTimeTaskResult1.setResultAboutTime("4小时");

+ 10 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckTotalResultServiceImpl.java

@@ -56,4 +56,14 @@ public class TmstruckTotalResultServiceImpl implements ITmstruckTotalResultServi
     public List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue) {
         return tmstruckTotalResultMapper.getTmstruckMonthResult(mapValue);
     }
+
+    /**
+     * 展示倒库作业报表
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getAllReverseResult(Map<String, Object> mapValue) {
+        return tmstruckTotalResultMapper.getAllReverseResult(mapValue);
+    }
 }

+ 3 - 3
src/main/java/com/steerinfo/dil/util/DataChange.java

@@ -286,8 +286,8 @@ public class DataChange {
     public static void queryDataByDateTimeYestDay(String startTime, String endTime, Map<String, Object> map,SimpleDateFormat sdf){
         SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
         if (startTime != null && !"null".equals(startTime) && endTime != null && !"null".equals(endTime)) {
-            map.put("startDate", sdf.format(new Date(Long.parseLong(startTime))));
-            map.put("endDate", sdf.format(new Date(Long.parseLong(endTime))));
+            map.put("startDate", sdfDate.format(new Date(Long.parseLong(startTime))));
+            map.put("endDate", sdfDate.format(new Date(Long.parseLong(endTime))));
         }
         //如果开始时间和结束时间有且只有一个为空 则只查那天的数据
         else if((startTime != null && !"null".equals(startTime)) || (endTime != null && !"null".equals(endTime))){
@@ -301,7 +301,7 @@ public class DataChange {
             //如果两者时间都为空,则查询当天和昨天数据
             //String yesDate = sdfDate.format(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24));
             String nowDate = sdfDate.format(new Date());
-            map.put("oneDate", nowDate + " 08:00:00");
+            map.put("oneDate", nowDate);
 
         }
     }

+ 142 - 5
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -416,7 +416,6 @@
         WHERE OO.ORDER_TYPE = #{orderTypee}
         AND ASO.SHIPPER_ID = #{shipperId}
         AND OO.ORDER_STATUS IN (2,5)
-        AND TWR.RESULT_NET_WEIGHT IS NOT NULL
         <if test="orderTypee!=null and orderTypee==1">
             AND ASM.MATERIAL_NUMBER IS NOT NULL
         </if>
@@ -1888,6 +1887,7 @@
        SELECT * FROM (
              SELECT distinct OO.ORDER_ID "orderId",
                     ASO.SALE_ORDER_ID "saleOrderId",
+                    to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
                     ASO.SALE_NUMBER "saleOrderNo",
                     ASM.SALE_MATERIAL_ID "saleMaterialId",
                     ASM.MATERIAL_NUMBER "materialNum",
@@ -1931,13 +1931,16 @@
                     TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
                     ASOM.SALE_DATE_OF_RECEIPT   "saleDateReceipt",
                     R_CARRIER.CARRIER_ID        "carrierId",
+                    OO.CAPACITYIDS "capacityNumbers",
                     NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
+                    OO.CAN_WORK     "canwork",
                     OO.ORDER_STATUS              "carStatus",
+                    DECODE(OO.PRINTNUMBER,1,'已打印','未打印') "isPrintDelivery",
                     DECODE(ASO.SALE_ORDER_STATUS,1,'销售订单已上报',
                                                  2,'销售已提交',
                                                  4,'财务已审批',
                                                  0,'销售订单未上报') "saleOrderStatus",
-                    DECODE(OO.ORDER_STATUS ,2,'已完成',4,'已派发',5,'已接收',0,'未派发',7,'已关闭',8,'已关闭')
+                    DECODE(OO.ORDER_STATUS ,2,'作业已完成',4,'物流公司已派单',5,'司机已接单',0,'未派发',7,'已关闭',8,'已关闭')
                                                                   "orderStatus"
                     FROM AMS_SALE_ORDER ASO
                     LEFT JOIN RMS_CONSIGNEE RC
@@ -1964,6 +1967,7 @@
                               ON RM.MATERIAL_ID = ASM.MATERIAL_ID
                     LEFT JOIN OMSTRUCK_ORDER OO
                               ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+                              AND NVL(OO.ORDER_TYPE,0) in (0,1)
                     LEFT JOIN RMS_CAPACITY RCA
                               ON RCA.CAPACITY_ID = OO.CAPACITY_ID
                     LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
@@ -1986,14 +1990,14 @@
                           AND ASO.DELETED = 0
                           and ASM.SALE_MATERIAL_ID IS NOT NULL
                     <if test="oneDate != null">
-                        and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = ASOM.SALE_DATE_OF_RECEIPT
+                        and to_date(#{oneDate}, 'yyyy-mm-dd') &lt; = to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
                     </if>
                     <if test="carrierSsoId != null">
                         and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
                     </if>
                     <if test="startDate != null">
-                        and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;=  ASOM.SALE_DATE_OF_RECEIPT
-                        and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >=  ASOM.SALE_DATE_OF_RECEIPT
+                        and to_date(#{startDate}, 'yyyy-mm-dd') &lt;=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
+                        and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
                     </if>
                     <if test="remark != null" >
                         and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION LIKE #{remark}
@@ -2283,5 +2287,138 @@
         ORDER BY
         oo.ORDER_ID DESC)
     </select>
+    <select id="getSteelReportDetailsBySmId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        SELECT distinct OO.ORDER_ID "orderId",
+        ASO.SALE_ORDER_ID "saleOrderId",
+        ASO.SALE_NUMBER "saleOrderNo",
+        RC.CONSIGNEE_COMPANY_NAME "consigneeName",
+        ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
+        RS.SHIPPER_NAME "shipperName",
+        RCA.CAPACITY_NUMBER "capacityNo",
+        NVL(OO.CAPACITY_ID,0)  "capacityIds",
+        OO.CAPACITY_ID "capacityId",
+        ASOM.SALE_ORDER_MATERIAL_TRUCK_NO "truckNo",
+        ASOM.SALE_ORDER_CONSIGNEE_TEL "consigneeTel",
+        OO.ORDER_LINE_SEQUENCE "lineSequence",
+        ASO.SALE_ORDER_ISSELF_MENTION "isSelfMention",
+        RSR.SALER_NAME "saler",
+        R_CARRIER.CARRIER_ABBREVIATION "carrierName",
+        OO.ORDER_NUMBER "orderNo",
+        RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS AS "addressPlace",
+        RRP.PLACE_ID "placeId",
+        RRP.ADDRESS_DELIVERY_ADDRESS "place",
+        RRA.ADDRESS_ID "shipperAddressId",
+        RRA.ADDRESS_PROVINCE "addressProvince",
+        RRA.ADDRESS_DISTRICT "addressDistrict",
+        RRA.ADDRESS_TOWN "addressTown",
+        OO.ORDER_LINE_SEQUENCE "lineSqe",
+        OO.DRIVER_TEL "capacityTel",
+        TLFR.RESULT_OUT_GATE_TIME    "outGateTime",
+        TER.RESULT_ENTRY_GATE_TIME   "entryGateTime",
+        QQR.RESULT_START_TIME       "queueStartTime",
+        TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
+        TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
+        ASOM.SALE_DATE_OF_RECEIPT   "saleDateReceipt",
+        R_CARRIER.CARRIER_ID        "carrierId",
+        NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
+        OO.ORDER_STATUS              "carStatus",
+        DECODE(ASO.SALE_ORDER_STATUS,1,'销售订单已上报',
+        2,'销售已提交',
+        4,'财务已审批',
+        0,'销售订单未上报') "saleOrderStatus",
+        DECODE(nvl(OO.ORDER_STATUS,0) ,2,'已完成',4,'已派发',5,'已接收',0,'未派发',7,'已关闭',8,'已关闭')
+        "orderStatus",
+        oo.ORDER_STATUS "orderStatu"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN RMS_CONSIGNEE RC
+        ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
+        LEFT JOIN RMS_SHIPPER RS
+        ON RS.SHIPPER_ID = ASO.SHIPPER_ID
+        LEFT JOIN RMS_SALER RSR
+        ON RSR.SALER_ID = ASO.SALER_ID
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+        ON RRA.ADDRESS_ID = RRP.ADDRESS_ID
+        LEFT JOIN AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER R_CARRIER
+        ON R_CARRIER.CARRIER_ID = ADSO.CARRIER_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        AND NVL(OO.ORDER_TYPE,0) in (0,1)
+        LEFT JOIN RMS_CAPACITY RCA
+        ON RCA.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN QMS_QUEUE_RESULT QQR
+        ON QQR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+        ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+        ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
+        ON TAR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
+        ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
+        WHERE ASO.SALE_TYPE = 1
+        AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
+    <select id="getSteelReportDetailsListBySmId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        SELECT distinct
+        ASM.SALE_MATERIAL_ID "saleMaterialId",
+        ASM.MATERIAL_NUMBER "materialNum",
+        ASM.EAS_PRIMARY_ID "closeEntryId",
+        ASM.DELETED "deletedStatus",
+        RM.MATERIAL_ID  "materialId",
+        RM.MATERIAL_NAME  "materialName",
+        RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL "materialSpe",
+        TWR.RESULT_GROSS_WEIGHT "grossWeight",
+        TWR.RESULT_GROSS_WEIGHT_TIME "grossWeightTime",
+        TWR.RESULT_TARE_WEIGHT       "tareWeight",
+        TWR.RESULT_TARE_WEIGHT_TIME  "tareWeightTime",
+        TWR.RESULT_NET_WEIGHT        "netWeight",
+        TLR.RESULT_LOAD_END_TIME     "loadTime"
+        FROM AMS_SALE_ORDER ASO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = ASM.MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        AND NVL(OO.ORDER_TYPE,0) in (0,1)
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        AND TWR.MATERIAL_ID = RM.MATERIAL_ID
+        LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+        ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        AND TLR.MATERIAL_ID = RM.MATERIAL_ID
+        WHERE ASO.SALE_TYPE = 1
+        AND ASO.DELETED = 0
+        and ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </select>
 
+    <select id="queryAddress" resultType="java.lang.String">
+        select RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT||RRA.ADDRESS_TOWN
+        ||RRP.ADDRESS_DELIVERY_ADDRESS "realAddress"
+        from RMS_RECEIVE_PLACE RRP
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+        ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
+        WHERE RRP.PLACE_ID=#{addressid}
+    </select>
+
+    <select id="queryCapacityNumber" resultType="java.lang.String">
+        select CAPACITY_NUMBER from RMS_CAPACITY
+        where CAPACITY_ID=#{capacitynumber}
+    </select>
 </mapper>

+ 21 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1243,7 +1243,6 @@
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
                            ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
         WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
-          AND RM.MATERIAL_NAME = '钒渣'
           AND OO.ORDER_TYPE = 2
           AND TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
     </select>
@@ -1326,6 +1325,23 @@
           on aso.SALE_ORDER_ID =  asom.sale_order_id
          where oo.order_number = #{orderNumber}
     </select>
+    <select id="queryDate" resultType="java.util.Date">
+        select WOR.INSERT_TIME
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN WMSP_OUTBOUND_RESULT WOR
+        ON WOR.BILL_LADING_ID=OO.ORDER_ID
+        where OO.ORDER_NUMBER=#{orderNumber}
+        and to_char(WOR.INSERT_TIME,'yyyy-MM-dd HH24:MI:SS')
+        between to_char(trunc(OO.INSERT_TIME , 'dd'),'yyyy-MM-dd HH24:mi:ss')
+        and to_char(trunc(OO.INSERT_TIME , 'dd')+1+8/24,'yyyy-MM-dd HH24:mi:ss')
+    </select>
+    <select id="querypartOfNote" resultType="java.lang.String">
+        select extract(month from OO.INSERT_TIME+1)
+        ||'.'||
+        extract(DAY from OO.INSERT_TIME +1) "partOfNote"
+        from OMSTRUCK_ORDER OO
+        where OO.ORDER_NUMBER=#{orderNumber}
+    </select>
     <select id="queryNumber" resultType="java.math.BigDecimal">
         select oom.order_material_number  "materialNumber"
         from omstruck_order oo
@@ -1355,4 +1371,8 @@
            LEFT JOIN RMS_MATERIAL_CHECKLOAD RMC ON RM.MATERIAL_NAME LIKE '%' || RMC.MATERIAL_NAME ||'%'
         WHERE ORDER_TYPE=13 AND ORDER_STATUS=5 AND RMC.MATERIAL_NAME IS NOT NULL AND OO.ORDER_NUMBER=#{orderNumber}
     </select>
+    <select id="getCanWorkStatus" resultType="java.lang.Integer" parameterType="decimal">
+        SELECT OO.CAN_WORK FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>

+ 123 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml

@@ -459,7 +459,129 @@
                     left join amstruck_inward_requirement air on arp.requirement_plan_id = air.requirement_id
     where oo.order_type = 11 and air.requirement_type = '包月'
   </select>
-
+    <select id="getAllReverseResult" resultType="java.util.Map">
+        SELECT * FROM (
+                          SELECT
+                              OO.ORDER_NUMBER "orderNumber",
+                              RC.CAPACITY_NUMBER "capacityNumber",
+                              RM.MATERIAL_NAME "materialName",
+                              CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
+                              OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+                              SUM(RMS.MATERIAL_THEORETICAL_WEIGHT)/1000 || '吨' "weight",
+                              RS.SHIPPER_NAME	"shipperName",
+                              RW1.WAREHOUSE_NAME	"loadName",
+                              RW.WAREHOUSE_NAME	"unloadName",
+                              TLR.RESULT_LOAD_START_TIME "loadStartTime",
+                              TLR.RESULT_LOAD_END_TIME "loadEndTime",
+                              TUR.RESULT_START_TIME "unloadStartTime",
+                              TUR.RESULT_END_TIME"unloadEndTime"
+                          from OMSTRUCK_ORDER OO
+                                   LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID=TTR.ORDER_ID
+                                   LEFT JOIN TMSTRUCK_LOAD_RESULT TLR ON TLR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+                                   LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR ON TUR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+                                   LEFT JOIN WMSP_OUTBOUND_RESULT WOR ON WOR.BILL_LADING_ID=OO.ORDER_ID
+                                   LEFT JOIN WMSP_OUTBOUND_SCAN_RESULT WOSR ON WOSR.OUTBOUND_RESULT_ID=WOR.RESULT_ID
+                                   LEFT JOIN WMSP_INBOUND_SCAN_RESULT WISR ON WOSR.INBOUND_RESULT_ID=WISR.INBOUND_RESULT_ID
+                                   LEFT JOIN RMS_MATERIAL_STEEL RMS ON RMS.MATERIAL_STEEL_ID=WISR.MATERIAL_ID
+                                   LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OOM.ORDER_ID=OO.ORDER_ID
+                                   LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID=RMS.MATERIAL_ID
+                                   LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID=OO.CAPACITY_ID
+                                   LEFT JOIN AMSTRUCK_INWARD_PLAN AIP ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
+                                   LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP ON ARP.PLAN_ID = AIP.PLAN_ID
+                                   LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                                   LEFT JOIN RMS_SHIPPER RS ON RS.SHIPPER_ID = AIR.REQUIREMENT_SHIPPER_ID
+                                   LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+                                   LEFT JOIN RMS_WAREHOUSE RW ON RW.WAREHOUSE_ID = ARM.REQUIREMENT_UNLOAD_UNIT_ID
+                                   LEFT JOIN RMS_WAREHOUSE RW1 ON RW1.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
+                          WHERE OO.ORDER_TYPE=25 AND OO.ORDER_STATUS=2
+                            <if test="oneDate != null">
+                            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TUR.RESULT_END_TIME
+                            </if>
+                            <if test="startDate != null">
+                            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TUR.RESULT_END_TIME
+                            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TUR.RESULT_END_TIME
+                            </if>
+                          GROUP BY OO.ORDER_NUMBER,RC.CAPACITY_NUMBER,OOM.ORDER_MATERIAL_NUMBER,RM.MATERIAL_NAME,RM.MATERIAL_MODEL,MATERIAL_SPECIFICATION,RW1.WAREHOUSE_NAME,RW.WAREHOUSE_NAME,RS.SHIPPER_NAME,TLR.RESULT_LOAD_START_TIME,
+                                   TLR.RESULT_LOAD_END_TIME,TUR.RESULT_START_TIME,TUR.RESULT_END_TIME
+                          ORDER BY TUR.RESULT_END_TIME DESC
+                      )
+        <where>
+            <if test="orderNumber != null">
+                and
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="shipperName != null">
+                and
+                <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
+                    "shipperName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialMC != null">
+                <foreach collection="materialMC" item="item" open="(" separator="or" close=")">
+                    "materialMC" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialNumber != null">
+                <foreach collection="materialNumber" item="item" open="(" separator="or" close=")">
+                    "materialNumber"  = #{item}
+                </foreach>
+            </if>
+            <if test="weight != null">
+                <foreach collection="weight" item="item" open="(" separator="or" close=")">
+                    "weight" = #{item}
+                </foreach>
+            </if>
+            <if test="shipperName != null">
+                <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
+                    "shipperName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="loadName != null">
+                <foreach collection="loadName" item="item" open="(" separator="or" close=")">
+                    "loadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="unloadName != null">
+                <foreach collection="unloadName" item="item" open="(" separator="or" close=")">
+                    "unloadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="loadStartTime != null">
+                <foreach collection="loadStartTime" item="item" open="(" separator="or" close=")">
+                    "loadStartTime" = #{item}
+                </foreach>
+            </if>
+            <if test="unloadStartTime != null">
+                <foreach collection="unloadStartTime" item="item" open="(" separator="or" close=")">
+                    "unloadStartTime" = #{item}
+                </foreach>
+            </if>
+            <if test="loadEndTime != null">
+                <foreach collection="loadEndTime" item="item" open="(" separator="or" close=")">
+                    "loadEndTime" = #{item}
+                </foreach>
+            </if>
+            <if test="unloadEndTime != null">
+                <foreach collection="unloadEndTime" item="item" open="(" separator="or" close=")">
+                    "unloadEndTime" = #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
     <sql id="orderBy">
         <if test="orderField != null and orderField != ''">
             order by "${orderField}"