Browse Source

rev:代码优化

master
涂强 1 month ago
parent
commit
fa98960659
  1. 4
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java
  2. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java
  3. 22
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java
  4. 40
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/SpxToAcsServiceImpl.java
  5. 8
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java
  6. 43
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/sch/task/service/impl/WorkServiceImpl.java
  7. 13
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
  8. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/controller/HandController.java
  9. 13
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/controller/PdaController.java
  10. 5
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/PdaService.java
  11. 3
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/dao/mapper/PdaMapper.java
  12. 84
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/dao/mapper/PdaMapper.xml
  13. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/HandServiceImpl.java
  14. 164
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java
  15. 16
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/vo/PointVo.java
  16. 1
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/vo/WorkVo.java
  17. 2
      acs/nladmin-ui/src/views/acs/material/index.vue
  18. 2
      acs/nladmin-ui/src/views/acs/point/index.vue
  19. 37
      acs/nladmin-ui/src/views/acs/task/index.vue
  20. 2
      acs/nladmin-ui/src/views/acs/work/index.vue
  21. 14
      acs/nladmin-ui/src/views/system/param/index.vue

4
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java

@ -143,4 +143,8 @@ public interface AcsConfig {
* 选择A点还是B点 * 选择A点还是B点
*/ */
String CHOOSE = "choose"; String CHOOSE = "choose";
/**
* 标准桶重
*/
String WEIGHT = "weight";
} }

2
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java

@ -18,6 +18,8 @@ import org.nl.acs.instruction.service.InstructionService;
import org.nl.acs.instruction.service.impl.InstructionServiceImpl; import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.log.service.DeviceExecuteLogService;
import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.point.domain.AcsPoint;
import org.nl.acs.point.service.IAcsPointService;
import org.nl.config.SpringContextHolder; import org.nl.config.SpringContextHolder;
import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.config.lucene.service.LuceneExecuteLogService;
import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.config.lucene.service.dto.LuceneLogDto;

22
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java

@ -29,6 +29,8 @@ import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.log.service.DeviceExecuteLogService;
import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.monitor.DeviceStageMonitor;
import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.point.domain.AcsPoint;
import org.nl.acs.point.service.IAcsPointService;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.impl.TaskServiceImpl; import org.nl.acs.task.service.impl.TaskServiceImpl;
@ -36,6 +38,7 @@ import org.nl.config.lucene.service.LuceneExecuteLogService;
import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.config.lucene.service.dto.LuceneLogDto;
import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.ISysParamService;
import org.nl.config.SpringContextHolder; import org.nl.config.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map; import java.util.Map;
@ -58,6 +61,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
IAcsPointService acsPointService = SpringContextHolder.getBean(IAcsPointService.class);
TwoAgvPhase twoAgvPhase = new TwoAgvPhase(); TwoAgvPhase twoAgvPhase = new TwoAgvPhase();
String error_code = "0"; String error_code = "0";
@ -283,6 +287,15 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
if (ObjectUtil.isNotEmpty(inst)) {
AcsPoint point = acsPointService.findByCode(inst.getStart_device_code());
if (ObjectUtil.isNotEmpty(point)) {
point.setPoint_status("0");
acsPointService.update(point);
} else {
log.info("未找到指令号{}对应的终点设备", ikey);
}
}
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0); data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@ -407,6 +420,15 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
} }
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
if (ObjectUtil.isNotEmpty(inst)) {
AcsPoint point = acsPointService.findByCode(inst.getNext_device_code());
if (ObjectUtil.isNotEmpty(point)) {
point.setPoint_status("1");
acsPointService.update(point);
} else {
log.info("未找到指令号{}对应的终点设备", ikey);
}
}
data = ndcAgvService.sendAgvOneModeInst(phase, index, 0); data = ndcAgvService.sendAgvOneModeInst(phase, index, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())

40
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/SpxToAcsServiceImpl.java

@ -7,6 +7,10 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.acs.AcsConfig;
import org.nl.acs.data.domain.Materialbase;
import org.nl.acs.data.service.IMaterialbaseService;
import org.nl.acs.data.service.impl.MaterialbaseServiceImpl;
import org.nl.acs.ext.wms.service.SpxToAcsService; import org.nl.acs.ext.wms.service.SpxToAcsService;
import org.nl.acs.order.mapper.OrderMapper; import org.nl.acs.order.mapper.OrderMapper;
import org.nl.acs.order.service.OrderDetailService; import org.nl.acs.order.service.OrderDetailService;
@ -19,6 +23,7 @@ import org.nl.acs.product.service.IProductdtlService;
import org.nl.acs.sch.task.service.ISchBaseTaskService; import org.nl.acs.sch.task.service.ISchBaseTaskService;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.system.service.param.ISysParamService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -41,6 +46,12 @@ public class SpxToAcsServiceImpl implements SpxToAcsService {
@Autowired @Autowired
private OrderDetailService orderDetailService; private OrderDetailService orderDetailService;
@Autowired
private IMaterialbaseService materialbaseService;
@Autowired
ISysParamService paramService;
@Autowired
private OrderService orderService;
@Override @Override
@ -77,6 +88,17 @@ public class SpxToAcsServiceImpl implements SpxToAcsService {
return; return;
} }
String productionNr = jsonObject.getString("ProductionNr"); String productionNr = jsonObject.getString("ProductionNr");
List<OrderDto> orderDtos = orderService.lambdaQuery()
.eq(OrderDto::getMfg_order_name, productionNr)
.list();
if (orderDtos.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("ID", id);
jo.put("message", "已存在对应工单");
errArr.add(jo);
return;
}
String recipeName = jsonObject.getString("RecipeName"); String recipeName = jsonObject.getString("RecipeName");
String recipeCode = jsonObject.getString("RecipeCode"); String recipeCode = jsonObject.getString("RecipeCode");
Float quantity = jsonObject.getFloatValue("Quantity"); Float quantity = jsonObject.getFloatValue("Quantity");
@ -87,9 +109,12 @@ public class SpxToAcsServiceImpl implements SpxToAcsService {
if (lineID == null) { if (lineID == null) {
lineID = 0; lineID = 0;
} }
String currentUserId = SecurityUtils.getCurrentUserId();
String startTime = jsonObject.getString("StartTime"); String startTime = jsonObject.getString("StartTime");
JSONArray components = Optional.ofNullable(jsonObject.getJSONArray("Components")).orElse(new JSONArray()); JSONArray components = Optional.ofNullable(jsonObject.getJSONArray("Components")).orElse(new JSONArray());
List<OrderDetailDto> list = new ArrayList<>(); List<OrderDetailDto> list = new ArrayList<>();
List<Materialbase> materiallist = new ArrayList<>();
String weight = paramService.findByCode(AcsConfig.WEIGHT).getValue();
// 工单明细表插入 // 工单明细表插入
for (int j = 0; j < components.size(); j++) { for (int j = 0; j < components.size(); j++) {
JSONObject jo = components.getJSONObject(j); JSONObject jo = components.getJSONObject(j);
@ -101,6 +126,20 @@ public class SpxToAcsServiceImpl implements SpxToAcsService {
} }
String unit = jo.getString("Unit"); String unit = jo.getString("Unit");
OrderDetailDto orderDetailDto = new OrderDetailDto(); OrderDetailDto orderDetailDto = new OrderDetailDto();
Materialbase code = materialbaseService.findByCode(product_code);
if (code == null) {
Materialbase materialbase = new Materialbase();
materialbase.setMaterial_code(product_code)
.setMaterial_id(IdUtil.getSnowflake(1, 1).nextId() + "")
.setMaterial_name(componentName)
.setBase_unit_id(unit)
.setQty(Float.parseFloat(weight))
.setCreate_id(Long.getLong(currentUserId))
.setCreate_name(currentNickName)
.setCreate_time(currentTime);
materiallist.add(materialbase);
}
orderDetailDto.setMaterial_id(IdUtil.getSnowflake(1, 1).nextId() + "") orderDetailDto.setMaterial_id(IdUtil.getSnowflake(1, 1).nextId() + "")
.setSeq_no(j + 1) .setSeq_no(j + 1)
.setMaterial_code(product_code) .setMaterial_code(product_code)
@ -113,6 +152,7 @@ public class SpxToAcsServiceImpl implements SpxToAcsService {
.setCreate_time(currentTime); .setCreate_time(currentTime);
list.add(orderDetailDto); list.add(orderDetailDto);
} }
materialbaseService.saveBatch(materiallist);
orderDetailService.saveBatch(list); orderDetailService.saveBatch(list);
// 插入工单表 // 插入工单表
OrderDto dto = new OrderDto(); OrderDto dto = new OrderDto();

8
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java

@ -1176,8 +1176,12 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// //
// } else // } else
//1=XZ 2=NDC //1=XZ 2=NDC
ndcAgvService.deleteAgvInstToNDC(BeanUtil.copyProperties(entity, Instruction.class)); if (!StrUtil.isEmpty(entity.getAgv_jobno())) {
flag = true; ndcAgvService.deleteAgvInstToNDC(BeanUtil.copyProperties(entity, Instruction.class));
flag = true;
} else {
flag = true;
}
if (flag) { if (flag) {
String currentUsername = SecurityUtils.getCurrentNickName(); String currentUsername = SecurityUtils.getCurrentNickName();
String now = DateUtil.now(); String now = DateUtil.now();

43
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/sch/task/service/impl/WorkServiceImpl.java

@ -1,6 +1,7 @@
package org.nl.acs.sch.task.service.impl; package org.nl.acs.sch.task.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -22,6 +23,7 @@ import org.nl.acs.sch.task.service.dao.Work;
import org.nl.acs.sch.task.service.dao.mapper.WorkMapper; import org.nl.acs.sch.task.service.dao.mapper.WorkMapper;
import org.nl.acs.sch.task.service.dto.WorkQuery; import org.nl.acs.sch.task.service.dto.WorkQuery;
import org.nl.acs.sch.task_manage.task.core.TaskStatus; import org.nl.acs.sch.task_manage.task.core.TaskStatus;
import org.nl.acs.task.domain.Task;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
@ -40,6 +42,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements WorkService { public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements WorkService {
private static final List<String> VALID_STATUS = Arrays.asList("0", "1");
@Autowired @Autowired
private WorkMapper workMapper; private WorkMapper workMapper;
@Autowired @Autowired
@ -160,6 +163,13 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements Wo
if (StrUtil.equals(CommonFinalParam.FINISHED, work.getStatus())) { if (StrUtil.equals(CommonFinalParam.FINISHED, work.getStatus())) {
throw new BadRequestException("该配料任务已完成!"); throw new BadRequestException("该配料任务已完成!");
} }
List<Task> list = taskService.lambdaQuery()
.in(Task::getTask_status, VALID_STATUS)
.list();
if (list.size()>0) {
throw new BadRequestException("已存在正在执行中或者就绪的AGV任务!");
}
String mfg_order_name = work.getMfg_order_name(); String mfg_order_name = work.getMfg_order_name();
OrderDto dto = orderService.findByCode(mfg_order_name); OrderDto dto = orderService.findByCode(mfg_order_name);
if (ObjectUtil.isEmpty(dto)){ if (ObjectUtil.isEmpty(dto)){
@ -176,6 +186,25 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements Wo
throw new BadRequestException("工单起点和终点未确认!"); throw new BadRequestException("工单起点和终点未确认!");
} }
AcsPoint startPoint = acsPointService.lambdaQuery()
.eq(AcsPoint::getPoint_code, "QZJYTW2")
.one();
AcsPoint nextPoint = acsPointService.lambdaQuery()
.eq(AcsPoint::getPoint_code,taskDto.getNext_device_code())
.one();
if (ObjectUtil.isEmpty(nextPoint)) {
throw new BadRequestException("终点设备不存在");
}
if (!nextPoint.getIs_used().booleanValue() || nextPoint.getPoint_status().equals(CommonFinalParam.ONE)) {
throw new BadRequestException("下发任务失败的原因是:终点点位被禁用或者终点点位有货,请检查起点点位"+nextPoint.getPoint_code()+"的状态!");
}
if (ObjectUtil.isEmpty(startPoint)) {
throw new BadRequestException("起点设备不存在");
}
if (!startPoint.getIs_used().booleanValue() || startPoint.getPoint_status().equals(CommonFinalParam.ZERO)) {
throw new BadRequestException("下发任务失败的原因是:起点点位被禁用或者起点点位无货,请检查起点点位"+startPoint.getPoint_code()+"的状态!");
}
taskDto.setStart_device_code("QZJYTW2"); taskDto.setStart_device_code("QZJYTW2");
taskDto.setTask_type(CommonFinalParam.ONE); taskDto.setTask_type(CommonFinalParam.ONE);
taskDto.setAgv_system_type(CommonFinalParam.TWO); taskDto.setAgv_system_type(CommonFinalParam.TWO);
@ -194,16 +223,16 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements Wo
} }
work.setRemain_num(work.getRemain_num() - 1); work.setRemain_num(work.getRemain_num() - 1);
//当前数量为0,则修改状态为已完成 //当前数量为0,则修改状态为已完成
if (work.getRemain_num() == 0) { // if (work.getRemain_num() == 0) {
work.setStatus(TaskStatus.FINISHED.getCode()); // work.setStatus(TaskStatus.FINISHED.getCode());
} // }
workMapper.updateById(work); workMapper.updateById(work);
List<Work> works = workMapper.selectList(Wrappers.lambdaQuery(Work.class).eq(Work::getMfg_order_name, mfg_order_name).eq(Work::getStatus, TaskStatus.FINISHED.getCode())); List<Work> works = workMapper.selectList(Wrappers.lambdaQuery(Work.class).eq(Work::getMfg_order_name, mfg_order_name).eq(Work::getStatus, TaskStatus.FINISHED.getCode()));
// 工单所有配料任务都完成,则工单状态改为已完成 // 工单所有配料任务都完成,则工单状态改为已完成
if (works.size() == dto.getDetail_count()) { // if (works.size() == dto.getDetail_count()) {
dto.setStatus(CommonFinalParam.FINISHED); // dto.setStatus(CommonFinalParam.FINISHED);
orderService.update(dto); // orderService.update(dto);
} // }
} }
@Override @Override

13
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java

@ -783,7 +783,6 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void finish(TaskIdAndStatusDTO taskIdAndStatus) { public void finish(TaskIdAndStatusDTO taskIdAndStatus) {
TaskDto entity = this.findById(taskIdAndStatus.getTask_id()); TaskDto entity = this.findById(taskIdAndStatus.getTask_id());
TaskDto updateTask = this.findById(taskIdAndStatus.getTask_id());
if (entity == null) { if (entity == null) {
throw new BadRequestException(LangProcess.msg("error_sysAuth")); throw new BadRequestException(LangProcess.msg("error_sysAuth"));
} }
@ -802,14 +801,6 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
taskMapper.updateById(task); taskMapper.updateById(task);
//移除任务缓存信息 //移除任务缓存信息
this.removeByCodeFromCache(entity.getTask_code()); this.removeByCodeFromCache(entity.getTask_code());
if (!TaskStatusEnum.FINISHED.getIndex().equals(updateTask.getTask_status())) {
//反馈上位系统任务状态
this.feedWmsTaskStatus(entity);
//关闭仙工运单序列
if (StrUtil.equals(task.getTask_type(), TaskTypeEnum.Standard_AGV_Task.getCode())) {
this.markComplete(entity);
}
}
} }
@Override @Override
@ -985,8 +976,8 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
log.info("未找到对应的AGV指令类型,任务号:" + acsTask.getTask_code() + ",task_type:" + acsTask.getTask_type()); log.info("未找到对应的AGV指令类型,任务号:" + acsTask.getTask_code() + ",task_type:" + acsTask.getTask_type());
} }
instructionservice.create2(instdto); instructionservice.create2(instdto);
// acsTask.setTask_status(CommonFinalParam.ONE); acsTask.setTask_status(CommonFinalParam.ONE);
// this.update(acsTask); this.update(acsTask);
return instdto; return instdto;
} }

2
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/controller/HandController.java

@ -46,7 +46,7 @@ public class HandController {
return new ResponseEntity<>(handService.confirm(whereJson),HttpStatus.OK); return new ResponseEntity<>(handService.confirm(whereJson),HttpStatus.OK);
} }
@Log("确认配料作业") @Log("确认终点设备")
@PostMapping(value = "/confirmZZDevice") @PostMapping(value = "/confirmZZDevice")
public ResponseEntity<Object> confirmZZDevice(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> confirmZZDevice(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(handService.confirmZZDevice(whereJson),HttpStatus.OK); return new ResponseEntity<>(handService.confirmZZDevice(whereJson),HttpStatus.OK);

13
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/controller/PdaController.java

@ -44,6 +44,19 @@ public class PdaController {
return new ResponseEntity<>(pdaService.queryWorks(whereJson), HttpStatus.OK); return new ResponseEntity<>(pdaService.queryWorks(whereJson), HttpStatus.OK);
} }
@PostMapping("/queryPoints")
@Log("点位查询")
public ResponseEntity<Object> queryPoints() {
return new ResponseEntity<>(pdaService.queryPoints(), HttpStatus.OK);
}
@PostMapping("/operation")
@Log("更新点位状态")
public ResponseEntity<Object> operation(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(pdaService.operation(whereJson), HttpStatus.OK);
}
@PostMapping("/queryDevices") @PostMapping("/queryDevices")
@Log("查询所有点位") @Log("查询所有点位")
@ApiOperation("查询所有点位") @ApiOperation("查询所有点位")

5
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/PdaService.java

@ -6,6 +6,7 @@ import org.nl.acs.sch.task.service.dao.Work;
import org.nl.hand.service.dao.dto.PdaDto; import org.nl.hand.service.dao.dto.PdaDto;
import org.nl.hand.service.dao.vo.PdaResponseVo; import org.nl.hand.service.dao.vo.PdaResponseVo;
import org.nl.hand.service.vo.OrderVo; import org.nl.hand.service.vo.OrderVo;
import org.nl.hand.service.vo.PointVo;
import org.nl.hand.service.vo.WorkVo; import org.nl.hand.service.vo.WorkVo;
import java.util.List; import java.util.List;
@ -27,6 +28,8 @@ public interface PdaService {
List<WorkVo> queryWorks(JSONObject whereJson); List<WorkVo> queryWorks(JSONObject whereJson);
List<PointVo> queryPoints();
List<WorkVo> getExcWorks(); List<WorkVo> getExcWorks();
PdaResponseVo sendWork(JSONObject whereJson); PdaResponseVo sendWork(JSONObject whereJson);
@ -41,4 +44,6 @@ public interface PdaService {
PdaResponseVo pause(JSONObject whereJson); PdaResponseVo pause(JSONObject whereJson);
PdaResponseVo operation(JSONObject whereJson);
} }

3
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/dao/mapper/PdaMapper.java

@ -2,6 +2,7 @@ package org.nl.hand.service.dao.mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.nl.hand.service.vo.OrderVo; import org.nl.hand.service.vo.OrderVo;
import org.nl.hand.service.vo.PointVo;
import org.nl.hand.service.vo.WorkVo; import org.nl.hand.service.vo.WorkVo;
import java.util.List; import java.util.List;
@ -13,4 +14,6 @@ public interface PdaMapper {
List<WorkVo> getWorks(@Param("mfg_order_name") String mfg_order_name); List<WorkVo> getWorks(@Param("mfg_order_name") String mfg_order_name);
List<WorkVo> getExcWorks(); List<WorkVo> getExcWorks();
List<PointVo> getPoints();
} }

84
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/dao/mapper/PdaMapper.xml

@ -12,6 +12,7 @@
Case status Case status
WHEN '0' THEN '就绪' WHEN '0' THEN '就绪'
WHEN '1' THEN '执行中' WHEN '1' THEN '执行中'
WHEN '4' THEN '暂停'
ELSE '' ELSE ''
END AS status, END AS status,
realstart_time, realstart_time,
@ -21,47 +22,68 @@
order by realstart_time ASC order by realstart_time ASC
</select> </select>
<select id="getWorks" resultType="org.nl.hand.service.vo.WorkVo"> <select id="getWorks" resultType="org.nl.hand.service.vo.WorkVo">
SELECT seq_no, SELECT w.seq_no,
work_code, w.work_code,
mfg_order_name, w.mfg_order_name,
material_code, w.material_code,
material_name, w.material_name,
qty, w.qty,
next_device_code, w.resource_name,
require_num, w.next_device_code,
remain_num, w.require_num,
Case status w.remain_num,
WHEN '0' THEN '就绪' Case w.status
WHEN '1' THEN '执行中' WHEN '0' THEN '就绪'
WHEN '2' THEN '完成' WHEN '1' THEN '执行中'
ELSE '' WHEN '2' THEN '完成'
END AS status WHEN '4' THEN '暂停'
FROM work ELSE ''
END AS status
FROM work w
LEFT JOIN acs_workorder o ON o.mfg_order_name = w.mfg_order_name
<where> <where>
<if test="mfg_order_name != null and mfg_order_name != ''"> <if test="mfg_order_name != null and mfg_order_name != ''">
work.mfg_order_name = #{mfg_order_name} w.mfg_order_name = #{mfg_order_name}
</if> </if>
AND status != '2' AND o.status = '1'
</where> </where>
ORDER BY work.mfg_order_name asc ,work.seq_no asc ORDER BY w.create_time desc,w.mfg_order_name asc ,w.seq_no asc
</select> </select>
<select id="getExcWorks" resultType="org.nl.hand.service.vo.WorkVo"> <select id="getExcWorks" resultType="org.nl.hand.service.vo.WorkVo">
SELECT seq_no, SELECT w.seq_no,
mfg_order_name, w.mfg_order_name,
work_code, w.work_code,
material_code, w.material_code,
material_name, w.material_name,
qty, w.qty,
next_device_code, w.next_device_code,
require_num, w.require_num,
remain_num, w.remain_num,
Case status Case w.status
WHEN '0' THEN '就绪' WHEN '0' THEN '就绪'
WHEN '1' THEN '执行中' WHEN '1' THEN '执行中'
WHEN '2' THEN '完成' WHEN '2' THEN '完成'
WHEN '4' THEN '暂停'
ELSE '' ELSE ''
END AS status END AS status
FROM work FROM work w
where status = '1' ORDER BY work.mfg_order_name asc ,work.seq_no asc LEFT JOIN acs_workorder o ON o.mfg_order_name = w.mfg_order_name
WHERE o.status = '1'
ORDER BY w.mfg_order_name asc ,w.seq_no asc
</select>
<select id="getPoints" resultType="org.nl.hand.service.vo.PointVo">
SELECT point_code,
point_name,
CASE point_status
WHEN '0' THEN '无货'
WHEN '1' THEN '有货'
ELSE ''
END AS point_status,
CASE is_used
WHEN '0' THEN '否'
WHEN '1' THEN '是'
ELSE ''
END AS is_used
FROM acs_point
</select> </select>
</mapper> </mapper>

2
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/HandServiceImpl.java

@ -44,7 +44,7 @@ public class HandServiceImpl implements HandService {
@Override @Override
public PdaResponseVo confirm(JSONObject whereJson) { public PdaResponseVo confirm(JSONObject whereJson) {
Work work = workService.findByCode(whereJson.getString("work_code")); Work work = workService.findByCode(whereJson.getString("work_code"));
if (work != null){ if (work == null){
return PdaResponseVo.pdaResultOk("配料作业不存在"); return PdaResponseVo.pdaResultOk("配料作业不存在");
} }
workService.confirm(work.getWork_id()); workService.confirm(work.getWork_id());

164
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/impl/PdaServiceImpl.java

@ -2,22 +2,35 @@ package org.nl.hand.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.acs.common.base.CommonFinalParam;
import org.nl.acs.data.domain.Materialbase;
import org.nl.acs.data.service.IMaterialbaseService;
import org.nl.acs.device.domain.Device; import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.DeviceService;
import org.nl.acs.order.mapper.OrderDetailMapper;
import org.nl.acs.order.mapper.OrderMapper;
import org.nl.acs.order.service.OrderService; import org.nl.acs.order.service.OrderService;
import org.nl.acs.order.service.dto.OrderDetailDto;
import org.nl.acs.order.service.dto.OrderDto; import org.nl.acs.order.service.dto.OrderDto;
import org.nl.acs.point.domain.AcsPoint;
import org.nl.acs.point.service.IAcsPointService;
import org.nl.acs.sch.task.service.WorkService; import org.nl.acs.sch.task.service.WorkService;
import org.nl.acs.sch.task.service.dao.Work; import org.nl.acs.sch.task.service.dao.Work;
import org.nl.acs.sch.task.service.dao.mapper.WorkMapper;
import org.nl.acs.sch.task_manage.task.core.TaskStatus; import org.nl.acs.sch.task_manage.task.core.TaskStatus;
import org.nl.acs.task.domain.Task;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.config.language.LangProcess; import org.nl.config.language.LangProcess;
import org.nl.hand.service.PdaService; import org.nl.hand.service.PdaService;
@ -25,16 +38,25 @@ import org.nl.hand.service.dao.dto.PdaDto;
import org.nl.hand.service.dao.mapper.PdaMapper; import org.nl.hand.service.dao.mapper.PdaMapper;
import org.nl.hand.service.dao.vo.PdaResponseVo; import org.nl.hand.service.dao.vo.PdaResponseVo;
import org.nl.hand.service.vo.OrderVo; import org.nl.hand.service.vo.OrderVo;
import org.nl.hand.service.vo.PointVo;
import org.nl.hand.service.vo.WorkVo; import org.nl.hand.service.vo.WorkVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.*;
import java.util.Map; import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class PdaServiceImpl implements PdaService { public class PdaServiceImpl implements PdaService {
private static final List<String> VALID_REGIONS = Arrays.asList("1", "2");
private static final List<String> VALID_STATUS = Arrays.asList("0", "1");
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderDetailMapper orderDetailMapper;
@Autowired @Autowired
private PdaMapper pdaMapper; private PdaMapper pdaMapper;
@Autowired @Autowired
@ -45,6 +67,14 @@ public class PdaServiceImpl implements PdaService {
private DeviceService deviceService; private DeviceService deviceService;
@Autowired @Autowired
private TaskService taskserver; private TaskService taskserver;
@Autowired
private IMaterialbaseService materialbaseService;
@Autowired
private WorkMapper workMapper;
@Autowired
private TaskService taskService;
@Autowired
private IAcsPointService acsPointService;
@Override @Override
public List<OrderVo> queryOrders() { public List<OrderVo> queryOrders() {
@ -54,22 +84,54 @@ public class PdaServiceImpl implements PdaService {
@Override @Override
public PdaResponseVo startOrder(JSONObject whereJson) { public PdaResponseVo startOrder(JSONObject whereJson) {
String mfg_order_name = whereJson.getString("mfg_order_name"); String mfg_order_name = whereJson.getString("mfg_order_name");
if (StrUtil.isEmpty(mfg_order_name)){
return PdaResponseVo.pdaResultOk("工单号为空!");
}
OrderDto dto = orderService.findByCode(mfg_order_name);
if (ObjectUtil.isNull(dto)){
return PdaResponseVo.pdaResultOk("工单不存在");
}
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String currentUsername = SecurityUtils.getCurrentUsername(); String currentUsername = SecurityUtils.getCurrentUsername();
dto.setStatus("1"); OrderDto orderDto = orderService.findByCode(mfg_order_name);
dto.setRealstart_time(DateUtil.now()); if (ObjectUtil.isNull(orderDto)&& "0".equals(orderDto.getStatus())) {
dto.setUpdate_optid(currentUserId); throw new BadRequestException("工单状态不为开始");
dto.setUpdate_optname(currentUsername); }
dto.setUpdate_time(DateUtil.now()); orderDto.setStatus("1");
orderService.updateById(dto); orderDto.setRealstart_time(DateUtil.now());
return PdaResponseVo.pdaResultOk("工单:[" + dto.getMfg_order_name() + "]已开始"); orderDto.setUpdate_optid(currentUserId);
orderDto.setUpdate_optname(currentUsername);
orderDto.setUpdate_time(DateUtil.now());
//生成配料任务
List<OrderDetailDto> list = orderDetailMapper.selectList(Wrappers.lambdaQuery(OrderDetailDto.class).eq(OrderDetailDto::getWorkorder_id, orderDto.getWorkorder_id()));
Set<String> materialCodes = list.stream().map(OrderDetailDto::getMaterial_code).collect(Collectors.toSet());
Map<String, Materialbase> materialbaseMap = materialbaseService.findByCodes(materialCodes);
List<Work> works = new ArrayList<>();
for (OrderDetailDto orderDetailDto : list) {
String material_code = orderDetailDto.getMaterial_code();
if (material_code == null) {
throw new BadRequestException("物料编码不能为空");
}
Materialbase materialbase = materialbaseMap.get(material_code);
if (materialbase == null) {
throw new BadRequestException("不存在物料编码为" + material_code + "的物料!");
}
int count = (int) Math.ceil((double) orderDetailDto.getProductin_qty() / materialbase.getQty());
Work work = new Work();
work.setWork_id(IdUtil.getSnowflake(1, 1).nextId() + "")
.setWork_code(CodeUtil.getNewCode("WORK_CODE"))
.setStatus("0")
.setSeq_no(orderDetailDto.getSeq_no())
.setMfg_order_name(orderDetailDto.getMfg_order_name())
.setMaterial_code(orderDetailDto.getMaterial_code())
.setMaterial_name(orderDetailDto.getMaterial_name())
.setResource_name(orderDto.getResource_name())
.setRequire_num(count)
.setRemain_num(count)
.setQty(orderDetailDto.getProductin_qty())
.setCreate_by(currentUsername)
.setCreate_time(DateUtil.now())
.setUpdate_by(currentUsername)
.setUpdate_time(DateUtil.now());
works.add(work);
}
workService.saveBatch(works);
orderMapper.updateById(orderDto);
return PdaResponseVo.pdaResultOk("工单:[" + orderDto.getMfg_order_name() + "]已开始");
} }
@Override @Override
@ -131,6 +193,10 @@ public class PdaServiceImpl implements PdaService {
} }
return pdaMapper.getWorks(whereJson.getString("mfg_order_name")); return pdaMapper.getWorks(whereJson.getString("mfg_order_name"));
} }
@Override
public List<PointVo> queryPoints() {
return pdaMapper.getPoints();
}
@Override @Override
public List<WorkVo> getExcWorks() { public List<WorkVo> getExcWorks() {
@ -177,6 +243,13 @@ public class PdaServiceImpl implements PdaService {
} }
work.setStatus(TaskStatus.FINISHED.getCode()); work.setStatus(TaskStatus.FINISHED.getCode());
workService.updateById(work); workService.updateById(work);
OrderDto dto = orderService.findByCode(work.getMfg_order_name());
List<Work> works = workMapper.selectList(Wrappers.lambdaQuery(Work.class).eq(Work::getMfg_order_name, work.getMfg_order_name()).eq(Work::getStatus, TaskStatus.FINISHED.getCode()));
// 工单所有配料任务都完成,则工单状态改为已完成
if (works.size() == dto.getDetail_count()) {
dto.setStatus(CommonFinalParam.FINISHED);
orderService.update(dto);
}
return PdaResponseVo.pdaResultOk("完成配料作业成功"); return PdaResponseVo.pdaResultOk("完成配料作业成功");
} }
@ -184,9 +257,10 @@ public class PdaServiceImpl implements PdaService {
public JSONArray queryAllPoints() { public JSONArray queryAllPoints() {
//查询所有设备 //查询所有设备
List<Device> list = deviceService.lambdaQuery() List<Device> list = deviceService.lambdaQuery()
.in(Device::getRegion, VALID_REGIONS)
.list(); .list();
if (CollectionUtil.isEmpty(list)) { if (CollectionUtil.isEmpty(list)) {
throw new BadRequestException(LangProcess.msg("error_no_regional")); throw new BadRequestException("未查询到设备!");
} }
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(list)); JSONArray arr = JSONArray.parseArray(JSON.toJSONString(list));
JSONArray result = new JSONArray(); JSONArray result = new JSONArray();
@ -204,19 +278,41 @@ public class PdaServiceImpl implements PdaService {
public Map<String, Object> callTask(PdaDto dto) { public Map<String, Object> callTask(PdaDto dto) {
JSONArray errArr = new JSONArray(); JSONArray errArr = new JSONArray();
String start_device_code = dto.getStart_device_code(); String start_device_code = dto.getStart_device_code();
String next_device_code = dto.getNext_device_code();
if (StrUtil.isEmpty(start_device_code)) { if (StrUtil.isEmpty(start_device_code)) {
throw new BadRequestException("起点不能为空"); throw new BadRequestException("起点不能为空");
} }
if (StrUtil.isEmpty(next_device_code)) { List<Task> list = taskService.lambdaQuery()
throw new BadRequestException("终点不能为空"); .in(Task::getTask_status, VALID_STATUS)
.list();
if (list.size()>0) {
throw new BadRequestException("已存在正在执行中或者就绪的AGV任务!");
}
AcsPoint startPoint = acsPointService.lambdaQuery()
.eq(AcsPoint::getPoint_code, start_device_code)
.one();
AcsPoint nextPoint = acsPointService.lambdaQuery()
.eq(AcsPoint::getPoint_code,"QZJYTW1")
.one();
if (ObjectUtil.isEmpty(nextPoint)) {
throw new BadRequestException("终点设备不存在");
}
if (!nextPoint.getIs_used().booleanValue() || nextPoint.getPoint_status().equals(CommonFinalParam.ONE)) {
throw new BadRequestException("下发任务失败的原因是:终点点位被禁用或者终点点位有货,请检查起点点位"+nextPoint.getPoint_code()+"的状态!");
}
if (ObjectUtil.isEmpty(startPoint)) {
throw new BadRequestException("起点设备不存在");
} }
if (!startPoint.getIs_used().booleanValue() || startPoint.getPoint_status().equals(CommonFinalParam.ZERO)) {
throw new BadRequestException("下发任务失败的原因是:起点点位被禁用或者起点点位无货,请检查起点点位"+startPoint.getPoint_code()+"的状态!");
}
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("start_device_code", start_device_code); jo.put("start_device_code", start_device_code);
jo.put("next_device_code", next_device_code); jo.put("next_device_code", "QZJYTW1");
jo.put("start_point_code", start_device_code); jo.put("start_point_code", start_device_code);
jo.put("next_point_code", next_device_code); jo.put("next_point_code", "QZJYTW1");
jo.put("task_type", "1"); jo.put("task_type", "1");
jo.put("priority", "1"); jo.put("priority", "1");
@ -251,4 +347,28 @@ public class PdaServiceImpl implements PdaService {
workService.pause(work.getWork_id()); workService.pause(work.getWork_id());
return PdaResponseVo.pdaResultOk("暂停成功"); return PdaResponseVo.pdaResultOk("暂停成功");
} }
@Override
public PdaResponseVo operation(JSONObject whereJson) {
String point_code = whereJson.getString("point_code");
String type = whereJson.getString("type");//1:点位状态修改有货,0:点位状态修改无货
if (StrUtil.isEmpty(point_code)) {
return PdaResponseVo.pdaResultOk("点位为空");
}
if (StrUtil.isEmpty(type)) {
return PdaResponseVo.pdaResultOk("类型为空");
}
AcsPoint point = acsPointService.findByCode(point_code);
if (ObjectUtil.isEmpty(point)) {
return PdaResponseVo.pdaResultOk("点位不存在");
}
if (type.equals("1")) {
point.setPoint_status("1");
}
if (type.equals("0")) {
point.setPoint_status("0");
}
acsPointService.updateById(point);
return PdaResponseVo.pdaResultOk("更新成功");
}
} }

16
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/vo/PointVo.java

@ -0,0 +1,16 @@
package org.nl.hand.service.vo;
import lombok.Data;
/**
* @Author: tq
* @Description: 点位查询
* @Date: 2024/10/15
*/
@Data
public class PointVo {
private String point_code;//点位编码
private String point_name;//点位名称
private String point_status;//点位状态
private String is_used;//是否启用
}

1
acs/nladmin-system/nlsso-server/src/main/java/org/nl/hand/service/vo/WorkVo.java

@ -14,6 +14,7 @@ public class WorkVo {
private String mfg_order_name; private String mfg_order_name;
private String material_code; private String material_code;
private String material_name; private String material_name;
private String resource_name;
private float qty; private float qty;
private String next_device_code; private String next_device_code;
private int require_num; private int require_num;

2
acs/nladmin-ui/src/views/acs/material/index.vue

@ -120,6 +120,8 @@
<!-- />--> <!-- />-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column prop="create_name" label="创建人" />
<el-table-column prop="create_time" label="创建时间" />
<el-table-column prop="update_optname" label="修改人" /> <el-table-column prop="update_optname" label="修改人" />
<el-table-column prop="update_time" label="修改时间" width="135" /> <el-table-column prop="update_time" label="修改时间" width="135" />
<el-table-column <el-table-column

2
acs/nladmin-ui/src/views/acs/point/index.vue

@ -72,7 +72,7 @@
type="primary" type="primary"
icon="el-icon-circle-close" icon="el-icon-circle-close"
:disabled="crud.selections.length === 0" :disabled="crud.selections.length === 0"
@click="changeUsed(crud.selections, false)" @click="changeUsed(crud.selections, true)"
> >
禁用 禁用
</el-button> </el-button>

37
acs/nladmin-ui/src/views/acs/task/index.vue

@ -267,7 +267,6 @@
<el-table-column type="selection" width="25" /> <el-table-column type="selection" width="25" />
<el-table-column v-if="false" prop="task_id" label="任务标识" /> <el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" label="任务号" /> <el-table-column prop="task_code" label="任务号" />
<el-table-column prop="vehicle_code" label="载具号" />
<el-table-column prop="task_status" label="任务状态"> <el-table-column prop="task_status" label="任务状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.task_status==='0' ">就绪</span> <span v-if="scope.row.task_status==='0' ">就绪</span>
@ -280,22 +279,24 @@
<!-- <el-table-column prop="start_parent_code" label="父起点点位" min-width="100" show-overflow-tooltip />--> <!-- <el-table-column prop="start_parent_code" label="父起点点位" min-width="100" show-overflow-tooltip />-->
<el-table-column prop="next_point_code" label="终点" min-width="100" show-overflow-tooltip /> <el-table-column prop="next_point_code" label="终点" min-width="100" show-overflow-tooltip />
<!-- <el-table-column prop="next_parent_code" label="父终点点位" min-width="100" show-overflow-tooltip />--> <!-- <el-table-column prop="next_parent_code" label="父终点点位" min-width="100" show-overflow-tooltip />-->
<el-table-column prop="start_point_code2" label="起点2" min-width="100" show-overflow-tooltip /> <!-- <el-table-column prop="start_point_code2" label="起点2" min-width="100" show-overflow-tooltip />-->
<el-table-column prop="next_point_code2" label="终点2" min-width="100" show-overflow-tooltip /> <!-- <el-table-column prop="next_point_code2" label="终点2" min-width="100" show-overflow-tooltip />-->
<el-table-column prop="put_device_code" label="放货位" min-width="100" show-overflow-tooltip /> <!-- <el-table-column prop="put_device_code" label="放货位" min-width="100" show-overflow-tooltip />-->
<el-table-column prop="compound_task" label="复合任务"> <!-- <el-table-column prop="compound_task" label="复合任务">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<span v-if="scope.row.compound_task==='0' "></span> <!-- <span v-if="scope.row.compound_task==='0' "></span>-->
<span v-if="scope.row.compound_task==='1' "></span> <!-- <span v-if="scope.row.compound_task==='1' "></span>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column prop="compound_task_data" width="200" label="复合路线" /> <!-- <el-table-column prop="compound_task_data" width="200" label="复合路线" />-->
<el-table-column prop="matarial" label="物料" /> <!-- <el-table-column prop="matarial" label="物料" />-->
<el-table-column prop="quantity" label="数量" /> <!-- <el-table-column prop="quantity" label="数量" />-->
<el-table-column prop="remark" label="备注" /> <el-table-column prop="remark" label="备注" />
<el-table-column prop="create_by" label="创建" /> <el-table-column prop="create_by" label="创建" />
<el-table-column prop="create_time" label="创建时间" width="135" /> <el-table-column prop="create_time" label="创建时间" width="135" />
<el-table-column prop="update_by" label="更新人" width="135" />
<el-table-column prop="update_time" label="更新时间" width="135" />
<el-table-column v-permission="['admin','task:edit','task:del']" fixed="left" label="操作" width="80px" align="center"> <el-table-column v-permission="['admin','task:edit','task:del']" fixed="left" label="操作" width="80px" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand"> <el-dropdown trigger="click" @command="handleCommand">
@ -428,6 +429,10 @@ export default {
to_y: null, to_y: null,
to_z: null to_z: null
}, },
taskStatus: {
task_status: '',
task_id: null
},
rules: { rules: {
start_point_code: [ start_point_code: [
{ required: true, message: '起点不能为空', trigger: 'change' } { required: true, message: '起点不能为空', trigger: 'change' }
@ -474,7 +479,9 @@ export default {
return true return true
}, },
finish(index, row) { finish(index, row) {
crudTask.finish(row.task_id).then(res => { this.taskStatus.task_id = row.task_id
this.taskStatus.task_status = index
crudTask.finish(this.taskStatus).then(res => {
this.crud.toQuery() this.crud.toQuery()
this.crud.notify('完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.notify('完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
}).catch(err => { }).catch(err => {

2
acs/nladmin-ui/src/views/acs/work/index.vue

@ -85,7 +85,7 @@
<el-table-column prop="seq_no" label="序号" :min-width="flexWidth('seq_no',crud.data,'序号')" /> <el-table-column prop="seq_no" label="序号" :min-width="flexWidth('seq_no',crud.data,'序号')" />
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" /> <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" /> <el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column prop="next_device_code" label="点编号" :min-width="flexWidth('next_device_code',crud.data,'终点编号')" /> <el-table-column prop="next_device_code" label="点编号" :min-width="flexWidth('next_device_code',crud.data,'终点编号')" />
<el-table-column prop="require_num" label="配料桶数" :min-width="flexWidth('require_num',crud.data,'配料桶数')" /> <el-table-column prop="require_num" label="配料桶数" :min-width="flexWidth('require_num',crud.data,'配料桶数')" />
<el-table-column prop="remain_num" label="剩余桶数" :min-width="flexWidth('remain_num',crud.data,'剩余桶数')" /> <el-table-column prop="remain_num" label="剩余桶数" :min-width="flexWidth('remain_num',crud.data,'剩余桶数')" />
<el-table-column prop="qty" label="物料重量" :min-width="flexWidth('qty',crud.data,'物料重量')" /> <el-table-column prop="qty" label="物料重量" :min-width="flexWidth('qty',crud.data,'物料重量')" />

14
acs/nladmin-ui/src/views/system/param/index.vue

@ -19,6 +19,15 @@
<el-form-item :label="$t('SysParam.table.name')" prop="name"> <el-form-item :label="$t('SysParam.table.name')" prop="name">
<el-input v-model="form.name" style="width: 370px;" /> <el-input v-model="form.name" style="width: 370px;" />
</el-form-item> </el-form-item>
<el-form-item label="中文标题" prop="zh_name">
<el-input v-model="form.zh_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="英文标题" prop="en_name">
<el-input v-model="form.en_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="印尼标题" prop="in_name">
<el-input v-model="form.in_name" style="width: 370px;" />
</el-form-item>
<el-form-item :label="$t('SysParam.table.values')" prop="value"> <el-form-item :label="$t('SysParam.table.values')" prop="value">
<el-input v-model="form.value" style="width: 370px;" /> <el-input v-model="form.value" style="width: 370px;" />
</el-form-item> </el-form-item>
@ -72,6 +81,9 @@ const defaultForm = {
id: null, id: null,
code: null, code: null,
name: null, name: null,
zh_name: null,
in_name: null,
en_name: null,
value: null, value: null,
remark: null, remark: null,
is_active: true is_active: true
@ -81,7 +93,7 @@ export default {
components: { pagination, crudOperation, udOperation }, components: { pagination, crudOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() { cruds() {
return CRUD({ title: 'menu.table_title.SystemParam', url: 'api/param', idField: 'id', sort: 'id,desc', crudMethod: { ...crudParam }, return CRUD({ title: '系統参数', url: 'api/param', idField: 'id', sort: 'id,desc', crudMethod: { ...crudParam },
optShow: { optShow: {
add: true, add: true,
edit: true, edit: true,

Loading…
Cancel
Save