opt:刻字输送线任务下发控制
This commit is contained in:
@@ -35,7 +35,7 @@ public class RedissonUtils {
|
||||
if (isLock){
|
||||
process.process();
|
||||
} else {
|
||||
throw new BadRequestException("当前业务 key:"+key+"正在执行请稍后再试");
|
||||
throw new BadRequestException("当前业务:"+key+"正在执行请稍后再试");
|
||||
}
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
|
||||
@@ -234,44 +234,48 @@ public class TmpKZController {
|
||||
@Log("刻字任务重新下发")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> resend(@RequestBody JSONObject param){
|
||||
SchBaseTask baseTask = taskService.getById(param.getString("task_id"));
|
||||
if (baseTask.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())){
|
||||
throw new BadRequestException("任务已经完成");
|
||||
};
|
||||
if (baseTask.getTask_type().equals(AcsTaskEnum.TASK_Engrave_CALL.getCode())){
|
||||
//下发
|
||||
Map<String,String> qtyArr = JSONObject.parseObject(baseTask.getQtyArr(), Map.class);
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("start_point_code", baseTask.getPoint_code1());
|
||||
jo.put("task_code", baseTask.getTask_code());
|
||||
jo.put("all_weight", baseTask.getMaterial_qty().intValue());
|
||||
String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
List<String> sort = qtyArr.keySet().stream().sorted(Comparator.comparingInt(key -> Integer.valueOf(key.substring(key.lastIndexOf("_") + 1)))).collect(Collectors.toList());
|
||||
for (int i1 = 0; i1 < sort.size(); i1++) {
|
||||
String key = sort.get(i1);
|
||||
to_sort_array[i1] = String.valueOf(i1+1);
|
||||
to_devices_array[i1] = String.valueOf(key);
|
||||
to_weight_array[i1] = String.valueOf(new BigDecimal(qtyArr.get(key)));
|
||||
}
|
||||
jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(",")));
|
||||
jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(",")));
|
||||
jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(",")));
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/engravingIn");
|
||||
if (!result.getString("status").equals("200")){
|
||||
log.error("刻字上料输送线任务下发异常:{}",result.getString("message"));
|
||||
baseTask.setRemark(result.getString("message"));
|
||||
baseTask.setTask_status(TaskStatusEnum.SURE_START_ERROR.getCode());
|
||||
taskService.updateById(baseTask);
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
RedissonUtils.lock(()->{
|
||||
SchBaseTask baseTask = taskService.getById(param.getString("task_id"));
|
||||
if (baseTask.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())){
|
||||
throw new BadRequestException("任务已经完成");
|
||||
};
|
||||
if (baseTask.getTask_type().equals(AcsTaskEnum.TASK_Engrave_CALL.getCode())){
|
||||
//下发
|
||||
Map<String,String> qtyArr = JSONObject.parseObject(baseTask.getQtyArr(), Map.class);
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("start_point_code", baseTask.getPoint_code1());
|
||||
jo.put("task_code", baseTask.getTask_code());
|
||||
jo.put("all_weight", baseTask.getMaterial_qty().intValue());
|
||||
String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||
List<String> sort = qtyArr.keySet().stream().sorted(Comparator.comparingInt(key -> Integer.valueOf(key.substring(key.lastIndexOf("_") + 1)))).collect(Collectors.toList());
|
||||
for (int i1 = 0; i1 < sort.size(); i1++) {
|
||||
String key = sort.get(i1);
|
||||
to_sort_array[i1] = String.valueOf(i1+1);
|
||||
to_devices_array[i1] = String.valueOf(key);
|
||||
to_weight_array[i1] = String.valueOf(new BigDecimal(qtyArr.get(key)));
|
||||
}
|
||||
jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(",")));
|
||||
jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(",")));
|
||||
jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(",")));
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/engravingIn");
|
||||
if (!result.getString("status").equals("200")){
|
||||
log.error("刻字上料输送线任务下发异常:{}",result.getString("message"));
|
||||
baseTask.setRemark(result.getString("message"));
|
||||
baseTask.setTask_status(TaskStatusEnum.SURE_START_ERROR.getCode());
|
||||
taskService.updateById(baseTask);
|
||||
throw new BadRequestException(result.getString("message"));
|
||||
}else {
|
||||
baseTask.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||
taskService.updateById(baseTask);
|
||||
}
|
||||
}else {
|
||||
baseTask.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||
taskService.updateById(baseTask);
|
||||
throw new BadRequestException("搬运任务不允许直接下发");
|
||||
//taskService.operation(MapOf.of("method_name","immediateNotifyAcs","task_id",param.getString("task_id")));
|
||||
}
|
||||
}else {
|
||||
taskService.operation(MapOf.of("method_name","immediateNotifyAcs","task_id",param.getString("task_id")));
|
||||
}
|
||||
},"刻字输送线下发",null);
|
||||
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user