浏览代码

修改销售汽运计费详单

luobang 2 年之前
父节点
当前提交
dcec9dc9df

+ 9 - 24
src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java

@@ -397,7 +397,7 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
                                                    String startTime,
                                                    String endTime,
                                                    String con){
-        DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        DataChange.queryDataByDateTimeYestDay(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
         if (carrierSsoId != null && !"null".equals(carrierSsoId)) {
             BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
             mapValue.put("carrierId",carrierId);
@@ -405,42 +405,27 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         if (con != null && !"null".equals(con)){
             mapValue.put("con","%" +con+ "%");
         }
-        if(pageNum!=null&&!("".equals(pageNum))&&pageSize!=null&&!("".equals(pageSize))){
-            PageHelper.startPage(pageNum, pageSize);
+        if(pageNum !=null &&!("".equals(pageNum))&&pageSize!=null&&!("".equals(pageSize))){
+            //PageHelper.startPage(pageNum, pageSize);
         }
         List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getSteelTruckDetailsOrder(mapValue);
-        //查询多条数据
-        for (Map<String, Object> objectMap : columnList) {
-            String priceids = (String) objectMap.get("priceids");
-            if (priceids!=null&&!("".equals(priceids))){
-                String[] split = priceids.split(",");
-                String address1="";
-                for (String s : split) {
-                    //查询出运输订单的行
-                    Map<String, Object> queryaddress = bmstruckDetailsOrderMapper.queryaddress(new BigDecimal(s));
-                    String address = bmstruckDetailsOrderMapper.queryaddress1((BigDecimal) queryaddress.get("placeid"));
-                    address1+=address+",";
-                }
-                objectMap.put("realAddress",address1);
-            }
-        }
         List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
         int i=0;
         for (Map<String, Object> columnData : columnDataList) {
             //每个表头字段的过滤条件
             columnData.put("filters", setListMap(columnList,columnData.get("prop").toString()));
             if (i==1){
-                columnData.put("min-width","83px");
+                columnData.put("min-width","83");
             }else if (i==2){
-                columnData.put("min-width","207px");
+                columnData.put("min-width","207");
             }else if (i==5){
-                columnData.put("min-width","101px");
+                columnData.put("min-width","101");
             }else if (i==8){
-                columnData.put("min-width","184px");
+                columnData.put("min-width","184");
             }else if (i==10){
-                columnData.put("min-width","242px");
+                columnData.put("min-width","120");
             }else if (i==15){
-                columnData.put("min-width","228px");
+                columnData.put("min-width","228");
             }
             i++;
         }

+ 17 - 0
src/main/java/com/steerinfo/dil/feign/AmsFeign.java

@@ -0,0 +1,17 @@
+package com.steerinfo.dil.feign;
+
+import com.steerinfo.framework.controller.RESTfulResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
+
+
+
+@FeignClient(value = "dil-ams-api", url = "${openfeign.AmsFeign.url}")
+public interface AmsFeign {
+
+    @PostMapping(value = "/api/v1/ams/amscontracttransportprice/copySteelPrice")
+    Map<String,Object> copySteelPrice(@RequestBody Map<String, Object> priceMap);
+}

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java

@@ -182,4 +182,8 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
 
     List<Map<String, Object>> getSteelWeightTaskResultId(BigDecimal orderId);
 
+    List<BigDecimal> getDetailIds(BigDecimal orderId);
+
+    int updatePlace(Map<String, Object> mapValue);
+
 }

+ 40 - 21
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.AmsFeign;
 import com.steerinfo.dil.feign.JoinApiFeign;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.BmstruckDetailsOrderMapper;
@@ -17,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.lang.reflect.Array;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
@@ -49,6 +51,9 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
     @Autowired
     OmsFeign omsFeign;
 
+    @Autowired
+    AmsFeign amsFeign;
+
     //以下订单类型是需要算计量实绩的
     final private List<Integer>  inwardTypeList = Arrays.asList(10,11,15,16,23,24,20,25);
     //以下订单类型是需要根据线路去匹配承运起止范围以及物资
@@ -489,33 +494,47 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
     @Transactional
     @Override
     public int updateDetailsOrder(Map<String, Object> mapValue) {
+        BigDecimal orderId = DataChange.dataToBigDecimal(mapValue.get("orderId"));
+        try {
+            int i = insertSelective(orderId);
+        } catch (Exception e) {
+        }
         BigDecimal priceId = DataChange.dataToBigDecimal(mapValue.get("priceId"));
-        BigDecimal detailsId = DataChange.dataToBigDecimal(mapValue.get("detailsId"));
-        BmstruckDetailsOrder bmstruckDetailsOrder = bmstruckDetailsOrderMapper.selectByPrimaryKey(detailsId);
-        // 重新设置单价
-        BigDecimal priceId1 = bmstruckDetailsOrder.getPriceId();
-        bmstruckDetailsOrder.setPriceids(priceId1+","+priceId);
-        bmstruckDetailsOrder.setPriceId(priceId);
-        BigDecimal weightTaskResultId = bmstruckDetailsOrder.getWeightTaskResultId();
-        BigDecimal orderId = bmstruckDetailsOrderMapper.getOrderId(weightTaskResultId);
-        OmstruckOrder omstruckOrder = new OmstruckOrder();
-        omstruckOrder.setOrderId(orderId);
-        omstruckOrder.setPriceId(priceId);
-        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        //根据运输订单id查询计费详单id
+        List<BigDecimal> detailIds = bmstruckDetailsOrderMapper.getDetailIds(orderId);
+        int result = 0;
+        for (BigDecimal detailsId : detailIds) {
+            BmstruckDetailsOrder bmstruckDetailsOrder = bmstruckDetailsOrderMapper.selectByPrimaryKey(detailsId);
+            // 重新设置单价
+            BigDecimal priceId1 = bmstruckDetailsOrder.getPriceId();
+            bmstruckDetailsOrder.setPriceids(priceId1+","+priceId);
+            bmstruckDetailsOrder.setPriceId(priceId);
+            BigDecimal weightTaskResultId = bmstruckDetailsOrder.getWeightTaskResultId();
+            try {
+                // 计算出新的详单金额
+                BigDecimal newAmount = generateTruckFees(orderId,weightTaskResultId);
+                bmstruckDetailsOrder.setDetailsAmount(newAmount);
+                //修改计量表的历史时间
+                omstruckOrderMapper.modifyOldTime(priceId,new Date());
+            }catch (Exception e){
+                System.out.println("更新历史时间失败");
+            }
+            result = bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
+        }
         try {
-            // 计算出新的详单金额
-            BigDecimal newAmount = generateTruckFees(orderId,weightTaskResultId);
-            bmstruckDetailsOrder.setDetailsAmount(newAmount);
+            amsFeign.copySteelPrice(mapValue);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        try{
-            //修改计量表的历史时间
-            omstruckOrderMapper.modifyOldTime(priceId,new Date());
-        }catch (Exception e){
-            System.out.println("更新历史时间失败");
+        OmstruckOrder omstruckOrder = new OmstruckOrder();
+        omstruckOrder.setOrderId(orderId);
+        omstruckOrder.setPriceId(priceId);
+        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        if(DataChange.dataToBigDecimal(mapValue.get("updatePlace")).intValue() == 1) {
+            //修改地址
+            bmstruckDetailsOrderMapper.updatePlace(mapValue);
         }
-        int result = bmstruckDetailsOrderMapper.updateByPrimaryKeySelective(bmstruckDetailsOrder);
+        //BigDecimal detailsId = DataChange.dataToBigDecimal(mapValue.get("detailsId"));
         return result;
     }
 

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

@@ -257,4 +257,26 @@ public class DataChange {
         map.put("startDate", dayStartTime + " 00:00:00");
         map.put("endDate", dayEndTime + " 00:00:00");
     }
+
+    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", 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))){
+            if(startTime != null && !"null".equals(startTime)){
+                queryDataByTwoDateSon(map, startTime, sdfDate);
+            }
+            if(endTime != null && !"null".equals(endTime)){
+                queryDataByTwoDateSon(map, endTime, sdfDate);
+            }
+        }else {
+            //如果两者时间都为空,则查询当天和昨天数据
+            //String yesDate = sdfDate.format(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24));
+            String nowDate = sdfDate.format(new Date());
+            map.put("oneDate", nowDate);
+        }
+    }
 }

+ 2 - 1
src/main/resources/application-prod.yml

@@ -13,6 +13,7 @@ openfeign:
     url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
   OmsFeign:
     url: ${OMSFEIGN_URL:172.16.33.166:8095}
-
+  AmsFeign:
+    url: ${AMSFEIGN_URL:172.16.33.166:8079}
 server:
   port: 8076

+ 16 - 4
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -2017,7 +2017,7 @@
                         rsa.area_name "areaName",
                         aso.sale_order_receive_customer "receiveMoneyCus",
                         ASM.EAS_PRIMARY_ID "easPrimaryId",
-                        oo.ORDER_ISSUE_TIME "orderissuetime",
+                        to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd')   "orderDate",
                         bdo.PRICEIDS  "priceids"
                         FROM
                         BMSTRUCK_DETAILS_ORDER bdo
@@ -2054,11 +2054,11 @@
                              and RC2.CARRIER_ID = #{carrierId}
                          </if>
                         <if test="oneDate != null">
-                            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= twr.RESULT_GROSS_WEIGHT_TIME
+                            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="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
+                            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>
                         order by oo.order_id desc
             )
@@ -2310,4 +2310,16 @@
         WHERE OO.ORDER_ID = #{orderId}
         order by twr.GROSS_SEGMENT_SQE desc
     </select>
+    <select id="getDetailIds" resultType="java.math.BigDecimal" parameterType="decimal">
+        SELECT BDO.DETAILS_ID "detailId" FROM BMSTRUCK_DETAILS_ORDER BDO
+        WHERE BDO.ORDER_ID = #{orderId}
+    </select>
+    <update id="updatePlace" parameterType="map">
+        update AMS_SALE_ORDER_MATERIAL ASOM
+        set asom.SALE_SHIPPING_ADDRESS_ID = #{placeId}
+        where ASOM.SALE_ORDER_MATERIAL_ID = (SELECT oo.order_plan_id FROM
+        OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+        )
+    </update>
 </mapper>