| 
					
				 | 
			
			
				@@ -93,7 +93,7 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 System.out.println(map.get("ID")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //获取最大code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String cCode=oConvertUtils.addOne(this.baseMapper.getMaxCode("cCode","RdRecord01","dDate")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String cCode=oConvertUtils.addOne(this.baseMapper.getMaxCode("cCode","RdRecord01","dnmaketime")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(cCode!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cCode",cCode); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -101,6 +101,8 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new RuntimeException("获取入库单号失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                map.put("cMaker","陈创"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                map.put("cHandler","陈创"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Long longtime=Long.valueOf(String.valueOf(map.get("dDate"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(longtime)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,10 +119,11 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cRdCode","11"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cPTCode","01"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cSource","采购订单"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //获取汇率 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //获取汇率、币种 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Map<String,Object> PO_PomainMap=this.baseMapper.getPO_PomainBycPOID(String.valueOf(map.get("cOrderCode"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(PO_PomainMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         map.put("iExchRate",getDecimalNew(String.valueOf(PO_PomainMap.get("nflat"))).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        map.put("cExch_Name",PO_PomainMap.get("cexch_name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         throw new RuntimeException("采购订单没有匹配的订单号"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,10 +132,11 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cRdCode","12"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cPTCode","01"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map.put("cSource","委外订单"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //获取汇率 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //获取汇率、币种 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Map<String,Object> OM_MOmainMap=this.baseMapper.getOM_MOmainBycCode(String.valueOf(map.get("cOrderCode"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(OM_MOmainMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         map.put("iExchRate",getDecimalNew(String.valueOf(OM_MOmainMap.get("nflat"))).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        map.put("cExch_Name",OM_MOmainMap.get("cexch_name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         throw new RuntimeException("委外订单没有匹配的订单号"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -171,6 +175,22 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new RuntimeException("供应商编码不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //判断接收方是否有只值 宁波森语 马菲羊 森语集团 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                boolean iscVenCodeReceiver=false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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("森语集团")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            iscVenCodeReceiver=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        throw new RuntimeException("未能找到接收方信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //子表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<Map<String,Object>> itemList=new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,12 +201,12 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for(Map<String,Object> itemMap:itemList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //获取P号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if(itemMap.get("cBatch")==null||String.valueOf(itemMap.get("cBatch")).equals("")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            message=message+"第"+rowId+"缺少批号;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            message=message+"第"+rowId+"行缺少批号;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //获取子表最大id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         Map<String,Integer> pkMapChild = callGetUAMaxPK2("rd",accID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if(pkMap.get("iChildId")==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            message=message+"第"+rowId+"获取入库单子表ID失败;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            message=message+"第"+rowId+"行获取入库单子表ID失败;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             throw new RuntimeException("获取入库单子表ID失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         itemMap.put("AutoID",pkMapChild.get("iChildId")); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -214,20 +234,38 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 Map<String,Object> mapPOPodetails= this.baseMapper.getPOPodetails(rowmId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if(mapPOPodetails!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     map.put("ipurorderid",mapPOPodetails.get("POID")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //获取订单行的价格字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    getCost(itemMap,mapPOPodetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //获取订单行的自定义项数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     getcFree(itemMap,mapPOPodetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //回写入库数量到采购订单行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    BigDecimal freceivedqty=getDecimalNew(String.valueOf(mapPOPodetails.get("freceivedqty"))).add(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    itemMap.put("cWhCode",map.get("cWhCode"));//获取仓库 供回写现存量用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //回写到货数量到采购订单行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //如果是红字入库则相减 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    BigDecimal iReceivedQTY=new BigDecimal("0.0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if(map.get("cVouchType").toString().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        iReceivedQTY=getDecimalNew(String.valueOf(mapPOPodetails.get("iReceivedQTY"))).subtract(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //回写到现存量 如果不是调拨业务则入库单需要回写现存量 如果是调拨单 那么只要在调拨或者其他入库的时候回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if(iscVenCodeReceiver==false){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            message=message+"第"+rowId+"行"+saveCurrentStock(itemMap,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }else{//篮字则相加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        iReceivedQTY=getDecimalNew(String.valueOf(mapPOPodetails.get("iReceivedQTY"))).add(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //回写到现存量 如果不是调拨业务则入库单需要回写现存量 如果是调拨单 那么只要在调拨或者其他入库的时候回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if(iscVenCodeReceiver==false){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            saveCurrentStock(itemMap,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     Map<String,Object> mapFreceivedqty=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    mapFreceivedqty.put("freceivedqty",freceivedqty);//入库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    mapFreceivedqty.put("iReceivedQTY",iReceivedQTY);//到货数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     mapFreceivedqty.put("ID",rowmId);//订单行id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //回写到采购订单对应行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     this.baseMapper.updatePodetailsfreceivedqty(mapFreceivedqty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //回写到现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    itemMap.put("cWhCode",map.get("cWhCode"));//获取仓库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //回写到现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    saveCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                        Integer isCount= this.baseMapper.getCurrentStockCount(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                        if(isCount!=null&&isCount>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -240,10 +278,10 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         message=message+saveAA_BatchProperty(map,itemMap,mapPOPodetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    message=message+"第"+rowId+"未找到对应的采购订单行;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    message=message+"第"+rowId+"行未找到对应的采购订单行;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                message=message+"第"+rowId+"缺少采购订单行id;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                message=message+"第"+rowId+"行缺少采购订单行id;"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }else{//委外入库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -258,18 +296,33 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //获取订单行数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 Map<String,Object> mapOMMODetails=this.baseMapper.getOMMODetails(rowmId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if(mapOMMODetails!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //获取订单行的价格字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    getCost(itemMap,mapOMMODetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //获取订单的自定义数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     getcFree(itemMap,mapOMMODetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    itemMap.put("cWhCode",map.get("cWhCode"));//获取仓库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //回写入库数量到委外订单行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    BigDecimal freceivedqty=getDecimalNew(String.valueOf(mapOMMODetails.get("iReceivedQTY"))).add(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //如果是红字入库则相减 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    BigDecimal iReceivedQTY=new BigDecimal("0.0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if(map.get("cVouchType").toString().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        iReceivedQTY=getDecimalNew(String.valueOf(mapOMMODetails.get("iReceivedQTY"))).subtract(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //回写到现存量 如果不是调拨业务则入库单需要回写现存量 如果是调拨单 那么只要在调拨或者其他入库的时候回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if(iscVenCodeReceiver==false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            message=message+"第"+rowId+"行"+saveCurrentStock(itemMap,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }else{//蓝字则相加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        iReceivedQTY=getDecimalNew(String.valueOf(mapOMMODetails.get("iReceivedQTY"))).add(getDecimalNew(String.valueOf(itemMap.get("iQuantity")))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //回写到现存量 如果不是调拨业务则入库单需要回写现存量 如果是调拨单 那么只要在调拨或者其他入库的时候回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if(iscVenCodeReceiver==false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            saveCurrentStock(itemMap,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     Map<String,Object> mapFreceivedqty=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    mapFreceivedqty.put("iReceivedQTY",freceivedqty);//入库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    mapFreceivedqty.put("iReceivedQTY",iReceivedQTY);//入库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     mapFreceivedqty.put("ID",rowmId);//订单行id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     //回写到委外订单对应行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     this.baseMapper.updateOMMODetailsfreceivedqty(mapFreceivedqty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    //回写到现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    itemMap.put("cWhCode",map.get("cWhCode"));//获取仓库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    saveCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                        Integer isCount= this.baseMapper.getCurrentStockCount(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                        if(isCount!=null&&isCount>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                            //修改现存量 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -306,51 +359,61 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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("未能找到接收方信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(iscVenCodeReceiver){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //保存调拨单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    saveTransVouch(map,itemList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void saveCurrentStock(Map<String,Object> itemMap){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //修改现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询SCM_ITEM是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String,Object> SCM_ITEMMap=this.baseMapper.getSCM_ITEM(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String itemId=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(SCM_ITEMMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //存在则进行获取id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemId=String.valueOf(SCM_ITEMMap.get("Id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else{//没找到则进行新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemId=oConvertUtils.addOne(getMaxId("Id","SCM_ITEM")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String saveCurrentStock(Map<String,Object> itemMap,String type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String message=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //现存量增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(type.equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //修改现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //查询SCM_ITEM是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String,Object> SCM_ITEMMap=this.baseMapper.getSCM_ITEM(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String itemId=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(SCM_ITEMMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //存在则进行获取id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemId=String.valueOf(SCM_ITEMMap.get("Id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else{//没找到则进行新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemId=oConvertUtils.addOne(getMaxId("Id","SCM_ITEM")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //            itemMap.put("SCMITEMId",itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.baseMapper.saveSCM_ITEM(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询现存量是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.baseMapper.saveSCM_ITEM(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //查询现存量是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                                            Map<String,Object> CurrentStockMap=this.baseMapper.getCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Integer isCount= this.baseMapper.getCurrentStockCount(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(isCount!=null&&isCount>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //存在则修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.baseMapper.updateCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //不存在则新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemMap.put("ItemId",itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemMap.put("currentStockAutoID",oConvertUtils.addOne(getMaxId("AutoID","CurrentStock"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.baseMapper.insertCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String,Object> currentStockMap= this.baseMapper.getCurrentStockCount(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(currentStockMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //存在则修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.baseMapper.updateCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //不存在则新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemMap.put("ItemId",itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemMap.put("currentStockAutoID",oConvertUtils.addOne(getMaxId("AutoID","CurrentStock"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.baseMapper.insertCurrentStock(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(type.equals("2")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //现存量减少 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //查询现存量是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String,Object> currentStockMap= this.baseMapper.getCurrentStockCount(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(currentStockMap!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal currentiQuantity=getDecimalNew(String.valueOf(currentStockMap.get("iQuantity"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //小于则进行报错 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(currentiQuantity.doubleValue()<=0.0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    message="现存量小于等于0不能被冲销"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //存在则修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.baseMapper.updateCurrentStockSubtract(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //新增AA_BatchProperty 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -409,6 +472,16 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         itemMap.put("cFree8",setNull(mapPOPodetails.get("cFree8"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         itemMap.put("cFree9",setNull(mapPOPodetails.get("cFree9"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         itemMap.put("cFree10",setNull(mapPOPodetails.get("cFree10"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //采购入库获取订单的价格相关字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void getCost(Map<String,Object> itemMap,Map<String,Object> mapPOPodetails){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.put("iOriTaxCost",mapPOPodetails.get("iTaxPrice"));//原币含税单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.put("iOriCost",mapPOPodetails.get("iUnitPrice"));//原币无税单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.put("iOriMoney",mapPOPodetails.get("iMoney"));//原币无税金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.put("iTax",mapPOPodetails.get("iTax"));//税额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.put("ioriSum",mapPOPodetails.get("iSum"));//原币价税合计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //获取批次属性赋值 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -504,7 +577,7 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取主表最大ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         transVouchMao.put("ID",oConvertUtils.addOne(getMaxId("ID","TransVouch"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取最大编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        transVouchMao.put("cTVCode",oConvertUtils.addOne(this.baseMapper.getMaxCode("cTVCode","TransVouch","dTVDate"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        transVouchMao.put("cTVCode",oConvertUtils.addOne(this.baseMapper.getMaxCode("cTVCode","TransVouch","dnmaketime"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //修改最大编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.baseMapper.updateVoucherHistoryCNumber(oConvertUtils.maxNumber(String.valueOf(transVouchMao.get("cTVCode"))),"0304"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //单据日期 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -666,6 +739,9 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getcFree(RdRecords09Map,transVouchsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //获取批次属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getcBatchProperty(RdRecords09Map,transVouchsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                RdRecords09Map.put("cWhCode",RdRecord09Map.get("cWhCode")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                saveCurrentStock(RdRecords09Map,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.baseMapper.saveRdRecords09(RdRecords09Map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -702,6 +778,9 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getcFree(RdRecords08Map,transVouchsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //获取批次属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 getcBatchProperty(RdRecords08Map,transVouchsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //回写现存量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                RdRecords08Map.put("cWhCode",RdRecord08Map.get("cWhCode")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                saveCurrentStock(RdRecords08Map,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.baseMapper.saveRdRecords08(RdRecords08Map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |