luobang 2 years ago
parent
commit
6f9c02ba60

+ 10 - 0
src/main/java/com/steerinfo/dil/feign/TmstruckFeign.java

@@ -1,5 +1,8 @@
 package com.steerinfo.dil.feign;
 
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,4 +26,11 @@ public interface TmstruckFeign {
 
     @PostMapping("api/v1/truckTms/tmstruckmeasurecommissions/sendMeasureCommission")
     Map<String,Object> sendMeasureCommission(@RequestBody(required=false) Map<String,Object> map);
+
+    @ApiOperation(value="PDA扫描更新进厂作业实绩")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "运输计划实绩对象", required = false, dataType = "Map"),
+    })
+    @PostMapping("api/v1/truckTms/tmstruckenfactoryresults/enFactoryResultByPDA")
+    Map<String, Object> enFactoryResultByPDA(@RequestBody(required=false) Map<String,Object> mapValue);
 }

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

@@ -43,4 +43,6 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     int updateAstmBystId(String easId);
 
+    List<BigDecimal> getSaleMaterialIdBySaleOrderId(BigDecimal saleOrderId);
+
 }

+ 39 - 26
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -260,6 +260,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         // 反关闭整单
         if (closeStatus.equals("-2") && "1".equals(wholeOrder)) {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
+            BigDecimal saleOrderIsDelete = amsSaleOrder.getDeleted();
             amsSaleOrder.setDeleted(new BigDecimal(0));
             BigDecimal saleOrderId = amsSaleOrder.getSaleOrderId();
             amsSaleOrder.setUpdateTime(new Date());
@@ -271,34 +272,46 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
                 amsSaleOrder.setUpdateUsername(userName.toString());
             }
-            // 反关闭销售订单下的所有分录
-            result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
-            //反关闭这个销售订单下面被关闭的运单
-            try {
-                List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
-                //记录日志
-                saleLogUtil.logOrderBatch(orderMapList,"金蝶反关闭整单,物流同步反关闭销售订单下的整单",SaleLogUtil.OPEN);
-                for (Map<String,Object> orderMap :orderMapList) {
-                    OmstruckOrder omstruckOrder = new OmstruckOrder();
-                    if(orderMap.get("factoryResultId") != null) {
-                        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderMap.get("orderId")));
-                        omstruckOrder.setInsertUpdateRemark("金蝶反关闭整单,物流同步反关闭销售订单下的整单");
-                        omstruckOrder.setOrderStatus(new BigDecimal(5));
-                        omstruckOrder.setUpdateTime(new Date());
-                        omstruckOrder.setUpdateUsername("金蝶");
-                        result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
-                    }else{
-                        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderMap.get("orderId")));
-                        omstruckOrder.setInsertUpdateRemark("金蝶反关闭整单,物流同步反关闭销售订单下的整单");
-                        omstruckOrder.setOrderStatus(new BigDecimal(4));
-                        omstruckOrder.setUpdateUsername("金蝶");
-                        result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            //判断当前销售订单的一个状态
+            if(saleOrderIsDelete.compareTo(new BigDecimal(0)) != 0) {
+                //// 反关闭销售订单下的所有分录
+                result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
+                //反关闭这个销售订单下面被关闭的运单
+                try {
+                    List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
+                    //记录日志
+                    saleLogUtil.logOrderBatch(orderMapList,"金蝶反关闭整单,物流同步反关闭销售订单下的整单",SaleLogUtil.OPEN);
+                    for (Map<String,Object> orderMap :orderMapList) {
+                        OmstruckOrder omstruckOrder = new OmstruckOrder();
+                        if(orderMap.get("factoryResultId") != null) {
+                            omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderMap.get("orderId")));
+                            omstruckOrder.setInsertUpdateRemark("金蝶反关闭整单,物流同步反关闭销售订单下的整单");
+                            omstruckOrder.setOrderStatus(new BigDecimal(5));
+                            omstruckOrder.setUpdateTime(new Date());
+                            omstruckOrder.setUpdateUsername("金蝶");
+                            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                        }else{
+                            omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderMap.get("orderId")));
+                            omstruckOrder.setInsertUpdateRemark("金蝶反关闭整单,物流同步反关闭销售订单下的整单");
+                            omstruckOrder.setOrderStatus(new BigDecimal(4));
+                            omstruckOrder.setUpdateUsername("金蝶");
+                            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                        }
+                        //将订单分录里面的物资id
+                        omstruckOrderMapper.updateOOMRemark(DataChange.dataToBigDecimal(orderMap.get("orderId")));
                     }
-                    //将订单分录里面的物资id
-                    omstruckOrderMapper.updateOOMRemark(DataChange.dataToBigDecimal(orderMap.get("orderId")));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }else{
+                try {
+                    List<BigDecimal> saleMaterialIds = amsSaleMaterialMapper.getSaleMaterialIdBySaleOrderId(saleOrderId);
+                    for(BigDecimal saleMaterialId :saleMaterialIds) {
+                        amsFeign.adverseCloseSaleMaterialByEas(saleMaterialId);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
-            } catch (Exception e) {
-                e.printStackTrace();
             }
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
         }

+ 23 - 4
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -925,10 +925,15 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 BigDecimal weightTaskResultId = tmstruckWeightResultMapper.getWeightTaskResultIdNoNet(map);
                 BigDecimal saleMaterialId = tmstruckWeightResultMapper.getSaleMaterialId(map);
                 //判断该分录在计量实绩表里有没有净重,如果有
-                //Map<String,Object> weightMesBySaleMaterialId = tmstruckWeightResultMapper.getWeightMesBySaleMaterialId(saleMaterialId);
-                //if(weightMesBySaleMaterialId != null && weightMesBySaleMaterialId.get("poundNo") != null) {
-                //    //系统自动走删皮
-                //}
+                try {
+                    Map<String,Object> weightMesBySaleMaterialId = tmstruckWeightResultMapper.getWeightMesBySaleMaterialId(saleMaterialId);
+                    if(weightMesBySaleMaterialId != null && weightMesBySaleMaterialId.get("poundNo") != null) {
+                        //系统自动走删皮
+                        linkageDeleteTransportOrder2(weightMesBySaleMaterialId);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
                 if(weightTaskResultId != null && saleMaterialId != null) {
                     //更新计量实绩
                     System.out.println("更新计量实绩校验");
@@ -1020,6 +1025,13 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                     tmstruckWeightResultMapper.updateEnfactoryResult(resultTotalId);
                     tmstruckWeightResultMapper.updateOrderLineSqe(orderId);
                     tmstruckWeightResultMapper.updateTotalStatus(resultTotalId);
+                    try {
+                        Map<String, Object> enFactoryMap = new HashMap<>();
+                        enFactoryMap.put("orderNumber",orderMes.get("orderNumber") + " ");
+                        tmstruckFeign.enFactoryResultByPDA(enFactoryMap);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                     return "删除皮重信息,同时将进厂信息删除,请提醒司机重新扫进厂,否则不能过磅!";
                 }
                 //如果传输了物资,则判断该物资是第几拼
@@ -1047,6 +1059,13 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                         tmstruckWeightResultMapper.updateEnfactoryResult(resultTotalId);
                         tmstruckWeightResultMapper.updateOrderLineSqe(orderId);
                         tmstruckWeightResultMapper.updateTotalStatus(resultTotalId);
+                        //try {
+                        //    Map<String, Object> enFactoryMap = new HashMap<>();
+                        //    enFactoryMap.put("orderNumber",orderMes.get("orderNumber") + " ");
+                        //    tmstruckFeign.enFactoryResultByPDA(enFactoryMap);
+                        //} catch (Exception e) {
+                        //    e.printStackTrace();
+                        //}
                         return "该车整条计量数据1条,删除整条数据1条,同时将进厂信息删除,请提醒司机重新扫进厂,否则不能过磅!";
                     }
 

+ 8 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -769,7 +769,8 @@
 
     <update id="openAllSaleMaterial" parameterType="DECIMAL" >
         UPDATE AMS_SALE_MATERIAL ASM
-        SET ASM.DELETED = NULL
+        SET ASM.DELETED = NULL,
+            ASM.INSERT_UPDATE_REMARK = ASM.INSERT_UPDATE_REMARK || '金蝶反关闭整单物流同步反关闭分录'
         WHERE ASM.SALE_ORDER_ID = #{saleOrderId}
     </update>
 
@@ -812,4 +813,10 @@
             ASTM.INSERT_UPDATE_REMARK = '修改指向'||ASTM.SALE_ORDER_MATERIAL_ID
         WHERE ASTM.MATERIAL_ID = #{easId}
     </update>
+    <select id="getSaleMaterialIdBySaleOrderId" resultType="java.math.BigDecimal" parameterType="decimal">
+        SELECT ASM.SALE_MATERIAL_ID FROM AMS_SALE_MATERIAL ASM
+        WHERE
+        ASM.DELETED IS NOT NULL
+        AND ASM.SALE_ORDER_ID = #{saleOrderId}
+    </select>
 </mapper>

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

@@ -1316,6 +1316,7 @@
     <select id="getOOPoundMes" resultType="java.util.Map" parameterType="string">
        SELECT OO.ORDER_TYPE "orderType",
               OO.ORDER_ID   "orderId",
+              OO.ORDER_NUMBER   "orderNumber",
               TTR.RESULT_TOTAL_ID   "resultTotalId",
               TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
               TWR.TARE_SEGMENT_SQE "tareSqe",