Compare commits

..

No commits in common. '7aab6b309089b948e39130ce6206038b229093b5' and 'e531fbb59d4d3e79a59af5b10efe7294d703d1d8' have entirely different histories.

  1. 23
      shkj-wms/src/main/java/com/shkj/wms/plc/PlcEventTask.java
  2. 9
      shkj-wms/src/main/java/com/shkj/wms/service/impl/BusinDataTaskServiceImpl.java
  3. 115
      shkj-wms/src/main/java/com/shkj/wms/service/impl/BusinPickupServiceImpl.java
  4. 2
      shkj-wms/src/main/java/com/shkj/wms/third/rcs/RCSUtil.java

@ -821,8 +821,6 @@ public class PlcEventTask {
}
log.info("立库输送线读取的任务号:" + taskId);
if (taskId != null && taskId != 0) {
//跨航道移库目标任务
BusinDataTask targetTask=null;
//获取任务信息
BusinDataTask businDataTask = iBusinDataTaskService.getById(taskId);
if (businDataTask == null) {
@ -863,9 +861,9 @@ public class PlcEventTask {
agvTaskType = Integer.valueOf(abnormalWaitPintDeviceVo.getIsDown());
} else if (businDataTask.getTaskType().equals(TaskTypeEnum.relocation_out.getValue())) {
// TODO 跨巷道移库AGV的模板尚未提供
String associatedTasksId = businDataTask.getAssociatedTasksId();
targetTask = iBusinDataTaskService.getById(associatedTasksId);
BusinDataTask targetTask = iBusinDataTaskService.getById(associatedTasksId);
snPointMap.put("2", targetTask.getTaskPath());
agvPoints=new ArrayList<>();
agvPoints.add(snPointMap.get("1"));
@ -873,11 +871,7 @@ public class PlcEventTask {
agvTaskType=0;
} else if(businDataTask.getTaskType().equals(TaskTypeEnum.named_loc.getValue())){
snPointMap.put("2", businDataTask.getTaskPath());
agvPoints=new ArrayList<>();
agvPoints.add(snPointMap.get("1"));
agvPoints.add(businDataTask.getTaskPath());
agvTaskType=1;
}else {
agvPoints.add(businDataTask.getTaskPath());
snPointMap.put("3", businDataTask.getTaskPath());
@ -889,9 +883,6 @@ public class PlcEventTask {
}
businDataTask.setPoints(JsonUtil.toJSONString(snPointMap));
if(targetTask !=null){
targetTask.setPoints(JsonUtil.toJSONString(snPointMap));
}
businDataTask.setPlcId(basePointVo.getPlcId());
//立库输送线id
businDataTask.setDpsNoOne(Long.valueOf(isysParameterService.selectConfigByKey(ParameterConstants.ParameterSystem.LK_plc_id)));
@ -930,11 +921,6 @@ public class PlcEventTask {
businDataTask.setPlcId(30L);
}
if ("25".equals(businDataTask.getTaskType())){
bo.setTaskType(1);
businDataTask.setPlcId(30L);
}
//目的点位
// bo.setToLocation(businDataTask.getTaskPath());
Result<Boolean> booleanResult = rcsUtil.moveByAGV(bo);
@ -945,9 +931,6 @@ public class PlcEventTask {
businDataTask.setIsDown(bo.getTaskType() + "");
iBusinDataTaskService.updateById(businDataTask);
redisTemplate.opsForValue().set(RedisConstant.redisReqMate + taskId, businDataTask);
if(targetTask !=null){
iBusinDataTaskService.updateById(targetTask);
}
//扣减巷道任务数
tunnelTaskUtil.subOutboundTaskNum(businDataTask.getTunnel());
}

@ -2079,23 +2079,20 @@ public class BusinDataTaskServiceImpl extends ServiceImpl<BusinDataTaskMapper, B
taskGoodsIn.setGoodsNo(sysStockDetailVo.getGoodsNo());
taskGoodsIn.setIsPunching(sysStockDetailVo.getIsPuch());
taskGoodsIn.setBranchId(SecurityUtils.getCurrentBranchId());
taskGoodsIn.setTaskCode(dataTaskIn.getId());
taskGoodsIn.setQrCode(sysStockDetailVo.getQrCode());
taskGoodsIn.setTaskCode(taskInId);
taskGoodsList.add(taskGoodsIn);
BusinDataTaskGoods taskGoodsOut = new BusinDataTaskGoods();
taskGoodsOut.setGoodsNo(sysStockDetailVo.getGoodsNo());
taskGoodsOut.setIsPunching(sysStockDetailVo.getIsPuch());
taskGoodsOut.setBranchId(SecurityUtils.getCurrentBranchId());
taskGoodsOut.setTaskCode(dataTaskOut.getId());
taskGoodsOut.setQrCode(sysStockDetailVo.getQrCode());
taskGoodsOut.setTaskCode(taskOutId);
taskGoodsList.add(taskGoodsOut);
}else{
BusinDataTaskGoods taskGoodsAdd = new BusinDataTaskGoods();
taskGoodsAdd.setGoodsNo(sysStockDetailVo.getGoodsNo());
taskGoodsAdd.setIsPunching(sysStockDetailVo.getIsPuch());
taskGoodsAdd.setBranchId(SecurityUtils.getCurrentBranchId());
taskGoodsAdd.setTaskCode(dataTaskOut.getId());
taskGoodsAdd.setQrCode(sysStockDetailVo.getQrCode());
taskGoodsAdd.setTaskCode(taskOutId);
taskGoodsList.add(taskGoodsAdd);
}
}

@ -707,6 +707,34 @@ public class BusinPickupServiceImpl extends ServiceImpl<BusinPickupMapper, Busin
BusinPickupAddBo businPickupAddBo = new BusinPickupAddBo();
AssemblyLineAddBo assemblyLineAddBo;
/* Map taskidMap = new HashMap(1);
Map TaskwriteMap = new HashMap(1);
BasePointDeviceQueryBo pointQueryBo = new BasePointDeviceQueryBo();
pointQueryBo.setDevType("3");
BaseDevicePlcVo baseDevicePlcVo = baseLocationPlcMapper.selectBaseDevicePlc(pointQueryBo);
PlcOperate plcOperate =plcInit.getPlcOperateByIp(baseDevicePlcVo.getPlcIp());
Long plcId = baseDevicePlcVo.getPlcId();
List<WcsPlcProperty> propertyList = iWcsPlcPropertyService.getWcsPlcPropertyByPlcId(plcId);
String frontAddress = "";
String frontType = "";
String rearAddress = "";
String rearType = "";
// 根据plc练级欸属性表查询出对应的前杠放行写入点位和类型
for (WcsPlcProperty wcsPlcProperty : propertyList) {
if (buttonType.equals("front") && "23".equals(wcsPlcProperty.getPointType())) {
frontAddress = wcsPlcProperty.getAddress();
frontType = wcsPlcProperty.getValueType();
}
if (buttonType.equals("after") && "25".equals(wcsPlcProperty.getPointType())) {
rearAddress = wcsPlcProperty.getAddress();
rearType = wcsPlcProperty.getValueType();
}
}*/
//按钮类型(共2个),根据按钮类型获取对应的出库信息
//前保险杠按钮
if (buttonType.equals("front")) {
@ -715,7 +743,17 @@ public class BusinPickupServiceImpl extends ServiceImpl<BusinPickupMapper, Busin
//后保险杠按钮
assemblyLineAddBo = (AssemblyLineAddBo) redisTemplate.opsForValue().get(RedisConstant.redisAssemblyLineAfter);
}
// if (ObjectUtils.isEmpty(assemblyLineAddBo)) {
// if (buttonType.equals("front")) {
// TaskwriteMap.put(frontType, "False");
// taskidMap.put(frontAddress, TaskwriteMap);
// } else {
// TaskwriteMap.put(rearType, "False");
// taskidMap.put(rearAddress, TaskwriteMap);
// }
// Boolean aBoolean = plcReadAndWrite.execWrite(plcOperate, JSON.toJSONString(taskidMap));
// return null;
// }
businPickupAddBo.setContainerId(assemblyLineAddBo.getContainerId());
businPickupAddBo.setPointNo(assemblyLineAddBo.getPointNo());
businPickupAddBo.setTaskCode(assemblyLineAddBo.getTaskId().toString());
@ -730,13 +768,15 @@ public class BusinPickupServiceImpl extends ServiceImpl<BusinPickupMapper, Busin
businPickupAddBo.setTaskType(assemblyLineAddBo.getTaskType());
businPickupAddBo.setDtlAddBos(pickupDtlAddBos);
//取货流程
//Result<Boolean> pickupRecordesult = this.saveBusinPickupRecord(businPickupAddBo);
BusinDataTask DataTask = businDataTaskService.getOne(new LambdaQueryWrapper<BusinDataTask>()
.eq(BusinDataTask::getId, businPickupAddBo.getTaskCode())
.last("limit 1"));
String agvno=DataTask.getAgvNo();
String point = DataTask.getTaskPath();
log.info("调用空治具流向接口传入agv号为"+agvno+"任务号为:"+DataTask.getId()+" 任务起点:"+point);
log.info("调用空治具流向接口传入agv号为"+agvno+"任务号为:"+DataTask.getId());
log.info("传入的起点为:"+point);
if (ObjectUtils.isNotEmpty(redisTemplate.opsForValue().get("xzz:" + DataTask.getId()))
&& redisTemplate.opsForValue().get("xzz:" + DataTask.getId()).toString().equals(agvno)){
log.info("任务号为:"+DataTask.getId()+"agv号为"+agvno+"小组装已经释放,不允许重复释放");
@ -746,6 +786,22 @@ public class BusinPickupServiceImpl extends ServiceImpl<BusinPickupMapper, Busin
businPickupAddBo.setContainerId(0L);
}
iBusinEnptyContainerService.emptyContainerFlowDir(point, businPickupAddBo.getContainerId(), agvno, null);
redisTemplate.opsForValue().set("xzz:"+DataTask.getId(),agvno);
DataTask.setTaskStatus("2");
businDataTaskService.updateById(DataTask);
String assemblePointType = RedisConstant.assemblePointAfterTaskCount;
if (buttonType.equals("front")) {
assemblePointType = RedisConstant.assemblePointBeforeTaskCount;
}
if (ObjectUtils.isNotEmpty(redisTemplate.opsForValue().get(assemblePointType))) {
int temp = Integer.parseInt(redisTemplate.opsForValue().get(assemblePointType).toString());
if (temp > 0) {
redisTemplate.opsForValue().set(assemblePointType, --temp);
}
}
if ("4".equals(DataTask.getTaskType())||"14".equals(DataTask.getTaskType())) {
//查询任务对应的产品数量
List<BusinDataTaskGoodsVo> businDataTaskGoodsVos = iBusinDataTaskGoodsService.selectBusinTaskGoodsByTaskCode(DataTask.getId());
@ -761,28 +817,37 @@ public class BusinPickupServiceImpl extends ServiceImpl<BusinPickupMapper, Busin
iBaseBarcodesOutService.updateById(baseBarcodesOut);
}
}
Result<Boolean> booleanResult = iBusinEnptyContainerService.emptyContainerFlowDir(point, businPickupAddBo.getContainerId(), agvno, null);
if (Result.isOk(booleanResult)){
log.info("小组装放行完成:"+point+" AGV编号:"+agvno+" 任务号:"+businPickupAddBo.getTaskCode());
redisTemplate.opsForValue().set("xzz:"+DataTask.getId(),agvno);
DataTask.setTaskStatus("2");
businDataTaskService.updateById(DataTask);
String assemblePointType = RedisConstant.assemblePointAfterTaskCount;
if (buttonType.equals("front")) {
assemblePointType = RedisConstant.assemblePointBeforeTaskCount;
}
if (ObjectUtils.isNotEmpty(redisTemplate.opsForValue().get(assemblePointType))) {
int temp = Integer.parseInt(redisTemplate.opsForValue().get(assemblePointType).toString());
if (temp > 0) {
redisTemplate.opsForValue().set(assemblePointType, --temp);
}
}
}else {
log.info("小组装放行失败:"+point+" AGV编号:"+agvno+" 任务号:"+businPickupAddBo.getTaskCode()+" 异常原因:"+JsonUtil.toJSONString(booleanResult));
}
// if (Result.isOk(pickupRecordesult)){
// //取货成功
// //减去任务数
// // 判断是前杠还是后杠,进行处理 redis 中的任务数
// //小组装等待点位为一个
// //String assemblePointType = RedisConstant.assemblePointBeforeTaskCount;
//
// String assemblePointType = RedisConstant.assemblePointAfterTaskCount;
// if (buttonType.equals("front")) {
// assemblePointType = RedisConstant.assemblePointBeforeTaskCount;
// }
// if (ObjectUtils.isNotEmpty(redisTemplate.opsForValue().get(assemblePointType))) {
// int temp = Integer.parseInt(redisTemplate.opsForValue().get(assemblePointType).toString());
// if (temp > 0) {
// redisTemplate.opsForValue().set(assemblePointType, --temp);
// }
// }
//
//// if (buttonType.equals("front")) {
//// redisTemplate.delete(RedisConstant.redisAssemblyLineFront);
//// TaskwriteMap.put(frontType, "False");
//// taskidMap.put(frontAddress, TaskwriteMap);
//// } else {
//// redisTemplate.delete(RedisConstant.redisAssemblyLineAfter);
//// TaskwriteMap.put(rearType, "False");
//// taskidMap.put(rearAddress, TaskwriteMap);
//// }
////
//// Boolean aBoolean = plcReadAndWrite.execWrite(plcOperate, JSON.toJSONString(taskidMap));
//// log.error("出库放行点写入是否成功:" + aBoolean + "写入的相关数据为:" + taskidMap.toString());
// }
return Result.err().msg("出库取货失败");
}

@ -544,7 +544,6 @@ public class RCSUtil {
if (businDataTask == null) {
return Result.err().msg("当前任务号未找到任务信息:" + taskID);
}
//跨巷道移库时,获取出库任务的入库的任务号
String taskType = businDataTask.getTaskType();
if (taskType.equals(TaskTypeEnum.relocation_out.getValue())){
String associatedTasksId = businDataTask.getAssociatedTasksId();
@ -785,6 +784,7 @@ public class RCSUtil {
}else {
TaskwriteMap.put(TaskddressVtype, bo.getTaskId());
}
TaskwriteMap.put(TaskddressVtype, bo.getTaskId());
taskidMap.put(TaskAddress, TaskwriteMap);
Boolean aBoolean = plcReadAndWrite.execWrite(plcOperate, JSON.toJSONString(taskidMap));
int i = 0;

Loading…
Cancel
Save