调度-取消出厂

dev
wuwenxiong 2021-09-16 17:34:25 +08:00
parent 2d75d376d5
commit 46ea632571
3 changed files with 70 additions and 4 deletions

View File

@ -258,13 +258,15 @@ public class TransportController extends BaseController {
}
String which = getUpperCaseVal("which");// Enums.WhichEnum R01 入场流程 C01 出场流程
String truck_license = getUpperCaseVal("truck_license");
Integer supermarket_id = getInt("supermarket_id");
if (!Enums.CtrlFlowEnum.isValid(which)) {
renderJson(Result.failed("which 参数错误"));
return;
}
boolean result = TransportDeviceService.me.cmdResetFlow(which, tokenuser);
boolean result = TransportDeviceService.me.cmdResetFlow(which, truck_license, supermarket_id, tokenuser);
renderJson(result ? Result.success(true) : Result.failed("重置流程失败"));
}

View File

@ -229,7 +229,7 @@ public class TransportDeviceService {
* @param sysuser
* @return
*/
public boolean cmdResetFlow(String which, Sysuser sysuser) {
public boolean cmdResetFlow(String which, String truck_license, Integer supermarket_id, Sysuser sysuser) {
Record cmdlog = new Record();
cmdlog.set("cmd", "resetFlow");
cmdlog.set("which", which);
@ -237,7 +237,9 @@ public class TransportDeviceService {
CliCacheData.nowLicenseMap.put(which, "");
CliCacheData.nowWeightMap.put(which, 0d);
return Config.deviceThread.cmdResetFlow(which) && ActionCmdLogSyncService.me.save(cmdlog.toJson(), sysuser);
return Config.deviceThread.cmdResetFlow(which)
&& ActionCmdLogSyncService.me.save(cmdlog.toJson(), sysuser)
&& TransportSyncService.me.updateCancelTransportState(which, truck_license, supermarket_id, sysuser);
}
public boolean cmdRodUp(int num, String which, String memo, Sysuser sysuser) {

View File

@ -30,7 +30,9 @@ import net.coobird.thumbnailator.Thumbnails;
import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* MySQL
@ -1161,4 +1163,64 @@ public class TransportSyncService {
//
// return ret ? Result.success(true) : Result.failed("重置错误");
// }
// 根据车牌、超市id、当前时间大于入场时间、出厂时间不为空查出记录后将flag改为1
public boolean updateCancelTransportState(String which, String truck_license, Integer supermarket_id, Sysuser sysuser) {
String sql = "SELECT\n" +
" *\n" +
"FROM\n" +
" `transport`\n" +
"WHERE\n" +
" truck_license = ?\n" +
"AND in_which = ?\n" +
"AND supermarket_id = ?\n" +
"AND in_time < ?\n" +
"AND out_time IS NOT NULL";
List<Object> paramsList = new ArrayList<>();
paramsList.add(truck_license);
paramsList.add(which);
paramsList.add(supermarket_id);
paramsList.add(DateTimeUtil.sdfhms.get().format(new Date()));
Transport transport = Transport.dao.findFirst(sql, paramsList.toArray());
if (transport == null) {
log.debug(String.format("未找到【%s】的有效的出入场记录", truck_license));
return false;
}
transport.setFlag(1); // 取消出厂
SyncTask synctask = new SyncTask();
Record logrecord = new Record();
logrecord.set("transport_id", transport.getId());
logrecord.set("flag", 1);
boolean ret = Db.tx(new IAtom() {
@Override
public boolean run() {
try {
boolean ret = transport.update();
if (!ret) {
return false;
}
synctask.addUpdateData(transport);
ret = SyncTaskService.me.save(synctask)
&& ModifyLogSyncService.me.save(transport.tablename, "transport_id", logrecord.toJson(), Enums.DataOpType.UPDATE.getId(), sysuser);
return ret;
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
}
});
if (ret) {
SyncTaskService.me.send(synctask);
}
return ret;
}
}