| New file |
| | |
| | | -- save basDevpPosition record |
| | | -- mysql |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition/basDevpPosition.html', 'basDevpPosition管理', null , '2', null , '1'); |
| | | |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition#view', '查询', '', '3', '0', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition#btn-add', '新增', '', '3', '1', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition#btn-edit', '编辑', '', '3', '2', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition#btn-delete', '删除', '', '3', '3', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basDevpPosition#btn-export', '导出', '', '3', '4', '1'); |
| | | |
| | | -- sqlserver |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition/basDevpPosition.html', N'basDevpPosition管理', null, '2', null, '1'); |
| | | |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition#view', N'查询', '', '3', '0', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition#btn-add', N'新增', '', '3', '1', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition#btn-edit', N'编辑', '', '3', '2', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition#btn-delete', N'删除', '', '3', '3', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basDevpPosition#btn-export', N'导出', '', '3', '4', '1'); |
| New file |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.zy.asrs.service.TaskWrkService; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | | public class TaskWrkController extends BaseController { |
| | | |
| | | @Autowired |
| | | private TaskWrkService taskWrkService; |
| | | |
| | | @RequestMapping(value = "/taskWrk/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(taskWrkService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/taskWrk/add/auth") |
| | | @ManagerAuth |
| | | public R add(TaskWrk taskWrk) { |
| | | taskWrkService.insert(taskWrk); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/taskWrk/update/auth") |
| | | @ManagerAuth |
| | | public R update(TaskWrk taskWrk){ |
| | | if (Cools.isEmpty(taskWrk) || null==taskWrk.getTaskNo()){ |
| | | return R.error(); |
| | | } |
| | | taskWrkService.updateById(taskWrk); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/taskWrk/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | taskWrkService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/taskWrkQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<TaskWrk> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("id", condition); |
| | | Page<TaskWrk> page = taskWrkService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (TaskWrk taskWrk : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", taskWrk.getTaskNo()); |
| | | map.put("value", taskWrk.getTaskNo()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/taskWrk/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<TaskWrk> wrapper = new EntityWrapper<TaskWrk>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != taskWrkService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(TaskWrk.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.zy.asrs.entity.TaskWrkLog; |
| | | import com.zy.asrs.service.TaskWrkLogService; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.R; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | @RestController |
| | | public class TaskWrkLogController extends BaseController { |
| | | |
| | | @Autowired |
| | | private TaskWrkLogService taskWrkLogService; |
| | | |
| | | @RequestMapping(value = "/taskWrkLog/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(taskWrkLogService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/taskWrkLog/add/auth") |
| | | @ManagerAuth |
| | | public R add(TaskWrkLog taskWrkLog) { |
| | | taskWrkLogService.insert(taskWrkLog); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/taskWrkLog/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | taskWrkLogService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/taskWrkLog/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<TaskWrkLog> wrapper = new EntityWrapper<TaskWrkLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != taskWrkLogService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(TaskWrkLog.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @TableName("asr_bas_devp_position") |
| | | public class BasDevpPosition implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * ID |
| | | */ |
| | | @ApiModelProperty(value= "ID") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("dev_no") |
| | | private Integer devNo; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("plc_id") |
| | | private Integer plcId; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("plc_position") |
| | | private Long plcPosition; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("rgv_sign") |
| | | private Integer rgvSign; |
| | | |
| | | public BasDevpPosition() {} |
| | | |
| | | public BasDevpPosition(Integer devNo,Integer plcId,Long plcPosition,Integer rgvSign) { |
| | | this.devNo = devNo; |
| | | this.plcId = plcId; |
| | | this.plcPosition = plcPosition; |
| | | this.rgvSign = rgvSign; |
| | | } |
| | | |
| | | public BasDevpPosition(Integer devNo, Integer plcId, Long plcPosition) { |
| | | this.devNo = devNo; |
| | | this.plcId = plcId; |
| | | this.plcPosition = plcPosition; |
| | | } |
| | | |
| | | public BasDevpPosition(BasDevpPosition basDevpPosition) { |
| | | this.id = basDevpPosition.getId(); |
| | | this.devNo = basDevpPosition.getDevNo(); |
| | | this.plcId = basDevpPosition.getPlcId(); |
| | | this.plcPosition = basDevpPosition.getPlcPosition(); |
| | | } |
| | | |
| | | public BasDevpPosition(BasDevpPosition basDevpPosition,Long plcPosition) { |
| | | this.id = basDevpPosition.getId(); |
| | | this.devNo = basDevpPosition.getDevNo(); |
| | | this.plcId = basDevpPosition.getPlcId(); |
| | | this.plcPosition = plcPosition; |
| | | } |
| | | |
| | | // BasDevpPosition basDevpPosition = new BasDevpPosition( |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null // |
| | | // ); |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.system.service.UserService; |
| | | import com.zy.system.entity.User; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @TableName("wcs_task_wrk") |
| | | public class TaskWrk implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * wms任务号 |
| | | */ |
| | | @ApiModelProperty(value= "wms任务号") |
| | | @TableId(value = "task_no", type = IdType.INPUT) |
| | | @TableField("task_no") |
| | | private String taskNo; |
| | | |
| | | /** |
| | | * 任务状态 1: 接收 2: 派发 3: 完结 4: 取消 |
| | | */ |
| | | @ApiModelProperty(value= "任务状态 1: 接收 2: 派发 3: 完结 4: 取消 ") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 任务号 |
| | | */ |
| | | @ApiModelProperty(value= "任务号") |
| | | @TableField("wrk_no") |
| | | private Integer wrkNo; |
| | | |
| | | /** |
| | | * 任务时间(接收时间) |
| | | */ |
| | | @ApiModelProperty(value= "任务时间(接收时间)") |
| | | @TableField("create_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * 任务类型 |
| | | */ |
| | | @ApiModelProperty(value= "任务类型") |
| | | @TableField("io_type") |
| | | private Integer ioType; |
| | | |
| | | /** |
| | | * 起点 |
| | | */ |
| | | @ApiModelProperty(value= "起点") |
| | | @TableField("start_point") |
| | | private String startPoint; |
| | | |
| | | /** |
| | | * 终点 |
| | | */ |
| | | @ApiModelProperty(value= "终点") |
| | | @TableField("target_point") |
| | | private String targetPoint; |
| | | |
| | | /** |
| | | * 修改人员 |
| | | */ |
| | | @ApiModelProperty(value= "修改人员") |
| | | @TableField("modi_user") |
| | | private Long modiUser; |
| | | |
| | | /** |
| | | * 修改时间 |
| | | */ |
| | | @ApiModelProperty(value= "修改时间") |
| | | @TableField("modi_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date modiTime; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | /** |
| | | * 条码 |
| | | */ |
| | | @ApiModelProperty(value= "条码") |
| | | private String barcode; |
| | | |
| | | /** |
| | | * 派发时间 |
| | | */ |
| | | @ApiModelProperty(value= "派发时间") |
| | | @TableField("assign_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date assignTime; |
| | | |
| | | /** |
| | | * 执行时间 |
| | | */ |
| | | @ApiModelProperty(value= "执行时间") |
| | | @TableField("execute_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date executeTime; |
| | | |
| | | /** |
| | | * 完结时间 |
| | | */ |
| | | @ApiModelProperty(value= "完结时间") |
| | | @TableField("complete_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date completeTime; |
| | | |
| | | /** |
| | | * 取消时间 |
| | | */ |
| | | @ApiModelProperty(value= "取消时间") |
| | | @TableField("cancel_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date cancelTime; |
| | | |
| | | /** |
| | | * 工作状态 |
| | | */ |
| | | @ApiModelProperty(value= "工作状态") |
| | | @TableField("wrk_sts") |
| | | private Integer wrkSts; |
| | | |
| | | /** |
| | | * 堆垛机号 |
| | | */ |
| | | @ApiModelProperty(value= "堆垛机号") |
| | | @TableField("crn_no") |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * 指令执行步序 |
| | | */ |
| | | @ApiModelProperty(value= "指令执行步序") |
| | | @TableField("command_step") |
| | | private Integer commandStep; |
| | | |
| | | /** |
| | | * 移库标记 1:需要移库 其它不需要 |
| | | */ |
| | | @ApiModelProperty(value= "移库标记 1:需要移库 其它不需要") |
| | | @TableField("transfer_mark") |
| | | private Integer transferMark; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("origin_start_point") |
| | | private String originStartPoint; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("origin_target_point") |
| | | private String originTargetPoint; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("io_pri") |
| | | private Integer ioPri; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("sc_weight") |
| | | private Double scWeight; |
| | | |
| | | public TaskWrk() {} |
| | | |
| | | public TaskWrk(String taskNo,Integer status,Integer wrkNo,Date createTime,Integer ioType,String startPoint,String targetPoint,Long modiUser,Date modiTime,String memo,String barcode,Date assignTime,Date executeTime,Date completeTime,Date cancelTime,Integer wrkSts,Integer crnNo,Integer commandStep,Integer transferMark,String originStartPoint,String originTargetPoint,Integer ioPri,Double scWeight) { |
| | | this.taskNo = taskNo; |
| | | this.status = status; |
| | | this.wrkNo = wrkNo; |
| | | this.createTime = createTime; |
| | | this.ioType = ioType; |
| | | this.startPoint = startPoint; |
| | | this.targetPoint = targetPoint; |
| | | this.modiUser = modiUser; |
| | | this.modiTime = modiTime; |
| | | this.memo = memo; |
| | | this.barcode = barcode; |
| | | this.assignTime = assignTime; |
| | | this.executeTime = executeTime; |
| | | this.completeTime = completeTime; |
| | | this.cancelTime = cancelTime; |
| | | this.wrkSts = wrkSts; |
| | | this.crnNo = crnNo; |
| | | this.commandStep = commandStep; |
| | | this.transferMark = transferMark; |
| | | this.originStartPoint = originStartPoint; |
| | | this.originTargetPoint = originTargetPoint; |
| | | this.ioPri = ioPri; |
| | | this.scWeight = scWeight; |
| | | } |
| | | |
| | | // TaskWrk taskWrk = new TaskWrk( |
| | | // null, // wms任务号[非空] |
| | | // null, // 任务状态 |
| | | // null, // 任务号 |
| | | // null, // 任务时间(接收时间) |
| | | // null, // 任务类型 |
| | | // null, // 起点 |
| | | // null, // 终点 |
| | | // null, // 修改人员 |
| | | // null, // 修改时间 |
| | | // null, // 备注 |
| | | // null, // 条码 |
| | | // null, // 派发时间 |
| | | // null, // 执行时间 |
| | | // null, // 完结时间 |
| | | // null, // 取消时间 |
| | | // null, // 工作状态 |
| | | // null, // 堆垛机号 |
| | | // null, // 指令执行步序 |
| | | // null, // 移库标记 1:需要移库 其它不需要 |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null // |
| | | // ); |
| | | |
| | | public String getStatus$(){ |
| | | if (null == this.status){ return null; } |
| | | switch (this.status){ |
| | | case 1: |
| | | return "接收"; |
| | | case 2: |
| | | return "派发"; |
| | | case 3: |
| | | return "完结"; |
| | | case 4: |
| | | return "取消"; |
| | | default: |
| | | return String.valueOf(this.status); |
| | | } |
| | | } |
| | | |
| | | public String getCreateTime$(){ |
| | | if (Cools.isEmpty(this.createTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); |
| | | } |
| | | |
| | | public String getModiTime$(){ |
| | | if (Cools.isEmpty(this.modiTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); |
| | | } |
| | | |
| | | public String getAssignTime$(){ |
| | | if (Cools.isEmpty(this.assignTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.assignTime); |
| | | } |
| | | |
| | | public String getExecuteTime$(){ |
| | | if (Cools.isEmpty(this.executeTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime); |
| | | } |
| | | |
| | | public String getCompleteTime$(){ |
| | | if (Cools.isEmpty(this.completeTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime); |
| | | } |
| | | |
| | | public String getCancelTime$(){ |
| | | if (Cools.isEmpty(this.cancelTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.cancelTime); |
| | | } |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @TableName("wcs_task_wrk_log") |
| | | public class TaskWrkLog implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * wms任务号 |
| | | */ |
| | | @ApiModelProperty(value= "wms任务号") |
| | | @TableField("task_no") |
| | | private String taskNo; |
| | | |
| | | /** |
| | | * 任务状态 1: 接收 2: 派发 3: 完结 4: 取消 |
| | | */ |
| | | @ApiModelProperty(value= "任务状态 1: 接收 2: 派发 3: 完结 4: 取消 ") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 任务号 |
| | | */ |
| | | @ApiModelProperty(value= "任务号") |
| | | @TableField("wrk_no") |
| | | private Integer wrkNo; |
| | | |
| | | /** |
| | | * 任务时间(接收时间) |
| | | */ |
| | | @ApiModelProperty(value= "任务时间(接收时间)") |
| | | @TableField("create_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * 任务类型 |
| | | */ |
| | | @ApiModelProperty(value= "任务类型") |
| | | @TableField("io_type") |
| | | private Integer ioType; |
| | | |
| | | /** |
| | | * 优先级 |
| | | */ |
| | | @ApiModelProperty(value= "优先级") |
| | | @TableField("io_pri") |
| | | private Double ioPri; |
| | | |
| | | /** |
| | | * 起点 |
| | | */ |
| | | @ApiModelProperty(value= "起点") |
| | | @TableField("start_point") |
| | | private String startPoint; |
| | | |
| | | /** |
| | | * 终点 |
| | | */ |
| | | @ApiModelProperty(value= "终点") |
| | | @TableField("target_point") |
| | | private String targetPoint; |
| | | |
| | | /** |
| | | * 修改人员 |
| | | */ |
| | | @ApiModelProperty(value= "修改人员") |
| | | @TableField("modi_user") |
| | | private Long modiUser; |
| | | |
| | | /** |
| | | * 修改时间 |
| | | */ |
| | | @ApiModelProperty(value= "修改时间") |
| | | @TableField("modi_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date modiTime; |
| | | |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | /** |
| | | * 条码 |
| | | */ |
| | | @ApiModelProperty(value= "条码") |
| | | private String barcode; |
| | | |
| | | /** |
| | | * 派发时间 |
| | | */ |
| | | @ApiModelProperty(value= "派发时间") |
| | | @TableField("assign_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date assignTime; |
| | | |
| | | /** |
| | | * 执行时间 |
| | | */ |
| | | @ApiModelProperty(value= "执行时间") |
| | | @TableField("execute_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date executeTime; |
| | | |
| | | /** |
| | | * 完结时间 |
| | | */ |
| | | @ApiModelProperty(value= "完结时间") |
| | | @TableField("complete_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date completeTime; |
| | | |
| | | /** |
| | | * 取消时间 |
| | | */ |
| | | @ApiModelProperty(value= "取消时间") |
| | | @TableField("cancel_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date cancelTime; |
| | | |
| | | /** |
| | | * 工作状态 |
| | | */ |
| | | @ApiModelProperty(value= "工作状态") |
| | | @TableField("wrk_sts") |
| | | private Integer wrkSts; |
| | | |
| | | /** |
| | | * 堆垛机号 |
| | | */ |
| | | @ApiModelProperty(value= "堆垛机号") |
| | | @TableField("crn_no") |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * 指令执行步序 |
| | | */ |
| | | @ApiModelProperty(value= "指令执行步序") |
| | | @TableField("command_step") |
| | | private Integer commandStep; |
| | | |
| | | /** |
| | | * 移库标记 1:需要移库 其它不需要 |
| | | */ |
| | | @ApiModelProperty(value= "移库标记 1:需要移库 其它不需要") |
| | | @TableField("transfer_mark") |
| | | private Integer transferMark; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("origin_start_point") |
| | | private String originStartPoint; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("origin_target_point") |
| | | private String originTargetPoint; |
| | | |
| | | public TaskWrkLog() {} |
| | | |
| | | public TaskWrkLog(String taskNo,Integer status,Integer wrkNo,Date createTime,Integer ioType,Double ioPri,String startPoint,String targetPoint,Long modiUser,Date modiTime,String memo,String barcode,Date assignTime,Date executeTime,Date completeTime,Date cancelTime,Integer wrkSts,Integer crnNo,Integer commandStep,Integer transferMark,String originStartPoint,String originTargetPoint) { |
| | | this.taskNo = taskNo; |
| | | this.status = status; |
| | | this.wrkNo = wrkNo; |
| | | this.createTime = createTime; |
| | | this.ioType = ioType; |
| | | this.ioPri = ioPri; |
| | | this.startPoint = startPoint; |
| | | this.targetPoint = targetPoint; |
| | | this.modiUser = modiUser; |
| | | this.modiTime = modiTime; |
| | | this.memo = memo; |
| | | this.barcode = barcode; |
| | | this.assignTime = assignTime; |
| | | this.executeTime = executeTime; |
| | | this.completeTime = completeTime; |
| | | this.cancelTime = cancelTime; |
| | | this.wrkSts = wrkSts; |
| | | this.crnNo = crnNo; |
| | | this.commandStep = commandStep; |
| | | this.transferMark = transferMark; |
| | | this.originStartPoint = originStartPoint; |
| | | this.originTargetPoint = originTargetPoint; |
| | | } |
| | | |
| | | public String getStatus$(){ |
| | | if (null == this.status){ return null; } |
| | | switch (this.status){ |
| | | case 1: |
| | | return "接收"; |
| | | case 2: |
| | | return "派发"; |
| | | case 3: |
| | | return "完结"; |
| | | case 4: |
| | | return "取消"; |
| | | default: |
| | | return String.valueOf(this.status); |
| | | } |
| | | } |
| | | |
| | | public String getCreateTime$(){ |
| | | if (Cools.isEmpty(this.createTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); |
| | | } |
| | | |
| | | public String getModiTime$(){ |
| | | if (Cools.isEmpty(this.modiTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); |
| | | } |
| | | |
| | | public String getAssignTime$(){ |
| | | if (Cools.isEmpty(this.assignTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.assignTime); |
| | | } |
| | | |
| | | public String getExecuteTime$(){ |
| | | if (Cools.isEmpty(this.executeTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime); |
| | | } |
| | | |
| | | public String getCompleteTime$(){ |
| | | if (Cools.isEmpty(this.completeTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime); |
| | | } |
| | | |
| | | public String getCancelTime$(){ |
| | | if (Cools.isEmpty(this.cancelTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.cancelTime); |
| | | } |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.BasDevpPosition; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface BasDevpPositionMapper extends BaseMapper<BasDevpPosition> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.TaskWrkLog; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface TaskWrkLogMapper extends BaseMapper<TaskWrkLog> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface TaskWrkMapper extends BaseMapper<TaskWrk> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.BasDevpPosition; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface BasDevpPositionService extends IService<BasDevpPosition> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.TaskWrkLog; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface TaskWrkLogService extends IService<TaskWrkLog> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface TaskWrkService extends IService<TaskWrk> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.BasDevpPositionMapper; |
| | | import com.zy.asrs.entity.BasDevpPosition; |
| | | import com.zy.asrs.service.BasDevpPositionService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("basDevpPositionService") |
| | | public class BasDevpPositionServiceImpl extends ServiceImpl<BasDevpPositionMapper, BasDevpPosition> implements BasDevpPositionService { |
| | | |
| | | } |
| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.RouteUtils; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.asrs.utils.*; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.MatDto; |
| | | import com.zy.common.model.SearchLocParam; |
| | |
| | | import com.zy.common.utils.News; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.cache.*; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.model.*; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.LedCommand; |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.model.protocol.*; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.BarcodeThread; |
| | | import com.zy.core.thread.LedThread; |
| | | import com.zy.core.thread.RgvThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import com.zy.system.entity.license.LicenseVerify; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private BasCrnErrorMapper basCrnErrorMapper; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private BasDevpPositionService basDevpPositionService; |
| | | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // |
| | | // public synchronized void taskStart() { |
| | | // for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | // try { |
| | | // if (rgvDetection(rgvSlave)) { |
| | | // String taskNoNow = rgvOtherTaskWrk(rgvSlave); |
| | | // List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true)); |
| | | // boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave); |
| | | // if (basDevpPositions.isEmpty()) { |
| | | // log.error("获取所有站点信息异常"); |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成:获取所有站点信息异常"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // continue; |
| | | // } |
| | | // List<WrkMast> wrkMastList = new ArrayList<>(); |
| | | // List<Integer> staList = new ArrayList<>(); |
| | | // for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { |
| | | // TaskWrk taskWrk = deviceDetection(inSta); |
| | | // if (taskWrk != null) { |
| | | // if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue; |
| | | // wrkMastList.add(taskWrk); |
| | | // staList.add(inSta.getStaNo()); |
| | | // } |
| | | // } |
| | | // |
| | | // if (wrkMastList.isEmpty() || staList.isEmpty()) continue; |
| | | // |
| | | // boolean sign = false; |
| | | // |
| | | // if (rgvOtherStatusEnable(rgvSlave)) { |
| | | // //分成上下两部分任务 |
| | | // List<Integer>[] avoidRange = RouteUtils.gradeRange(staList, basDevpPositions, itSmall); |
| | | // List<Integer> rangeListSou = avoidRange[itSmall ? 0 : 1]; |
| | | // List<Integer> rangeListSouOther = avoidRange[itSmall ? 1 : 0]; |
| | | // //就近排序 |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); |
| | | // List<Integer> rangeList = RouteUtils.SortNearby(rangeListSou, rgvProtocol.RgvPos, basDevpPositions); |
| | | // List<Integer> rangeListOther = RouteUtils.SortNearby(rangeListSouOther, rgvProtocol.RgvPos, basDevpPositions); |
| | | // |
| | | // //所属部分就进取货 |
| | | // |
| | | // //筛选范围内任务 |
| | | // //就近排序 |
| | | // //筛选在范围任务 |
| | | // Long[][] avoidedRange = new TrackRangeUtils().avoidRangeArr(rgvSlave, trackEntireLength, trackBenchmark, avoidDistance); |
| | | // List<Integer> belongToRange = RouteUtils.SortNearby(RouteUtils.belongToRange(rangeList, avoidedRange[0], basDevpPositions), rgvProtocol.RgvPos, basDevpPositions); |
| | | // |
| | | // if (!sign && staList.size()==1){ |
| | | // if (rgvOtherIDLEOther(rgvSlave)){ |
| | | // if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ |
| | | // System.out.println("空闲就近跳过==="+rgvSlave.getId()+"==="); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"空闲就近跳过"); |
| | | // |
| | | // sign=true; |
| | | // } |
| | | // } |
| | | // if (sign){ |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staList.get(0))) { |
| | | // WrkMast wrkMast = deviceDetection(rgvStn); |
| | | // if (wrkMast != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(wrkMast.getStaNo().toString());//站点转换 需要修改 |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("空闲就近跳过后因最远再次执行==="+rgvSlave.getId()+"==="); |
| | | // |
| | | // sign=false; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return; |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // if(!sign){ |
| | | // for (Integer staNoNow : belongToRange) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // WrkMast wrkMast = deviceDetection(rgvStn); |
| | | // if (wrkMast != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(wrkMast.getStaNo().toString())));//站点转换 需要修改 |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("全范围执行==="+rgvSlave.getId()+"==="+wrkMast); |
| | | // System.out.println("全范围执行==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (!sign) { |
| | | // // 筛选范围内取货任务 |
| | | // for (Integer staNoNow : belongToRange) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // System.out.println("筛选范围内取货任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选范围内取货任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // if (!sign && staList.size()==1){ |
| | | // if (rgvOtherIDLEOther2(rgvSlave)){ |
| | | // if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){ |
| | | // System.out.println("运行就近跳过==="+rgvSlave.getId()+"==="); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"运行就近跳过"); |
| | | // |
| | | // sign=true; |
| | | // } |
| | | // } |
| | | // if (sign){ |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staList.get(0))) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("运行就近跳过后因最远再次执行==="+rgvSlave.getId()+"==="); |
| | | // |
| | | // sign=false; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return; |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // if (!sign && staList.size()>1) { |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // }else if (!sign && staList.size()==1){ |
| | | // BasDevpPosition basDevpPosition1 = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staList.get(0))); |
| | | // if (Math.abs(basDevpPosition1.getPlcPosition()- rgvProtocol.getRgvPos())<rgvProtocol.getCarBodyJiaoMing()+rgvProtocol.getCarBodyKunPeng() + avoidDistance*2){ |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // if (!sign && staList.size()>1) { |
| | | // // 半边区域内取货任务 |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // System.out.println("筛选半边范围取货任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围取货任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (!sign && staList.size()>1) { |
| | | // for (Integer staNoNow : rangeListOther) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("因最远执行半边区域内放货任务==="+rgvSlave.getId()+"==="); |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // |
| | | // }else if (!sign && staList.size()==1){ |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("因最远执行半边区域内放货任务==="+rgvSlave.getId()+"==="); |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // |
| | | // } |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),"未查询到可执行任务"); |
| | | // |
| | | // } else { |
| | | // //可用区域就近取货 |
| | | // //就近排序 |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); |
| | | // List<Integer> rangeList = RouteUtils.SortNearby(staList, rgvProtocol.RgvPos, basDevpPositions); |
| | | // // 半边区域内取货任务 |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("任务生成失败===》异常信息:{}", e.getMessage()); |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成失败"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // public String rgvOtherTaskWrk(RgvSlave slave) { |
| | | // |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId()); |
| | | // TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); |
| | | // ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); |
| | | // if (!allTaskProtocol.isEmpty()) { |
| | | // for (TaskProtocol taskProtocol : allTaskProtocol.values()) { |
| | | // if (taskProtocol.getTaskNo() != 0) { |
| | | // return taskProtocol.getTaskNo().toString(); |
| | | // } |
| | | // } |
| | | // } |
| | | // return "无"; |
| | | // |
| | | // } |
| | | // |
| | | // public boolean rgvDetection(RgvSlave slave) { |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); |
| | | // RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); |
| | | // |
| | | // if (rgvProtocol == null || rgvTaskProtocol == null) { |
| | | // return false; |
| | | // } |
| | | // if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 |
| | | // || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { |
| | | // return false; |
| | | // } |
| | | // if (rgvProtocol.getLoaded()==1){ |
| | | // return false; |
| | | // } |
| | | // RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId()); |
| | | // |
| | | // if (rgvProtocolOther == null) { |
| | | // return false; |
| | | // } |
| | | // if (rgvProtocolOther.statusEnable) { |
| | | // if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) { |
| | | // return false; |
| | | // } |
| | | // } |
| | | // return true; |
| | | // } |
| | | // public boolean rgvOtherIDLEOther(RgvSlave slave) { |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId()); |
| | | // |
| | | // if (rgvProtocol == null || rgvTaskProtocol == null) { |
| | | // return false; |
| | | // } |
| | | // if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 |
| | | // || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { |
| | | // return false; |
| | | // } |
| | | // |
| | | // if (rgvProtocol.getLoaded()!=0) { |
| | | // return false; |
| | | // } |
| | | // return true; |
| | | // } |
| | | // public boolean rgvOtherIDLEOther2(RgvSlave slave) { |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId()); |
| | | // |
| | | // if (rgvProtocol == null || rgvTaskProtocol == null) { |
| | | // return false; |
| | | // } |
| | | // if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) |
| | | // || rgvProtocol.getRgvPos().equals(0L) |
| | | // || rgvTaskProtocol.getAvoid() == -1) { |
| | | // return false; |
| | | // } |
| | | // |
| | | // if (rgvProtocol.getLoaded()!=0) { |
| | | // return false; |
| | | // } |
| | | // return true; |
| | | // } |
| | | // public boolean rgvOtherIDLE(RgvSlave slave,Integer staNo) { |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); |
| | | // RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); |
| | | // |
| | | // if (rgvProtocol == null || rgvTaskProtocol == null) { |
| | | // return false; |
| | | // } |
| | | // if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 |
| | | // || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { |
| | | // return false; |
| | | // } |
| | | // RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // |
| | | // if (rgvProtocolOther == null) { |
| | | // return true; |
| | | // } |
| | | // if (rgvProtocolOther.statusEnable) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); |
| | | // long abs = Math.abs(Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) |
| | | // - |
| | | // Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())); |
| | | // if (abs<100){ |
| | | // return true; |
| | | // } |
| | | // if (Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) |
| | | // >= |
| | | // Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())){ |
| | | // return false; |
| | | // } |
| | | // } |
| | | // return true; |
| | | // } |
| | | // public boolean rgvOtherIDLE2(RgvSlave slave,Integer staNo) { |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); |
| | | // RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); |
| | | // |
| | | // if (rgvProtocol == null || rgvTaskProtocol == null) { |
| | | // return false; |
| | | // } |
| | | // if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 |
| | | // || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { |
| | | // return false; |
| | | // } |
| | | // RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // |
| | | // if (rgvProtocolOther == null) { |
| | | // return true; |
| | | // } |
| | | // if (rgvProtocolOther.statusEnable) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); |
| | | // long abs = Math.abs(Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) |
| | | // - |
| | | // Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())); |
| | | // if (abs<100){ |
| | | // return true; |
| | | // } |
| | | // if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) |
| | | // >= |
| | | // Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ |
| | | // return false; |
| | | // } |
| | | // } |
| | | // return true; |
| | | // } |
| | | // |
| | | // public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) { |
| | | // |
| | | // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId()); |
| | | // StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | // if (staProtocol == null) { |
| | | // return null; |
| | | // } |
| | | // // 判断是否满足取货条件 |
| | | // if (!staProtocol.isPakMkTask()) { |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), "任务已下发等待小车取"); |
| | | // return null; |
| | | // } |
| | | // // 判断是否满足取货条件 |
| | | // if (staProtocol.isAutoing() |
| | | //// && staProtocol.isLoading() |
| | | //// && staProtocol.isStaOk() |
| | | // && staProtocol.getWorkNo() != 0) { |
| | | // TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo()); |
| | | // if (taskWrk != null) { |
| | | // Integer stano = staProtocol.getStaNo(); |
| | | // if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){ |
| | | // if (!staProtocol.isPakMkRun()) { |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), "异常回退标记,需要回退"); |
| | | // return null; |
| | | // } |
| | | // if (!staProtocol.isLoading()) { |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), "无物"); |
| | | // return null; |
| | | // } |
| | | // if (!staProtocol.isInEnable()) { |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), "等待可入信号"); |
| | | // return null; |
| | | // } |
| | | // if (!staProtocol.isStaOk()) { |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), "等待链条就绪"); |
| | | // return null; |
| | | // } |
| | | // // 尺寸检测异常 |
| | | // boolean back = false; |
| | | // String errMsg = "-"; |
| | | // if (staProtocol.getGrossWt()>=600){ |
| | | // errMsg = "超重:"+staProtocol.getGrossWt()+"kg"; |
| | | // back = true; |
| | | // } |
| | | // if (staProtocol.isFrontErr()) { |
| | | // if (!back){ |
| | | // errMsg = "前超限"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"前超限"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | // if (staProtocol.isBackErr()) { |
| | | // if (!back){ |
| | | // errMsg = "后超限"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"后超限"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | // if (staProtocol.isHighErr()) { |
| | | // if (!back){ |
| | | // errMsg = "高超限"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"高超限"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | // if (staProtocol.isLeftErr()) { |
| | | // if (!back){ |
| | | // errMsg = "左超限"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"左超限"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | // if (staProtocol.isRightErr()) { |
| | | // if (!back){ |
| | | // errMsg = "右超限"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"右超限"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | //// if (!back && staProtocol.isWeightErr()) { |
| | | //// errMsg = "超重"; |
| | | //// back = true; |
| | | //// } |
| | | // if (staProtocol.isBarcodeErr()) { |
| | | // if (!back){ |
| | | // errMsg = "扫码失败"; |
| | | // } else { |
| | | // errMsg = errMsg+"---"+"扫码失败"; |
| | | // } |
| | | // back = true; |
| | | // } |
| | | // // 退回 |
| | | // if (back) { |
| | | // if (stano.equals(staProtocol.getStaNo() + 1)) { |
| | | // return null; |
| | | // } |
| | | // if (!staProtocol.isPakMk()) { |
| | | // return null; |
| | | // } |
| | | // System.out.println("扫码入库失败,{"+inSta.getStaNo()+"}入库站因{"+errMsg+"}异常,托盘已被退回"); |
| | | //// News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg); |
| | | // staProtocol.setWorkNo(9999); |
| | | // staProtocol.setStaNo(staProtocol.getStaNo()+1); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | // devpThread.setPakMkRun(staProtocol.getSiteId(), false); |
| | | // devpThread.setPakMkTask(staProtocol.getSiteId(), false); |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), errMsg); |
| | | // MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | // try{ |
| | | // taskWrk.setMemo(errMsg);//将错误码存入备注字段进行展示 |
| | | // taskWrk.setModiTime(new Date()); |
| | | // taskWrkMapper.updateById(taskWrk); |
| | | // } catch (Exception e){ |
| | | // devpThread.setErrorDev(staProtocol.getSiteId(), errMsg+"异常信息保存工作档案失败!"); |
| | | // } |
| | | // return null; |
| | | // } |
| | | // } |
| | | // return taskWrk; |
| | | // } |
| | | // } else if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && !staProtocol.isLoading()){ |
| | | // if (inSta.isDirectionOther()){ |
| | | // StaProtocol staProtocolOther = devpThread.getStation().get(inSta.getStaNoOther()); |
| | | // if (staProtocolOther == null) { |
| | | // return null; |
| | | // } |
| | | // // 判断是否满足取货条件 |
| | | // if (staProtocolOther.isAutoing() |
| | | // && staProtocolOther.getWorkNo() != 0) { |
| | | // TaskWrk taskWrkOther = taskWrkService.selectByWrkNo(staProtocolOther.getWorkNo()); |
| | | // if (taskWrkOther != null) { |
| | | // return taskWrkOther; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // return null; |
| | | // } |
| | | // public boolean deviceDetection(RgvSlave.RgvStn inSta,Integer rgvNo) { |
| | | // ArrayList<Integer> arrayList = new ArrayList<Integer>() {{ |
| | | // add(1009); |
| | | // add(1011); |
| | | // add(1012); |
| | | // add(1014); |
| | | // add(1016); |
| | | // }}; |
| | | // try{ |
| | | // |
| | | // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId()); |
| | | // ArrayList<Integer> listW = new ArrayList<Integer>(); |
| | | // ArrayList<Integer> listL = new ArrayList<Integer>(); |
| | | // for (Integer staNo : arrayList){ |
| | | // StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | // if (staProtocol == null) { |
| | | // RgvErrCache.updateRgvErr(rgvNo,staNo+"站点数据丢失"); |
| | | // return false; |
| | | // } |
| | | // // 判断是否满足取货条件 |
| | | // if (staProtocol.getWorkNo() != 0) { |
| | | // if (!listW.contains(staProtocol.getWorkNo())) { |
| | | // listW.add(staProtocol.getWorkNo()); |
| | | // } |
| | | // } |
| | | // // 判断是否满足取货条件 |
| | | // if (staProtocol.isLoading()) { |
| | | // if (!listL.contains(staProtocol.getStaNo())) { |
| | | // listL.add(staProtocol.getStaNo()); |
| | | // } |
| | | // } |
| | | // } |
| | | // if (listW.size()>=3){ |
| | | // RgvErrCache.updateRgvErr(rgvNo,"等待1012拣选,防止堵塞"); |
| | | // return false; |
| | | // } |
| | | // if (listL.size()>=3){ |
| | | // RgvErrCache.updateRgvErr(rgvNo,"等待1012拣选,防止堵塞"); |
| | | // return false; |
| | | // } |
| | | // } catch (Exception e){ |
| | | // RgvErrCache.updateRgvErr(rgvNo,"1012检测异常:"+e.getMessage()); |
| | | // return false; |
| | | // } |
| | | // return true; |
| | | // } |
| | | // |
| | | // public boolean rgvOtherStatusEnable(RgvSlave slave) { |
| | | // RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); |
| | | // if (rgvProtocolOther == null) { |
| | | // return true; |
| | | // } |
| | | // if (rgvProtocolOther.statusEnable) { |
| | | //// if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L)) { |
| | | // return true; |
| | | //// } |
| | | // } |
| | | // return false; |
| | | // } |
| | | // |
| | | // public synchronized void taskStart() { |
| | | // for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | // try { |
| | | // if (rgvDetection(rgvSlave)) { |
| | | // String taskNoNow = rgvOtherTaskWrk(rgvSlave); |
| | | // List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("PLC_POSITION", true)); |
| | | // boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave); |
| | | // if (basDevpPositions.isEmpty()) { |
| | | // log.error("获取所有站点信息异常"); |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成:获取所有站点信息异常"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // continue; |
| | | // } |
| | | // List<TaskWrk> taskWrkList = new ArrayList<>(); |
| | | // List<Integer> staList = new ArrayList<>(); |
| | | // for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { |
| | | // TaskWrk taskWrk = deviceDetection(inSta); |
| | | // if (taskWrk != null) { |
| | | // if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue; |
| | | // taskWrkList.add(taskWrk); |
| | | // staList.add(inSta.getStaNo()); |
| | | // } |
| | | // } |
| | | // |
| | | // if (taskWrkList.isEmpty() || staList.isEmpty()) continue; |
| | | // |
| | | // boolean sign = false; |
| | | // |
| | | // if (rgvOtherStatusEnable(rgvSlave)) { |
| | | // //分成上下两部分任务 |
| | | // List<Integer>[] avoidRange = RouteUtils.gradeRange(staList, basDevpPositions, itSmall); |
| | | // List<Integer> rangeListSou = avoidRange[itSmall ? 0 : 1]; |
| | | // List<Integer> rangeListSouOther = avoidRange[itSmall ? 1 : 0]; |
| | | // //就近排序 |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); |
| | | // List<Integer> rangeList = RouteUtils.SortNearby(rangeListSou, rgvProtocol.RgvPos, basDevpPositions); |
| | | // List<Integer> rangeListOther = RouteUtils.SortNearby(rangeListSouOther, rgvProtocol.RgvPos, basDevpPositions); |
| | | // |
| | | // //所属部分就进取货 |
| | | // |
| | | // //筛选范围内任务 |
| | | // //就近排序 |
| | | // //筛选在范围任务 |
| | | // Long[][] avoidedRange = new TrackRangeUtils().avoidRangeArr(rgvSlave, trackEntireLength, trackBenchmark, avoidDistance); |
| | | // List<Integer> belongToRange = RouteUtils.SortNearby(RouteUtils.belongToRange(rangeList, avoidedRange[0], basDevpPositions), rgvProtocol.RgvPos, basDevpPositions); |
| | | // |
| | | // if (!sign && staList.size()==1){ |
| | | // if (rgvOtherIDLEOther(rgvSlave)){ |
| | | // if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ |
| | | // System.out.println("空闲就近跳过==="+rgvSlave.getId()+"==="); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"空闲就近跳过"); |
| | | // |
| | | // sign=true; |
| | | // } |
| | | // } |
| | | // if (sign){ |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staList.get(0))) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("空闲就近跳过后因最远再次执行==="+rgvSlave.getId()+"==="); |
| | | // |
| | | // sign=false; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return; |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // if(!sign){ |
| | | // for (Integer staNoNow : belongToRange) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("全范围执行==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("全范围执行==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (!sign) { |
| | | // // 筛选范围内取货任务 |
| | | // for (Integer staNoNow : belongToRange) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // System.out.println("筛选范围内取货任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选范围内取货任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // if (!sign && staList.size()==1){ |
| | | // if (rgvOtherIDLEOther2(rgvSlave)){ |
| | | // if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){ |
| | | // System.out.println("运行就近跳过==="+rgvSlave.getId()+"==="); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"运行就近跳过"); |
| | | // |
| | | // sign=true; |
| | | // } |
| | | // } |
| | | // if (sign){ |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staList.get(0))) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("运行就近跳过后因最远再次执行==="+rgvSlave.getId()+"==="); |
| | | // |
| | | // sign=false; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } else { |
| | | // return; |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // if (!sign && staList.size()>1) { |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // }else if (!sign && staList.size()==1){ |
| | | // BasDevpPosition basDevpPosition1 = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staList.get(0))); |
| | | // if (Math.abs(basDevpPosition1.getPlcPosition()- rgvProtocol.getRgvPos())<rgvProtocol.getCarBodyJiaoMing()+rgvProtocol.getCarBodyKunPeng() + avoidDistance*2){ |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围内任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // if (!sign && staList.size()>1) { |
| | | // // 半边区域内取货任务 |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // System.out.println("筛选半边范围取货任务==="+rgvSlave.getId()+"==="+taskWrk); |
| | | // System.out.println("筛选半边范围取货任务==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange)); |
| | | // |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (!sign && staList.size()>1) { |
| | | // for (Integer staNoNow : rangeListOther) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("因最远执行半边区域内放货任务==="+rgvSlave.getId()+"==="); |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // |
| | | // }else if (!sign && staList.size()==1){ |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ |
| | | // if (rgvSuper.getStaNo().equals(outStaNo)){ |
| | | // System.out.println("因最远执行半边区域内放货任务==="+rgvSlave.getId()+"==="); |
| | | // BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | // if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // |
| | | // } |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),"未查询到可执行任务"); |
| | | // |
| | | // } else { |
| | | // //可用区域就近取货 |
| | | // //就近排序 |
| | | // RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId()); |
| | | // List<Integer> rangeList = RouteUtils.SortNearby(staList, rgvProtocol.RgvPos, basDevpPositions); |
| | | // // 半边区域内取货任务 |
| | | // for (Integer staNoNow : rangeList) { |
| | | // for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | // if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk != null) { |
| | | // Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | // if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | // sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // if (sign) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("任务生成失败===》异常信息:{}", e.getMessage()); |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "指令生成失败"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // public boolean taskGenerate(RgvSlave rgvSlave, RgvSlave.RgvStn rgvStn, Integer sign) { |
| | | // try { |
| | | // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); |
| | | // TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); |
| | | // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); |
| | | // |
| | | // TaskProtocol issuedTake = new TaskProtocol(); |
| | | // TaskProtocol issuedPut = new TaskProtocol(); |
| | | // try { |
| | | // ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); |
| | | // if (allTaskProtocol.size() > 0) { |
| | | // return false; |
| | | // } |
| | | // TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | // if (taskWrk == null) { |
| | | // return false; |
| | | // } |
| | | //// Integer targetPointConvert = taskWrk.getTargetPointConvert(); |
| | | // Integer targetPointConvert = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | // if (targetPointConvert == null) { |
| | | // return false; |
| | | // } |
| | | // if (targetPointConvert == 1009){ |
| | | // if (!deviceDetection(rgvStn, rgvSlave.getId())){ |
| | | // return false; |
| | | // } |
| | | // } |
| | | // try{ |
| | | // devpThread.setPakMkTask(rgvStn.getStaNo(), false); |
| | | // } catch (Exception e2){ |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"小车任务下发标记更新失败"); |
| | | // } |
| | | // |
| | | // |
| | | // BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo())); |
| | | // BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert)); |
| | | // //执行 |
| | | // issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); |
| | | // issuedTake.setTaskStatus(2); |
| | | // issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo()); |
| | | // issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId()); |
| | | // issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); |
| | | // issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); |
| | | // issuedTake.setIsRunning(1); |
| | | // issuedTake.setDirection(basDevpPositionSou.getRgvSign()==1); |
| | | // |
| | | // |
| | | // issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); |
| | | // issuedPut.setTaskStatus(3); |
| | | // issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo()); |
| | | // issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId()); |
| | | // issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); |
| | | // issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); |
| | | // issuedPut.setIsRunning(1); |
| | | // issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1); |
| | | // |
| | | // try{ |
| | | // if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){ |
| | | // Date now = new Date(); |
| | | // taskWrk.setStatus(TaskStatusType.OVER.id); |
| | | // taskWrk.setModiTime(now);//更新时间 |
| | | // taskWrk.setCompleteTime(now);//完结时间 |
| | | // taskWrkService.updateById(taskWrk); |
| | | // } |
| | | // } catch (Exception e){ |
| | | // |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("任务生成失败issued1===》异常信息:{}", e.getMessage()); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"站点任务生成失败issued1"); |
| | | // |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "任务生成失败issued1"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // return false; |
| | | // } |
| | | // |
| | | // switch (sign) { |
| | | // case 1: |
| | | // taskProtocolCache.updateTaskProtocol(issuedTake); |
| | | // break; |
| | | // case 2: |
| | | // taskProtocolCache.updateTaskProtocol(issuedPut); |
| | | // break; |
| | | // default: |
| | | // taskProtocolCache.updateTaskProtocol(issuedTake); |
| | | // taskProtocolCache.updateTaskProtocol(issuedPut); |
| | | // break; |
| | | // } |
| | | // } catch (Exception e) { |
| | | // log.error("任务生成失败issued2===》异常信息:{}", e.getMessage()); |
| | | // RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"站点任务生成失败issued2"); |
| | | // |
| | | // try{ |
| | | // DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | // deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "站点任务生成失败issued2"); |
| | | // } catch (Exception e2){ |
| | | // } |
| | | // } |
| | | // return true; |
| | | // } |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.TaskWrkLogMapper; |
| | | import com.zy.asrs.entity.TaskWrkLog; |
| | | import com.zy.asrs.service.TaskWrkLogService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("taskWrkLogService") |
| | | public class TaskWrkLogServiceImpl extends ServiceImpl<TaskWrkLogMapper, TaskWrkLog> implements TaskWrkLogService { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.TaskWrkMapper; |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.zy.asrs.service.TaskWrkService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("taskWrkService") |
| | | public class TaskWrkServiceImpl extends ServiceImpl<TaskWrkMapper, TaskWrk> implements TaskWrkService { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.utils; |
| | | |
| | | import java.util.ArrayList; |
| | | |
| | | public class BarcodeUtils { |
| | | |
| | | public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ |
| | | add(1001);add(1002);add(1003);add(1004);add(1005);add(1006);add(1007); |
| | | add(1008);add(1009);add(1010);add(1011);add(1012);add(1013);add(1014);add(1015); |
| | | add(1016);add(1017);add(1018);add(1019);add(1020);add(1021);add(1022);add(1023); |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ |
| | | add(1001);add(1002);add(1003);add(1004);add(1005);add(1006);add(1007); |
| | | add(1008);add(1009);add(1010);add(1011);add(1012);add(1013);add(1014);add(1015); |
| | | add(1016);add(1017);add(1018);add(1019);add(1020);add(1021);add(1022);add(1023); |
| | | }}; |
| | | |
| | | public static Integer getStaNo(Integer staNo) { |
| | | switch (staNo){ |
| | | case 1021: |
| | | return 1020; |
| | | case 1012: |
| | | return 1014; |
| | | case 1005: |
| | | return 1004; |
| | | default: |
| | | return staNo; |
| | | } |
| | | } |
| | | public static Integer getStartStaNo(String staNo) { |
| | | switch (staNo){ |
| | | case "1021": |
| | | return 1020; |
| | | case "1012": |
| | | return 1014; |
| | | case "1005": |
| | | return 1004; |
| | | default: |
| | | return Integer.getInteger(staNo); |
| | | } |
| | | } |
| | | public static Integer getOutStaNo(String staNo) { |
| | | switch (staNo){ |
| | | case "1021": |
| | | return 1020; |
| | | case "1012": |
| | | return 1009; |
| | | case "1005": |
| | | return 1004; |
| | | default: |
| | | return Integer.parseInt(staNo); |
| | | } |
| | | } |
| | | |
| | | public static String formatCode(String input) { |
| | | if (input == null || input.length() != 7 || !input.matches("\\d+")) { |
| | | throw new IllegalArgumentException("输入必须是7位数字"); |
| | | } |
| | | |
| | | // 根据示例分析拆分规则: |
| | | // "0500708" -> "05", "07", "08" (跳过第3位) |
| | | // "0201001" -> "02", "10", "01" |
| | | // "1001010" -> "10", "10", "10" |
| | | // "0500210" -> "05", "02", "10" |
| | | |
| | | // 拆分规则:第1-2位,第4-5位,第6-7位(跳过第3位) |
| | | String part1 = input.substring(0, 2); // 前两位 |
| | | String part2 = input.substring(3, 5); // 第4-5位(跳过第3位) |
| | | String part3 = input.substring(5, 7); // 第6-7位 |
| | | |
| | | // 去除前导零并格式化为两位数 |
| | | String formattedPart1 = String.format("%02d", Integer.parseInt(part1)); |
| | | String formattedPart2 = String.format("%02d", Integer.parseInt(part2)); |
| | | String formattedPart3 = String.format("%02d", Integer.parseInt(part3)); |
| | | |
| | | return "F-F01-" + formattedPart1 + "-" + formattedPart2 + "-" + formattedPart3; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | // 测试所有示例 |
| | | System.out.println("0500708 -> " + formatCode("0500708")); // F-F01-05-07-08 |
| | | System.out.println("0201001 -> " + formatCode("0201001")); // F-F01-02-10-01 |
| | | System.out.println("1001010 -> " + formatCode("1001010")); // F-F01-10-10-10 |
| | | System.out.println("0500210 -> " + formatCode("0500210")); // F-F01-05-02-10 |
| | | |
| | | // 验证长度是否为14个字符 |
| | | String result = formatCode("1000110"); |
| | | System.out.println("结果长度: " + result.length() + " 字符: " + result); |
| | | } |
| | | } |
| | |
| | | // generator.table="sys_host"; |
| | | // sqlserver |
| | | generator.sqlOsType = SqlOsType.SQL_SERVER; |
| | | generator.url="localhost:1433;databasename=jshdasrs"; |
| | | generator.url="localhost:50948;databasename=zzgtasrs"; |
| | | generator.username="sa"; |
| | | generator.password="sa@123"; |
| | | generator.table="asr_bas_rgv_error_log"; |
| | | generator.table="wcs_task_wrk"; |
| | | generator.packagePath="com.zy.asrs"; |
| | | generator.build(); |
| | | } |
| | |
| | | Map<Integer, StaProtocol> getStation(); |
| | | |
| | | void setPakMk(Integer siteId, boolean pakMk); |
| | | void setPakMkRun(Integer siteId, boolean pakMk); |
| | | void setPakMkTask(Integer siteId, boolean pakMk); |
| | | void setPakMkWalk(Integer siteId, boolean pakMkWalk); |
| | | void setGrossWt(Integer siteId, Double grossWt); |
| | | void setErrorDev(Integer siteId, String msgErr); |
| | | |
| | | } |
| | |
| | | private MainServiceImpl mainService; |
| | | // 所属线程 |
| | | private Thread thread; |
| | | private Thread rgvThread; |
| | | private Thread licenseThread; |
| | | // 频率 |
| | | private int i = 0; |
| | |
| | | public void start(){ |
| | | thread = new Thread(this::crnAndDevRun); |
| | | thread.start(); |
| | | rgvThread = new Thread(this::rgvRun); |
| | | rgvThread.start(); |
| | | licenseThread = new Thread(this::licenseThreadRun); |
| | | licenseThread.start(); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | private void rgvRun() { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | |
| | | // 间隔 |
| | | Thread.sleep(1000); |
| | | |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | // 任务下发 |
| | | // mainService.taskStart(); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void licenseThreadRun(){ |
| | | int i = 0; |
| | |
| | | @PreDestroy |
| | | public void shutDown(){ |
| | | if (thread != null) thread.interrupt(); |
| | | if (rgvThread != null) rgvThread.interrupt(); |
| | | if (licenseThread != null) licenseThread.interrupt(); |
| | | } |
| | | |
| | |
| | | |
| | | // 锁定标记 |
| | | private boolean pakMk = true; |
| | | private boolean pakMkRun = true; |
| | | private boolean pakMkTask = true; |
| | | private boolean pakMkWalk = true; |
| | | |
| | | // 入库暂存数 |
| | | private Short inQty; |
| | |
| | | private Boolean sensorDecR = false; //右移方向减速 |
| | | |
| | | |
| | | // Super有无信息 |
| | | private boolean loadingSuper = true; |
| | | |
| | | //指令ID |
| | | private Integer commandId; |
| | | private Double grossWt = 0D; |
| | | private String errorDev = "-"; |
| | | private String barcodeNow = "-"; |
| | | |
| | | public BasDevpErrorLog toSqlModelError(){ |
| | | BasDevpErrorLog basDevpErrorLog = new BasDevpErrorLog(); |
| | | basDevpErrorLog.setDevNo(siteId); // 设备号(假设有定义 siteId) |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 设置入库标记 |
| | | */ |
| | | @Override |
| | | public void setPakMkTask(Integer siteId, boolean pakMk) { |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null != staProtocol) { |
| | | staProtocol.setPakMkTask(pakMk); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 设置入库标记 |
| | | */ |
| | | @Override |
| | | public void setPakMkRun(Integer siteId, boolean pakMk) { |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null != staProtocol) { |
| | | staProtocol.setPakMkRun(pakMk); |
| | | } |
| | | } |
| | | /** |
| | | * 设置入库标记 |
| | | */ |
| | | @Override |
| | | public void setPakMkWalk(Integer siteId, boolean pakMkWalk) { |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null != staProtocol) { |
| | | staProtocol.setPakMkWalk(pakMkWalk); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置入库标记 |
| | | */ |
| | | @Override |
| | | public void setGrossWt(Integer siteId, Double grossWt) { |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null != staProtocol) { |
| | | staProtocol.setGrossWt(grossWt); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置入库标记 |
| | | */ |
| | | @Override |
| | | public void setErrorDev(Integer siteId, String msgErr) { |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null != staProtocol) { |
| | | staProtocol.setErrorDev(msgErr); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | siemensS7Net.ConnectClose(); |
| New file |
| | |
| | | -- save taskWrk record |
| | | -- mysql |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk/taskWrk.html', 'taskWrk管理', null , '2', null , '1'); |
| | | |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk#view', '查询', '', '3', '0', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk#btn-add', '新增', '', '3', '1', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk#btn-edit', '编辑', '', '3', '2', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk#btn-delete', '删除', '', '3', '3', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrk#btn-export', '导出', '', '3', '4', '1'); |
| | | |
| | | -- sqlserver |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk/taskWrk.html', N'taskWrk管理', null, '2', null, '1'); |
| | | |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk#view', N'查询', '', '3', '0', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk#btn-add', N'新增', '', '3', '1', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk#btn-edit', N'编辑', '', '3', '2', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk#btn-delete', N'删除', '', '3', '3', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrk#btn-export', N'导出', '', '3', '4', '1'); |
| New file |
| | |
| | | -- save taskWrkLog record |
| | | -- mysql |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog/taskWrkLog.html', 'taskWrkLog管理', null , '2', null , '1'); |
| | | |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog#view', '查询', '', '3', '0', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog#btn-add', '新增', '', '3', '1', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog#btn-edit', '编辑', '', '3', '2', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog#btn-delete', '删除', '', '3', '3', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'taskWrkLog#btn-export', '导出', '', '3', '4', '1'); |
| | | |
| | | -- sqlserver |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog/taskWrkLog.html', N'taskWrkLog管理', null, '2', null, '1'); |
| | | |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog#view', N'查询', '', '3', '0', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog#btn-add', N'新增', '', '3', '1', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog#btn-edit', N'编辑', '', '3', '2', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog#btn-delete', N'删除', '', '3', '3', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'taskWrkLog#btn-export', N'导出', '', '3', '4', '1'); |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zy.asrs.mapper.BasDevpPositionMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasDevpPosition"> |
| | | <id column="id" property="id" /> |
| | | <result column="dev_no" property="devNo" /> |
| | | <result column="plc_id" property="plcId" /> |
| | | <result column="plc_position" property="plcPosition" /> |
| | | <result column="rgv_sign" property="rgvSign" /> |
| | | |
| | | </resultMap> |
| | | |
| | | </mapper> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zy.asrs.mapper.TaskWrkLogMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.TaskWrkLog"> |
| | | <result column="task_no" property="taskNo" /> |
| | | <result column="status" property="status" /> |
| | | <result column="wrk_no" property="wrkNo" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="io_type" property="ioType" /> |
| | | <result column="io_pri" property="ioPri" /> |
| | | <result column="start_point" property="startPoint" /> |
| | | <result column="target_point" property="targetPoint" /> |
| | | <result column="modi_user" property="modiUser" /> |
| | | <result column="modi_time" property="modiTime" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="assign_time" property="assignTime" /> |
| | | <result column="execute_time" property="executeTime" /> |
| | | <result column="complete_time" property="completeTime" /> |
| | | <result column="cancel_time" property="cancelTime" /> |
| | | <result column="wrk_sts" property="wrkSts" /> |
| | | <result column="crn_no" property="crnNo" /> |
| | | <result column="command_step" property="commandStep" /> |
| | | <result column="transfer_mark" property="transferMark" /> |
| | | <result column="origin_start_point" property="originStartPoint" /> |
| | | <result column="origin_target_point" property="originTargetPoint" /> |
| | | |
| | | </resultMap> |
| | | |
| | | </mapper> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zy.asrs.mapper.TaskWrkMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.TaskWrk"> |
| | | <result column="task_no" property="taskNo" /> |
| | | <result column="status" property="status" /> |
| | | <result column="wrk_no" property="wrkNo" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="io_type" property="ioType" /> |
| | | <result column="start_point" property="startPoint" /> |
| | | <result column="target_point" property="targetPoint" /> |
| | | <result column="modi_user" property="modiUser" /> |
| | | <result column="modi_time" property="modiTime" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="assign_time" property="assignTime" /> |
| | | <result column="execute_time" property="executeTime" /> |
| | | <result column="complete_time" property="completeTime" /> |
| | | <result column="cancel_time" property="cancelTime" /> |
| | | <result column="wrk_sts" property="wrkSts" /> |
| | | <result column="crn_no" property="crnNo" /> |
| | | <result column="command_step" property="commandStep" /> |
| | | <result column="transfer_mark" property="transferMark" /> |
| | | <result column="origin_start_point" property="originStartPoint" /> |
| | | <result column="origin_target_point" property="originTargetPoint" /> |
| | | <result column="io_pri" property="ioPri" /> |
| | | <result column="sc_weight" property="scWeight" /> |
| | | |
| | | </resultMap> |
| | | |
| | | </mapper> |
| New file |
| | |
| | | var pageCurr; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | | elem: '#basDevpPosition', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/basDevpPosition/list/auth', |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'id', align: 'center',title: 'ID'} |
| | | ,{field: 'devNo', align: 'center',title: ''} |
| | | ,{field: 'plcId', align: 'center',title: ''} |
| | | ,{field: 'plcPosition', align: 'center',title: ''} |
| | | ,{field: 'rgvSign', align: 'center',title: ''} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | | pageSize: 'limit' |
| | | }, |
| | | parseData: function (res) { |
| | | return { |
| | | 'code': res.code, |
| | | 'msg': res.msg, |
| | | 'count': res.data.total, |
| | | 'data': res.data.records |
| | | } |
| | | }, |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | | pageCurr=curr; |
| | | limit(); |
| | | } |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(basDevpPosition)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | | searchData['orderByType'] = obj.type; |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: 1} |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(basDevpPosition)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.id; |
| | | })); |
| | | break; |
| | | case 'exportData': |
| | | admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'basDevpPosition': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/basDevpPosition/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(basDevpPosition)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | | showEditModel(data); |
| | | break; |
| | | case "del": |
| | | del([data.id]); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | /* 弹窗 - 新增、修改 */ |
| | | function showEditModel(mData) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '600px', |
| | | title: (mData ? '修改' : '添加') + '订单状态', |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | layDateRender(mData); |
| | | form.val('detail', mData); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/basDevpPosition/"+(mData?'update':'add')+"/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | }else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* 删除 */ |
| | | function del(ids) { |
| | | layer.confirm('确定要删除选中数据吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | | layer.close(i); |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/basDevpPosition/delete/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: {ids: ids}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // 搜索 |
| | | form.on('submit(search)', function (data) { |
| | | pageCurr = 1; |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 重置 |
| | | form.on('submit(reset)', function (data) { |
| | | pageCurr = 1; |
| | | clearFormVal($('#search-box')); |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 时间选择器 |
| | | function layDateRender(data) { |
| | | setTimeout(function () { |
| | | layDate.render({ |
| | | elem: '.layui-laydate-range' |
| | | ,type: 'datetime' |
| | | ,range: true |
| | | }); |
| | | |
| | | }, 300); |
| | | } |
| | | layDateRender(); |
| | | |
| | | }); |
| | | |
| | | // 关闭动作 |
| | | $(document).on('click','#data-detail-close', function () { |
| | | parent.layer.closeAll(); |
| | | }); |
| | | |
| | | function tableReload(child) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: pageCurr} |
| | | }); |
| | | } |
| New file |
| | |
| | | var pageCurr; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | | elem: '#taskWrk', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/taskWrk/list/auth', |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'taskNo', align: 'center',title: 'wms任务号'} |
| | | ,{field: 'status$', align: 'center',title: '任务状态'} |
| | | ,{field: 'wrkNo', align: 'center',title: '任务号'} |
| | | ,{field: 'createTime$', align: 'center',title: '任务时间(接收时间)'} |
| | | ,{field: 'ioType$', align: 'center',title: '任务类型'} |
| | | ,{field: 'startPoint', align: 'center',title: '起点'} |
| | | ,{field: 'targetPoint', align: 'center',title: '终点'} |
| | | ,{field: 'modiUser$', align: 'center',title: '修改人员'} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'assignTime$', align: 'center',title: '派发时间'} |
| | | ,{field: 'executeTime$', align: 'center',title: '执行时间'} |
| | | ,{field: 'completeTime$', align: 'center',title: '完结时间'} |
| | | ,{field: 'cancelTime$', align: 'center',title: '取消时间'} |
| | | ,{field: 'wrkSts$', align: 'center',title: '工作状态'} |
| | | ,{field: 'crnNo', align: 'center',title: '堆垛机号'} |
| | | ,{field: 'commandStep', align: 'center',title: '指令执行步序'} |
| | | ,{field: 'transferMark', align: 'center',title: '移库标记 1:需要移库 其它不需要'} |
| | | ,{field: 'originStartPoint', align: 'center',title: ''} |
| | | ,{field: 'originTargetPoint', align: 'center',title: ''} |
| | | ,{field: 'ioPri', align: 'center',title: ''} |
| | | ,{field: 'scWeight', align: 'center',title: ''} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | | pageSize: 'limit' |
| | | }, |
| | | parseData: function (res) { |
| | | return { |
| | | 'code': res.code, |
| | | 'msg': res.msg, |
| | | 'count': res.data.total, |
| | | 'data': res.data.records |
| | | } |
| | | }, |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | | pageCurr=curr; |
| | | limit(); |
| | | } |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(taskWrk)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | | searchData['orderByType'] = obj.type; |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: 1} |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(taskWrk)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.taskNo; |
| | | })); |
| | | break; |
| | | case 'exportData': |
| | | admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'taskWrk': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrk/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(taskWrk)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | | showEditModel(data); |
| | | break; |
| | | case "del": |
| | | del([data.taskNo]); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | /* 弹窗 - 新增、修改 */ |
| | | function showEditModel(mData) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '600px', |
| | | title: (mData ? '修改' : '添加') + '订单状态', |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | layDateRender(mData); |
| | | form.val('detail', mData); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrk/"+(mData?'update':'add')+"/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | }else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* 删除 */ |
| | | function del(ids) { |
| | | layer.confirm('确定要删除选中数据吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | | layer.close(i); |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrk/delete/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: {ids: ids}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // 搜索 |
| | | form.on('submit(search)', function (data) { |
| | | pageCurr = 1; |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 重置 |
| | | form.on('submit(reset)', function (data) { |
| | | pageCurr = 1; |
| | | clearFormVal($('#search-box')); |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 时间选择器 |
| | | function layDateRender(data) { |
| | | setTimeout(function () { |
| | | layDate.render({ |
| | | elem: '.layui-laydate-range' |
| | | ,type: 'datetime' |
| | | ,range: true |
| | | }); |
| | | layDate.render({ |
| | | elem: '#createTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['createTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#modiTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['modiTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#assignTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['assignTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#executeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['executeTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#completeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['completeTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#cancelTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['cancelTime\\$']:null |
| | | }); |
| | | |
| | | }, 300); |
| | | } |
| | | layDateRender(); |
| | | |
| | | }); |
| | | |
| | | // 关闭动作 |
| | | $(document).on('click','#data-detail-close', function () { |
| | | parent.layer.closeAll(); |
| | | }); |
| | | |
| | | function tableReload(child) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: pageCurr} |
| | | }); |
| | | } |
| New file |
| | |
| | | var pageCurr; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | | elem: '#taskWrkLog', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/taskWrkLog/list/auth', |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'taskNo', align: 'center',title: 'wms任务号'} |
| | | ,{field: 'status$', align: 'center',title: '任务状态'} |
| | | ,{field: 'wrkNo', align: 'center',title: '任务号'} |
| | | ,{field: 'createTime$', align: 'center',title: '任务时间(接收时间)'} |
| | | ,{field: 'ioType$', align: 'center',title: '任务类型'} |
| | | ,{field: 'ioPri', align: 'center',title: '优先级'} |
| | | ,{field: 'startPoint', align: 'center',title: '起点'} |
| | | ,{field: 'targetPoint', align: 'center',title: '终点'} |
| | | ,{field: 'modiUser$', align: 'center',title: '修改人员'} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'assignTime$', align: 'center',title: '派发时间'} |
| | | ,{field: 'executeTime$', align: 'center',title: '执行时间'} |
| | | ,{field: 'completeTime$', align: 'center',title: '完结时间'} |
| | | ,{field: 'cancelTime$', align: 'center',title: '取消时间'} |
| | | ,{field: 'wrkSts$', align: 'center',title: '工作状态'} |
| | | ,{field: 'crnNo', align: 'center',title: '堆垛机号'} |
| | | ,{field: 'commandStep', align: 'center',title: '指令执行步序'} |
| | | ,{field: 'transferMark', align: 'center',title: '移库标记 1:需要移库 其它不需要'} |
| | | ,{field: 'originStartPoint', align: 'center',title: ''} |
| | | ,{field: 'originTargetPoint', align: 'center',title: ''} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | | pageSize: 'limit' |
| | | }, |
| | | parseData: function (res) { |
| | | return { |
| | | 'code': res.code, |
| | | 'msg': res.msg, |
| | | 'count': res.data.total, |
| | | 'data': res.data.records |
| | | } |
| | | }, |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | | pageCurr=curr; |
| | | limit(); |
| | | } |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(taskWrkLog)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | | searchData['orderByType'] = obj.type; |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: 1} |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(taskWrkLog)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.id; |
| | | })); |
| | | break; |
| | | case 'exportData': |
| | | admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'taskWrkLog': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrkLog/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(taskWrkLog)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | | showEditModel(data); |
| | | break; |
| | | case "del": |
| | | del([data.id]); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | /* 弹窗 - 新增、修改 */ |
| | | function showEditModel(mData) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '600px', |
| | | title: (mData ? '修改' : '添加') + '订单状态', |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | layDateRender(mData); |
| | | form.val('detail', mData); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrkLog/"+(mData?'update':'add')+"/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | }else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* 删除 */ |
| | | function del(ids) { |
| | | layer.confirm('确定要删除选中数据吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | | layer.close(i); |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/taskWrkLog/delete/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: {ids: ids}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // 搜索 |
| | | form.on('submit(search)', function (data) { |
| | | pageCurr = 1; |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 重置 |
| | | form.on('submit(reset)', function (data) { |
| | | pageCurr = 1; |
| | | clearFormVal($('#search-box')); |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 时间选择器 |
| | | function layDateRender(data) { |
| | | setTimeout(function () { |
| | | layDate.render({ |
| | | elem: '.layui-laydate-range' |
| | | ,type: 'datetime' |
| | | ,range: true |
| | | }); |
| | | layDate.render({ |
| | | elem: '#createTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['createTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#modiTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['modiTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#assignTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['assignTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#executeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['executeTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#completeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['completeTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#cancelTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['cancelTime\\$']:null |
| | | }); |
| | | |
| | | }, 300); |
| | | } |
| | | layDateRender(); |
| | | |
| | | }); |
| | | |
| | | // 关闭动作 |
| | | $(document).on('click','#data-detail-close', function () { |
| | | parent.layer.closeAll(); |
| | | }); |
| | | |
| | | function tableReload(child) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: pageCurr} |
| | | }); |
| | | } |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title></title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| | | <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/cool.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="layui-fluid"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-form toolbar" id="search-box"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline">  |
| | | <button class="layui-btn icon-btn" lay-filter="search" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <table class="layui-hide" id="basDevpPosition" lay-filter="basDevpPosition"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="operate"> |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a> |
| | | </script> |
| | | |
| | | <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/basDevpPosition/basDevpPosition.js" charset="utf-8"></script> |
| | | </body> |
| | | <!-- 表单弹窗 --> |
| | | <script type="text/html" id="editDialog"> |
| | | <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> |
| | | <input name="id" type="hidden"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="devNo" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="plcId" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="plcPosition" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="rgvSign" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <hr class="layui-bg-gray"> |
| | | <div class="layui-form-item text-right"> |
| | | <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button> |
| | | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
| | | </div> |
| | | </form> |
| | | </script> |
| | | </html> |
| | | |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title></title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| | | <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/cool.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="layui-fluid"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-form toolbar" id="search-box"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline">  |
| | | <button class="layui-btn icon-btn" lay-filter="search" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <table class="layui-hide" id="taskWrk" lay-filter="taskWrk"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="operate"> |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a> |
| | | </script> |
| | | |
| | | <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/taskWrk/taskWrk.js" charset="utf-8"></script> |
| | | </body> |
| | | <!-- 表单弹窗 --> |
| | | <script type="text/html" id="editDialog"> |
| | | <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> |
| | | <input name="id" type="hidden"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label layui-form-required">wms任务号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="taskNo" placeholder="请输入wms任务号" lay-vertype="tips" lay-verify="required"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务状态: </label> |
| | | <div class="layui-input-block"> |
| | | <select name="status"> |
| | | <option value="">请选择任务状态</option> |
| | | <option value="1">接收</option> |
| | | <option value="2">派发</option> |
| | | <option value="3">完结</option> |
| | | <option value="4">取消</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="wrkNo" placeholder="请输入任务号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务时间(接收时间): </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="createTime" id="createTime$" placeholder="请输入任务时间(接收时间)"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务类型: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="ioType" placeholder="请输入任务类型" style="display: none"> |
| | | <input id="ioType$" name="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入任务类型" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">起点: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="startPoint" placeholder="请输入起点"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">终点: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="targetPoint" placeholder="请输入终点"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">修改人员: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="modiUser" placeholder="请输入修改人员" style="display: none"> |
| | | <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入修改人员" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">修改时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="modiTime" id="modiTime$" placeholder="请输入修改时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">备注: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="memo" placeholder="请输入备注"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">条码: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="barcode" placeholder="请输入条码"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">派发时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="assignTime" id="assignTime$" placeholder="请输入派发时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">执行时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="executeTime" id="executeTime$" placeholder="请输入执行时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">完结时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="completeTime" id="completeTime$" placeholder="请输入完结时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">取消时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="cancelTime" id="cancelTime$" placeholder="请输入取消时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">工作状态: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="wrkSts" placeholder="请输入工作状态" style="display: none"> |
| | | <input id="wrkSts$" name="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入工作状态" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">堆垛机号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="crnNo" placeholder="请输入堆垛机号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">指令执行步序: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="commandStep" placeholder="请输入指令执行步序"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">移库标记 1:需要移库 其它不需要: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="transferMark" placeholder="请输入移库标记 1:需要移库 其它不需要"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="originStartPoint" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="originTargetPoint" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="ioPri" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="scWeight" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <hr class="layui-bg-gray"> |
| | | <div class="layui-form-item text-right"> |
| | | <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button> |
| | | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
| | | </div> |
| | | </form> |
| | | </script> |
| | | </html> |
| | | |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title></title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| | | <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/cool.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="layui-fluid"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-form toolbar" id="search-box"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline">  |
| | | <button class="layui-btn icon-btn" lay-filter="search" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <table class="layui-hide" id="taskWrkLog" lay-filter="taskWrkLog"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="operate"> |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a> |
| | | </script> |
| | | |
| | | <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/taskWrkLog/taskWrkLog.js" charset="utf-8"></script> |
| | | </body> |
| | | <!-- 表单弹窗 --> |
| | | <script type="text/html" id="editDialog"> |
| | | <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> |
| | | <input name="id" type="hidden"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label layui-form-required">wms任务号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="taskNo" placeholder="请输入wms任务号" lay-vertype="tips" lay-verify="required"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务状态: </label> |
| | | <div class="layui-input-block"> |
| | | <select name="status"> |
| | | <option value="">请选择任务状态</option> |
| | | <option value="1">接收</option> |
| | | <option value="2">派发</option> |
| | | <option value="3">完结</option> |
| | | <option value="4">取消</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="wrkNo" placeholder="请输入任务号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务时间(接收时间): </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="createTime" id="createTime$" placeholder="请输入任务时间(接收时间)"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">任务类型: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="ioType" placeholder="请输入任务类型" style="display: none"> |
| | | <input id="ioType$" name="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入任务类型" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">优先级: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="ioPri" placeholder="请输入优先级"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">起点: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="startPoint" placeholder="请输入起点"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">终点: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="targetPoint" placeholder="请输入终点"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">修改人员: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="modiUser" placeholder="请输入修改人员" style="display: none"> |
| | | <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入修改人员" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">修改时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="modiTime" id="modiTime$" placeholder="请输入修改时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">备注: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="memo" placeholder="请输入备注"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">条码: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="barcode" placeholder="请输入条码"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">派发时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="assignTime" id="assignTime$" placeholder="请输入派发时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">执行时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="executeTime" id="executeTime$" placeholder="请输入执行时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">完结时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="completeTime" id="completeTime$" placeholder="请输入完结时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">取消时间: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="cancelTime" id="cancelTime$" placeholder="请输入取消时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">工作状态: </label> |
| | | <div class="layui-input-block cool-auto-complete"> |
| | | <input class="layui-input" name="wrkSts" placeholder="请输入工作状态" style="display: none"> |
| | | <input id="wrkSts$" name="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入工作状态" onfocus=this.blur()> |
| | | <div class="cool-auto-complete-window"> |
| | | <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">堆垛机号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="crnNo" placeholder="请输入堆垛机号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">指令执行步序: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="commandStep" placeholder="请输入指令执行步序"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">移库标记 1:需要移库 其它不需要: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="transferMark" placeholder="请输入移库标记 1:需要移库 其它不需要"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="originStartPoint" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="originTargetPoint" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <hr class="layui-bg-gray"> |
| | | <div class="layui-form-item text-right"> |
| | | <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button> |
| | | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
| | | </div> |
| | | </form> |
| | | </script> |
| | | </html> |
| | | |