Browse Source

调拨单

chenchuang 3 years ago
parent
commit
b5526c4af4

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/mapper/PurchaseWarehousingMapper.java

@@ -119,7 +119,7 @@ public interface PurchaseWarehousingMapper extends BaseMapper<PurchaseWarehousin
      * @Param [rowmId]
      * @return java.math.BigDecimal
      */
-    BigDecimal getRdrecords01WriteQuantity(@Param("rowmId")String rowmId);
+    Map<String,Object> getRdrecords01WriteQuantity(@Param("rowmId")String rowmId);
 
     /**
      * @Author chenchuang

+ 66 - 66
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/mapper/xml/PurchaseWarehousingMapper.xml

@@ -293,13 +293,13 @@
 
     <select id="getRdrecords01WriteQuantity" resultType="java.util.HashMap" parameterType="java.lang.String">
         SELECT SUM
-                   ( rs.iQuantity ) - SUM ( rs.iSumBillQuantity )
+                   ( rs.iQuantity ) - SUM ( rs.iSumBillQuantity ) as iQuantity,rs.AutoID as AutoID
         FROM
             rdrecords01 rs
                 LEFT JOIN RdRecord01 r ON rs.ID= r.ID
         WHERE
             r.bredvouch= 0
-          AND rs.iPOsID= #{rowmId}
+          AND (rs.iPOsID= #{rowmId} or rs.iOMoDID= #{rowmId})
     </select>
 
     <select id="getPOPodetailsINatUnitPrice" parameterType="java.lang.String" resultType="java.util.HashMap">
@@ -716,17 +716,17 @@
         WHERE
             cWhCode = #{map.cWhCode}
           AND cInvCode = #{map.cInvCode}
-          AND cBatch = #{map.cBatch}
-          AND cFree1 = #{map.cFree1}
-          AND cFree2 = #{map.cFree2}
-          AND cFree3 = #{map.cFree3}
-          AND cFree4 = #{map.cFree4}
-          AND cFree5 = #{map.cFree5}
-          AND cFree6 = #{map.cFree6}
-          AND cFree7 = #{map.cFree7}
-          AND cFree8 = #{map.cFree8}
-          AND cFree9 = #{map.cFree9}
-          AND cFree10 = #{map.cFree10}
+          AND isnull(cBatch,'') = #{map.cBatch}
+          AND isnull(cFree1,'') = #{map.cFree1}
+          AND isnull(cFree2,'') = #{map.cFree2}
+          AND isnull(cFree3,'') = #{map.cFree3}
+          AND isnull(cFree4,'') = #{map.cFree4}
+          AND isnull(cFree5,'') = #{map.cFree5}
+          AND isnull(cFree6,'') = #{map.cFree6}
+          AND isnull(cFree7,'') = #{map.cFree7}
+          AND isnull(cFree8,'') = #{map.cFree8}
+          AND isnull(cFree9,'') = #{map.cFree9}
+          AND isnull(cFree10,'') = #{map.cFree10}
     </select>
 
     <update id="updateCurrentStock" parameterType="java.util.HashMap">
@@ -734,17 +734,17 @@
         WHERE
             cWhCode = #{map.cWhCode}
           AND cInvCode = #{map.cInvCode}
-          AND cBatch = #{map.cBatch}
-          AND cFree1 = #{map.cFree1}
-          AND cFree2 = #{map.cFree2}
-          AND cFree3 = #{map.cFree3}
-          AND cFree4 = #{map.cFree4}
-          AND cFree5 = #{map.cFree5}
-          AND cFree6 = #{map.cFree6}
-          AND cFree7 = #{map.cFree7}
-          AND cFree8 = #{map.cFree8}
-          AND cFree9 = #{map.cFree9}
-          AND cFree10 = #{map.cFree10}
+          AND isnull(cBatch,'') = #{map.cBatch}
+          AND isnull(cFree1,'') = #{map.cFree1}
+          AND isnull(cFree2,'') = #{map.cFree2}
+          AND isnull(cFree3,'') = #{map.cFree3}
+          AND isnull(cFree4,'') = #{map.cFree4}
+          AND isnull(cFree5,'') = #{map.cFree5}
+          AND isnull(cFree6,'') = #{map.cFree6}
+          AND isnull(cFree7,'') = #{map.cFree7}
+          AND isnull(cFree8,'') = #{map.cFree8}
+          AND isnull(cFree9,'') = #{map.cFree9}
+          AND isnull(cFree10,'') = #{map.cFree10}
     </update>
 
     <select id="getCurrentStock" parameterType="java.util.HashMap" resultType="java.util.HashMap">
@@ -752,17 +752,17 @@
         where
             cWhCode = #{map.cWhCode}
           AND cInvCode = #{map.cInvCode}
-          AND cBatch = #{map.cBatch}
-          AND cFree1 = #{map.cFree1}
-          AND cFree2 = #{map.cFree2}
-          AND cFree3 = #{map.cFree3}
-          AND cFree4 = #{map.cFree4}
-          AND cFree5 = #{map.cFree5}
-          AND cFree6 = #{map.cFree6}
-          AND cFree7 = #{map.cFree7}
-          AND cFree8 = #{map.cFree8}
-          AND cFree9 = #{map.cFree9}
-          AND cFree10 = #{map.cFree10}
+          AND isnull(cBatch,'') = #{map.cBatch}
+          AND isnull(cFree1,'') = #{map.cFree1}
+          AND isnull(cFree2,'') = #{map.cFree2}
+          AND isnull(cFree3,'') = #{map.cFree3}
+          AND isnull(cFree4,'') = #{map.cFree4}
+          AND isnull(cFree5,'') = #{map.cFree5}
+          AND isnull(cFree6,'') = #{map.cFree6}
+          AND isnull(cFree7,'') = #{map.cFree7}
+          AND isnull(cFree8,'') = #{map.cFree8}
+          AND isnull(cFree9,'') = #{map.cFree9}
+          AND isnull(cFree10,'') = #{map.cFree10}
     </select>
 
     <insert id="insertCurrentStock">
@@ -790,16 +790,16 @@
         select * from SCM_ITEM
         where
             cInvCode = #{map.cInvCode}
-          AND cFree1 = #{map.cFree1}
-          AND cFree2 = #{map.cFree2}
-          AND cFree3 = #{map.cFree3}
-          AND cFree4 = #{map.cFree4}
-          AND cFree5 = #{map.cFree5}
-          AND cFree6 = #{map.cFree6}
-          AND cFree7 = #{map.cFree7}
-          AND cFree8 = #{map.cFree8}
-          AND cFree9 = #{map.cFree9}
-          AND cFree10 = #{map.cFree10}
+          AND isnull(cFree1,'') = #{map.cFree1}
+          AND isnull(cFree2,'') = #{map.cFree2}
+          AND isnull(cFree3,'') = #{map.cFree3}
+          AND isnull(cFree4,'') = #{map.cFree4}
+          AND isnull(cFree5,'') = #{map.cFree5}
+          AND isnull(cFree6,'') = #{map.cFree6}
+          AND isnull(cFree7,'') = #{map.cFree7}
+          AND isnull(cFree8,'') = #{map.cFree8}
+          AND isnull(cFree9,'') = #{map.cFree9}
+          AND isnull(cFree10,'') = #{map.cFree10}
     </select>
 
     <insert id="saveSCM_ITEM">
@@ -826,17 +826,17 @@
             AA_BatchProperty
         WHERE
             cInvCode = #{map.cInvCode}
-          AND cBatch = #{map.cBatch}
-          AND cFree1 = #{map.cFree1}
-          AND cFree2 = #{map.cFree2}
-          AND cFree3 = #{map.cFree3}
-          AND cFree4 = #{map.cFree4}
-          AND cFree5 = #{map.cFree5}
-          AND cFree6 = #{map.cFree6}
-          AND cFree7 = #{map.cFree7}
-          AND cFree8 = #{map.cFree8}
-          AND cFree9 = #{map.cFree9}
-          AND cFree10 = #{map.cFree10}
+          AND isnull(cBatch,'') = #{map.cBatch}
+          AND isnull(cFree1,'') = #{map.cFree1}
+          AND isnull(cFree2,'') = #{map.cFree2}
+          AND isnull(cFree3,'') = #{map.cFree3}
+          AND isnull(cFree4,'') = #{map.cFree4}
+          AND isnull(cFree5,'') = #{map.cFree5}
+          AND isnull(cFree6,'') = #{map.cFree6}
+          AND isnull(cFree7,'') = #{map.cFree7}
+          AND isnull(cFree8,'') = #{map.cFree8}
+          AND isnull(cFree9,'') = #{map.cFree9}
+          AND isnull(cFree10,'') = #{map.cFree10}
     </select>
 
     <update id="updateAA_BatchPropertyByID">
@@ -893,16 +893,16 @@
         select * from OM_MOMaterials where
             MoDetailsID = #{map.MoDetailsID}
            and cInvCode = #{map.cInvCode}
-           AND cFree1 = #{map.cFree1}
-           AND cFree2 = #{map.cFree2}
-           AND cFree3 = #{map.cFree3}
-           AND cFree4 = #{map.cFree4}
-           AND cFree5 = #{map.cFree5}
-           AND cFree6 = #{map.cFree6}
-           AND cFree7 = #{map.cFree7}
-           AND cFree8 = #{map.cFree8}
-           AND cFree9 = #{map.cFree9}
-           AND cFree10 = #{map.cFree10}
+           AND isnull(cFree1,'') = #{map.cFree1}
+           AND isnull(cFree2,'') = #{map.cFree2}
+           AND isnull(cFree3,'') = #{map.cFree3}
+           AND isnull(cFree4,'') = #{map.cFree4}
+           AND isnull(cFree5,'') = #{map.cFree5}
+           AND isnull(cFree6,'') = #{map.cFree6}
+           AND isnull(cFree7,'') = #{map.cFree7}
+           AND isnull(cFree8,'') = #{map.cFree8}
+           AND isnull(cFree9,'') = #{map.cFree9}
+           AND isnull(cFree10,'') = #{map.cFree10}
     </select>
 
     <update id="updateOM_MOMaterialsfTransQty" parameterType="java.util.HashMap">

+ 16 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/service/impl/PurchaseWarehousingServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.openApi.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.jeecg.modules.openApi.entity.PurchaseWarehousing;
 import org.jeecg.modules.openApi.mapper.PurchaseWarehousingMapper;
@@ -381,7 +382,11 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
     //保存结算单
     public void savePurSettleVouch(Map<String,Object> map,Map<String,Object> itemMap,String rowmId){
         BigDecimal rdiQuantity=getDecimalNew(String.valueOf(itemMap.get("iQuantity")));
-        BigDecimal decimal=this.baseMapper.getRdrecords01WriteQuantity(rowmId);
+        Map<String,Object> Rdrecords01WriteQuantityMap=this.baseMapper.getRdrecords01WriteQuantity(rowmId);
+        if(Rdrecords01WriteQuantityMap==null){
+            throw new RuntimeException("结算业务:未找到对应蓝字入库单");
+        }
+        BigDecimal decimal=getDecimalNew(String.valueOf(Rdrecords01WriteQuantityMap.get("iQuantity")));//蓝字未结算数量
         //根据红字查询对应的蓝字入库的未做发票的数量判断是否有且是否大于红字入库数量
         if(decimal!=null&&decimal.doubleValue()>0.0&&decimal.doubleValue()>rdiQuantity.doubleValue()){
             Map<String,Object> mapPurSettleVouch=new HashMap<>();
@@ -534,7 +539,13 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                 vouchsMap.put("autoID", oConvertUtils.addOne(getMaxId("autoID","TransVouchs")));//子表id
                 vouchsMap.put("ID",transVouchMao.get("ID"));//主表ID
                 //根据存货与自由项找对应子件
+
+
+                System.out.println(vouchsMap.toString());
+                System.out.println(vouchsMap.get("MoDetailsID")+"-"+vouchsMap.get("cInvCode"));
+                System.out.println(JSONObject.fromObject(vouchsMap).toString());
                 List<Map<String,Object>> OM_MOMaterialsList= this.baseMapper.getOM_MOMaterials(vouchsMap);
+                System.out.println(OM_MOMaterialsList.toString());
                 if(OM_MOMaterialsList!=null&&OM_MOMaterialsList.size()>0){
                     if(OM_MOMaterialsList.size()==1){
                         vouchsMap.put("iomids",OM_MOMaterialsList.get(0).get("MOMaterialsID"));//委外订单自件id
@@ -543,15 +554,15 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                         BigDecimal iSendQTY=getDecimalNew(String.valueOf(OM_MOMaterialsList.get(0).get("iSendQTY")));//已领数量
                         //调拨数量
                         BigDecimal fTransQty=getDecimalNew(String.valueOf(OM_MOMaterialsList.get(0).get("fTransQty"))).add(getDecimalNew(String.valueOf(vouchsMap.get("iTVQuantity"))));//调拨数量
-                        if(iSendQTY.doubleValue()>fTransQty.doubleValue()){
+//                        if(iSendQTY.doubleValue()>fTransQty.doubleValue()){
                             //调拨数量回写到对应委外子件
                             Map<String,Object> updateOM_MOMaterials=new HashMap<>();
                             updateOM_MOMaterials.put("map.MOMaterialsID",OM_MOMaterialsList.get(0).get("MOMaterialsID"));//委外订单子件id
                             updateOM_MOMaterials.put("fTransQty",fTransQty.doubleValue());//调拨数量
                             this.baseMapper.updateOM_MOMaterialsfTransQty(updateOM_MOMaterials);
-                        }else{
-                            throw new RuntimeException("第"+vI+"调拨数量不能大于子件已领数量");
-                        }
+//                        }else{
+//                            throw new RuntimeException("第"+vI+"调拨数量不能大于子件已领数量");
+//                        }
                     }else{
                         throw new RuntimeException("第"+vI+"行找到多个对应下游委外订单子件行");
                     }