diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java index d6d9aeb..c922fc0 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java @@ -73,17 +73,20 @@ public class OrderclusterTruckSyncService extends BaseSyncService { ts.add(0, ordercluster_id + ""); // 加到查询参数里面 List otlist = OrderclusterTruck.dao.find( "select * from ordercluster_truck \n" + - " where ordercluster_id = ? \n" + - " and truck_license in (" + StrKit.join(tsql, ",") + ")", ts.toArray()); + " where ordercluster_id = ? \n", ordercluster_id); - if (otlist != null && !otlist.isEmpty()) { - ts = new ArrayList<>(); + List dellist = new ArrayList<>(); + List chkold = new ArrayList<>(); + SyncTask synctask = new SyncTask(); - for (OrderclusterTruck bl : otlist) { - ts.add(bl.getTruckLicense()); + for (OrderclusterTruck ot : otlist) { + if(!chk.contains(ot.getTruckLicense())){ + // 数据库中,提交上的数据中没有的,要删掉 + dellist.add(ot.getTruckLicense()); + synctask.addDeleteData(ot); + }else{ + chkold.add(ot.getTruckLicense()); } - - return Result.failed(StrKit.join(ts, ",") + " 车牌号已分配"); } List oldot = OrderclusterTruck.dao.find("select * from ordercluster_truck where ordercluster_id = ? ", ordercluster_id); @@ -93,9 +96,13 @@ public class OrderclusterTruckSyncService extends BaseSyncService { } List savelist = new ArrayList<>(); - SyncTask synctask = new SyncTask(); for (String truck_license : truckarr) { + // 已经在数据库中的,不再重复添加 + if(chkold.contains(truck_license)){ + continue; + } + OrderclusterTruck oct = new OrderclusterTruck(); oct.setId(StrKit.getRandomUUID()); oct.setOrderclusterId(ordercluster_id); @@ -105,8 +112,8 @@ public class OrderclusterTruckSyncService extends BaseSyncService { savelist.add(oct); } - if (savelist.isEmpty()) { - return Result.failed("truck_license 参数错误"); + if(savelist.isEmpty() && dellist.isEmpty()){ + return Result.failed("trucks 参数错误"); } Record logrecord = new Record(); @@ -116,12 +123,21 @@ public class OrderclusterTruckSyncService extends BaseSyncService { boolean ret = Db.tx(new IAtom() { @Override public boolean run() { - int[] ret = Db.batchSave(savelist, savelist.size()); + if (!dellist.isEmpty()) { + int delret = Db.delete("delete from ordercluster_truck where ordercluster_id = " + ordercluster_id + + " and truck_license in ('" + StrKit.join(dellist, "','") + "')"); - for (int i : ret) { - // 必须是每条 sql 修改一条记录 - if (i != 1) { - return false; + log.debug("删除 ordercluster_truck %d", delret); + } + + if(!savelist.isEmpty()) { + int[] ret = Db.batchSave(savelist, savelist.size()); + + for (int i : ret) { + // 必须是每条 sql 修改一条记录 + if (i != 1) { + return false; + } } }