| 
					
				 | 
			
			
				@@ -1,6 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package org.jeecg.modules.documents.orderData.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.Wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -164,10 +165,17 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<JSONObject> jian = JsonChangeUtils.toJSONObject(sumlist); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //是否是更新数据 true更新数据  false新数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            boolean isNewOrder = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int jianMub = jian.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (JSONObject jsonObject:jian) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 jianMub--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 SyOrderData sy = JSONObject.toJavaObject(jsonObject,SyOrderData.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //判断该数据是否已存在 已存在则更新未参照的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SyOrderData haveOrder = getById(sy.getAccount()+sy.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(haveOrder!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isNewOrder=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String ID = sy.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String sql = "SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         "s.AutoID AS id," + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -217,6 +225,15 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (JSONObject Object:jianSon) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sy2.setId(sy.getAccount()+sy2.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(isNewOrder){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SyOrderDataItem item = syOrderDataItemService.queryItemMub(sy2.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(item!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //更新数据前 删除旧数据防止id冲突 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            syOrderDataItemService.deleteByID(sy2.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sy2.setSyOrderDataId(sy.getAccount()+sy2.getSyOrderDataId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SyOrderDataVO ordervo = queryOrder(sy2.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if(ordervo != null){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,36 +268,46 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             sy2.setRSupplier(rsup.get(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(!isNewOrder){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        syOrderDataItemService.save(sy2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     syItemList.add(sy2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //添加单证id 原数据账套+原数据id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String syId = sy.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sy.setId(sy.getAccount()+sy.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(syItemList.size()<jianSon.size()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //回写不拉取的数据状态 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String blackWrite = "UPDATE SO_SOMain SET cdefine15 = '0' WHERE id='"+syId+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(sy.getAccount().equals("901")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        senYuDataSourceOne.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else if(sy.getAccount().equals("902")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        senYuDataSourceTwo.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else if(sy.getAccount().equals("903")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        senYuDataSourceThree.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //进入下一个主表的添加,这里是单个订单同步 所以是返回同步失败且通知原因 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(jianMub<1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        result.setMessage("同步失败,销售订单不符合同步需求!!!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(!isNewOrder){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(syItemList.size()<jianSon.size()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //回写不拉取的数据状态 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        String blackWrite = "UPDATE SO_SOMain SET cdefine15 = '0' WHERE id='"+syId+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(sy.getAccount().equals("901")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            senYuDataSourceOne.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }else if(sy.getAccount().equals("902")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            senYuDataSourceTwo.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }else if(sy.getAccount().equals("903")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            senYuDataSourceThree.update(blackWrite); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //进入下一个主表的添加,这里是单个订单同步 所以是返回同步失败且通知原因 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(jianMub<1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            result.setMessage("同步失败,销售订单不符合同步需求!!!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //添加主表数据进入数据库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (SyOrderDataItem sy2:syItemList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     syOrderDataItemService.save(sy2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                save(sy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(isNewOrder){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    updateById(sy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    isNewOrder=false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    save(sy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //回写拉取的数据状态 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String blackWrite = "UPDATE SO_SOMain SET cdefine15 = '1' WHERE id='"+syId+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(sy.getAccount().equals("901")){ 
			 |