luobang 2 سال پیش
والد
کامیت
7bf3a496cc

+ 8 - 8
src/main/java/com/steerinfo/dil/controller/WSFaceController.java

@@ -71,17 +71,17 @@ public class WSFaceController extends BaseRESTfulController {
     public Map<String,Object> pushSaleOrderToEas(@RequestBody Map<String,Object> map) {
 //        Map<String, Object> totalMap = saleUtil.getTotalMap();
 //        totalMap.put("input",map);
-        //正式服务器
+//        //正式服务器
         com.steerinfo.dil.wsdl.ServiceInfo service = new ServiceInfo("user", "dgjt@kingdee", "eas", "FDDGEAS85", "L2", 1);
         WSFaceFacadeSrvProxyServiceLocator locator = new WSFaceFacadeSrvProxyServiceLocator();
         service.setServername("172.16.33.111" , "8888");
         WSContext wsContext = LoginUtil.doEASLogin(service);
-//        //测试服务器
-//        DeleteServiceInfo service = new DeleteServiceInfo("user", "dgjt@kingdee", "eas", "A004", "L2", 1);
-//        DeleteWSFaceFacadeSrvProxyServiceLocator locator = new DeleteWSFaceFacadeSrvProxyServiceLocator();
-//        service.setServername("172.16.62.243" , "8888");
-//        WSContext wsContext = LoginTestUtil.doEASLogin(service);
-        String sessionId = wsContext.getSessionId();
+        //测试服务器
+        //DeleteServiceInfo service = new DeleteServiceInfo("user", "dgjt@kingdee", "eas", "D002", "L2", 1);
+        //DeleteWSFaceFacadeSrvProxyServiceLocator locator = new DeleteWSFaceFacadeSrvProxyServiceLocator();
+        //service.setServername("172.16.62.243" , "8888");
+        //WSContext wsContext = LoginTestUtil.doEASLogin(service);
+        //String sessionId = wsContext.getSessionId();
         String output = null;
         Map<String , Object> resultMap = new HashMap<>();
         try {
@@ -145,7 +145,7 @@ public class WSFaceController extends BaseRESTfulController {
         //DeleteServiceInfo service = new DeleteServiceInfo("user", "dgjt@kingdee", "eas", "A004", "L2", 0);
         //DeleteWSFaceFacadeSrvProxyServiceLocator locator = new DeleteWSFaceFacadeSrvProxyServiceLocator();
         //service.setServername("172.16.62.243" , "8888");
-
+        //
         //WSContext wsContext = LoginTestUtil.doEASLogin(service);
         String sessionId = wsContext.getSessionId();
         Map<String , Object> resultMap = new HashMap<>();

+ 12 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -23,4 +23,16 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 
     List<Map<String, Object>> finCarAndCarrierAndEntries(BigDecimal saleOrderMaterialId);
 
+    BigDecimal selectOrderMes(BigDecimal saleMaterialId);
+
+    int selectOrderMaterialcount(BigDecimal orderId);
+
+    int updateOrderToMa(BigDecimal orderId, BigDecimal materialId);
+
+    int updateUnOrderToMa(BigDecimal orderId, BigDecimal materialId);
+
+    Integer selectOrderStatus(BigDecimal orderId);
+
+    int getResultOrder(BigDecimal orderId);
+
 }

+ 71 - 19
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.steerinfo.dil.service.IAmsSaleOrderService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.MyException;
 import com.sun.org.apache.bcel.internal.generic.NEW;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.executor.loader.ResultLoader;
 import org.assertj.core.internal.bytebuddy.implementation.FieldAccessor;
 import org.slf4j.Logger;
@@ -181,10 +182,33 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 Map<String, Object> easMap = new HashMap<>();
                 easMap.put("easPrimaryId", closeEntryId);
                 List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
-                if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
+                if (amsSaleMaterials != null && amsSaleMaterials.size() != 0 && amsSaleMaterials.get(0) != null) {
                     AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
                     amsSaleMaterial.setDeleted(new BigDecimal(0));
                     result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+                    BigDecimal saleMaterialId = amsSaleMaterial.getSaleMaterialId();
+                    BigDecimal materialId = amsSaleMaterial.getMaterialId();
+                    //判断该分录有没有运单
+                    try {
+                        BigDecimal orderId = omstruckOrderMapper.selectOrderMes(saleMaterialId);
+                        if(orderId != null) {
+                            //如果存在订单,则将订单物资取消装货1.首先判断有几拼
+                            omstruckOrderMapper.updateOrderToMa(orderId,materialId);
+                            int orderMaterialcount = omstruckOrderMapper.selectOrderMaterialcount(orderId);
+                            if (orderMaterialcount == 1) {
+                                //如果单拼关闭运单
+                                OmstruckOrder omstruckOrder = new OmstruckOrder();
+                                omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
+                                //如果是单拼或者只剩一条分录没有关闭了则将状态设为7
+                                omstruckOrder.setOrderStatus(new BigDecimal(7));
+                                omstruckOrder.setUpdateTime(new Date());
+                                omstruckOrder.setInsertUpdateRemark("金蝶关闭分录,物流同步关闭运输订单");
+                                result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                            }
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
             }
         }
@@ -199,24 +223,28 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             // 反关闭销售订单下的所有分录
             result += amsSaleMaterialMapper.openAllSaleMaterial(saleOrderId);
             //反关闭这个销售订单下面被关闭的运单
-            List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
-            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);
-                }
+            try {
+                List<Map<String,Object>> orderMapList = amsSaleOrderMapper.selectOrderList(saleOrderId);
+                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);
+                    }
 
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
             result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
         }
@@ -226,9 +254,32 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 Map<String, Object> easMap = new HashMap<>();
                 easMap.put("easPrimaryId", unCloseEntryId);
                 List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(easMap);
-                if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
+                if (amsSaleMaterials != null && amsSaleMaterials.size() != 0 && amsSaleMaterials.get(0) != null) {
                     AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
                     result += amsSaleMaterialMapper.unCloseSaleMaterial(amsSaleMaterial.getSaleMaterialId());
+                    BigDecimal saleMaterialId = amsSaleMaterial.getSaleMaterialId();
+                    BigDecimal materialId = amsSaleMaterial.getMaterialId();
+                    //判断该分录有没有运单
+                    try {
+                        BigDecimal orderId = omstruckOrderMapper.selectOrderMes(saleMaterialId);
+                        if(orderId != null) {
+                            //如果存在订单,则将订单物资去掉取消装货1.首先判断有几拼
+                            omstruckOrderMapper.updateUnOrderToMa(orderId,materialId);
+                            //查询订单状态
+                            Integer orderStatusOrder = omstruckOrderMapper.selectOrderStatus(orderId);
+                            int factoryResult = omstruckOrderMapper.getResultOrder(orderId);
+                            OmstruckOrder omstruckOrder = new OmstruckOrder();
+                            if(orderStatusOrder == 7 && factoryResult == 0) {
+                                omstruckOrder.setOrderId(orderId);
+                                omstruckOrder.setOrderStatus(new BigDecimal(4));
+                                omstruckOrder.setInsertUpdateRemark("反关闭分录,运单同步开启");
+                                omstruckOrder.setUpdateTime(new Date());
+                                omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                            }
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
             }
         }
@@ -832,6 +883,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                     if (amsSaleMaterials != null && amsSaleMaterials.size() != 0) {
                         AmsSaleMaterial amsSaleMaterial = amsSaleMaterials.get(0);
                         result += amsSaleMaterialMapper.unCloseSaleMaterial(amsSaleMaterial.getSaleMaterialId());
+
                     }
                 }
             }

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

@@ -1095,7 +1095,6 @@
     ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
     WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
     and oo.order_type = 1
-    and oo.insert_update_remark = '金蝶关闭销售订单,物流同步关闭'
   </select>
 
 

+ 33 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -857,4 +857,37 @@
           AND OO.ORDER_TYPE = 1
           and ASM.SALE_MATERIAL_ID IS NOT NULL
     </select>
+    <select id="selectOrderMes" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT distinct oo.ORDER_ID FROM AMS_SALE_MATERIAL ASM
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM on ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM on ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
+    </select>
+    <select id="selectOrderMaterialcount" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+        SELECT count(oom.ORDER_MATERIAL_ID) FROM OMSTRUCK_ORDER_MATERIAL OOM
+        WHERE OOM.ORDER_ID = #{orderId}
+    </select>
+    <select id="selectOrderStatus" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+        SELECT oo.ORDER_STATUS FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+    <select id="getResultOrder" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+        SELECT count(TER.RESULT_ID)  FROM TMSTRUCK_TOTAL_RESULT TTR
+        LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+        ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = #{orderId}
+    </select>
+    <update id="updateOrderToMa">
+        UPDATE OMSTRUCK_ORDER_MATERIAL OOM
+        SET OOM.MATERIAL_PRIORITY = 71
+        WHERE OOM.ORDER_ID = #{orderId}
+        and OOM.MATERIAL_ID = #{materialId}
+    </update>
+    <update id="updateUnOrderToMa">
+        UPDATE OMSTRUCK_ORDER_MATERIAL OOM
+        SET OOM.MATERIAL_PRIORITY = null
+        WHERE OOM.ORDER_ID = #{orderId}
+          and OOM.MATERIAL_ID = #{materialId}
+    </update>
 </mapper>

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

@@ -985,6 +985,7 @@
                  where RC.CAPACITY_NUMBER = #{carNo}
                    and TWR.RESULT_NET_WEIGHT is null
                    and oo.order_status = 5
+                   and oo.order_type = 1
                  order by "tareSegmentSqe"
              )
         where rownum = 1