New file |
| | |
| | | -- save autoMove record |
| | | -- mysql |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove/autoMove.html', 'autoMove管理', null , '2', null , '1'); |
| | | |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#view', '查询', '', '3', '0', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-add', '新增', '', '3', '1', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-edit', '编辑', '', '3', '2', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-delete', '删除', '', '3', '3', '1'); |
| | | insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'autoMove#btn-export', '导出', '', '3', '4', '1'); |
| | | |
| | | -- sqlserver |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove/autoMove.html', N'autoMove管理', null, '2', null, '1'); |
| | | |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#view', N'查询', '', '3', '0', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-add', N'新增', '', '3', '1', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-edit', N'编辑', '', '3', '2', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-delete', N'删除', '', '3', '3', '1'); |
| | | insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'autoMove#btn-export', N'导出', '', '3', '4', '1'); |
New file |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | 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.core.common.DateUtils; |
| | | import com.zy.asrs.entity.AutoMove; |
| | | import com.zy.asrs.service.AutoMoveService; |
| | | 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 AutoMoveController extends BaseController { |
| | | |
| | | @Autowired |
| | | private AutoMoveService autoMoveService; |
| | | |
| | | @RequestMapping(value = "/autoMove/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(autoMoveService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/list/auth") |
| | | @ManagerAuth |
| | | public R list(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam(required = false)String condition, |
| | | @RequestParam Map<String, Object> param){ |
| | | EntityWrapper<AutoMove> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | allLike(AutoMove.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(autoMoveService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | String val = String.valueOf(entry.getValue()); |
| | | if (val.contains(RANGE_TIME_LINK)){ |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); |
| | | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); |
| | | } else { |
| | | wrapper.like(entry.getKey(), val); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/add/auth") |
| | | @ManagerAuth |
| | | public R add(AutoMove autoMove) { |
| | | autoMoveService.insert(autoMove); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/update/auth") |
| | | @ManagerAuth |
| | | public R update(AutoMove autoMove){ |
| | | if (Cools.isEmpty(autoMove) || null==autoMove.getId()){ |
| | | return R.error(); |
| | | } |
| | | autoMoveService.updateById(autoMove); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | autoMoveService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | EntityWrapper<AutoMove> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("autoMove")); |
| | | convert(map, wrapper); |
| | | List<AutoMove> list = autoMoveService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMoveQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<AutoMove> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("id", condition); |
| | | Page<AutoMove> page = autoMoveService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (AutoMove autoMove : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", autoMove.getId()); |
| | | map.put("value", autoMove.getId()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/autoMove/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<AutoMove> wrapper = new EntityWrapper<AutoMove>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != autoMoveService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(AutoMove.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.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 java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @TableName("man_auto_move") |
| | | public class AutoMove implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 编号 |
| | | */ |
| | | @ApiModelProperty(value= "编号") |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | /** |
| | | * 状态 1: 正常 0: 禁用 |
| | | */ |
| | | @ApiModelProperty(value= "状态 1: 正常 0: 禁用 ") |
| | | private Short status; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("line_number") |
| | | private Integer lineNumber; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("loc_no") |
| | | private String locNo; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("row_priority") |
| | | private Integer rowPriority; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("order_no") |
| | | private String orderNo; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("create_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("update_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date updateTime; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | private Integer uuid; |
| | | |
| | | public AutoMove() {} |
| | | |
| | | public AutoMove(Short status,Integer lineNumber,String locNo,Integer rowPriority,String orderNo,Date createTime,Date updateTime,Integer uuid) { |
| | | this.status = status; |
| | | this.lineNumber = lineNumber; |
| | | this.locNo = locNo; |
| | | this.rowPriority = rowPriority; |
| | | this.orderNo = orderNo; |
| | | this.createTime = createTime; |
| | | this.updateTime = updateTime; |
| | | this.uuid = uuid; |
| | | } |
| | | |
| | | // AutoMove autoMove = new AutoMove( |
| | | // null, // 状态 |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null, // |
| | | // null // |
| | | // ); |
| | | |
| | | public String getStatus$(){ |
| | | if (null == this.status){ return null; } |
| | | switch (this.status){ |
| | | case 1: |
| | | return "正常"; |
| | | case 0: |
| | | 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 getUpdateTime$(){ |
| | | if (Cools.isEmpty(this.updateTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | /** |
| | | * 状态 1: 进行中 0: 初始 2:已完成 |
| | | */ |
| | | @ApiModelProperty(value= "状态 2:已完成 1: 进行中 0: 初始 ") |
| | | @TableField("move_status") |
| | | private Integer moveStatus; |
| | | |
| | | public Order() {} |
| | | |
| | | public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | |
| | | } |
| | | } |
| | | |
| | | public String getMoveStatus$(){ |
| | | if (null == this.moveStatus){ return null; } |
| | | switch (this.moveStatus){ |
| | | case 2: |
| | | return "已备货"; |
| | | case 1: |
| | | return "备货中"; |
| | | case 0: |
| | | return "未初始"; |
| | | default: |
| | | return String.valueOf(this.moveStatus); |
| | | } |
| | | } |
| | | |
| | | public String getCreateBy$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.createBy); |
New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.AutoMove; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface AutoMoveMapper extends BaseMapper<AutoMove> { |
| | | |
| | | } |
| | |
| | | |
| | | void updateMatTurn(@Param("matnrOld")String matnrOld,@Param("matnr")String matnr); |
| | | |
| | | List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapY(Integer crnNo); |
| | | |
| | | List<Map<String,Object>> selectLocDetlUnilateralMoveShuttleMapN(Integer crnNo); |
| | | |
| | | List<LocDetl> selectLocDetlUnilateralMoveShuttleY(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade); |
| | | List<LocDetl> selectLocDetlUnilateralMoveShuttleN(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade); |
| | | |
| | | } |
| | |
| | | Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo); |
| | | |
| | | List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo); |
| | | |
| | | List<LocMast> selectLocShuttleMoveUnilateralY(@Param("bay")Integer bay,@Param("lev")Integer lev); |
| | | List<LocMast> selectLocShuttleMoveUnilateralN(@Param("bay")Integer bay,@Param("lev")Integer lev); |
| | | } |
| | |
| | | int addToLogTable(Order order); |
| | | |
| | | List<Order> selectorderNoL(@Param("orderNo")String orderNo); |
| | | |
| | | Order selectOrderMoveStatus(); |
| | | Order selectOrderMoveStatusInitial(); |
| | | } |
New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.AutoMove; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface AutoMoveService extends IService<AutoMove> { |
| | | |
| | | } |
| | |
| | | Double getLocDetlSumQty(String locNo); |
| | | |
| | | void updateMatTurn(String matnrOld,String matnr); |
| | | |
| | | List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo); |
| | | |
| | | List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * @return |
| | | */ |
| | | List<LocMast> queryShallowLocFMast(Integer crnNo); |
| | | |
| | | List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo); |
| | | } |
| | |
| | | |
| | | List<Order> selectorderNoL(String orderNo); |
| | | |
| | | Order selectOrderMoveStatus(); |
| | | Order selectOrderMoveStatusInitial(); |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.AutoMoveMapper; |
| | | import com.zy.asrs.entity.AutoMove; |
| | | import com.zy.asrs.service.AutoMoveService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("autoMoveService") |
| | | public class AutoMoveServiceImpl extends ServiceImpl<AutoMoveMapper, AutoMove> implements AutoMoveService { |
| | | |
| | | } |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | @Service("locDetlService") |
| | |
| | | public void updateMatTurn(String matnrOld,String matnr){ |
| | | this.baseMapper.updateMatTurn(matnrOld,matnr); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo) { |
| | | if (crnNo==1){ |
| | | return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapY(crnNo); |
| | | } |
| | | return this.baseMapper.selectLocDetlUnilateralMoveShuttleMapN(crnNo); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo) { |
| | | if (crnNo==1){ |
| | | return this.baseMapper.selectLocDetlUnilateralMoveShuttleY(matnr,batch,grade); |
| | | } |
| | | return this.baseMapper.selectLocDetlUnilateralMoveShuttleN(matnr,batch,grade); |
| | | } |
| | | } |
| | |
| | | public List<LocMast> queryShallowLocFMast(Integer crnNo) { |
| | | return this.baseMapper.queryShallowLocFMast(crnNo); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo) { |
| | | if (crnNo==1){ |
| | | return this.baseMapper.selectLocShuttleMoveUnilateralY(bay,lev); |
| | | } |
| | | return this.baseMapper.selectLocShuttleMoveUnilateralN(bay,lev); |
| | | } |
| | | } |
| | |
| | | return this.baseMapper.selectorderNoL(orderNo); |
| | | } |
| | | |
| | | @Override |
| | | public Order selectOrderMoveStatus() { |
| | | return this.baseMapper.selectOrderMoveStatus(); |
| | | } |
| | | @Override |
| | | public Order selectOrderMoveStatusInitial() { |
| | | return this.baseMapper.selectOrderMoveStatusInitial(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.handler.AutoLocMoveHandler; |
| | | import com.zy.common.properties.SlaveWmsParameterProperties; |
| | | import com.zy.system.entity.Config; |
| | | import com.zy.system.service.ConfigService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | @Slf4j |
| | | @Component |
| | | public class AutoLocMoveScheduler { |
| | | |
| | | |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private WorkService workService; |
| | | @Autowired |
| | | private AutoLocMoveHandler autoLocMoveHandler; |
| | | @Autowired |
| | | private BasCrnpService basCrnpService; |
| | | @Autowired |
| | | private ConfigService configService; |
| | | @Autowired |
| | | private SlaveWmsParameterProperties slaveWmsParameterProperties; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private AutoMoveService autoMoveService; |
| | | |
| | | //定时出库 经典双伸 |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | public void locToLocAutoLocMove(){ |
| | | if (slaveWmsParameterProperties.isAutoLocMoveBoolean()){ |
| | | Config config = configService.selectById("AutoLocMove"); |
| | | if (Cools.isEmpty(config) || config.getValue().equals("false")) { |
| | | return; |
| | | } |
| | | Order order = orderService.selectOrderMoveStatus(); |
| | | if (!Cools.isEmpty(order)){ |
| | | // autoMoveService.selectList() |
| | | }else { |
| | | order = orderService.selectOrderMoveStatusInitial(); |
| | | if (Cools.isEmpty(order)){ |
| | | return; |
| | | } |
| | | order.setMoveStatus(2); |
| | | orderService.updateById(order); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //定时出库 |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | public void locToLoc11(){ |
| | | if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){ |
| | | Config config = configService.selectById("AutoLocMoveUnilateral"); |
| | | if (Cools.isEmpty(config) || config.getValue().equals("false")) { |
| | | return; |
| | | } |
| | | int crnCount = basCrnpService.selectCount(new EntityWrapper<>()); |
| | | for (int crnNo = 1;crnNo < crnCount;crnNo++){ |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo)); |
| | | WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo)); |
| | | if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){ |
| | | autoLocMoveHandler.start(crnNo,11); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //定时入库 |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | public void locToLoc111() { |
| | | if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){ |
| | | Config config = configService.selectById("AutoLocMoveUnilateral"); |
| | | if (Cools.isEmpty(config) || config.getValue().equals("false")) { |
| | | return; |
| | | } |
| | | int crnCount = basCrnpService.selectCount(new EntityWrapper<>()); |
| | | for (int crnNo = 1;crnNo < crnCount;crnNo++){ |
| | | BasCrnp basCrnp = basCrnpService.selectById(crnNo); |
| | | if (basCrnp == null) { |
| | | continue; |
| | | } |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo)); |
| | | WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo)); |
| | | if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){ |
| | | autoLocMoveHandler.start(crnNo,111); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.service.LocDetlService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WorkService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.service.CommonService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Isolation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * Created by vincent on 2023/7/7 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class AutoLocMoveHandler extends AbstractHandler<String> { |
| | | @Autowired |
| | | private CommonService commonService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private WorkService workService; |
| | | |
| | | @Transactional(isolation = Isolation.REPEATABLE_READ) |
| | | public ReturnT<String> start(Integer crnNo, Integer ioType) { |
| | | try { |
| | | //11 穿梭移单边 |
| | | if (ioType==11){ |
| | | for (int bay = 1;bay < 27;bay++){ |
| | | for (int lev = 1 ; lev <6 ; lev++){ |
| | | List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo); |
| | | if (!Cools.isEmpty(locMasts) && locMasts.size()<4){ |
| | | for (LocMast locMast:locMasts){ |
| | | LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); |
| | | StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(),0, null, 0); |
| | | workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | } |
| | | } |
| | | }else {//11 单边移穿梭 |
| | | List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111 单边移穿梭 |
| | | for (Map<String, Object> map : list) { |
| | | String matnr = map.getOrDefault("matnr","").toString();//物料号 |
| | | String batch = map.getOrDefault("batch","").toString();//批号 |
| | | String grade = map.getOrDefault("brand","").toString();//等级 |
| | | int count = Integer.parseInt(map.get("count").toString());//单边库数量 |
| | | if (count < 4) { |
| | | continue; |
| | | } |
| | | |
| | | List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo); |
| | | for (LocDetl locDetl : locDetlList) { |
| | | StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),0, null, 0); |
| | | workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("自动移库出错,堆垛机号{},工作类型{}",crnNo,ioType); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | } |
| | |
| | | // generator.table="sys_host"; |
| | | // sqlserver |
| | | generator.sqlOsType = SqlOsType.SQL_SERVER; |
| | | generator.url="192.168.4.15:1433;databasename=hylyasrs"; |
| | | generator.url="192.168.4.15:1433;databasename=gdykasrs"; |
| | | generator.username="sa"; |
| | | generator.password="sa@123"; |
| | | generator.table="man_loc_check"; |
| | | generator.table="man_auto_move"; |
| | | generator.packagePath="com.zy.asrs"; |
| | | generator.build(); |
| | | } |
| | |
| | | |
| | | // 自动补空板功能开关 |
| | | private boolean automaticFillingBoardStaNosBoolean; |
| | | // 自动移库功能开关 |
| | | private boolean autoLocMoveBoolean; |
| | | // 自动移库功能开关 111 |
| | | private boolean autoLocMoveUnilateralBoolean; |
| | | // 自动补空板站点 |
| | | private List<Integer> automaticFillingBoardStaNos = new ArrayList<>(); |
| | | |
| | |
| | | automaticFillingBoardStaNosBoolean: true |
| | | # 自动补空板站点 |
| | | automaticFillingBoardStaNos: 112,101 |
| | | # 自动移库功能开关 |
| | | autoLocMoveBoolean: true |
| | | # 自动移库功能开关 穿梭 |
| | | autoLocMoveUnilateralBoolean: false |
| | | |
| | | comb: |
| | | limit: 5000 |
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.AutoMoveMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AutoMove"> |
| | | <id column="id" property="id" /> |
| | | <result column="status" property="status" /> |
| | | <result column="line_number" property="lineNumber" /> |
| | | <result column="loc_no" property="locNo" /> |
| | | <result column="row_priority" property="rowPriority" /> |
| | | <result column="order_no" property="orderNo" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="uuid" property="uuid" /> |
| | | |
| | | </resultMap> |
| | | |
| | | </mapper> |
| | |
| | | ORDER BY ld.appe_time ASC |
| | | </select> |
| | | |
| | | <select id="selectLocDetlUnilateralMoveShuttleMapY" resultType="java.util.Map"> |
| | | select ld.matnr,ld.batch,ld.brand,count(*) count from asr_loc_mast lm |
| | | left join asr_loc_detl ld |
| | | on lm.loc_no = ld.loc_no |
| | | where lm.row1 in (1) |
| | | and loc_sts = 'F' |
| | | and loc_type3 = 0 |
| | | group by ld.matnr,ld.batch,ld.brand |
| | | </select> |
| | | |
| | | <select id="selectLocDetlUnilateralMoveShuttleMapN" resultType="java.util.Map"> |
| | | select ld.matnr,ld.batch,ld.brand,count(*) count from asr_loc_mast lm |
| | | left join asr_loc_detl ld |
| | | on lm.loc_no = ld.loc_no |
| | | where lm.row1 in (31,32) |
| | | and loc_sts = 'F' |
| | | and loc_type3 = 0 |
| | | group by ld.matnr,ld.batch,ld.brand |
| | | </select> |
| | | |
| | | <select id="selectLocDetlUnilateralMoveShuttleY" resultMap="BaseResultMap"> |
| | | select ld.* from asr_loc_mast lm |
| | | left join asr_loc_detl ld |
| | | on lm.loc_no = ld.loc_no |
| | | where loc_sts = 'F' |
| | | and ld.matnr = #{matnr} |
| | | and ld.batch = #{batch} |
| | | and ld.brand = #{grade} |
| | | and lm.loc_type3 = 0 |
| | | and lm.row1 in (1) |
| | | order by row1 |
| | | </select> |
| | | |
| | | <select id="selectLocDetlUnilateralMoveShuttleN" resultMap="BaseResultMap"> |
| | | select ld.* from asr_loc_mast lm |
| | | left join asr_loc_detl ld |
| | | on lm.loc_no = ld.loc_no |
| | | where loc_sts = 'F' |
| | | and ld.matnr = #{matnr} |
| | | and ld.batch = #{batch} |
| | | and ld.brand = #{grade} |
| | | and lm.loc_type3 = 0 |
| | | and lm.row1 in (31,32) |
| | | order by row1 |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | ) |
| | | and (loc_sts = 'F' or loc_sts = 'D') and crn_no = #{crnNo} |
| | | </select> |
| | | |
| | | <select id="selectLocShuttleMoveUnilateralY" resultMap="BaseResultMap"> |
| | | select * from [dbo].[asr_loc_mast] where row1>1 and row1 < 18 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1 |
| | | </select> |
| | | |
| | | <select id="selectLocShuttleMoveUnilateralN" resultMap="BaseResultMap"> |
| | | select * from [dbo].[asr_loc_mast] where row1>17 and row1 < 31 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1 desc |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="move_status" property="moveStatus" /> |
| | | |
| | | </resultMap> |
| | | |
| | |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="selectOrderMoveStatus" resultMap="BaseResultMap"> |
| | | select top 1 * |
| | | from man_order |
| | | where 1=1 |
| | | and move_status = 2 |
| | | </select> |
| | | |
| | | <select id="selectOrderMoveStatusInitial" resultMap="BaseResultMap"> |
| | | select top 1 * |
| | | from man_order |
| | | where 1=1 |
| | | and move_status = 1 |
| | | order by update_time |
| | | </select> |
| | | |
| | | </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: '#autoMove', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/autoMove/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: '编号'} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'lineNumber', align: 'center',title: ''} |
| | | ,{field: 'locNo', align: 'center',title: ''} |
| | | ,{field: 'rowPriority', align: 'center',title: ''} |
| | | ,{field: 'orderNo', align: 'center',title: ''} |
| | | ,{field: 'createTime$', align: 'center',title: ''} |
| | | ,{field: 'updateTime$', align: 'center',title: ''} |
| | | ,{field: 'uuid', 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(autoMove)', 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(autoMove)', 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 = { |
| | | 'autoMove': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/autoMove/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(autoMove)', 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+"/autoMove/"+(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+"/autoMove/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: '#updateTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['updateTime\\$']: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="autoMove" lay-filter="autoMove"></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/autoMove/autoMove.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"> |
| | | <select name="status"> |
| | | <option value="">请选择状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="0">禁用</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="lineNumber" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="locNo" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="rowPriority" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="orderNo" 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"> |
| | | <input class="layui-input" name="updateTime" id="updateTime$" placeholder="请输入"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="uuid" 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> |
| | | |