zengyf 2 lat temu
rodzic
commit
20f5bb169c

+ 154 - 0
src/main/java/com/steerinfo/dil/controller/StatisticalReportController.java

@@ -120,6 +120,57 @@ public class StatisticalReportController extends BaseRESTfulController {
         return success(pageList);
     }
 
+    @ApiOperation(value="查询销售统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(423)", value = "动态表头", 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("/getAllSaleReportNew")
+    public RESTfulResult getAllSaleReportNew(@RequestBody(required=false) Map<String,Object> mapValue,
+                                          Integer apiId,
+                                          Integer pageNum,
+                                          Integer pageSize,
+                                          String startTime,
+                                          String endTime,
+                                          String carrierSsoId,
+                                          Integer orderType,
+                                          Integer shipperId,
+                                          String receiveName,
+                                          String materialName,
+                                          String wareHouse
+    ){
+        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId)){
+                mapValue.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        if (receiveName != null && !"null".equals(receiveName)) {
+            mapValue.put("receivName","%" + receiveName + "%");
+        }
+        if (materialName != null && !"".equals(materialName) && !"null".equals(materialName)) {
+            mapValue.put("remark","%" + materialName + "%");
+        }
+        if (wareHouse != null && !"".equals(wareHouse) && !"null".equals(wareHouse)) {
+            mapValue.put("wareHouse","%" + wareHouse + "%");
+        }
+        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);
+        PageListAdd pageList = columnDataUtil.tableColumnData5(apiId, null, report);
+        return success(pageList);
+    }
+
     @ApiOperation(value="查询销售统计报表筛选过后的总净重")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
@@ -747,6 +798,109 @@ public class StatisticalReportController extends BaseRESTfulController {
         return success(report);
     }
 
+    @ApiOperation(value="查询销售统计报表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(423)", value = "动态表头", 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("/getSaleSteelReportNew")
+    public RESTfulResult getSaleSteelReportNew(@RequestBody(required=false) Map<String,Object> map,
+                                            String startTime,
+                                            String endTime,
+                                            String carrierSsoId,
+                                            String receiveName,
+                                            String materialName,
+                                            String specification,
+                                            String remark,
+                                            String capacityNo,
+                                            String carrierName,
+                                            String consigneeName,
+                                            String saler,
+                                            String easPrimaryId
+    ){
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, map, sdfDateTime);//根据时间段查询数据
+        if(carrierSsoId != null){
+            if(!"null".equals(carrierSsoId) && carrierSsoId != null){
+                map.put("carrierSsoId", carrierSsoId);
+            }
+        }
+        if (receiveName != null && !"null".equals(receiveName)) {
+            map.put("receivName","%" + receiveName + "%");
+        }
+        if (remark != null && !"".equals(remark) && !"null".equals(remark)) {
+            map.put("remark","%" + remark + "%");
+        }
+        if (capacityNo != null && !"".equals(capacityNo) && !"null".equals(capacityNo)) {
+            map.put("capacityNum","%" + capacityNo + "%");
+        }
+        if (carrierName != null && !"".equals(carrierName) && !"null".equals(carrierName)) {
+            map.put("carrierNames","%" + carrierName + "%");
+        }
+        if (consigneeName != null && !"".equals(consigneeName) && !"null".equals(consigneeName)) {
+            map.put("consigneeNames","%" + consigneeName + "%");
+        }
+        if (saler != null && !"".equals(saler) && !"null".equals(saler)) {
+            map.put("salers",saler);
+        }
+        if (easPrimaryId != null && !"".equals(easPrimaryId) && !"null".equals(easPrimaryId)) {
+            map.put("easPrimaryId",easPrimaryId);
+        }
+        //分页数据
+        List<Map<String, Object>> report = statisticalReportService.getSaleSteelReportNew(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);
+            }
+            /*try{
+                BigDecimal orderId = (BigDecimal) stringObjectMap.get("orderId");
+                if (orderId !=null){
+                    String status = statisticalReportService.getStatus(orderId);
+                    if (!(" ".equals(status))){
+                        stringObjectMap.put("orderStatus",status);
+                    }
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }*/
+        }
+        return success(report);
+    }
+
 
 
     @ApiOperation(value="查询销售统计报表")

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

@@ -76,6 +76,9 @@ public interface StatisticalReportMapper {
     //查询销售钢材统计报表
     List<Map<String, Object>> getSaleSteelReport(Map<String, Object> mapValue);
 
+    //根据计费详单的需求修改后的钢材统计报表
+    List<Map<String, Object>> getSaleSteelReportNew(Map<String, Object> mapValue);
+
     List<Map<String, Object>> getInwardSaleSteelReport(Map<String, Object> map);
 
     List<Map<String, Object>> getInwardSaleSteelOrder(Map<String, Object> map);

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

@@ -72,6 +72,8 @@ public interface IStatisticalReportService {
 
     List<Map<String, Object>> getSaleSteelReport(Map<String, Object> mapValue);
 
+    List<Map<String, Object>> getSaleSteelReportNew(Map<String, Object> mapValue);
+
     List<Map<String, Object>> getInwardSaleSteelReport(Map<String, Object> map);
 
     List<Map<String, Object>> getInwardSaleSteelOrder(Map<String, Object> map);

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

@@ -254,6 +254,12 @@ public class StatisticalReportImpl implements IStatisticalReportService {
         return saleSteelReport;
     }
 
+    @Override
+    public List<Map<String, Object>> getSaleSteelReportNew(Map<String, Object> mapValue) {
+        List<Map<String, Object>> saleSteelReport = statisticalReportMapper.getSaleSteelReportNew(mapValue);
+        return saleSteelReport;
+    }
+
 
 
     @Override

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

@@ -2180,6 +2180,238 @@
                     order by ASO.SALE_ORDER_ID DESC, ASOM.SALE_ORDER_MATERIAL_ID DESC,OO.ORDER_ID  DESC
                      )
     </select>
+
+    <select id="getSaleSteelReportNew" resultType="java.util.Map" parameterType="java.util.Map">
+        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",
+        ASM.EAS_PRIMARY_ID "closeEntryId",
+        ASM.DELETED "deletedStatus",
+        RC.CONSIGNEE_COMPANY_NAME "consigneeName",
+        ASOM.SALE_ORDER_MATERIAL_ID "saleOrderMaterialId",
+        RS.SHIPPER_NAME "shipperName",
+        RCA.CAPACITY_NUMBER "capacityNo",
+        RCA.CAPACITY_NUMBER "newCapacityNo",
+        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",
+        RM.MATERIAL_ID  "materialId",
+        RM.MATERIAL_NAME  "materialName",
+        RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL "materialSpe",
+        (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+        THEN '自提'
+        ELSE R_CARRIER.CARRIER_ABBREVIATION
+        END)
+        "carrierName",
+        OO.ORDER_NUMBER "orderNo",
+        ACTP.PRICE_VALUE AS "priceValue",
+        BDO.DETAILS_AMOUNT AS "detailsAmount",
+        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",
+        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",
+        TLFR.RESULT_OUT_GATE_TIME    "outGateTime",
+        TER.RESULT_ENTRY_GATE_TIME   "entryGateTime",
+        TAR.RESULT_ARRIVAL_ADDRESS "arrivalAddress",
+        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",
+        RSA.AREA_NAME "areaName",
+        TAR.INSERT_TIME "arrivalTime",
+        TRR.INSERT_TIME "receiptTime",
+        ASO.sale_remark "saleRemark",
+        DECODE(OO.PRINTNUMBER,1,'已打印','未打印') "isPrintDelivery"
+        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_SALE_AREA RSA
+        ON RSA.AREA_ID=RC.AREA_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 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 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 TMSTRUCK_ENFACTORY_RESULT TER
+        ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_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 BMSTRUCK_DETAILS_ORDER BDO
+        ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
+        LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE actp
+        ON actp.PRICE_ID = bdo.PRICE_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 ASO.DELETED = 0
+        and ASM.SALE_MATERIAL_ID IS NOT NULL
+        and BDO.WETHER_TO_STATEMENT = 0
+        <if test="oneDate != null">
+            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') &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}
+        </if>
+        <if test="salers != null">
+            and RSR.SALER_NAME = #{salers}
+        </if>
+        <if test="easPrimaryId != null">
+            and ASM.EAS_PRIMARY_ID = #{easPrimaryId}
+        </if>
+        <if test="capacityNum != null">
+            and  RCA.CAPACITY_NUMBER like #{capacityNum}
+        </if>
+        <if test="capacityList != null">
+            and <foreach collection="capacityList" item="item" open="(" separator="or" close=")">
+            <if test="item == null">
+                RCA.CAPACITY_NUMBER is null
+            </if>
+            <if test="item != null">
+                RCA.CAPACITY_NUMBER like '%${item}%'
+            </if>
+        </foreach>
+        </if>
+        <if test="consigneeNames != null">
+            and RC.CONSIGNEE_COMPANY_NAME like #{consigneeNames}
+        </if>
+        <if test="consigneeNameList != null">
+            and <foreach collection="consigneeNameList" item="item" open="(" separator="or" close=")">
+            RC.CONSIGNEE_COMPANY_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="carrierNames != null">
+            and R_CARRIER.CARRIER_ABBREVIATION like #{carrierNames}
+        </if>
+        <if test="carrierList != null ">
+            and <foreach collection="carrierList" item="item" open="(" separator="or" close=")">
+            <if test="item == null">
+                R_CARRIER.CARRIER_ABBREVIATION is null
+            </if>
+            <if test="item != null">
+                (CASE WHEN ASO.SALE_ORDER_ISSELF_MENTION = '是'
+                THEN '自提'
+                ELSE R_CARRIER.CARRIER_ABBREVIATION
+                END) like '%${item}%'
+            </if>
+        </foreach>
+        </if>
+        <if test="materialNameList != null">
+            and <foreach collection="materialNameList" item="item" open="(" separator="or" close=")">
+            RM.MATERIAL_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="saleAreaList != null">
+            and <foreach collection="saleAreaList" item="item" open="(" separator="or" close=")">
+            RSA.AREA_NAME like '%${item}%'
+        </foreach>
+        </if>
+        <if test="orderStatusList != null">
+            and <foreach collection="orderStatusList" item="item" open="(" separator="or" close=")">
+            (CASE
+            when OO.ORDER_STATUS =2
+            then '作业已完成'
+            when OO.ORDER_STATUS=4
+            then '物流公司已派单'
+            when nvl(OO.ORDER_STATUS,0)=0
+            then '未派发'
+            when OO.ORDER_STATUS=7
+            then '已关闭'
+            when OO.ORDER_STATUS=8
+            then '已关闭'
+            WHEN TRR.INSERT_TIME IS NOT NULL
+            THEN '已完成'
+            WHEN TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
+            THEN '已出厂'
+            WHEN TER.RESULT_ENTRY_GATE_TIME IS NOT NULL
+            THEN '已进厂'
+            WHEN QQR.RESULT_START_TIME IS NOT NULL
+            THEN '排队中'
+            when OO.ORDER_STATUS=5
+            then '司机已接单'
+            WHEN TER.INSERT_TIME IS NULL
+            THEN ' '
+            WHEN TLFR.INSERT_TIME IS NULL THEN ' '
+            END) like '%${item}%'
+        </foreach>
+        </if>
+        <if test="addressPlaceList != null">
+            and <foreach collection="addressPlaceList" item="item" open="(" separator="or" close=")">
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS like '%${item}%'
+        </foreach>
+        </if>
+        <if test="materialSpeList != null">
+            and <foreach collection="materialSpeList" item="item" open="(" separator="or" close=")">
+            RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL like '%${item}%'
+        </foreach>
+        </if>
+        <if test="saleOrderStatusList != null">
+            and <foreach collection="saleOrderStatusList" item="item" open="(" separator="or" close=")">
+            DECODE(ASO.SALE_ORDER_STATUS,1,'保存',
+            2,'提交',
+            4,'审核',
+            0,'未上报') like '%${item}%'
+        </foreach>
+        </if>
+        order by ASO.SALE_ORDER_ID DESC, ASOM.SALE_ORDER_MATERIAL_ID DESC,OO.ORDER_ID  DESC
+        )
+    </select>
     <select id="getInwardSaleSteelReport" resultType="java.util.Map" parameterType="java.util.Map">
         --钢材报表
         SELECT distinct OO.ORDER_ID "orderId",