lisai17@sina.com 2020-08-31 13:56:38 +08:00
parent 8e73b1bb4a
commit 04f482c4da
1 changed files with 32 additions and 16 deletions

View File

@ -73,17 +73,20 @@ public class OrderclusterTruckSyncService extends BaseSyncService {
ts.add(0, ordercluster_id + ""); // 加到查询参数里面
List<OrderclusterTruck> 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<String> dellist = new ArrayList<>();
List<String> 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<OrderclusterTruck> oldot = OrderclusterTruck.dao.find("select * from ordercluster_truck where ordercluster_id = ? ", ordercluster_id);
@ -93,9 +96,13 @@ public class OrderclusterTruckSyncService extends BaseSyncService {
}
List<OrderclusterTruck> 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;
}
}
}