luobang před 2 roky
rodič
revize
be811893f7

+ 9 - 4
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -13,10 +13,7 @@ import com.steerinfo.dil.service.impl.AmsSaleOrderMaterialServiceImpl;
 import com.steerinfo.dil.util.*;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.pagehelper.PageHelper;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -1426,4 +1423,12 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         }
         return success(count);
     }
+
+    @ApiOperation("反关闭运单")
+    @PostMapping("reverseCloseOrder")
+    public RESTfulResult reverseCloseOrder(@RequestBody(required = false) Map<String,Object> map){
+        //反关闭运单
+        int result = amsSaleOrderService.reverseCloseOrder(map);
+        return success(result);
+    }
 }

+ 9 - 4
src/main/java/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.java

@@ -2,13 +2,13 @@ package com.steerinfo.dil.mapper;
 
 import com.steerinfo.dil.model.AmsSaleMaterial;
 import com.steerinfo.framework.mapper.IBaseMapper;
-import java.math.*;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 @Mapper
 public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigDecimal> {
     @Select("select seq_AMS_SALE_MATERIAL.nextval from dual")
@@ -31,4 +31,9 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
     int openAllSaleMaterial(BigDecimal saleOrderId);
     // 反关闭分录
     int adverseCloseSaleMaterial(BigDecimal saleMaterialId);
+
+    int getOrderResults(BigDecimal orderId);
+
+    int updateSaleMaterial(BigDecimal saleOrderMaterialId);
+
 }

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

@@ -171,4 +171,6 @@ public interface IAmsSaleOrderService {
 
     List<Map<String, Object>> getKucunList(Map<String, Object> map);
 
+    int reverseCloseOrder(Map<String, Object> map);
+
 }

+ 1 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -988,4 +988,5 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     }
 
 
+
 }

+ 59 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1991,5 +1991,64 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return amsSaleOrderMapper.getKucunList(map);
     }
 
+    //反关闭
+    @Override
+    public int reverseCloseOrder(Map<String, Object> map) {
+        Integer isOpenEas = (Integer) map.get("isOpenEas");
+        String operateName = (String) map.get("operateName");
+        int result = 0;
+        // 运输订单id
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        // 车序号id
+        BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
+        Map<String,Object> head = new HashMap<>();
+        Map<String,Object> input = new HashMap<>();
+        // 0:代表不关闭整单
+        String wholeOrder = "0";
+        // unClose : 代表反关闭
+        String status = "unClose";
+        if( orderId != null && orderId.intValue() != 0){
+            //根据订单id查询下面的实绩个数
+            int resultCount = amsSaleMaterialMapper.getOrderResults(orderId);
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            omstruckOrder.setOrderId(orderId);
+            if(resultCount == 0){
+                omstruckOrder.setOrderStatus(new BigDecimal(4));
+            }else{
+                omstruckOrder.setOrderStatus(new BigDecimal(5));
+            }
+            if(operateName != null){
+                omstruckOrder.setOptionerCode(operateName);
+            }
+            omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            // 根据车序号主键修改子表
+            amsSaleMaterialMapper.updateSaleMaterial(saleOrderMaterialId);
+            //查询分录ID,修改金蝶
+            List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId(saleOrderMaterialId);
+            for(Map<String,Object> easMap:saleMaterialIdList){
+                // 设置反关闭分录id
+                head.put("unCloseEntryId",easMap.get("closeEntryId"));
+                // 设置是否整单
+                head.put("wholeOrder",wholeOrder);
+                // 设置销售订单号
+                head.put("number",map.get("saleNumber"));
+                // 设置状态:unClose,反关闭;close,关闭
+                head.put("status",status);
+                input.put("head",head);
+                Map<String, Object> totalMap = easUtil.getTotalMap();
+                input.put("head",head);
+                totalMap.put("input",input);
+                // 调用金蝶关闭接口
+                String json = JSONUtils.toJSONString(totalMap);
+                System.out.println(json);
+                Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+                System.out.println(resultMap);
+            }
+            return 0;
+
+        }
+        return 1;
+    }
+
 
 }

+ 17 - 2
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -529,8 +529,7 @@
       AND OO.ORDER_PLAN_ID = #{saleOrderMaterialId}
     ORDER BY TWR.TARE_SEGMENT_SQE DESC
   </select>
-  
-  <delete id="deleteLoadResult" parameterType="DECIMAL" >
+    <delete id="deleteLoadResult" parameterType="DECIMAL" >
     DELETE FROM TMSTRUCK_LOAD_RESULT WHERE RESULT_ID = #{loadId}
   </delete>
 
@@ -580,5 +579,21 @@
     SET ASM.DELETED = NULL
     WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
   </update>
+  <update id="updateSaleMaterial" parameterType="decimal">
+    UPDATE AMS_SALE_MATERIAL ASM
+    SET ASM.DELETED = null
+    WHERE ASM.SALE_MATERIAL_ID IN
+    (SELECT ASTM.MATERIAL_ID
+     FROM AMS_SALE_ORDER_MATERIAL ASOM
+            LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+                      ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+     WHERE ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId})
+  </update>
 
+  <select id="getOrderResults" 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>
 </mapper>