|
@@ -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")){
|