opt:下发叠盘任务判断系统参数最大可下发数、子托盘组盘更新手持pc端逻辑优化、任务强制完成加等待图标并更新按钮条件
This commit is contained in:
@@ -80,17 +80,19 @@ public class PdaServiceImpl implements PdaService {
|
||||
|
||||
@Override
|
||||
public PdaResponseVo zpjb(JSONObject param) {
|
||||
String subTray=param.getString("sub_tray");
|
||||
String subTray = param.getString("sub_tray");
|
||||
//子拖盘解绑
|
||||
if(ObjectUtil.isNotEmpty(subTray)){
|
||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, subTray)
|
||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
|
||||
GroupBindMaterialStatusEnum.BOUND.getValue()));
|
||||
//查询母托盘
|
||||
JSONObject group_jo = new JSONObject();
|
||||
group_jo.put("vehicle_code",subTray);
|
||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
vehiclematerialgroupService.updateById(one);
|
||||
vehiclematerialgroupService.updateByJson(one);
|
||||
}
|
||||
List<SchBasePoint> schBasePointList= pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getVehicle_code2, subTray));
|
||||
@@ -108,7 +110,6 @@ public class PdaServiceImpl implements PdaService {
|
||||
group_jo.put("vehicle_code",motherTray);
|
||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
|
||||
@@ -86,6 +86,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
updateWrapper.set("update_id",entity.getUpdate_id());
|
||||
updateWrapper.set("update_name",entity.getUpdate_name());
|
||||
updateWrapper.set("update_time",entity.getUpdate_time());
|
||||
updateWrapper.set("pcsn",entity.getPcsn());
|
||||
updateWrapper.set("standing_time",entity.getStanding_time());
|
||||
vehiclematerialgroupMapper.update(null,updateWrapper);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.ext.service.dto.to.BaseResponse;
|
||||
@@ -52,6 +53,8 @@ public abstract class AbstractTask {
|
||||
private WorkorderMapper workorderMapper;
|
||||
@Autowired
|
||||
private MaterialMapper materialMapper;
|
||||
@Autowired
|
||||
private ISysParamService paramService;
|
||||
/**
|
||||
* 任务创建
|
||||
* 根据配置生成任务,如并发控制等
|
||||
@@ -197,22 +200,22 @@ public abstract class AbstractTask {
|
||||
Assert.isFalse(ObjectUtil.isEmpty(sub_tray),
|
||||
"该任务申请子托盘["+param.getString("vehicle_code2")+"]为空,无法申请任务!");
|
||||
}
|
||||
//校验mes接口组盘记录
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
//判断是否回传mes
|
||||
Param isConnectAcs = sysParamService.findByCode(GeneralDefinition.IS_RETURN_MES);
|
||||
//判断是否校验mes组盘记录
|
||||
Param isConnectAcs = paramService.findByCode(GeneralDefinition.IS_RETURN_MES);
|
||||
if (ObjectUtil.isEmpty(isConnectAcs)) {
|
||||
Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[is_return_mes]配置是否存在!");
|
||||
}
|
||||
String isReturn = isConnectAcs.getValue();
|
||||
if("1".equals(isReturn)){
|
||||
//组盘表需要关联外部mes晶棒数据,一对多
|
||||
LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(Material::getPalletSN,sub_tray);
|
||||
wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
Integer list_size = materialMapper.selectCount(wrapper);
|
||||
Assert.isFalse(list_size<=0,
|
||||
"该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!");
|
||||
//若不是缓存区托盘,校验mes接口组盘记录
|
||||
if(!sub_tray.startsWith("YBHC")){
|
||||
LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(Material::getPalletSN,sub_tray);
|
||||
wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
Integer list_size = materialMapper.selectCount(wrapper);
|
||||
Assert.isFalse(list_size<=0,
|
||||
"该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
|
||||
@@ -69,6 +69,8 @@ public class GeneralDefinition {
|
||||
public static final String IS_CONNECT_ACS = "is_connect_acs";
|
||||
/** 是否连接 */
|
||||
public static final String IS_RETURN_MES = "is_return_mes";
|
||||
/** 叠盘机最大数量 */
|
||||
public static final String MAX_DKT_QTY = "max_dkt_qty";
|
||||
/** ACS路径 */
|
||||
public static final String ACS_URL = "acs_url";
|
||||
/** 是否连接 */
|
||||
|
||||
@@ -54,6 +54,7 @@ public class AcsUtil {
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
}
|
||||
log.info("acs任务的回传参数为:", result.toString());
|
||||
//acs抛异常这里
|
||||
/* if (result.getString("status").equals(String.valueOf(HttpStatus.BAD_REQUEST.value())))
|
||||
throw new BadRequestException(result.getString("message"));*/
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.wms.ext.service.WmsToAcsService;
|
||||
import org.nl.wms.ext.service.dto.to.BaseResponse;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
@@ -57,6 +59,8 @@ public class POINTTask extends AbstractTask {
|
||||
private IWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||
@Autowired
|
||||
private ISysParamService paramService;
|
||||
|
||||
@Override
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
@@ -81,9 +85,21 @@ public class POINTTask extends AbstractTask {
|
||||
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getPoint_code, task.getPoint_code2()));
|
||||
if(task.getPoint_code2().startsWith("DKT")){
|
||||
//判断叠盘机最大叠盘数量
|
||||
Param max_dkt_qty = paramService.findByCode(GeneralDefinition.MAX_DKT_QTY);
|
||||
if (ObjectUtil.isEmpty(max_dkt_qty)) {
|
||||
Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[max_dkt_qty]配置是否存在!");
|
||||
}
|
||||
Integer max_qty = Integer.valueOf(max_dkt_qty.getValue());
|
||||
//如果是叠盘位,根据当前数量+1为目标地址
|
||||
int qty=nextSchBasePoint.getVehicle_qty()+1;
|
||||
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty);
|
||||
if(qty <= max_qty){
|
||||
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty);
|
||||
}else{
|
||||
task.setRemark("叠盘机空盘数量已达最大值:["+max_qty+"],暂时无法下发任务!");
|
||||
taskService.update(task);
|
||||
continue;
|
||||
}
|
||||
}else{
|
||||
if (nextSchBasePoint.getVehicle_qty() > 0
|
||||
|| ObjectUtil.isNotEmpty(nextSchBasePoint.getVehicle_code2())) {
|
||||
@@ -200,10 +216,9 @@ public class POINTTask extends AbstractTask {
|
||||
}
|
||||
//子托盘更新组盘信息
|
||||
if(StringUtils.isNotEmpty(vehicleCode2)) {
|
||||
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2)
|
||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
|
||||
GroupBindMaterialStatusEnum.BOUND.getValue()));
|
||||
JSONObject group_jo = new JSONObject();
|
||||
group_jo.put("vehicle_code",vehicleCode2);
|
||||
one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setTask_code(taskObj.getTask_code());
|
||||
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||
@@ -213,7 +228,7 @@ public class POINTTask extends AbstractTask {
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
vehiclematerialgroupService.updateById(one);
|
||||
vehiclematerialgroupService.updateByJson(one);
|
||||
}
|
||||
if(endPointObj.getPoint_code().contains("XHW")){
|
||||
//pdm_bd_workorder_two任务完成时,status改为3
|
||||
|
||||
@@ -210,49 +210,53 @@ public class YCLCKTask extends AbstractTask {
|
||||
}
|
||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||
String vehicleCode = taskObj.getVehicle_code();
|
||||
SchBaseVehiclematerialgroup one =null;
|
||||
if(ObjectUtil.isNotEmpty(vehicleCode)){
|
||||
//查询母托盘
|
||||
JSONObject group_jo = new JSONObject();
|
||||
group_jo.put("vehicle_code",vehicleCode);
|
||||
one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setTask_code(taskObj.getTask_code());
|
||||
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(endPointObj.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
one.setInstorage_time(DateUtil.now());
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
vehiclematerialgroupService.updateByJson(one);
|
||||
}
|
||||
}
|
||||
String vehicleCode2 = taskObj.getVehicle_code2();
|
||||
|
||||
//查询母托盘
|
||||
JSONObject group_jo = new JSONObject();
|
||||
group_jo.put("vehicle_code",vehicleCode);
|
||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setTask_code(taskObj.getTask_code());
|
||||
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(endPointObj.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
one.setInstorage_time(DateUtil.now());
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
vehiclematerialgroupService.updateByJson(one);
|
||||
}
|
||||
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2)
|
||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
|
||||
GroupBindMaterialStatusEnum.BOUND.getValue()));
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setTask_code(taskObj.getTask_code());
|
||||
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(endPointObj.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
one.setInstorage_time(DateUtil.now());
|
||||
if(ObjectUtil.isEmpty(extGroupData.getString("time"))){
|
||||
one.setStanding_time(1);
|
||||
}else{
|
||||
one.setStanding_time(Integer.valueOf(extGroupData.getString("time")));
|
||||
if(ObjectUtil.isNotEmpty(vehicleCode2)){
|
||||
//查询子托盘
|
||||
JSONObject group_jo = new JSONObject();
|
||||
group_jo.put("vehicle_code",vehicleCode2);
|
||||
one = vehiclematerialgroupService.getGroup(group_jo);
|
||||
if (ObjectUtil.isNotEmpty(one)) {
|
||||
one.setTask_code(taskObj.getTask_code());
|
||||
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(endPointObj.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
one.setInstorage_time(DateUtil.now());
|
||||
if(ObjectUtil.isEmpty(extGroupData.getString("time"))){
|
||||
one.setStanding_time(1);
|
||||
}else{
|
||||
one.setStanding_time(Integer.valueOf(extGroupData.getString("time")));
|
||||
}
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
if(ObjectUtil.isNotEmpty(extGroupData.getString("batch"))){
|
||||
one.setPcsn(extGroupData.getString("batch"));
|
||||
}
|
||||
vehiclematerialgroupService.updateByJson(one);
|
||||
}
|
||||
one.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||
one.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||
one.setUpdate_time(DateUtil.now());
|
||||
if(ObjectUtil.isNotEmpty(extGroupData.getString("batch"))){
|
||||
one.setPcsn(extGroupData.getString("batch"));
|
||||
}
|
||||
vehiclematerialgroupService.updateById(one);
|
||||
}
|
||||
|
||||
// 终点解锁
|
||||
endPointObj.setIng_task_code("");
|
||||
endPointObj.setVehicle_code(taskObj.getVehicle_code());
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-success"
|
||||
:disabled="scope.row.task_status==='5' || scope.row.task_status==='6'"
|
||||
:disabled="scope.row.task_status==='1' || scope.row.task_status==='5' || scope.row.task_status==='6'"
|
||||
@click="doOperate(scope.row, 'a')"
|
||||
>完成</el-button>
|
||||
<el-button
|
||||
@@ -220,10 +220,12 @@ export default {
|
||||
method_name: method_name,
|
||||
config_code: row.config_code
|
||||
}
|
||||
this.crud.loading = true
|
||||
crudSchBaseTask.operation(data).then(res => {
|
||||
this.crud.toQuery()
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
}).catch(err => {
|
||||
this.crud.loading = false
|
||||
console.log(err.response.data.message)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user