luobang 2 anni fa
parent
commit
31ab3e03f2

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

@@ -7,6 +7,7 @@ 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> {
@@ -36,4 +37,10 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     List<String> getMaterialEasIdList(String saleNumber);
 
+    Map<String, Object> getEasWlMap(BigDecimal easId);
+
+    int updateSaleMaterialByEasId(String easId);
+
+    int updateAstmBystId(String easId);
+
 }

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

@@ -155,4 +155,8 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     int getNetWeightCount(BigDecimal resultTotalId);
 
+    Map<String, Object> getOldOrderMes(Map<String, Object> mesMap);
+
+    Map<String, Object> getWeightMesBySaleMaterialId(BigDecimal saleMaterialId);
+
 }

+ 15 - 4
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -193,12 +193,15 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         if (closeStatus.equals("-1") && "1".equals(wholeOrder) && amsSaleOrders.size() != 0 && amsSaleOrders.get(0) != null) {
             AmsSaleOrder amsSaleOrder = amsSaleOrders.get(0);
             amsSaleOrder.setDeleted(new BigDecimal(2));
+            amsSaleOrder.setUpdateTime(new Date());
+
             amsSaleOrder.setInsertUpdateRemark("关闭销售订单整单");
             if (reason != null) {
                 amsSaleOrder.setInsertUpdateRemark(reason.toString());
             }
             if (userName != null){
                 insertUpdateRemark = userName + amsSaleOrder.getInsertUpdateRemark() + "关闭销售订单整单";
+                amsSaleOrder.setUpdateUsername(userName.toString());
                 amsSaleOrder.setInsertUpdateRemark(insertUpdateRemark);
             }
             result += amsSaleMaterialMapper.closeAllSaleMaterial(amsSaleOrder.getSaleOrderId());
@@ -347,7 +350,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                         amsSaleOrderMapper.insertIntoNoticeUser(noticeId,carrierName);
                     }
                 }
-
             }catch (Exception e){
                 e.printStackTrace();
             }
@@ -736,9 +738,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                     List<String> chaEasIds = new ArrayList<>(set);
                     //遍历数组将这里面的分录删掉
                     for (String easId:chaEasIds){
-                        //物理删除该分录
-                        result += amsSaleMaterialMapper.deleteSaleMaterialByEasId(easId);
-                        result += amsSaleMaterialMapper.deleteAstmBystId(easId);
+                        //先做判断
+                        try {
+                            Map<String,Object> easWlMap = amsSaleMaterialMapper.getEasWlMap(DataChange.dataToBigDecimal(easId));
+                            if(easWlMap != null && easWlMap.get("saleNo") != null && easWlMap.get("saleNo").equals("saleNumber")) {
+                                //result += amsSaleMaterialMapper.deleteSaleMaterialByEasId(easId);
+                                result += amsSaleMaterialMapper.updateSaleMaterialByEasId(easId);
+                                //result += amsSaleMaterialMapper.deleteAstmBystId(easId);
+                                result += amsSaleMaterialMapper.updateAstmBystId(easId);
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
                     }
                     System.out.println("---删除多余分录" + new Date());
                     System.out.println(chaEasIds);

+ 27 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -280,6 +280,10 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 map.put("newWeight",newWeight);
                 //更新运输订单物资子表的件数和理论重量
             }
+            if(map.get("theoryWeight") != null && !"".equals(map.get("theoryWeight"))) {
+                newWeight = DataChange.dataToBigDecimal(map.get("theoryWeight"));
+                map.put("newWeight",newWeight);
+            }
             tmstruckWeightResultMapper.updateOrderMaterial(map);
             tmstruckWeightResultMapper.updateSaleMaterialId(saleMaterialId,materialNum,newWeight);
         }else{
@@ -831,12 +835,30 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
      * @return
      */
     public String linkUpdateAPO(Map<String, Object> map, Integer orderType){
+
             //如果等于1 则代表是需要变更采购订单号的订单
             Map<String, Object> mesMap = tmstruckWeightResultMapper.getAPOMes(String.valueOf(map.get("ArrivalBillNo")));
             if (mesMap == null){
                 return map.get("ArrivalBillNo") + "系统没有此订单号!失败";
             }
             mesMap.put("orderNumber", map.get("orderNumber"));
+
+            try{
+                new Thread( new Runnable() {
+                    public void run(){
+                        try {
+                            Map<String,Object> oldOrderMes = tmstruckWeightResultMapper.getOldOrderMes(mesMap);
+                            map.put("oldOrderMes",oldOrderMes);
+                            JSONObject jsonObject = new JSONObject(map);
+                            newFileTool.newFile(jsonObject.toString(),"计量-物流联动换单");
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }).start();
+            }catch (Exception e) {
+                e.printStackTrace();
+            }
             if(orderType == 20 || orderType == 15 || orderType == 16 || orderType == 23 || orderType == 24){
                 //20订单修改的表不一样呀,找寻该采购订单对应的最新需求id和计划id
                 BigDecimal planId = tmstruckWeightResultMapper.selectNewPlanId(mesMap);
@@ -884,6 +906,11 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 //根据运输订单号查询计量实绩ID
                 BigDecimal weightTaskResultId = tmstruckWeightResultMapper.getWeightTaskResultIdNoNet(map);
                 BigDecimal saleMaterialId = tmstruckWeightResultMapper.getSaleMaterialId(map);
+                //判断该分录在计量实绩表里有没有净重,如果有
+                //Map<String,Object> weightMesBySaleMaterialId = tmstruckWeightResultMapper.getWeightMesBySaleMaterialId(saleMaterialId);
+                //if(weightMesBySaleMaterialId != null && weightMesBySaleMaterialId.get("poundNo") != null) {
+                //    //系统自动走删皮
+                //}
                 if(weightTaskResultId != null && saleMaterialId != null) {
                     //更新计量实绩
                     System.out.println("更新计量实绩校验");

+ 2 - 1
src/main/java/com/steerinfo/dil/util/newFileTool.java

@@ -15,8 +15,9 @@ public class newFileTool {
         //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         FastDateFormat format = FastDateFormat.getInstance("yyyy-MM-dd");
         String date  = format.format(new Date());
-        File file = new File("/shared/" + date + "-" + type + ".txt");
+        //File file = new File("../log/" + date + "-" + type + ".txt");
         //File file = new File("/shared/test.txt");
+        File file = new File("/shared/" + date + "-" + type + ".txt");
         FileWriter fileWriter = new FileWriter(file,true);
         FastDateFormat format1 = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
         fileWriter.append("\n");

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

@@ -766,6 +766,7 @@
         WHERE aso.SALE_NUMBER = #{saleNumber}
     </select>
 
+
     <update id="openAllSaleMaterial" parameterType="DECIMAL" >
         UPDATE AMS_SALE_MATERIAL ASM
         SET ASM.DELETED = NULL
@@ -791,5 +792,24 @@
         DELETE FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
         WHERE ASTM.MATERIAL_ID = #{easId}
     </delete>
-
+    <select id="getEasWlMap" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        SELECT ASO.SALE_NUMBER "saleNumber",
+               ASM.SALE_NO  "saleNo"
+        FROM AMS_SALE_MATERIAL ASM
+        LEFT JOIN AMS_SALE_ORDER ASO
+        ON ASO.SALE_ORDER_ID = ASM.SALE_ORDER_ID
+        WHERE ASM.SALE_MATERIAL_ID = #{easId}
+    </select>
+    <update id="updateSaleMaterialByEasId">
+        UPDATE AMS_SALE_MATERIAL ASM
+        SET ASM.SALE_ORDER_ID = -1,
+            ASM.INSERT_UPDATE_REMARK = '修改指向'||ASM.SALE_ORDER_ID
+        WHERE ASM.SALE_MATERIAL_ID = #{easId}
+    </update>
+    <update id="updateAstmBystId">
+        UPDATE AMS_SALE_TRUCKNO_MATERIAL ASTM
+        SET ASTM.SALE_ORDER_MATERIAL_ID = -1,
+            ASTM.INSERT_UPDATE_REMARK = '修改指向'||ASTM.SALE_ORDER_MATERIAL_ID
+        WHERE ASTM.MATERIAL_ID = #{easId}
+    </update>
 </mapper>

+ 15 - 2
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1013,7 +1013,7 @@
                    and TWR.RESULT_NET_WEIGHT is null
                    and oo.order_status = 5
                    and oo.order_type in (1,4)
-                 order by "tareSegmentSqe"
+                 order by "tareSegmentSqe" asc, "orderId" desc
              )
         where rownum = 1
     </select>
@@ -1073,7 +1073,8 @@
 
     <update id="updatePurchaseInwordAPOId" parameterType="map">
         update OMSTRUCK_ORDER OO
-        set OO.ORDER_PLAN_ID = #{planId}
+        set OO.ORDER_PLAN_ID = #{planId},
+            OO.INSERT_UPDATE_REMARK = '原采购订单ID为:'||OO.ORDER_PLAN_ID
         where OO.ORDER_NUMBER = #{orderNumber}
     </update>
     <update id="updateOrderMaterial" parameterType="map">
@@ -1338,4 +1339,16 @@
         WHERE TWR.RESULT_NET_WEIGHT IS NOT NULL
         AND TWR.RESULT_TOTAL_ID = #{resultTotalId}
     </select>
+    <select id="getOldOrderMes" resultType="java.util.Map">
+        select ORDER_NUMBER "orderNumber",ORDER_TYPE "orderType" from OMSTRUCK_ORDER
+        where ORDER_NUMBER = #{orderNumber}
+    </select>
+    <select id="getWeightMesBySaleMaterialId" resultType="java.util.Map">
+        SELECT TWR.RESULT_POUND_NO "poundNo" FROM TMSTRUCK_WEIGHT_RESULT TWR
+        WHERE
+        TWR.RESULT_NET_WEIGHT IS NOT NULL
+        AND
+        TWR.SALE_MATERIAL_ID = #{saleMaterialId}
+
+    </select>
 </mapper>