Przeglądaj źródła

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU1/DAL-TMS-TRUCK-API

luobang 3 lat temu
rodzic
commit
e995c652a3

+ 161 - 1
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -83,7 +83,8 @@ public class StatisticalReportController extends BaseRESTfulController {
                                        String carrierSsoId,
                                           Integer orderType,
                                           Integer shipperId,
-                                          String receiveName
+                                          String receiveName,
+                                          String materialName
     ){
         if(carrierSsoId != null){
             if(!"null".equals(carrierSsoId)){
@@ -93,6 +94,9 @@ public class StatisticalReportController extends BaseRESTfulController {
         if (receiveName != null && !"null".equals(receiveName)) {
             mapValue.put("receivName","%" + receiveName + "%");
         }
+        if (materialName != null && !"".equals(materialName) && !"null".equals(materialName)) {
+            mapValue.put("remark","%" + materialName + "%");
+        }
         mapValue.put("orderType",orderType);
         mapValue.put("shipperId",shipperId);
         DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
@@ -297,6 +301,162 @@ public class StatisticalReportController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, report);
         return success(pageList);
     }
+
+    @ApiOperation(value="查询该组织机构下的销售统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId", value = "486", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getSaleOrderList")
+    public RESTfulResult getSaleOrderList(@RequestBody(required=false) Map<String,Object> mapValue,
+                                         Integer apiId,
+                                         Integer pageNum,
+                                         Integer pageSize,
+                                         String startTime,
+                                         String endTime,
+                                         String orgCode,
+                                         String isPage,
+                                          String index
+    ){
+         if (orgCode!=null&&!"null".equals(orgCode)){
+             mapValue.put("orgCode",orgCode);
+         }
+        if (index!=null&&!"null".equals(index)){
+            mapValue.put("index",index);
+        }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue,sdfDateTime);//根据时间段查询数据
+        if("yes".equals(isPage)){
+            return success(statisticalReportService.getSaleOrderList(mapValue));
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getSaleOrderList(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData4(apiId, null, report);
+        return success(pageList);
+    }
+
+
+    @ApiOperation(value="查询该组织机构下的采购统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId", value = "486", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getPurchaseOrderList")
+    public RESTfulResult getPurchaseOrderList(@RequestBody(required=false) Map<String,Object> mapValue,
+                                          Integer apiId,
+                                          Integer pageNum,
+                                          Integer pageSize,
+                                          String startTime,
+                                          String endTime,
+                                          String orgCode,
+                                              String isPage,
+                                              String index
+    ){
+        if (orgCode!=null&&!"null".equals(orgCode)){
+            mapValue.put("orgCode",orgCode);
+        }
+        if (index!=null&&!"null".equals(index)){
+            mapValue.put("index",index);
+        }
+        if ("yes".equals(isPage)){
+            return success(statisticalReportService.getPurchaseOrderList(mapValue));
+        }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue,sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getPurchaseOrderList(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData4(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询该组织机构下的内转统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId", value = "s", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getPurchaseInwardList")
+    public RESTfulResult getInwardList(@RequestBody(required=false) Map<String,Object> mapValue,
+                                              Integer apiId,
+                                              Integer pageNum,
+                                              Integer pageSize,
+                                              String startTime,
+                                              String endTime,
+                                              String orgCode,
+                                               String isPage,
+                                             String index
+    ){
+        if (index!=null&&!"null".equals(index)){
+            mapValue.put("index",index);
+        }
+        if (orgCode!=null&&!"null".equals(orgCode)){
+            mapValue.put("orgCode",orgCode);
+        }
+        if ("yes".equals(isPage)){
+            return  success(statisticalReportService.getPurchaseInwardList(mapValue));
+        }
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue,sdfDateTime);//根据时间段查询数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getPurchaseInwardList(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData4(apiId, null, report);
+        return success(pageList);
+    }
+
+    @ApiOperation(value="查询该组织机构下的内转统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId", value = "s", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getInwardInFactory")
+    public RESTfulResult getInwardInFactory(@RequestBody(required=false) Map<String,Object> mapValue,
+                                       Integer apiId,
+                                       Integer pageNum,
+                                       Integer pageSize,
+                                       String startTime,
+                                       String endTime,
+                                       String orgCode,
+                                       String isPage,
+                                       String index
+    ){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue,sdfDateTime);//根据时间段查询数据
+        if (index!=null&&!"null".equals(index)){
+            mapValue.put("index",index);
+        }
+        if (orgCode!=null&&!"null".equals(orgCode)){
+            mapValue.put("orgCode",orgCode);
+        }
+        if ("yes".equals(isPage)){
+            return  success(statisticalReportService.getInwardInFactory(mapValue));
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getInwardInFactory(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData4(apiId, null, report);
+        return success(pageList);
+    }
+
+
+
+
+
+
+
+
+
+
+
     @ApiOperation(value="查询拼装车统计报表")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),

+ 1 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckMeasureCommissionController.java

@@ -48,7 +48,7 @@ public class TmstruckMeasureCommissionController extends BaseRESTfulController {
         return success(allMeasureCommission);
     }
 
-    @ApiOperation(value="查询计量委托 ")
+    @ApiOperation(value="发送计量委托给达兴能源 ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
     })

+ 13 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.controller;
 import com.steerinfo.dil.feign.ESFeign;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
 
+import com.steerinfo.dil.service.impl.TmstruckWeightResultServiceImpl;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.ColumnDataUtil;
 import com.steerinfo.dil.util.PageListAdd;
@@ -38,7 +39,7 @@ import java.util.Map;
 public class TmstruckWeightResultController extends BaseRESTfulController {
 
     @Autowired
-    ITmstruckWeightResultService tmstruckWeightResultService;
+    TmstruckWeightResultServiceImpl tmstruckWeightResultService;
 
     @Autowired
     ESFeign esFeign;
@@ -136,6 +137,17 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         int i =0;
         return  success(i);
     }
+
+    @PostMapping("/update")
+    public RESTfulResult update(@RequestBody(required = false) Map<String, Object> map){
+        try {
+            tmstruckWeightResultService.updateSteelTruckWeightResult(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed();
+        }
+        return  success();
+    }
 }
 
   

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

@@ -56,4 +56,17 @@ public interface StatisticalReportMapper {
     List<Map<String,Object>> getCapacityRemark(Map<String,Object> map);
 
     List<Map<String, Object>> getLoaderForResultDetail(Map<String, Object> mapValue);
+
+    //查看该组织架构下的销售订单统计报表
+    List<Map<String, Object>> getSaleOrderList(Map<String, Object> mapValue);
+
+    //查看该组织架构下的采购订单统计报表
+    List<Map<String, Object>> getPurchaseOrderList(Map<String, Object> mapValue);
+
+    //查看该组织架构下的内转统计报表
+    List<Map<String, Object>> getPurchaseInwardList(Map<String, Object> mapValue);
+
+
+    //查看该组织架构下的厂内内转统计报表
+    List<Map<String, Object>> getInwardInFactory(Map<String, Object> mapValue);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.java

@@ -86,4 +86,6 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
     //修改排队实绩表添加排队结束时间
     int updateQQR(Object resultId);
 
+    Integer getSaleOrderStatus(BigDecimal orderId);
+
 }

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

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.mapper;
 
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import io.swagger.models.auth.In;
@@ -93,5 +94,24 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //通过总实绩ID查询订单类型
     Integer getOrderTypeByTotalId(BigDecimal resultTotalId);
 
+    //通过订单ID查询总实绩ID以及计量实绩最后一拼的毛重路段顺序号
+    Map<String, Object> getOldWeightMes(BigDecimal orderId);
 
+    //通过总实绩ID修改出厂实绩路段顺序号
+    int updateLeaveFactorySqe(TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult);
+
+    BigDecimal getOutBoundResult(BigDecimal orderId);
+
+    int deleteWeightResult(@Param("resultTotalId")BigDecimal resultTotalId,@Param("sqe") int sqe);
+
+    int deleteLoadResult(@Param("resultTotalId")BigDecimal resultTotalId,@Param("sqe") int sqe);
+
+    int deleteOutBoundResult(@Param("boundResultId")BigDecimal boundResultId,@Param("deleteMaterialId") BigDecimal deleteMaterialId);
+
+    int addOutBoundResult(Map<String, Object> addMap);
+
+    @Select("select seq__WMSP_OUTBOUND_RESUL_TMATRIAL.nextval from dual")
+    BigDecimal getOutBoundMaterialMaxId();
+
+    int updateOutBoundResult(Map<String, Object> updateMap);
 }

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

@@ -52,5 +52,20 @@ public interface IStatisticalReportService {
     List<Map<String, Object>> getInwardReportForAssemble(Map<String, Object> mapValue);
 
     List<Map<String, Object>> getLoaderForResultDetail(Map<String, Object> mapValue);
+
+    //查询该组织机构下的销售统计报表
+    List<Map<String, Object>> getSaleOrderList(Map<String, Object> mapValue);
+
+    //查询该组织机构下的采购统计报表
+    List<Map<String, Object>> getPurchaseOrderList(Map<String, Object> mapValue);
+
+
+    //查询该组织机构下的内转统计报表
+    List<Map<String, Object>> getPurchaseInwardList(Map<String, Object> mapValue);
+
+
+    //查看该组织机构下的纯内转统计报表
+    List<Map<String,Object>> getInwardInFactory(Map<String,Object> map);
+
 }
 

+ 46 - 19
src/main/java/com/steerinfo/dil/service/impl/StatisticalReportImpl.java

@@ -77,6 +77,26 @@ public class StatisticalReportImpl implements IStatisticalReportService {
     @Override
     public List<Map<String, Object>> getAllSaleReport(Map<String, Object> map) {
         List<Map<String, Object>> mapList = statisticalReportMapper.getAllSaleReport(map);
+        for(Map<String, Object> map1 : mapList) {
+            if ( map1.get("resultEntryGateTime") == null) {
+                map1.put("transportStatus", "未进厂");
+                continue;
+            }
+            if (map1.get("resultOutGateTime") == null) {
+                map1.put("transportStatus", "已进厂");
+                continue;
+            }
+            if (map1.get("arrivalAddress") == null) {
+                map1.put("transportStatus", "已出厂");
+                continue;
+            }
+            if (map1.get("receiptAddress") == null) {
+                map1.put("transportStatus", "已抵达");
+                continue;
+            }
+            else
+                map1.put("transportStatus", "已签收");
+        }
         for (Map<String, Object> mesMap : mapList) {
             calculateDifferenceTime(mesMap);
         }
@@ -86,25 +106,6 @@ public class StatisticalReportImpl implements IStatisticalReportService {
     @Override
     public List<Map<String, Object>> getAllSaleReportNum(Map<String, Object> map) {
          List<Map<String, Object>> listMap = statisticalReportMapper.getAllSaleReport(map);
-         for(Map<String, Object> map1 : listMap) {
-             if ( map1.get("resultEntryGateTime") == null) {
-                 map1.put("transportStatus", "未进厂");
-                 continue;
-             }
-             if (map1.get("resultOutGateTime") == null) {
-                 map1.put("transportStatus", "已进厂");
-                 continue;
-             }
-             if (map1.get("arrivaladdress") == null) {
-                 map1.put("transportStatus", "运输中");
-                 continue;
-             }
-             if (map1.get("receiveTime") == null) {
-                 map1.put("transportStatus", "已抵达");
-                 continue;
-             } else
-                 map1.put("transportStatus", "已签收");
-         }
          return listMap;
     }
 
@@ -217,4 +218,30 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         return statisticalReportMapper.getLoaderForResultDetail(mapValue);
     }
 
+
+    //查看该组织架构下的销售订单统计报表
+    @Override
+    public List<Map<String, Object>> getSaleOrderList(Map<String, Object> mapValue) {
+        return statisticalReportMapper.getSaleOrderList(mapValue);
+    }
+
+    //查看该组织架构下的采购订单统计报表
+    @Override
+    public List<Map<String, Object>> getPurchaseOrderList(Map<String, Object> mapValue) {
+        return  statisticalReportMapper.getPurchaseOrderList(mapValue);
+    }
+
+    //查看该组织架构下的采购内转统计报表
+    @Override
+    public List<Map<String, Object>> getPurchaseInwardList(Map<String, Object> mapValue) {
+        return  statisticalReportMapper.getPurchaseInwardList(mapValue);
+    }
+
+    //查看该组织架构下的内转统计报表
+    @Override
+    public List<Map<String, Object>> getInwardInFactory(Map<String, Object> mapValue) {
+        return  statisticalReportMapper.getInwardInFactory(mapValue);
+    }
+
+
 }

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

@@ -74,7 +74,6 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         tmstruckEnfactoryResult.setGatepostId(new BigDecimal(gatepostId));
         // 添加路段顺序号
         tmstruckEnfactoryResult.setSegmenSqe(DataChange.dataToBigDecimal(map.get("segmentSqe")));
-        System.out.println(DataChange.dataToBigDecimal(map.get("segmentSqe")));
         return tmstruckEnfactoryResultMapper.insertSelective(tmstruckEnfactoryResult);
     }
 
@@ -164,6 +163,13 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         else if (orderType == 21){//调用计时作业方法
             return orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
         }
+        //如果订单类型为2 则需要财务公司审核才能进厂
+        if(orderType == 2 || orderType == 1){
+            Integer saleOrderStatus = tmstruckEnfactoryResultMapper.getSaleOrderStatus(DataChange.dataToBigDecimal(mesMap.get("orderId")));
+            if(saleOrderStatus != 4){
+               throw new Exception("审批未通过不能进厂!");
+            }
+        }
         Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(resultTotalId);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");

+ 8 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -65,7 +65,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     //给达兴发委托
     private static final List<Integer> judgeDaXinNum = Arrays.asList(7, 18);
 
-    private static final String judgeCoke = "一厂焦炭库";
+    //销售焦炭、化产品 判断一厂二厂委托
+    private static final String judgeCoke = "一厂";
 
     //根据门来判断委托发送依据
     public static final List<Integer> daGangGatepost = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 14);
@@ -141,7 +142,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         //获取当前订单是属于哪个厂区订单
         Map<String, Object> mesMap = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
         if(mesMap.get("saleWarehouse") != null){
-            if(judgeCoke.equals(map.get("saleWarehouse"))){ //如果是一厂焦炭库则向达钢发送委托
+            String saleWarehouse = String.valueOf(mesMap.get("saleWarehouse"));
+            if(saleWarehouse.contains(judgeCoke)){ //如果是一厂焦炭库则向达钢发送委托
+                map.put("isDG", "1"); //标识为老厂区
                 return sendMeasureCommissionMes(map);
             }
         }
@@ -314,6 +317,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("IsAssembly", false);
                 measureCommission.put("deliveryMethod", "磅重交货");
                 measureCommission.put("packagesNum", 0);
+                if(map.get("isDG") != null){
+                    measureCommission.put("factory", "dg");
+                }
                 break;
             case 5:
             case 6:

+ 10 - 6
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -145,13 +145,16 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         String orderNumber = (String) map.get("orderNumber");
         //通过订单号查询订单类型 及总实绩Id
         Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        //卸货时查询是否含有净重
+        BigDecimal totalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+        Integer netWeight = tmstruckUnloadResultMapper.getNetWeightByTotalId(totalId);
+
         int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
         //判断是不是内转
         if(orderType == 11 || orderType == 15 || orderType == 16){
             //如果是内转新增卸货实绩
             Integer sqe = utilsMapper.getLineSequenceByOrderNumber((String) map.get("orderNumber"));
             sqe = sqe == null ? 1 : sqe +1;
-            BigDecimal totalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
             map.put("resultId",tmstruckUnloadResultMapper.selectMaxId());
             map.put("Sqe",sqe);
             map.put("totalId",totalId);
@@ -159,8 +162,7 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             tmstruckUnloadResultMapper.insertSelective(tmstruckUnloadResult);
             //更新路段顺序号
             //内转只要是卸货都直接关闭订单 事务跨服务更改同表同一行数据 不能调用 会锁行
-            //查询是否有净重 如果没有净重更新路段顺序号需要继续回皮 有就结束订单
-            Integer netWeight = tmstruckUnloadResultMapper.getNetWeightByTotalId(totalId);
+            //如果没有净重更新路段顺序号需要继续回皮 有就结束订单
             if(netWeight == 0){
                 mesMap.put("orderLineSequence",sqe);
                 utilsService.updateOrderLineSqeByOrderNumber(mesMap);
@@ -193,9 +195,11 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         }
         map.putAll(dataMap);
         updateUnloadResultBy(map); //更新卸货实绩
-        //路段顺序号 + 1
-        map.put("orderId", mesMap.get("orderId"));
-        utilsService.updateOrderLineSequence(map);
+        if(netWeight == 0){ //如果没有净重 则更新路段顺序号  有则不更新
+            //路段顺序号 + 1
+            map.put("orderId", mesMap.get("orderId"));
+            utilsService.updateOrderLineSequence(map);
+        }
         switch (orderType){
             case 5:
             case 6:

+ 224 - 72
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -2,10 +2,9 @@ package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.QmsFeign;
-import com.steerinfo.dil.mapper.RulesMapper;
-import com.steerinfo.dil.mapper.TmstruckReceiptResultMapper;
-import com.steerinfo.dil.mapper.TmstruckWeightResultMapper;
-import com.steerinfo.dil.mapper.UtilsMapper;
+import com.steerinfo.dil.mapper.*;
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
+import com.steerinfo.dil.model.TmstruckLoadResult;
 import com.steerinfo.dil.model.TmstruckReceiptResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
@@ -39,8 +38,6 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     @Autowired
     private TmstruckWeightResultMapper tmstruckWeightResultMapper;
 
-    @Autowired
-    private TmstruckReceiptResultMapper tmstruckReceiptResultMapper;
 
     @Autowired
     private UtilsServiceImpl utilsService;
@@ -49,7 +46,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     private UtilsMapper utilsMapper;
 
     @Autowired
-    private RulesServiceImpl rulesService;
+    private TmstruckLoadResultMapper tmstruckLoadResultMapper;
 
 
     @Autowired
@@ -185,93 +182,248 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return null;
     }
 
+    /**
+     * 修改钢材计量实绩。
+     * @param map orderId, oldMaterialMapList, newMaterialMapList
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public int updateSteelTruckWeightResult(Map<String, Object> map){
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        List<Map<String, Object>> newMaterialMapList = (List<Map<String, Object>>) map.get("newMaterialMapList");
+        List<Map<String, Object>> oldMaterialMapList = (List<Map<String, Object>>) map.get("oldMaterialMapList");
+        int newSize = newMaterialMapList.size();
+        int oldSize = oldMaterialMapList.size();
+        //这是新增的情况
+        if(newSize != oldSize){
+            Map<String, Object> mapOne = tmstruckWeightResultMapper.getOldWeightMes(orderId);
+            BigDecimal resultTotalId = DataChange.dataToBigDecimal(mapOne.get("resultTotalId"));
+            int maxGrossSqe = DataChange.dataToBigDecimal(mapOne.get("maxGrossSqe")).intValue();
+            int outFactorySqe = 0;
+            if(newSize > oldSize){
+                //新增计量装货和修改出厂实绩
+                outFactorySqe = insertSomeResult(newSize, oldSize, maxGrossSqe, resultTotalId);
+            }else{
+                outFactorySqe = deleteSomeResult(newSize, oldSize, maxGrossSqe, resultTotalId);
+            }
+            //修改出厂实绩路段顺序号
+            TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
+            tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
+            tmstruckLeaveFactoryResult.setSegmentSqe(new BigDecimal(outFactorySqe));
+            tmstruckWeightResultMapper.updateLeaveFactorySqe(tmstruckLeaveFactoryResult);
+        }
+        //查询是否已经生成过出库实绩
+        BigDecimal boundResultId = tmstruckWeightResultMapper.getOutBoundResult(orderId);
+        if(boundResultId != null){//如果已经扫过出库,则需要对出库表物资子表进行操作
+            Map<String, Object> changeMap = checkMaterial(oldMaterialMapList, newMaterialMapList);
+            if(changeMap.get("delete")!= null){
+                //如果有删除的记录,需要对出库实绩物资表中进行删除
+                List<BigDecimal> delete = (List<BigDecimal>) changeMap.get("delete");
+                for (BigDecimal deleteMaterialId : delete) {
+                    tmstruckWeightResultMapper.deleteOutBoundResult(boundResultId, deleteMaterialId);
+                }
+            }
+            if(changeMap.get("add")!= null){
+                //如果有添加的记录,需要进行添加操作
+                List<Map<String, Object>> add = (List<Map<String, Object>>) changeMap.get("add");
+                for (Map<String, Object> addMap : add) {
+                    addMap.put("boundResultId", boundResultId);
+                    addMap.put("resultMaterialId",tmstruckWeightResultMapper.getOutBoundMaterialMaxId());
+                    tmstruckWeightResultMapper.addOutBoundResult(addMap);
+                }
+            }
+            if(changeMap.get("update") != null){
+                //如果有修改的记录,需要进行修改操作
+                List<Map<String, Object>> update = (List<Map<String, Object>>) changeMap.get("update");
+                for (Map<String, Object> updateMap : update) {
+                    updateMap.put("boundResultId", boundResultId);
+                    tmstruckWeightResultMapper.updateOutBoundResult(updateMap);
+                }
+            }
+        }
+        return 0;
+    }
+
+
+
+    public int insertSomeResult(int newSize, int oldSize, int maxGrossSqe, BigDecimal resultTotalId){
+        //根据新增的物资情况去新增计量实绩与装货实绩并修改最终出厂路段顺序号
+        for (int i = 0; i < newSize - oldSize; i++) {
+            TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+            tmstruckWeightResult.setId(tmstruckWeightResultMapper.selectMaxId());
+            tmstruckWeightResult.setResultTotalId(resultTotalId);
+            tmstruckWeightResult.setTareSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckWeightResult.setInsertTime(new Date());
+            //新增装车实绩
+            TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+            tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
+            tmstruckLoadResult.setResultTotalId(resultTotalId);
+            tmstruckLoadResult.setSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckLoadResult.setInsertTime(new Date());
+            tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
+            //新增计量实绩 毛重顺序要卡在装车之后
+            tmstruckWeightResult.setGrossSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
+        }
+        return ++ maxGrossSqe;
+    }
 
     /**
-     * 更新计量实绩  计皮点  计毛点  皮重
-     * @param map
+     * 删除计量实绩及装车实绩
+     * @param newSize
+     * @param oldSize
+     * @param maxGrossSqe
+     * @param resultTotalId
+     * @return
      */
-    public int updateWeightResult(Map<String, Object> map){
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
-        BigDecimal id = tmstruckWeightResultMapper.getWeightIdBySQEAndOrderId(map);
-        tmstruckWeightResult.setId(id);
-        if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
-            tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
+    public int deleteSomeResult(int newSize, int oldSize, int maxGrossSqe, BigDecimal resultTotalId ){
+        for (int i = 0; i < oldSize - newSize; i++) {
+            tmstruckWeightResultMapper.deleteWeightResult(resultTotalId, maxGrossSqe--);//删除计量实绩
+            //装车在计毛顺序之前
+            tmstruckWeightResultMapper.deleteLoadResult(resultTotalId, maxGrossSqe--);//删除装车实绩
+            //计量实绩中有两个路段顺序所以需要再次减1
+            maxGrossSqe --;
         }
-        if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
-            tmstruckWeightResult.setResultGrossPlaceId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
+        //出厂需要 + 1
+        return maxGrossSqe + 1;
+    }
+
+    /**
+     * 遍历两次物资集合,找出哪些修改哪些新增哪些删除的物资
+     * @param newMaterialMapList
+     * @param oldMaterialMapList
+     * @return
+     */
+    public Map<String, Object> checkMaterial(List<Map<String, Object>> oldMaterialMapList, List<Map<String, Object>> newMaterialMapList){
+        Map<String, Object> returnMap = new HashMap<>();
+        List<BigDecimal> delete = new ArrayList<>(); //存放删除的物资ID
+        List<Map<String, Object>> add = new ArrayList<>(); //存放添加的物资ID及件数
+        List<Map<String, Object>> update = new ArrayList<>(); // 存放修改的物资Id及件数
+        //先遍历old中的物资 查找有没有相同的物资     找到修改和删除的物资
+        for (Map<String, Object> map : oldMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));//拿到key
+            //通过这个key去新物资集合中获取是否包含这个key
+            Map<String, Object> newMap = getNewMap(Integer.parseInt(materialId), newMaterialMapList);
+            if(newMap == null){
+                //如果在新物资中没有找到,则代表此物资已删除
+                delete.add(DataChange.dataToBigDecimal(map.get("materialId")));
+            }else{ //如果找到了,取出件数进行对比
+                BigDecimal newNumber = DataChange.dataToBigDecimal(newMap.get("materialNumber")); //拿到新物资中的件数
+                BigDecimal oldNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
+                int i = newNumber.compareTo(oldNumber);
+                if(i != 0){ //如果件数不相等,则需要进行修改,添加进修改list中
+                    Map<String, Object> updateMap = new HashMap<>();
+                    updateMap.put("materialId", materialId);
+                    updateMap.put("materialNumber", newNumber);
+                    update.add(updateMap);
+                }
+            }
         }
-        if(map.get("resultTareWeight")!= null){ //如果皮重不为空 更新皮重
-            tmstruckWeightResult.setResultTareWeight(DataChange.dataToBigDecimal(map.get("resultTareWeight")));
+        //再次遍历new中的物资 查找 新增 的物资
+        for (Map<String, Object> map : newMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));
+            Map<String, Object> oldMaps = getNewMap(Integer.parseInt(materialId), oldMaterialMapList);
+            if(oldMaps == null){
+                //如果在旧map中没有找到,则代表是新增的物资,将新增的物资存放到新增列表中
+                add.add(map);
+            }
         }
-        return tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+        if(add.size() != 0)    returnMap.put("add", add);
+        if(delete.size() != 0) returnMap.put("delete", delete);
+        if(update.size() != 0) returnMap.put("update", update);
+        return returnMap;
     }
 
     /**
-     * 自动签收
+     * 遍历list查看里面的map是否包含这个值
+     * @param key
+     * @param mapList
      * @return
      */
-    public int autoReceipt(BigDecimal resultTotalId){
-        TmstruckReceiptResult tmstruckReceiptResult = new TmstruckReceiptResult();
-        tmstruckReceiptResult.setResultTotalId(resultTotalId);
-        tmstruckReceiptResult.setStatus(new BigDecimal(1));
-        tmstruckReceiptResult.setInsertUsername("admin");
-        tmstruckReceiptResult.setInsertTime(new Date());
-        return tmstruckReceiptResultMapper.updateByTotalResultId(tmstruckReceiptResult);
+    public Map<String, Object> getNewMap(int key, List<Map<String, Object>> mapList){
+        for (Map<String, Object> map : mapList) {
+            if(map.containsValue(key)){
+                return map;
+            }
+        }
+        return null;
     }
 
+    /**
+     * 更新计量实绩  计皮点  计毛点  皮重
+     * @param map
+     */
+//    public int updateWeightResult(Map<String, Object> map){
+//        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+//        //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
+//        BigDecimal id = tmstruckWeightResultMapper.getWeightIdBySQEAndOrderId(map);
+//        tmstruckWeightResult.setId(id);
+//        if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
+//            tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
+//        }
+//        if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
+//            tmstruckWeightResult.setResultGrossPlaceId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
+//        }
+//        if(map.get("resultTareWeight")!= null){ //如果皮重不为空 更新皮重
+//            tmstruckWeightResult.setResultTareWeight(DataChange.dataToBigDecimal(map.get("resultTareWeight")));
+//        }
+//        return tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+//    }
+
+
+
 
     /**
      * 多拼计算计毛汽车衡
      * @param map
      */
-    public int calculateTruckCalculate(Map<String, Object> map, Integer resultTotalId){
-        //通过总实绩ID查询订单Id
-        Integer orderId = utilsService.getOrderIdByTotalId(resultTotalId);
-        //查询未装车的装车实绩
-        List<Map<String, Object>> list = rulesService.judgeLastMaterial(new BigDecimal(orderId));
-        Map<String, Object> mesMap = new HashMap<>(); //用于查询更新存放数据map
-        mesMap.put("orderId", orderId);
-        int i = 0;
-        if(list.size() == 0){
-            //如果是最后一拼则走出厂称 计算出厂称
-            mesMap.put("materialId", map.get("materialId"));
-            mesMap.put("nature", 1);
-            Integer calculate = rulesService.calculateWeighbridge(mesMap);
-            //更新汽车衡
-            mesMap.put("grossPlaceId", calculate);
-            i += updateWeightResult(mesMap);
-        }else {
-            //如果后面还有物资未装车 则走拼装秤 10号秤 (固定数据)
-            mesMap.put("materialId", map.get("materialId"));
-            mesMap.put("grossPlaceId", 10);
-            i += updateWeightResult(mesMap);
-        }
-        return i;
-    }
+//    public int calculateTruckCalculate(Map<String, Object> map, Integer resultTotalId){
+//        //通过总实绩ID查询订单Id
+//        Integer orderId = utilsService.getOrderIdByTotalId(resultTotalId);
+//        //查询未装车的装车实绩
+//        List<Map<String, Object>> list = rulesService.judgeLastMaterial(new BigDecimal(orderId));
+//        Map<String, Object> mesMap = new HashMap<>(); //用于查询更新存放数据map
+//        mesMap.put("orderId", orderId);
+//        int i = 0;
+//        if(list.size() == 0){
+//            //如果是最后一拼则走出厂称 计算出厂称
+//            mesMap.put("materialId", map.get("materialId"));
+//            mesMap.put("nature", 1);
+//            Integer calculate = rulesService.calculateWeighbridge(mesMap);
+//            //更新汽车衡
+//            mesMap.put("grossPlaceId", calculate);
+//            i += updateWeightResult(mesMap);
+//        }else {
+//            //如果后面还有物资未装车 则走拼装秤 10号秤 (固定数据)
+//            mesMap.put("materialId", map.get("materialId"));
+//            mesMap.put("grossPlaceId", 10);
+//            i += updateWeightResult(mesMap);
+//        }
+//        return i;
+//    }
 
     /**
      * 单拼销售计算汽车衡
      * @return
      */
-    public int calculateTruckCalculateByOne(Map<String, Object> map, Integer type){
-        String orderNumber = (String) map.get("orderNumber");
-        //通过运输订单号查找物资ID、订单ID
-        Map<String, Object> oIdAndMidMap = tmstruckWeightResultMapper.getOrderIdAndMaterialIdByOrderNum(orderNumber);
-        //通过物资ID计算汽车衡
-        if(type == 1){
-            //1:进厂
-            oIdAndMidMap.put("nature", type); //1: 进厂秤
-            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
-            oIdAndMidMap.put("tarePlaceId", calculateId);
-
-        }else if(type == 2){
-            //2:出厂
-            oIdAndMidMap.put("nature", type); //2: 出厂称
-            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
-            oIdAndMidMap.put("grossPlaceId", calculateId);
-        }
-        return updateWeightResult(oIdAndMidMap);
-    }
+//    public int calculateTruckCalculateByOne(Map<String, Object> map, Integer type){
+//        String orderNumber = (String) map.get("orderNumber");
+//        //通过运输订单号查找物资ID、订单ID
+//        Map<String, Object> oIdAndMidMap = tmstruckWeightResultMapper.getOrderIdAndMaterialIdByOrderNum(orderNumber);
+//        //通过物资ID计算汽车衡
+//        if(type == 1){
+//            //1:进厂
+//            oIdAndMidMap.put("nature", type); //1: 进厂秤
+//            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
+//            oIdAndMidMap.put("tarePlaceId", calculateId);
+//
+//        }else if(type == 2){
+//            //2:出厂
+//            oIdAndMidMap.put("nature", type); //2: 出厂称
+//            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
+//            oIdAndMidMap.put("grossPlaceId", calculateId);
+//        }
+//        return updateWeightResult(oIdAndMidMap);
+//    }
 
 }

+ 10 - 0
src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java

@@ -35,6 +35,16 @@ public class ColumnDataUtil {
         pageList.setColumnData(columnDataList);
         return pageList;
     }
+    public PageListAdd tableColumnData4(Integer apiId, List<Map<String, Object>> list,List<Map<String,Object>> data) {
+        List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
+        PageListAdd pageList = new PageListAdd(data);
+        pageList.setColumnData(columnDataList);
+        return pageList;
+    }
+
+
+
+
 
     public PageListAdd tableColumnData2(Integer apiId, List<Map<String, Object>> list,List<Map<String,Object>> data) {
         List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);

+ 281 - 0
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -320,6 +320,7 @@
 <!--  查询销售统计报表  -->
     <!--  查询销售统计报表  -->
     <select id="getAllSaleReport" parameterType="java.util.Map" resultType="java.util.Map">
+        select * from (
         select
         *
         from (
@@ -345,6 +346,8 @@
         ASO.SALE_NUMBER "saleNumber",
         TLR.CASE_NUMBER "caseNumber",
         RC2.CARRIER_NAME "carrierName",
+        TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
+        TRR.RESULT_ARRIVAL_ADDRESS "receiptAddress",
         CONCAT(CONCAT(RM.MATERIAL_SPECIFICATION, '('), CONCAT(RM.MATERIAL_MODEL, ')')) "materialCode"
         from TMSTRUCK_WEIGHT_RESULT TWR
         left join TMSTRUCK_TOTAL_RESULT TTR
@@ -384,6 +387,10 @@
         on RC.CAPACITY_ID = OO.CAPACITY_ID
         join RMS_MATERIAL RM
         on RM.MATERIAL_ID = TWR.MATERIAL_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 OO.ORDER_TYPE = #{orderType}
         AND ASO.SHIPPER_ID = #{shipperId}
         <if test="carrierSsoId != null">
@@ -399,6 +406,12 @@
             and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
             and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_GROSS_WEIGHT_TIME
         </if>
+        ) RRR
+            <where>
+                <if test="remark != null" >
+                    and RRR."materialName" LIKE #{remark} or RRR."materialRemark" LIKE #{remark}
+                </if>
+            </where>
         )
         <where>
             <if test="orderNumber != null">
@@ -1801,6 +1814,7 @@
                           ON OO.ORDER_ID = TTR.ORDER_ID
                           LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
                           ON OOM.ORDER_ID = OO.ORDER_ID
+
                           LEFT JOIN RMS_MATERIAL RM
                           ON RM.MATERIAL_ID = OOM.MATERIAL_ID
                           LEFT JOIN RMS_CAPACITY RC
@@ -1859,4 +1873,271 @@
             </foreach>
         </if>
     </select>
+<!--根据组织获取销售订单-->
+    <select id="getSaleOrderList" resultType="java.util.Map" parameterType="java.util.Map">
+        select DISTINCT OO.ORDER_NUMBER "orderNumber",
+               RM.MATERIAL_NAME "materialName",
+               RS.SHIPPER_NAME "sendName",
+               RC.CONSIGNEE_COMPANY_NAME "reciveName",
+               TWR.RESULT_NET_WEIGHT "resultNetWeight",
+               TWR.RESULT_GROSS_WEIGHT_TIME "grossweightTime",
+               TWR.RESULT_TARE_WEIGHT_TIME "tareWeightTime",
+               TWR.RESULT_TARE_WEIGHT "tareWeight",
+               TWR.RESULT_GROSS_WEIGHT "grossWeight",
+               RC2.CAPACITY_NUMBER "capacityNumber",
+               RL.LINE_NAME "lineName",
+               RC3.CARRIER_NAME "carrierName"
+        from OMSTRUCK_ORDER OO
+        left join AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_MATERIAL_ID=OO.ORDER_PLAN_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID=OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        LEFT JOIN RMS_CAPACITY RC2
+        ON RC2.CAPACITY_ID=OO.CAPACITY_ID
+        left join RMS_LINE RL
+        ON RL.LINE_ID=OO.LINE_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        left join TMSTRUCK_LOAD_RESULT TLR
+        ON TLR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID=OOM.MATERIAL_ID
+        JOIN AMS_SALE_ORDER ASO
+        ON ASO.SALE_ORDER_ID=ASOM.SALE_ORDER_ID
+        LEFT JOIN AMS_SALE_ORDER_CARRIER ASOC
+        ON ASOC.SALE_ORDER_ID=ASO.SALE_ORDER_ID
+        LEFT JOIN RMS_CARRIER RC3
+        ON RC3.CARRIER_ID=ASOC.CARRIER_ID
+        left join RMS_SHIPPER RS
+        ON ASO.SHIPPER_ID = RS.SHIPPER_ID
+        LEFT JOIN RMS_CONSIGNEE RC
+        ON RC.CONSIGNEE_ID=ASO.RECEIVE_ID
+        <where>
+        OO.ORDER_TYPE = 2 AND   TWR.RESULT_NET_WEIGHT IS NOT NULL AND ASO.CLOSE_STATUS IS NOT NULL
+            <if test="orgCode!=null">
+         AND   OO.OPTIONER_CODE = #{orgCode}
+        </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TWR.RESULT_GROSS_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_GROSS_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_GROSS_WEIGHT_TIME
+        </if>
+        <if test="index!=null">
+         and  ((instr(RC.CONSIGNEE_COMPANY_NAME, #{index}) > 0) or   (instr( RS.SHIPPER_NAME, #{index}) > 0) or
+            (instr(RM.MATERIAL_NAME, #{index}) > 0) or   (instr(RC3.CARRIER_NAME, #{index}) > 0) or
+            (instr( RL.LINE_NAME, #{index}) > 0))
+        </if>
+        </where>
+        ORDER BY OO.ORDER_NUMBER DESC
+    </select>
+    <select id="getPurchaseInwardList" resultType="java.util.Map" parameterType="java.util.Map">
+        select *
+        from (select DISTINCT oo.order_id                   "orderId",
+                     rm.material_name              "materialName",
+                     rc.capacity_number            "capacityNumber",
+                     rs.supplier_name              "sendName",
+                     oo.order_number               "orderNumber",
+                     rce.consignee_company_name    "reciveName",
+                     ttr.result_total_id           "totalResultId",
+                     twr3.result_gross_weight      "grossWeight",
+                     twr3.result_gross_weight_time "grossweightTime",
+                     twr4.result_tare_weight       "tareWeight",
+                     twr4.result_tare_weight_time  "tareWeightTime",
+                     twr4.result_net_weight        "resultNetWeight",
+                     RC.CARRIER_NAME "carrierName",
+                     RL.LINE_NAME "lineName"
+                       from omstruck_order oo
+                       left join omstruck_order_material oom
+                       on oom.order_id = oo.order_id
+                       LEFT JOIN RMS_LINE RL
+                        ON RL.LINE_ID=OO.LINE_ID
+                       left join rms_material rm
+                       on rm.material_id = oom.material_id
+                       left join rms_capacity rc
+                       on rc.capacity_id = oo.capacity_id
+                       left join amstruck_inward_plan aip
+                       on aip.plan_id = oo.order_plan_id
+                       left join amstruck_requirement_plan arp
+                       on arp.plan_id = aip.plan_id
+                       left join RMS_CARRIER  rc
+                       on AIP.CARRIER_ID=rc.CARRIER_ID
+                       left join amstruck_inward_requirement air
+                       on air.requirement_id = arp.requirement_id
+                       left join ams_purchase_order apo
+                                 on apo.purchase_order_id = air.purchase_order_id
+                       left join rms_supplier rs
+                                 on rs.supplier_id = apo.supplier_unit_id
+                       left join rms_consignee rce
+                                 on rce.consignee_id = apo.receive_unit_id
+                       left join tmstruck_total_result ttr
+                                 on ttr.order_id = oo.order_id
+                       left join tmstruck_weight_result twr1
+                                 on twr1.result_total_id = ttr.result_total_id
+                       left join rms_truck_calculate rtc1
+                                 on rtc1.truck_calculate_id = twr1.result_tare_place_id
+                       left join tmstruck_load_result tlr
+                                 on tlr.result_total_id = ttr.result_total_id
+                       left join rms_warehouse rw
+                                 on rw.warehouse_id = tlr.loading_id
+                       left join tmstruck_weight_result twr2
+                                 on twr2.result_total_id = ttr.result_total_id
+                       left join rms_truck_calculate rtc2
+                                 on rtc2.truck_calculate_id = twr2.result_gross_place_id
+                       left join tmstruck_weight_result twr3
+                                 on twr3.result_total_id = ttr.result_total_id
+                       left join rms_truck_calculate rtc3
+                                 on rtc3.truck_calculate_id = twr3.result_gross_place_id
+                       left join tmstruck_unload_result tur
+                                 on tur.result_total_id = ttr.result_total_id
+                       left join rms_warehouse rw2
+                        on rw2.warehouse_id = tur.result_unload_place_id
+                       LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR1
+                       ON TLFR1.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                       LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER2
+                       ON TER2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                       LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR2
+                       ON TLFR2.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                       left join tmstruck_weight_result twr4
+                       on twr4.result_total_id = ttr.result_total_id
+                       left join rms_truck_calculate rtc4
+                       on rtc4.truck_calculate_id = twr4.result_tare_place_id
+                   where TLFR1.SEGMENT_SQE = 5
+                   AND TER2.SEGMEN_SQE = 6
+                   AND TWR3.GROSS_SEGMENT_SQE = 7
+                   AND TUR.SEGMENT_SQE = 8
+                   AND TWR4.TARE_SEGMENT_SQE = 9
+                  AND TLFR2.SEGMENT_SQE = 10
+                  and oo.ORDER_TYPE in (10,20)
+                  AND   twr4.result_net_weight IS NOT NULL
+        <if test="orgCode!=null">
+                and oo.OPTIONER_CODE =  #{orgCode}
+        </if>
+       <if test="index!=null">
+           and ( (instr(rs.supplier_name, #{index}) > 0) or  (instr(rm.material_name , #{index}) > 0)
+           or  (instr(rc.capacity_number , #{index}) > 0)   or  (instr(rce.consignee_company_name , #{index}) > 0)
+           or  (instr( RC.CARRIER_NAME , #{index}) > 0)  or     (instr(RL.LINE_NAME , #{index}) > 0))
+       </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;=  TWR4.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >=  TWR4.RESULT_TARE_WEIGHT_TIME
+        </if>
+             )
+    </select>
+    <select id="getPurchaseOrderList" resultType="java.util.Map" parameterType="java.util.Map">
+        select OO.ORDER_NUMBER "orderNumber",
+               RM.MATERIAL_NAME "materialName",
+               RC.CAPACITY_NUMBER "capacityNumber",
+               RS.SUPPLIER_NAME "sendName",
+               RC2.CONSIGNEE_COMPANY_NAME "reciveName",
+               TWR.RESULT_GROSS_WEIGHT "grossWeight",
+               TWR.RESULT_TARE_WEIGHT "tareWeight",
+               TWR.RESULT_GROSS_WEIGHT_TIME "grossweightTime",
+               TWR.RESULT_TARE_WEIGHT_TIME "tareWeightTime",
+               TWR.RESULT_NET_WEIGHT "resultNetWeight",
+               RL.LINE_NAME "lineName",
+               RC3.CARRIER_NAME "carrierName"
+
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OO.ORDER_ID=OOM.ORDER_ID
+        LEFT JOIN RMS_LINE RL
+        ON RL.LINE_ID=OO.LINE_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON OO.CAPACITY_ID=RC.CAPACITY_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID=OOM.MATERIAL_ID
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON OO.ORDER_PLAN_ID=APO.PURCHASE_ORDER_ID
+        LEFT JOIN RMS_CARRIER RC3
+        ON RC3.CARRIER_ID=OO.CARRIER_ID
+        LEFT JOIN RMS_SUPPLIER RS
+        ON RS.SUPPLIER_ID=APO.SUPPLIER_UNIT_ID
+        LEFT JOIN RMS_CONSIGNEE RC2
+        ON RC2.CONSIGNEE_ID =APO.RECEIVE_UNIT_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON  TTR.ORDER_ID=OO.ORDER_ID
+        left join TMSTRUCK_LOAD_RESULT TLR
+         ON TTR.RESULT_TOTAL_ID=TLR.RESULT_TOTAL_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        <where>
+        OO.ORDER_TYPE IN (6,7) and  TWR.RESULT_NET_WEIGHT IS NOT NULL and RL.LINE_ID IN (129988,129989,129991,129992,89992)
+        <if test="orgCode!=null">
+        AND   OO.OPTIONER_CODE=#{orgCode}
+        </if>
+        <if test="index!=null">
+            and  ((instr(RC.CAPACITY_NUMBER, #{index}) > 0) or  (instr(RS.SUPPLIER_NAME, #{index}) > 0)
+            or (instr( RC2.CONSIGNEE_COMPANY_NAME, #{index}) > 0) or (instr( RC3.CARRIER_NAME, #{index}) > 0)
+            or (instr(RL.LINE_NAME, #{index}) > 0) or   (instr(RM.MATERIAL_NAME, #{index}) > 0))
+        </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TWR.RESULT_TARE_WEIGHT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+        </if>
+        </where>
+    </select>
+<!--  查询厂内内转统计报表-->
+    <select id="getInwardInFactory" resultType="java.util.Map" parameterType="java.util.Map">
+        select * from (
+        select
+        OO.ORDER_NUMBER "orderNumber",
+        RC.CAPACITY_NUMBER "capacityNumber",
+        RW1.WAREHOUSE_NAME "reciveName",
+        RW2.WAREHOUSE_NAME "sendName",
+        RM.MATERIAL_NAME "materialName",
+        TWR.RESULT_NET_WEIGHT "resultNetWeight",
+        TWR.RESULT_TARE_WEIGHT_TIME "tareWeightTime",
+        TWR.RESULT_TARE_WEIGHT "tareWeight",
+        greatest(TWR.RESULT_TARE_WEIGHT_TIME,TWR.RESULT_GROSS_WEIGHT_TIME) "netWeightTime",
+        TWR.RESULT_GROSS_WEIGHT_TIME "grossweightTime",
+        TWR.RESULT_GROSS_WEIGHT "grossWeight",
+        RL.LINE_NAME "lineName",
+        RC2.CARRIER_NAME "carrierName"
+        from OMSTRUCK_ORDER OO
+        left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
+        left join RMS_LINE RL ON OO.LINE_ID=RL.LINE_ID
+        left join TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        left join RMS_CAPACITY RC on OO.CAPACITY_ID = RC.CAPACITY_ID
+        left join RMS_TRUCK_CALCULATE RTC1 on RTC1.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+        left join RMS_TRUCK_CALCULATE RTC2 on RTC2.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
+        left join AMSTRUCK_INWARD_PLAN AIP on AIP.PLAN_ID = OO.ORDER_PLAN_ID
+        left join AMSTRUCK_REQUIREMENT_PLAN ARP on AIP.PLAN_ID = ARP.PLAN_ID
+        left join RMS_CARRIER RC2 ON RC2.CARRIER_ID=AIP.CARRIER_ID
+        left join AMSTRUCK_INWARD_REQUIREMENT AIR on AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        left join RMS_SHIPPER RS on AIR.REQUIREMENT_SHIPPER_ID = RS.SHIPPER_ID
+        left join AMSTRUCK_REQUIREMENT_MATERIAL ARM on AIR.REQUIREMENT_ID = ARM.REQUIREMENT_ID
+        left join RMS_MATERIAL RM on ARM.MATERIAL_ID = RM.MATERIAL_ID
+        left join RMS_WAREHOUSE RW1 on ARM.REQUIREMENT_UNLOAD_UNIT_ID = RW1.WAREHOUSE_ID
+        left join RMS_WAREHOUSE RW2 on ARM.REQUIREMENT_PLATFORM_ID = RW2.WAREHOUSE_ID
+        <where>
+            OO.ORDER_TYPE in (11,15,16)  AND  TWR.RESULT_NET_WEIGHT IS NOT NULL
+            <if test="orgCode!=null">
+                AND OO.OPTIONER_CODE=#{orgCode}
+            </if>
+            <if test="oneDate != null">
+                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; =  TWR.RESULT_TARE_WEIGHT_TIME
+            </if>
+            <if test="startDate != null">
+                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; =   TWR.RESULT_TARE_WEIGHT_TIME
+                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TWR.RESULT_TARE_WEIGHT_TIME
+            </if>
+            <if test="index!=null">
+                and ((instr(RC.CAPACITY_NUMBER, #{index}) > 0) or (instr(RW1.WAREHOUSE_NAME, #{index}) > 0)
+                or (instr(RW2.WAREHOUSE_NAME, #{index}) > 0) or (instr(RM.MATERIAL_NAME , #{index}) > 0)
+                or (instr( RC2.CARRIER_NAME, #{index}) > 0) or (instr(RL.LINE_NAME, #{index}) > 0))
+            </if>
+            )
+        </where>
+    </select>
+
 </mapper>

+ 11 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -1490,4 +1490,15 @@
         update QMS_QUEUE_RESULT QQR set QQR.RESULT_END_TIME = SYSDATE where QQR.RESULT_ID = #{resultId}
     </update>
 
+
+    <select id="getSaleOrderStatus" parameterType="DECIMAL" resultType="java.lang.Integer">
+        SELECT ASO.SALE_ORDER_STATUS AS "saleOrderStatus"
+        FROM OMSTRUCK_ORDER OO
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                           ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                 LEFT JOIN AMS_SALE_ORDER ASO
+                           ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
 </mapper>

+ 54 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -549,6 +549,7 @@
         #{item.tareSegmentSqe,jdbcType=DECIMAL} from dual
     </foreach> )
     </insert>
+
     <update id="batchUpdate" parameterType="java.util.List">
         update TMSTRUCK_WEIGHT_RESULT
         set
@@ -645,6 +646,7 @@
             #{item.weightTaskResultId,jdbcType=DECIMAL}
         </foreach>
     </update>
+
     <delete id="batchDelete" parameterType="java.util.List">
         delete from TMSTRUCK_WEIGHT_RESULT
         where WEIGHT_TASK_RESULT_ID in
@@ -2797,5 +2799,57 @@
               (select TTR.ORDER_ID from TMSTRUCK_TOTAL_RESULT TTR where TTR.RESULT_TOTAL_ID = #{resultTotalId})
     </select>
 
+    <select id="getOldWeightMes" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select MAX(TWR.GROSS_SEGMENT_SQE)   "maxGrossSqe",
+               TTR.RESULT_TOTAL_ID  "resultTotalId"
+        from TMSTRUCK_TOTAL_RESULT TTR
+                 left join TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        where TTR.ORDER_ID = #{orderId}
+        group by TTR.RESULT_TOTAL_ID
+    </select>
+
+    <update id="updateLeaveFactorySqe" parameterType="com.steerinfo.dil.model.TmstruckLeaveFactoryResult">
+        update TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+        set TLFR.SEGMENT_SQE = #{segmentSqe}
+        where TLFR.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
 
+
+    <select id="getOutBoundResult" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select WOR.RESULT_ID
+        from WMSP_OUTBOUND_RESULT WOR
+        WHERE WOR.BILL_LADING_ID = #{orderId}
+    </select>
+
+    <delete id="deleteWeightResult">
+        delete
+        from TMSTRUCK_WEIGHT_RESULT TWR
+        where TWR.RESULT_TOTAL_ID = #{resultTotalId}
+          and TWR.GROSS_SEGMENT_SQE = #{sqe}
+    </delete>
+    <delete id="deleteLoadResult">
+        delete
+        from TMSTRUCK_LOAD_RESULT TLR
+        where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+          and TLR.SEGMENT_SQE = #{sqe}
+    </delete>
+
+    <delete id="deleteOutBoundResult">
+        delete
+        from WMSP_OUTBOUND_RESULT_MATERIAL
+        where OUTBOUND_RESULT_ID = #{boundResultId}
+          and MATERIAL_ID = #{deleteMaterialId}
+    </delete>
+
+    <insert id="addOutBoundResult" parameterType="map">
+        insert into WMSP_OUTBOUND_RESULT_MATERIAL (RESULT_MATERIAL_ID, OUTBOUND_RESULT_ID, INSERT_USERNAME, INSERT_TIME,
+                                                   MATERIAL_ID, MATERIAL_NUMBER, STATUS)
+                    values (#{resultMaterialId}, #{boundResultId}, 'admin', SYSDATE,#{materialId}, #{materialNumber}, 1)
+    </insert>
+
+    <update id="updateOutBoundResult" parameterType="map">
+        update WMSP_OUTBOUND_RESULT_MATERIAL
+        set MATERIAL_NUMBER = #{materialNumber}
+        where OUTBOUND_RESULT_ID = #{boundResultId} and MATERIAL_ID = #{materialId}
+    </update>
 </mapper>