浏览代码

采购入库

Administrator 2 年之前
父节点
当前提交
4d657f1b42

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

@@ -89,6 +89,29 @@ public interface PurchaseWarehousingMapper extends BaseMapper<PurchaseWarehousin
      */
     void saveTransVouchs(@Param("map")Map<String,Object> map);
 
+    /**
+     * 新增其他出库单
+     * @param map
+     */
+    void saveRdRecord09(@Param("map")Map<String,Object> map);
+
+    /**
+     * 新增其他出库单子表
+     * @param map
+     */
+    void saveRdRecords09(@Param("map")Map<String,Object> map);
+
+    /**
+     * 新增其他入库单主表
+     * @param map
+     */
+    void saveRdRecord08(@Param("map")Map<String,Object> map);
+
+    /**
+     * 新增其他入库单子表
+     * @param map
+     */
+    void saveRdRecords08(@Param("map")Map<String,Object> map);
     /**
     * @Author chenchuang
     * @Description //TODO 根据红字获取对应采购订单行的蓝字根据入库数量与发票数量判断是否需要做结算单的数量

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

@@ -35,10 +35,12 @@
           bTransFlag,<!--是否传递 -->
           bIsSTQc,<!--是否传递 -->
           cMaker,
+        dnmaketime,
         cHandler,
         dVeriDate,
         dnverifytime,
-        cDefine13
+        cDefine13,
+        ipurorderid
         )
         VALUES
             (
@@ -64,10 +66,12 @@
                 0,
                 0,
                 '陈创',
+        CONVERT(varchar,GETDATE(),20),
                 '陈创',
         CONVERT(varchar,GETDATE(),23),
         CONVERT(varchar,GETDATE(),20),
-        #{RdRecord01.cOrderCode}
+        #{RdRecord01.cOrderCode},
+        #{RdRecord01.ipurorderid}
         )
     </insert>
     
@@ -284,7 +288,7 @@
     </insert>
 
     <select id="getWhCodeByVenCode" parameterType="java.lang.String" resultType="java.util.HashMap">
-        select cVenCode,cVenDefine1,cVenDefine2 from Vendor where cVenCode=#{cVenCode}
+        select cVenCode,cVenDefine1,cVenDefine2,cVenAbbName from Vendor where cVenCode=#{cVenCode}
     </select>
 
     <select id="getRdrecords01WriteQuantity" resultType="java.util.HashMap" parameterType="java.lang.String">
@@ -381,6 +385,147 @@
         ,#{map.irowno}<!--行号-->
         )
     </insert>
+    <!--新增其他出库单主表-->
+    <insert id="saveRdRecord09">
+        INSERT into RdRecord09 (cCode,dDate,cWhCode,cRdCode,cBusType,cBusCode,cPersonCode,cDepCode
+        ,ID,bRdFlag,cVouchType,cSource,cHandler,bTransFlag,cMaker,dVeriDate,bpufirst,biafirst,VT_ID,bisSTQc,bOMFirst,bFromPreYear,bIsComplement,iDiscountTaxType,iBG_OverFlag,ControlResult,ireturncount
+        ,iverifystate,iswfcontrolled,dnmaketime,dnverifytime,bredvouch,cSourceLs,iPrintCount
+        )
+        VALUES (
+        #{map.cCode},
+        CONVERT(varchar,GETDATE(),23),
+        #{map.cWhCode},<!--调拨单的转出仓库-->
+        '23',
+        '调拨出库',
+        #{map.cBusCode},<!--调拨单号-->
+        #{map.cPersonCode},<!--业务员 调拨单业务员-->
+        #{map.cDepCode},<!--部门 调拨单转出部门-->
+        #{map.ID},
+        0,
+        '09',
+        '调拨',
+        '陈创',
+        0,
+        '陈创',
+        CONVERT(varchar,GETDATE(),23),
+        0,
+        0,
+        85,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        -1,
+        0,
+        0,
+        0,
+        CONVERT(varchar,GETDATE(),20),
+        CONVERT(varchar,GETDATE(),20),
+        #{map.bredvouch},<!--红蓝标识-->
+        1,
+        0
+        )
+    </insert>
+
+<!--   新增其他出库单子表 -->
+    <insert id="saveRdRecords09">
+        INSERT into RdRecords09(cInvCode,cBatch,iQuantity,cbMemo,AutoID,ID,iTrIds,cDefine22,iNQuantity
+        ,cMassUnit,bLPUseFree,iRSRowNO,iOriTrackID,bCosting,bVMIUsed,iexpiratdatecalcu,iordertype,isotype,irowno)
+        VALUES(
+        #{map.cInvCode},
+        #{map.cBatch},
+        #{map.iQuantity},
+        #{map.cbMemo},
+        #{map.AutoID},
+        #{map.ID},
+        #{map.iTrIds},<!--调拨单子表标识-->
+        #{map.cDefine22},<!--款号-->
+        #{map.iNQuantity},<!--应收发数量-->
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        #{map.irowno},<!--行号-->
+        )
+    </insert>
+
+<!--新增其他入库单主表-->
+    <insert id="saveRdRecord08">
+        INSERT into RdRecord08 (cCode,dDate,cWhCode,cRdCode,cBusType,cBusCode,cPersonCode,cDepCode
+        ,ID,bRdFlag,cVouchType,cSource,cHandler,bTransFlag,cMaker,dVeriDate,bpufirst,biafirst,VT_ID,bisSTQc,bOMFirst,bFromPreYear,bIsComplement,iDiscountTaxType,iBG_OverFlag,ControlResult,ireturncount
+        ,iverifystate,iswfcontrolled,dnmaketime,dnverifytime,bredvouch,cSourceLs,iPrintCount
+        )
+        VALUES (
+        #{map.cCode},
+        CONVERT(varchar,GETDATE(),23),
+        #{map.cWhCode},<!--调拨单的转出仓库-->
+        '13',
+        '调拨入库',
+        #{map.cBusCode},<!--调拨单号-->
+        #{map.cPersonCode},<!--业务员 调拨单业务员-->
+        #{map.cDepCode},<!--部门 调拨单转出部门-->
+        #{map.ID},
+        0,
+        '08',
+        '调拨',
+        '陈创',
+        0,
+        '陈创',
+        CONVERT(varchar,GETDATE(),23),
+        0,
+        0,
+        85,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        -1,
+        0,
+        0,
+        0,
+        CONVERT(varchar,GETDATE(),20),
+        CONVERT(varchar,GETDATE(),20),
+        #{map.bredvouch},<!--红蓝标识-->
+        1,
+        0
+        )
+    </insert>
+
+<!--  新增其他入库单子表  -->
+    <insert id="saveRdRecords08">
+        INSERT into RdRecords08(cInvCode,cBatch,iQuantity,cbMemo,AutoID,ID,iTrIds,cDefine22,iNQuantity
+        ,cMassUnit,bLPUseFree,iRSRowNO,iOriTrackID,bCosting,bVMIUsed,iexpiratdatecalcu,iordertype,isotype,irowno)
+        VALUES(
+        #{map.cInvCode},
+        #{map.cBatch},
+        #{map.iQuantity},
+        #{map.cbMemo},
+        #{map.AutoID},
+        #{map.ID},
+        #{map.iTrIds},<!--调拨单子表标识-->
+        #{map.cDefine22},<!--款号-->
+        #{map.iNQuantity},<!--应收发数量-->
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        #{map.irowno},<!--行号-->
+        )
+    </insert>
 
     <select id="getPerson" parameterType="java.lang.String" resultType="java.util.HashMap">
         select * from Person where cPersonCode=#{cPersonCode}

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

@@ -95,7 +95,11 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                 if(map.get("cPersonCode")!=null){
                     String cPersonCode=String.valueOf(map.get("cPersonCode"));
                     Map<String,Object> personMap=this.baseMapper.getPerson(cPersonCode);
-                    map.put("cDepCode",personMap.get("cDepCode"));
+                    if(personMap==null){
+                        throw new RuntimeException("通过业务员编码未找到部门");
+                    }else{
+                        map.put("cDepCode",personMap.get("cDepCode"));
+                    }
                 }else{
                     throw new RuntimeException("业务员编码不能为空");
                 }
@@ -118,10 +122,11 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                     throw new RuntimeException("供应商编码不能为空");
                 }
 
-                this.baseMapper.saveRdRecord01One(map);
+
                 //子表
+                List<Map<String,Object>> itemList=new ArrayList<>();
                 if(map.get("item")!=null&&!map.get("item").equals("")){
-                    List<Map<String,Object>> itemList=(List<Map<String,Object>>)map.get("item");
+                    itemList=(List<Map<String,Object>>)map.get("item");
                     Integer rowId=1;
                     String message="";
                     for(Map<String,Object> itemMap:itemList){
@@ -142,7 +147,9 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                                 rowmId = String.valueOf(itemMap.get("moDetailId"));
                                 //获取订单行的数据
                                 Map<String,Object> mapPOPodetails= this.baseMapper.getPOPodetails(rowmId);
+
                                 if(mapPOPodetails!=null){
+                                    map.put("ipurorderid",mapPOPodetails.get("POID"));
                                     //获取订单行的自定义项数据
                                     getcFree(itemMap,mapPOPodetails);
                                     //回写入库数量到采购订单行
@@ -209,6 +216,23 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                     }
 //                    this.baseMapper.saveRdrecords01One(itemList);
                 }
+                this.baseMapper.saveRdRecord01One(map);
+                //调拨单
+                //判断接收方是否有只值 宁波森语 马菲羊 森语集团
+//                if(map.get("cVenCodeReceiver")!=null&&!String.valueOf(map.get("cVenCodeReceiver")).equals("")){
+//                    //根据接收方获取供应商信息
+//                    Map<String,Object> mapVenCode= this.baseMapper.getWhCodeByVenCode(String.valueOf(map.get("cVenCodeReceiver")));
+//                    if(mapVenCode!=null){
+//                        String cVenAbbName=String.valueOf(mapVenCode.get("cVenAbbName"));//供应商简称
+//                        //判断是否外部供应商  外部则进入下一波做调拨单 非则不做
+//                        if(!cVenAbbName.equals("宁波森语")&&!cVenAbbName.equals("马菲羊")&&!cVenAbbName.equals("森语集团")){
+//                            //保存调拨单
+//                            saveTransVouch(map,itemList);
+//                        }
+//                    }else{
+//                        throw new RuntimeException("未能找到接收方信息");
+//                    }
+//                }
             }
         }
     }
@@ -391,6 +415,74 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                 transVouchsList.add(vouchsMap);
             }
         }
+        //保存其他出库单
+        saveRdRecord09(transVouchMao,transVouchsList);
+        //保存其他入库单
+        saveRdRecord08(transVouchMao,transVouchsList);
+    }
+
+    //根据调拨单新增其他出库单
+    public void saveRdRecord09(Map<String,Object> transVouchMao,List<Map<String,Object>> transVouchsList){
+        //主表
+        Map<String,Object> RdRecord09Map=new HashMap<>();
+        RdRecord09Map.put("cCode",oConvertUtils.addOne(getMaxId("cCode","RdRecord09")));
+        //修改最大编码
+        this.baseMapper.updateVoucherHistoryCNumber(oConvertUtils.maxNumber(String.valueOf(transVouchMao.get("cCode"))),"0302");
+        RdRecord09Map.put("cWhCode",transVouchMao.get("cOWhCode"));//仓库 调拨单转出仓库
+        RdRecord09Map.put("cBusCode",transVouchMao.get("cTVCode"));//调拨单号
+        RdRecord09Map.put("cPersonCode",transVouchMao.get("cPersonCode"));//业务员
+        RdRecord09Map.put("cDepCode",transVouchMao.get("cODepCode"));//部门 转出部门
+        RdRecord09Map.put("ID",oConvertUtils.addOne(getMaxId("ID","RdRecord09")));//ID
+        RdRecord09Map.put("bredvouch",0);//红蓝标识
+        this.baseMapper.saveRdRecord09(RdRecord09Map);
+        if(transVouchsList!=null){
+            for(Map<String,Object> transVouchsMap:transVouchsList){
+                Map<String,Object> RdRecords09Map=new HashMap<>();
+                RdRecords09Map.put("cInvCode",transVouchsMap.get("cInvCode"));//存货编码
+                RdRecords09Map.put("cBatch",transVouchsMap.get("cTVBatch"));//批号
+                RdRecords09Map.put("iQuantity",transVouchsMap.get("iTVQuantity"));//数量
+                RdRecords09Map.put("cbMemo",transVouchsMap.get("cbMemo"));//备注
+                RdRecords09Map.put("AutoID",oConvertUtils.addOne(getMaxId("AutoID","RdRecords09")));//主键
+                RdRecords09Map.put("ID",RdRecord09Map.get("ID"));//主表id
+                RdRecords09Map.put("iTrIds",transVouchsMap.get("autoID"));//调拨单子表id
+                RdRecords09Map.put("cDefine22",transVouchsMap.get("cDefine22"));//款号
+                RdRecords09Map.put("iNQuantity",transVouchsMap.get("iQuantity"));//应发数量 默认为数量
+                RdRecords09Map.put("irowno",transVouchsMap.get("irowno"));//行号
+                this.baseMapper.saveRdRecords09(RdRecords09Map);
+            }
+        }
+    }
+
+    //根据调拨单新增其他入库单
+    public void saveRdRecord08(Map<String,Object> transVouchMao,List<Map<String,Object>> transVouchsList){
+        //主表
+        Map<String,Object> RdRecord08Map=new HashMap<>();
+        RdRecord08Map.put("cCode",oConvertUtils.addOne(getMaxId("cCode","RdRecord08")));
+        //修改最大编码
+        this.baseMapper.updateVoucherHistoryCNumber(oConvertUtils.maxNumber(String.valueOf(transVouchMao.get("cCode"))),"0301");
+        RdRecord08Map.put("cWhCode",transVouchMao.get("cOWhCode"));//仓库 调拨单转出仓库
+        RdRecord08Map.put("cBusCode",transVouchMao.get("cTVCode"));//调拨单号
+        RdRecord08Map.put("cPersonCode",transVouchMao.get("cPersonCode"));//业务员
+        RdRecord08Map.put("cDepCode",transVouchMao.get("cODepCode"));//部门 转出部门
+        RdRecord08Map.put("ID",oConvertUtils.addOne(getMaxId("ID","RdRecord08")));//ID
+        RdRecord08Map.put("bredvouch",0);//红蓝标识
+        this.baseMapper.saveRdRecord08(RdRecord08Map);
+        if(transVouchsList!=null){
+            for(Map<String,Object> transVouchsMap:transVouchsList){
+                Map<String,Object> RdRecords08Map=new HashMap<>();
+                RdRecords08Map.put("cInvCode",transVouchsMap.get("cInvCode"));//存货编码
+                RdRecords08Map.put("cBatch",transVouchsMap.get("cTVBatch"));//批号
+                RdRecords08Map.put("iQuantity",transVouchsMap.get("iTVQuantity"));//数量
+                RdRecords08Map.put("cbMemo",transVouchsMap.get("cbMemo"));//备注
+                RdRecords08Map.put("AutoID",oConvertUtils.addOne(getMaxId("AutoID","rdrecords08")));//主键
+                RdRecords08Map.put("ID",RdRecord08Map.get("ID"));//主表id
+                RdRecords08Map.put("iTrIds",transVouchsMap.get("autoID"));//调拨单子表id
+                RdRecords08Map.put("cDefine22",transVouchsMap.get("cDefine22"));//款号
+                RdRecords08Map.put("iNQuantity",transVouchsMap.get("iQuantity"));//应发数量 默认为数量
+                RdRecords08Map.put("irowno",transVouchsMap.get("irowno"));//行号
+                this.baseMapper.saveRdRecords08(RdRecords08Map);
+            }
+        }
     }
 
     @Override