| 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.BasDualCrnp; |
| | | import com.zy.asrs.service.BasDualCrnpService; |
| | | 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 BasDualCrnpController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BasDualCrnpService basDualCrnpService; |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(basDualCrnpService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/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<BasDualCrnp> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | allLike(BasDualCrnp.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(basDualCrnpService.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 = "/basDualCrnp/add/auth") |
| | | @ManagerAuth |
| | | public R add(BasDualCrnp basDualCrnp) { |
| | | basDualCrnpService.insert(basDualCrnp); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/update/auth") |
| | | @ManagerAuth |
| | | public R update(BasDualCrnp basDualCrnp){ |
| | | if (Cools.isEmpty(basDualCrnp) || null==basDualCrnp.getCrnNo()){ |
| | | return R.error(); |
| | | } |
| | | basDualCrnpService.updateById(basDualCrnp); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | basDualCrnpService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | EntityWrapper<BasDualCrnp> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("basDualCrnp")); |
| | | convert(map, wrapper); |
| | | List<BasDualCrnp> list = basDualCrnpService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<BasDualCrnp> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("crn_no", condition); |
| | | Page<BasDualCrnp> page = basDualCrnpService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (BasDualCrnp basDualCrnp : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", basDualCrnp.getCrnNo()); |
| | | map.put("value", basDualCrnp.getCrnNo()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnp/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<BasDualCrnp> wrapper = new EntityWrapper<BasDualCrnp>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != basDualCrnpService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(BasDualCrnp.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| 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.BasDualCrnpErr; |
| | | import com.zy.asrs.service.BasDualCrnpErrService; |
| | | 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 BasDualCrnpErrController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BasDualCrnpErrService basDualCrnpErrService; |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(basDualCrnpErrService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/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<BasDualCrnpErr> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | allLike(BasDualCrnpErr.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(basDualCrnpErrService.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 = "/basDualCrnpErr/add/auth") |
| | | @ManagerAuth |
| | | public R add(BasDualCrnpErr basDualCrnpErr) { |
| | | basDualCrnpErrService.insert(basDualCrnpErr); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/update/auth") |
| | | @ManagerAuth |
| | | public R update(BasDualCrnpErr basDualCrnpErr){ |
| | | if (Cools.isEmpty(basDualCrnpErr) || null==basDualCrnpErr.getId()){ |
| | | return R.error(); |
| | | } |
| | | basDualCrnpErrService.updateById(basDualCrnpErr); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | basDualCrnpErrService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | EntityWrapper<BasDualCrnpErr> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("basDualCrnpErr")); |
| | | convert(map, wrapper); |
| | | List<BasDualCrnpErr> list = basDualCrnpErrService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<BasDualCrnpErr> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("id", condition); |
| | | Page<BasDualCrnpErr> page = basDualCrnpErrService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (BasDualCrnpErr basDualCrnpErr : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", basDualCrnpErr.getId()); |
| | | map.put("value", basDualCrnpErr.getId()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErr/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<BasDualCrnpErr> wrapper = new EntityWrapper<BasDualCrnpErr>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != basDualCrnpErrService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(BasDualCrnpErr.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| 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.BasDualCrnpErrLog; |
| | | import com.zy.asrs.service.BasDualCrnpErrLogService; |
| | | 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 BasDualCrnpErrLogController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BasDualCrnpErrLogService basDualCrnpErrLogService; |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(basDualCrnpErrLogService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/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<BasDualCrnpErrLog> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | allLike(BasDualCrnpErrLog.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(basDualCrnpErrLogService.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 = "/basDualCrnpErrLog/add/auth") |
| | | @ManagerAuth |
| | | public R add(BasDualCrnpErrLog basDualCrnpErrLog) { |
| | | basDualCrnpErrLogService.insert(basDualCrnpErrLog); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/update/auth") |
| | | @ManagerAuth |
| | | public R update(BasDualCrnpErrLog basDualCrnpErrLog){ |
| | | if (Cools.isEmpty(basDualCrnpErrLog) || null==basDualCrnpErrLog.getId()){ |
| | | return R.error(); |
| | | } |
| | | basDualCrnpErrLogService.updateById(basDualCrnpErrLog); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | basDualCrnpErrLogService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | EntityWrapper<BasDualCrnpErrLog> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("basDualCrnpErrLog")); |
| | | convert(map, wrapper); |
| | | List<BasDualCrnpErrLog> list = basDualCrnpErrLogService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLogQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<BasDualCrnpErrLog> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("id", condition); |
| | | Page<BasDualCrnpErrLog> page = basDualCrnpErrLogService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (BasDualCrnpErrLog basDualCrnpErrLog : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", basDualCrnpErrLog.getId()); |
| | | map.put("value", basDualCrnpErrLog.getId()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpErrLog/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<BasDualCrnpErrLog> wrapper = new EntityWrapper<BasDualCrnpErrLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != basDualCrnpErrLogService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(BasDualCrnpErrLog.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| 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.BasDualCrnpOpt; |
| | | import com.zy.asrs.service.BasDualCrnpOptService; |
| | | 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 BasDualCrnpOptController extends BaseController { |
| | | |
| | | @Autowired |
| | | private BasDualCrnpOptService basDualCrnpOptService; |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/{id}/auth") |
| | | @ManagerAuth |
| | | public R get(@PathVariable("id") String id) { |
| | | return R.ok(basDualCrnpOptService.selectById(String.valueOf(id))); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/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<BasDualCrnpOpt> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | allLike(BasDualCrnpOpt.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | return R.ok(basDualCrnpOptService.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 = "/basDualCrnpOpt/add/auth") |
| | | @ManagerAuth |
| | | public R add(BasDualCrnpOpt basDualCrnpOpt) { |
| | | basDualCrnpOptService.insert(basDualCrnpOpt); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/update/auth") |
| | | @ManagerAuth |
| | | public R update(BasDualCrnpOpt basDualCrnpOpt){ |
| | | if (Cools.isEmpty(basDualCrnpOpt) || null==basDualCrnpOpt.getId()){ |
| | | return R.error(); |
| | | } |
| | | basDualCrnpOptService.updateById(basDualCrnpOpt); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | basDualCrnpOptService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | EntityWrapper<BasDualCrnpOpt> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("basDualCrnpOpt")); |
| | | convert(map, wrapper); |
| | | List<BasDualCrnpOpt> list = basDualCrnpOptService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOptQuery/auth") |
| | | @ManagerAuth |
| | | public R query(String condition) { |
| | | EntityWrapper<BasDualCrnpOpt> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("id", condition); |
| | | Page<BasDualCrnpOpt> page = basDualCrnpOptService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (BasDualCrnpOpt basDualCrnpOpt : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", basDualCrnpOpt.getId()); |
| | | map.put("value", basDualCrnpOpt.getId()); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | @RequestMapping(value = "/basDualCrnpOpt/check/column/auth") |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<BasDualCrnpOpt> wrapper = new EntityWrapper<BasDualCrnpOpt>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != basDualCrnpOptService.selectOne(wrapper)){ |
| | | return R.parse(BaseRes.REPEAT).add(getComment(BasDualCrnpOpt.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("asr_bas_dual_crnp") |
| | | public class BasDualCrnp implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @ApiModelProperty(value= "ç¼å·") |
| | | @TableId(value = "crn_no", type = IdType.INPUT) |
| | | @TableField("crn_no") |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * ç¶æ 1: æ£å¸¸ 0: ç¦ç¨ |
| | | */ |
| | | @ApiModelProperty(value= "ç¶æ 1: æ£å¸¸ 0: ç¦ç¨ ") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * å·¥ä½å· |
| | | */ |
| | | @ApiModelProperty(value= "å·¥ä½å·") |
| | | @TableField("wrk_no") |
| | | private Integer wrkNo; |
| | | |
| | | /** |
| | | * å¯å
¥(checkBox) |
| | | */ |
| | | @ApiModelProperty(value= "å¯å
¥(checkBox)") |
| | | @TableField("in_enable") |
| | | private String inEnable; |
| | | |
| | | /** |
| | | * å¯åº(checkBox) |
| | | */ |
| | | @ApiModelProperty(value= "å¯åº(checkBox)") |
| | | @TableField("out_enable") |
| | | private String outEnable; |
| | | |
| | | /** |
| | | * å建人å |
| | | */ |
| | | @ApiModelProperty(value= "å建人å") |
| | | @TableField("create_by") |
| | | private Long createBy; |
| | | |
| | | /** |
| | | * å建æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "å建æ¶é´") |
| | | @TableField("create_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * ä¿®æ¹äººå |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹äººå") |
| | | @TableField("update_by") |
| | | private Long updateBy; |
| | | |
| | | /** |
| | | * ä¿®æ¹æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹æ¶é´") |
| | | @TableField("update_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date updateTime; |
| | | |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | @ApiModelProperty(value= "夿³¨") |
| | | private String memo; |
| | | |
| | | /** |
| | | * æ§å¶åºä½æå· |
| | | */ |
| | | @ApiModelProperty(value= "æ§å¶åºä½æå·") |
| | | @TableField("control_rows") |
| | | private String controlRows; |
| | | |
| | | /** |
| | | * æ·±åºä½æå· |
| | | */ |
| | | @ApiModelProperty(value= "æ·±åºä½æå·") |
| | | @TableField("deep_rows") |
| | | private String deepRows; |
| | | |
| | | /** |
| | | * å
¥åºç«ç¹ |
| | | */ |
| | | @ApiModelProperty(value= "å
¥åºç«ç¹") |
| | | @TableField("in_station_list") |
| | | private String inStationList; |
| | | |
| | | /** |
| | | * åºåºç«ç¹ |
| | | */ |
| | | @ApiModelProperty(value= "åºåºç«ç¹") |
| | | @TableField("out_station_list") |
| | | private String outStationList; |
| | | |
| | | /** |
| | | * æå¤§å
¥åºä»»å¡æ° |
| | | */ |
| | | @ApiModelProperty(value= "æå¤§å
¥åºä»»å¡æ°") |
| | | @TableField("max_in_task") |
| | | private Integer maxInTask; |
| | | |
| | | /** |
| | | * æå¤§åºåºä»»å¡æ° |
| | | */ |
| | | @ApiModelProperty(value= "æå¤§åºåºä»»å¡æ°") |
| | | @TableField("max_out_task") |
| | | private Integer maxOutTask; |
| | | |
| | | public BasDualCrnp() {} |
| | | |
| | | public BasDualCrnp(Integer status,Integer wrkNo,String inEnable,String outEnable,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,String controlRows,String deepRows,String inStationList,String outStationList,Integer maxInTask,Integer maxOutTask) { |
| | | this.status = status; |
| | | this.wrkNo = wrkNo; |
| | | this.inEnable = inEnable; |
| | | this.outEnable = outEnable; |
| | | this.createBy = createBy; |
| | | this.createTime = createTime; |
| | | this.updateBy = updateBy; |
| | | this.updateTime = updateTime; |
| | | this.memo = memo; |
| | | this.controlRows = controlRows; |
| | | this.deepRows = deepRows; |
| | | this.inStationList = inStationList; |
| | | this.outStationList = outStationList; |
| | | this.maxInTask = maxInTask; |
| | | this.maxOutTask = maxOutTask; |
| | | } |
| | | |
| | | // BasDualCrnp basDualCrnp = new BasDualCrnp( |
| | | // null, // ç¶æ |
| | | // null, // å·¥ä½å· |
| | | // null, // å¯å
¥(checkBox) |
| | | // null, // å¯åº(checkBox) |
| | | // null, // å建人å |
| | | // null, // å建æ¶é´ |
| | | // null, // ä¿®æ¹äººå |
| | | // 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); |
| | | } |
| | | |
| | | |
| | | } |
| 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 com.core.common.SpringUtils; |
| | | import com.zy.system.service.UserService; |
| | | import com.zy.system.entity.User; |
| | | 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 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("asr_bas_dual_crnp_err") |
| | | public class BasDualCrnpErr implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @ApiModelProperty(value= "ç¼å·") |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * å¼å¸¸ç |
| | | */ |
| | | @ApiModelProperty(value= "å¼å¸¸ç ") |
| | | @TableField("error_code") |
| | | private Long errorCode; |
| | | |
| | | /** |
| | | * å¼å¸¸ |
| | | */ |
| | | @ApiModelProperty(value= "å¼å¸¸") |
| | | @TableField("err_name") |
| | | private String errName; |
| | | |
| | | /** |
| | | * ä¿®æ¹äººå |
| | | */ |
| | | @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= "æ·»å 人å") |
| | | @TableField("appe_user") |
| | | private Long appeUser; |
| | | |
| | | /** |
| | | * æ·»å æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "æ·»å æ¶é´") |
| | | @TableField("appe_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date appeTime; |
| | | |
| | | public BasDualCrnpErr() {} |
| | | |
| | | public BasDualCrnpErr(Long errorCode,String errName,Long modiUser,Date modiTime,Long appeUser,Date appeTime) { |
| | | this.errorCode = errorCode; |
| | | this.errName = errName; |
| | | this.modiUser = modiUser; |
| | | this.modiTime = modiTime; |
| | | this.appeUser = appeUser; |
| | | this.appeTime = appeTime; |
| | | } |
| | | |
| | | // BasDualCrnpErr basDualCrnpErr = new BasDualCrnpErr( |
| | | // null, // å¼å¸¸ç |
| | | // null, // å¼å¸¸ |
| | | // null, // ä¿®æ¹äººå |
| | | // null, // ä¿®æ¹æ¶é´ |
| | | // null, // æ·»å 人å |
| | | // null // æ·»å æ¶é´ |
| | | // ); |
| | | |
| | | public String getModiUser$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.modiUser); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getId()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getModiTime$(){ |
| | | if (Cools.isEmpty(this.modiTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); |
| | | } |
| | | |
| | | public String getAppeUser$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.appeUser); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getId()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getAppeTime$(){ |
| | | if (Cools.isEmpty(this.appeTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); |
| | | } |
| | | |
| | | |
| | | } |
| 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 com.core.common.SpringUtils; |
| | | import com.zy.asrs.service.BasWrkStatusService; |
| | | import com.zy.asrs.entity.BasWrkStatus; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.service.BasWrkIotypeService; |
| | | import com.zy.asrs.entity.BasWrkIotype; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.system.service.UserService; |
| | | import com.zy.system.entity.User; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | 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("asr_bas_dual_crnp_err_log") |
| | | public class BasDualCrnpErrLog implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @ApiModelProperty(value= "ç¼å·") |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | /** |
| | | * å·¥ä½å· |
| | | */ |
| | | @ApiModelProperty(value= "å·¥ä½å·") |
| | | @TableField("wrk_no") |
| | | private Integer wrkNo; |
| | | |
| | | /** |
| | | * åçæ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "åçæ¶é´") |
| | | @TableField("start_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date startTime; |
| | | |
| | | /** |
| | | * ç»ææ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "ç»ææ¶é´") |
| | | @TableField("end_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date endTime; |
| | | |
| | | /** |
| | | * å·¥ä½ç¶æ |
| | | */ |
| | | @ApiModelProperty(value= "å·¥ä½ç¶æ") |
| | | @TableField("wrk_sts") |
| | | private Long wrkSts; |
| | | |
| | | /** |
| | | * å
¥åºåºç±»å |
| | | */ |
| | | @ApiModelProperty(value= "å
¥åºåºç±»å") |
| | | @TableField("io_type") |
| | | private Integer ioType; |
| | | |
| | | /** |
| | | * å åæºå· |
| | | */ |
| | | @ApiModelProperty(value= "å åæºå·") |
| | | @TableField("crn_no") |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * ç®æ åºä½ |
| | | */ |
| | | @ApiModelProperty(value= "ç®æ åºä½") |
| | | @TableField("loc_no") |
| | | private String locNo; |
| | | |
| | | /** |
| | | * ç®æ ç« |
| | | */ |
| | | @ApiModelProperty(value= "ç®æ ç«") |
| | | @TableField("sta_no") |
| | | private Integer staNo; |
| | | |
| | | /** |
| | | * æºç« |
| | | */ |
| | | @ApiModelProperty(value= "æºç«") |
| | | @TableField("source_sta_no") |
| | | private Integer sourceStaNo; |
| | | |
| | | /** |
| | | * æºåºä½ |
| | | */ |
| | | @ApiModelProperty(value= "æºåºä½") |
| | | @TableField("source_loc_no") |
| | | private String sourceLocNo; |
| | | |
| | | /** |
| | | * æ¡ç |
| | | */ |
| | | @ApiModelProperty(value= "æ¡ç ") |
| | | private String barcode; |
| | | |
| | | /** |
| | | * å¼å¸¸ç |
| | | */ |
| | | @ApiModelProperty(value= "å¼å¸¸ç ") |
| | | @TableField("err_code") |
| | | private Integer errCode; |
| | | |
| | | /** |
| | | * å¼å¸¸ |
| | | */ |
| | | @ApiModelProperty(value= "å¼å¸¸") |
| | | private String error; |
| | | |
| | | /** |
| | | * å¼å¸¸æ
åµ 1: æªå¤ç 2: å·²ä¿®å¤ |
| | | */ |
| | | @ApiModelProperty(value= "å¼å¸¸æ
åµ 1: æªå¤ç 2: å·²ä¿®å¤ ") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * æ·»å æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "æ·»å æ¶é´") |
| | | @TableField("create_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * æ·»å 人å |
| | | */ |
| | | @ApiModelProperty(value= "æ·»å 人å") |
| | | @TableField("create_by") |
| | | private Long createBy; |
| | | |
| | | /** |
| | | * ä¿®æ¹æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹æ¶é´") |
| | | @TableField("update_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date updateTime; |
| | | |
| | | /** |
| | | * ä¿®æ¹äººå |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹äººå") |
| | | @TableField("update_by") |
| | | private Long updateBy; |
| | | |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | @ApiModelProperty(value= "夿³¨") |
| | | private String memo; |
| | | |
| | | /** |
| | | * ç³»ç»ç¶ææ°æ® |
| | | */ |
| | | @ApiModelProperty(value= "ç³»ç»ç¶ææ°æ®") |
| | | @TableField("system_status") |
| | | private String systemStatus; |
| | | |
| | | public BasDualCrnpErrLog() {} |
| | | |
| | | public BasDualCrnpErrLog(Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer crnNo,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo,String barcode,Integer errCode,String error,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo,String systemStatus) { |
| | | this.wrkNo = wrkNo; |
| | | this.startTime = startTime; |
| | | this.endTime = endTime; |
| | | this.wrkSts = wrkSts; |
| | | this.ioType = ioType; |
| | | this.crnNo = crnNo; |
| | | this.locNo = locNo; |
| | | this.staNo = staNo; |
| | | this.sourceStaNo = sourceStaNo; |
| | | this.sourceLocNo = sourceLocNo; |
| | | this.barcode = barcode; |
| | | this.errCode = errCode; |
| | | this.error = error; |
| | | this.status = status; |
| | | this.createTime = createTime; |
| | | this.createBy = createBy; |
| | | this.updateTime = updateTime; |
| | | this.updateBy = updateBy; |
| | | this.memo = memo; |
| | | this.systemStatus = systemStatus; |
| | | } |
| | | |
| | | // BasDualCrnpErrLog basDualCrnpErrLog = new BasDualCrnpErrLog( |
| | | // null, // å·¥ä½å· |
| | | // null, // åçæ¶é´ |
| | | // null, // ç»ææ¶é´ |
| | | // null, // å·¥ä½ç¶æ |
| | | // null, // å
¥åºåºç±»å |
| | | // null, // å åæºå· |
| | | // null, // ç®æ åºä½ |
| | | // null, // ç®æ ç« |
| | | // null, // æºç« |
| | | // null, // æºåºä½ |
| | | // null, // æ¡ç |
| | | // null, // å¼å¸¸ç |
| | | // null, // å¼å¸¸ |
| | | // null, // å¼å¸¸æ
åµ |
| | | // null, // æ·»å æ¶é´ |
| | | // null, // æ·»å 人å |
| | | // null, // ä¿®æ¹æ¶é´ |
| | | // null, // ä¿®æ¹äººå |
| | | // null, // 夿³¨ |
| | | // null // ç³»ç»ç¶ææ°æ® |
| | | // ); |
| | | |
| | | public String getStartTime$(){ |
| | | if (Cools.isEmpty(this.startTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime); |
| | | } |
| | | |
| | | public String getEndTime$(){ |
| | | if (Cools.isEmpty(this.endTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime); |
| | | } |
| | | |
| | | public String getWrkSts$(){ |
| | | BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class); |
| | | BasWrkStatus basWrkStatus = service.selectById(this.wrkSts); |
| | | if (!Cools.isEmpty(basWrkStatus)){ |
| | | return String.valueOf(basWrkStatus.getWrkDesc()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getIoType$(){ |
| | | BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class); |
| | | BasWrkIotype basWrkIotype = service.selectById(this.ioType); |
| | | if (!Cools.isEmpty(basWrkIotype)){ |
| | | return String.valueOf(basWrkIotype.getIoDesc()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getStatus$(){ |
| | | if (null == this.status){ return null; } |
| | | switch (this.status){ |
| | | case 1: |
| | | return "æªå¤ç"; |
| | | case 2: |
| | | 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 getCreateBy$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.createBy); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getId()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getUpdateTime$(){ |
| | | if (Cools.isEmpty(this.updateTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); |
| | | } |
| | | |
| | | public String getUpdateBy$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.updateBy); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getId()); |
| | | } |
| | | return 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 java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | 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("asr_bas_dual_crnp_opt") |
| | | public class BasDualCrnpOpt implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * ç¼å· |
| | | */ |
| | | @ApiModelProperty(value= "ç¼å·") |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | /** |
| | | * å·¥ä½å· |
| | | */ |
| | | @ApiModelProperty(value= "å·¥ä½å·") |
| | | @TableField("wrk_no") |
| | | private Integer wrkNo; |
| | | |
| | | /** |
| | | * å åæºå· |
| | | */ |
| | | @ApiModelProperty(value= "å åæºå·") |
| | | @TableField("crn_no") |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * ä¸åæ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "ä¸åæ¶é´") |
| | | @TableField("send_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date sendTime; |
| | | |
| | | /** |
| | | * ä½ä¸ |
| | | */ |
| | | @ApiModelProperty(value= "ä½ä¸") |
| | | private String mode; |
| | | |
| | | /** |
| | | * èµ·ç¹åºä½ |
| | | */ |
| | | @ApiModelProperty(value= "èµ·ç¹åºä½") |
| | | @TableField("source_loc_no") |
| | | private String sourceLocNo; |
| | | |
| | | /** |
| | | * ç®æ åºä½ |
| | | */ |
| | | @ApiModelProperty(value= "ç®æ åºä½") |
| | | @TableField("target_loc_no") |
| | | private String targetLocNo; |
| | | |
| | | /** |
| | | * ä¿®æ¹æ¶é´ |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹æ¶é´") |
| | | @TableField("update_time") |
| | | @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
| | | private Date updateTime; |
| | | |
| | | /** |
| | | * ä¿®æ¹äººå |
| | | */ |
| | | @ApiModelProperty(value= "ä¿®æ¹äººå") |
| | | @TableField("update_by") |
| | | private Long updateBy; |
| | | |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | @ApiModelProperty(value= "夿³¨") |
| | | private String memo; |
| | | |
| | | /** |
| | | * å½ä»¤ |
| | | */ |
| | | @ApiModelProperty(value= "å½ä»¤") |
| | | private String command; |
| | | |
| | | /** |
| | | * ç³»ç»ç¶æ |
| | | */ |
| | | @ApiModelProperty(value= "ç³»ç»ç¶æ") |
| | | @TableField("system_status") |
| | | private String systemStatus; |
| | | |
| | | /** |
| | | * ä¸åç¶æ 0: æªä¸å 1: å·²ä¸å |
| | | */ |
| | | @ApiModelProperty(value= "ä¸åç¶æ 0: æªä¸å 1: å·²ä¸å ") |
| | | private Integer send; |
| | | |
| | | /** |
| | | * 请æ±ååº |
| | | */ |
| | | @ApiModelProperty(value= "请æ±ååº") |
| | | private String response; |
| | | |
| | | public BasDualCrnpOpt() {} |
| | | |
| | | public BasDualCrnpOpt(Integer wrkNo,Integer crnNo,Date sendTime,String mode,String sourceLocNo,String targetLocNo,Date updateTime,Long updateBy,String memo,String command,String systemStatus,Integer send,String response) { |
| | | this.wrkNo = wrkNo; |
| | | this.crnNo = crnNo; |
| | | this.sendTime = sendTime; |
| | | this.mode = mode; |
| | | this.sourceLocNo = sourceLocNo; |
| | | this.targetLocNo = targetLocNo; |
| | | this.updateTime = updateTime; |
| | | this.updateBy = updateBy; |
| | | this.memo = memo; |
| | | this.command = command; |
| | | this.systemStatus = systemStatus; |
| | | this.send = send; |
| | | this.response = response; |
| | | } |
| | | |
| | | // BasDualCrnpOpt basDualCrnpOpt = new BasDualCrnpOpt( |
| | | // null, // å·¥ä½å· |
| | | // null, // å åæºå· |
| | | // null, // ä¸åæ¶é´ |
| | | // null, // ä½ä¸ |
| | | // null, // èµ·ç¹åºä½ |
| | | // null, // ç®æ åºä½ |
| | | // null, // ä¿®æ¹æ¶é´ |
| | | // null, // ä¿®æ¹äººå |
| | | // null, // 夿³¨ |
| | | // null, // å½ä»¤ |
| | | // null, // ç³»ç»ç¶æ |
| | | // null, // ä¸åç¶æ |
| | | // null // 请æ±ååº |
| | | // ); |
| | | |
| | | public String getSendTime$(){ |
| | | if (Cools.isEmpty(this.sendTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime); |
| | | } |
| | | |
| | | public String getUpdateTime$(){ |
| | | if (Cools.isEmpty(this.updateTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); |
| | | } |
| | | |
| | | public String getUpdateBy$(){ |
| | | UserService service = SpringUtils.getBean(UserService.class); |
| | | User user = service.selectById(this.updateBy); |
| | | if (!Cools.isEmpty(user)){ |
| | | return String.valueOf(user.getId()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public String getSend$(){ |
| | | if (null == this.send){ return null; } |
| | | switch (this.send){ |
| | | case 0: |
| | | return "æªä¸å"; |
| | | case 1: |
| | | return "å·²ä¸å"; |
| | | default: |
| | | return String.valueOf(this.send); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpErrLog; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface BasDualCrnpErrLogMapper extends BaseMapper<BasDualCrnpErrLog> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpErr; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface BasDualCrnpErrMapper extends BaseMapper<BasDualCrnpErr> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnp; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface BasDualCrnpMapper extends BaseMapper<BasDualCrnp> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpOpt; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Mapper |
| | | @Repository |
| | | public interface BasDualCrnpOptMapper extends BaseMapper<BasDualCrnpOpt> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpErrLog; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface BasDualCrnpErrLogService extends IService<BasDualCrnpErrLog> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpErr; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface BasDualCrnpErrService extends IService<BasDualCrnpErr> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnpOpt; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface BasDualCrnpOptService extends IService<BasDualCrnpOpt> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.zy.asrs.entity.BasDualCrnp; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | public interface BasDualCrnpService extends IService<BasDualCrnp> { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.BasDualCrnpErrLogMapper; |
| | | import com.zy.asrs.entity.BasDualCrnpErrLog; |
| | | import com.zy.asrs.service.BasDualCrnpErrLogService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("basDualCrnpErrLogService") |
| | | public class BasDualCrnpErrLogServiceImpl extends ServiceImpl<BasDualCrnpErrLogMapper, BasDualCrnpErrLog> implements BasDualCrnpErrLogService { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.BasDualCrnpErrMapper; |
| | | import com.zy.asrs.entity.BasDualCrnpErr; |
| | | import com.zy.asrs.service.BasDualCrnpErrService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("basDualCrnpErrService") |
| | | public class BasDualCrnpErrServiceImpl extends ServiceImpl<BasDualCrnpErrMapper, BasDualCrnpErr> implements BasDualCrnpErrService { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.BasDualCrnpOptMapper; |
| | | import com.zy.asrs.entity.BasDualCrnpOpt; |
| | | import com.zy.asrs.service.BasDualCrnpOptService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("basDualCrnpOptService") |
| | | public class BasDualCrnpOptServiceImpl extends ServiceImpl<BasDualCrnpOptMapper, BasDualCrnpOpt> implements BasDualCrnpOptService { |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.zy.asrs.mapper.BasDualCrnpMapper; |
| | | import com.zy.asrs.entity.BasDualCrnp; |
| | | import com.zy.asrs.service.BasDualCrnpService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service("basDualCrnpService") |
| | | public class BasDualCrnpServiceImpl extends ServiceImpl<BasDualCrnpMapper, BasDualCrnp> implements BasDualCrnpService { |
| | | |
| | | } |
| | |
| | | generator.url="127.0.0.1:3306/wcs"; |
| | | generator.username="root"; |
| | | generator.password="root"; |
| | | generator.table="asr_bas_station"; |
| | | generator.table="asr_bas_dual_crnp_opt"; |
| | | // sqlserver |
| | | // generator.sqlOsType = SqlOsType.SQL_SERVER; |
| | | // generator.url="127.0.0.1:1433;databasename=tzskasrs"; |
| | |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.thread.impl.ZySiemensCrnThread; |
| | | import com.zy.core.thread.impl.ZySiemensDualCrnThread; |
| | | import com.zy.core.thread.impl.ZyStationThread; |
| | | import com.zy.core.thread.impl.ZyRgvThread; |
| | | |
| | |
| | | @Async |
| | | public void init() throws InterruptedException { |
| | | News.info("æ ¸å¿æ§å¶å±å¼å§åå§å..............................................."); |
| | | Thread.sleep(2000); |
| | | // åå§åæ¶æ¯éå |
| | | initMq(); |
| | | // åå§åä¸ä½æºçº¿ç¨ |
| | |
| | | .eq("device_type", String.valueOf(SlaveType.Crn))); |
| | | for (DeviceConfig crn : crnList) { |
| | | MessageQueue.init(SlaveType.Crn, crn.getDeviceNo()); |
| | | } |
| | | // åå§ååå·¥ä½å åæºmq |
| | | List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | | .eq("device_type", String.valueOf(SlaveType.DualCrn))); |
| | | for (DeviceConfig crn : dualCrnList) { |
| | | MessageQueue.init(SlaveType.DualCrn, crn.getDeviceNo()); |
| | | } |
| | | // åå§åRgvå°è½¦mq |
| | | List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | |
| | | } |
| | | |
| | | private void initThread(){ |
| | | News.info("åå§åå åæº........................................................"); |
| | | List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | | .eq("device_type", String.valueOf(SlaveType.Crn))); |
| | | for (DeviceConfig deviceConfig : crnList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZySiemensCrnThread")) { |
| | | thread = new ZySiemensCrnThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | if(!crnList.isEmpty()) { |
| | | News.info("åå§åå åæº........................................................"); |
| | | for (DeviceConfig deviceConfig : crnList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZySiemensCrnThread")) { |
| | | thread = new ZySiemensCrnThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | |
| | | Thread t = new Thread(thread); |
| | | t.setName("CrnThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Crn, deviceConfig.getDeviceNo(), thread); |
| | | Thread t = new Thread(thread); |
| | | t.setName("CrnThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Crn, deviceConfig.getDeviceNo(), thread); |
| | | } |
| | | } |
| | | |
| | | News.info("åå§åè¾éç«........................................................"); |
| | | List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | | .eq("device_type", String.valueOf(SlaveType.DualCrn))); |
| | | if(!dualCrnList.isEmpty()) { |
| | | News.info("åå§ååå·¥ä½å åæº........................................................"); |
| | | for (DeviceConfig deviceConfig : dualCrnList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZySiemensDualCrnThread")) { |
| | | thread = new ZySiemensDualCrnThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | |
| | | Thread t = new Thread(thread); |
| | | t.setName("DualCrnThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.DualCrn, deviceConfig.getDeviceNo(), thread); |
| | | } |
| | | } |
| | | |
| | | List<DeviceConfig> devpList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | | .eq("device_type", String.valueOf(SlaveType.Devp))); |
| | | for (DeviceConfig deviceConfig : devpList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZyStationThread")) { |
| | | thread = new ZyStationThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | if(!devpList.isEmpty()) { |
| | | News.info("åå§åè¾éç«........................................................"); |
| | | for (DeviceConfig deviceConfig : devpList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZyStationThread")) { |
| | | thread = new ZyStationThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | |
| | | Thread t = new Thread(thread); |
| | | t.setName("DevpThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Devp, deviceConfig.getDeviceNo(), thread); |
| | | Thread t = new Thread(thread); |
| | | t.setName("DevpThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Devp, deviceConfig.getDeviceNo(), thread); |
| | | } |
| | | } |
| | | |
| | | News.info("åå§åRGV........................................................"); |
| | | List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() |
| | | .eq("device_type", String.valueOf(SlaveType.Rgv))); |
| | | for (DeviceConfig deviceConfig : rgvList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZyRgvThread")) { |
| | | thread = new ZyRgvThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | if(!rgvList.isEmpty()) { |
| | | News.info("åå§åRGV........................................................"); |
| | | for (DeviceConfig deviceConfig : rgvList) { |
| | | ThreadHandler thread = null; |
| | | if (deviceConfig.getThreadImpl().equals("ZyRgvThread")) { |
| | | thread = new ZyRgvThread(deviceConfig, redisUtil); |
| | | } else { |
| | | throw new CoolException("æªç¥ç线ç¨å®ç°"); |
| | | } |
| | | |
| | | Thread t = new Thread(thread); |
| | | t.setName("RgvThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Rgv, deviceConfig.getDeviceNo(), thread); |
| | | Thread t = new Thread(thread); |
| | | t.setName("RgvThread-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | t.start(); |
| | | SlaveConnection.put(SlaveType.Rgv, deviceConfig.getDeviceNo(), thread); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | // å åæºè¾åºæ¥å¿ |
| | | public static ArrayBlockingQueue<String> CRN = new ArrayBlockingQueue<>(32); |
| | | // åå·¥ä½å åæºè¾åºæ¥å¿ |
| | | public static ArrayBlockingQueue<String> DUAL_CRN = new ArrayBlockingQueue<>(32); |
| | | // è¾é线è¾åºæ¥å¿ |
| | | public static ArrayBlockingQueue<String> DEVP = new ArrayBlockingQueue<>(32); |
| | | // æ¡ç å¨è¾åºæ¥å¿ |
| | |
| | | public enum SlaveType { |
| | | |
| | | Crn, |
| | | DualCrn, |
| | | Devp, |
| | | Barcode, |
| | | Led, |
| New file |
| | |
| | | package com.zy.core.model.command; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * åå·¥ä½å åæºå½ä»¤æ¥æ |
| | | */ |
| | | @Data |
| | | public class DualCrnCommand { |
| | | |
| | | // å åæºå· |
| | | private Integer crnNo = 0; |
| | | |
| | | // ä»»å¡å®æç¡®è®¤ä½ |
| | | private Short ackFinish = 0; |
| | | |
| | | // ä»»å¡å· |
| | | private Short taskNo = 0; |
| | | |
| | | /** |
| | | * 任塿¨¡å¼ï¼ |
| | | * 0 = æ |
| | | * 1 = å
¥åº æºåç®æ é½å |
| | | * 2 = åºåº æºåç®æ é½å |
| | | * 3 = åºä½ç§»è½¬ æºåç®æ é½å |
| | | * 4 = ç«ä½ç§»è½¬ æºåç®æ é½å |
| | | * 5 = ååç¹ ä¸ç¨å |
| | | * 6 = å»ååç¹ ç®æ å |
| | | * 7 = åæ ç§»è¡ åè´§å |
| | | * 90 = 设置æ¶é´ |
| | | * 99 = åæ¶å½åä»»å¡ |
| | | */ |
| | | private Short taskMode = 0; |
| | | |
| | | // æºä½ç½®æå· |
| | | private Short sourcePosX = 0; |
| | | |
| | | // æºä½ç½®åå· |
| | | private Short sourcePosY = 0; |
| | | |
| | | // æºä½ç½®å±å· |
| | | private Short sourcePosZ = 0; |
| | | |
| | | // ç®æ ä½ç½®æå· |
| | | private Short destinationPosX = 0; |
| | | |
| | | // ç®æ ä½ç½®åå· |
| | | private Short destinationPosY = 0; |
| | | |
| | | // ç®æ ä½ç½®å±å· |
| | | private Short destinationPosZ = 0; |
| | | |
| | | // ä»»å¡ç¡®è®¤ 0ï¼æªç¡®è®¤ 1ï¼å·²ç¡®è®¤ |
| | | private Short command = 0; |
| | | |
| | | //å·¥ä½ |
| | | private Short station; |
| | | |
| | | } |
| | |
| | | import com.zy.core.enums.CrnStatusType; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/8/7 |
| | | */ |
| | | @Data |
| | | public class CrnProtocol { |
| | | |
| New file |
| | |
| | | package com.zy.core.model.protocol; |
| | | |
| | | import com.zy.core.enums.CrnForkPosType; |
| | | import com.zy.core.enums.CrnLiftPosType; |
| | | import com.zy.core.enums.CrnModeType; |
| | | import com.zy.core.enums.CrnStatusType; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class DualCrnProtocol { |
| | | |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * 1 = æå¨æ¨¡å¼ |
| | | * 2 = èªå¨æ¨¡å¼ |
| | | * 3 = çµèæ¨¡å¼ |
| | | */ |
| | | public Integer mode; |
| | | |
| | | public CrnModeType modeType; |
| | | |
| | | /** |
| | | * å¼å¸¸ç |
| | | */ |
| | | public Integer alarm; |
| | | |
| | | /** |
| | | * å·¥ä½1ä»»å¡å· |
| | | */ |
| | | public Integer taskNo = 0; |
| | | |
| | | /** |
| | | * å·¥ä½2ä»»å¡å· |
| | | */ |
| | | public Integer taskNoTwo = 0; |
| | | |
| | | /** |
| | | * å·¥ä½1å½åç¶æ |
| | | * 0ï¼ç©ºé²ï¼æ ä»»å¡ |
| | | * 1ï¼åè´§å®ä½ä¸ |
| | | * 2ï¼åè´§ä¸ |
| | | * 3ï¼åè´§å®æï¼æ¾è´§å®ä½ä¸ |
| | | * 4ï¼æ¾è´§ä¸ |
| | | * 5ï¼ååç¹ä¸ |
| | | * 6ï¼ååç¹ |
| | | * 7ï¼åºä½ç§»ä½ |
| | | * 90ï¼ä»»å¡å®æçå¾
WCS确认 |
| | | * 99ï¼æ¥è¦ |
| | | */ |
| | | public Integer status; |
| | | |
| | | /** |
| | | * å·¥ä½2å½åç¶æ |
| | | */ |
| | | public Integer statusTwo; |
| | | |
| | | /** |
| | | * å·¥ä½1ç¶ææä¸¾ |
| | | */ |
| | | public CrnStatusType statusType; |
| | | |
| | | /** |
| | | * å·¥ä½2ç¶ææä¸¾ |
| | | */ |
| | | public CrnStatusType statusTypeTwo; |
| | | |
| | | /** |
| | | * å·¥ä½1å åæºå½ååå· |
| | | */ |
| | | public Integer bay; |
| | | |
| | | /** |
| | | * å·¥ä½2å åæºå½ååå· |
| | | */ |
| | | public Integer bayTwo; |
| | | |
| | | /** |
| | | * å·¥ä½1å åæºå½åå±å· |
| | | */ |
| | | public Integer level; |
| | | |
| | | /** |
| | | * å·¥ä½2å åæºå½åå±å· |
| | | */ |
| | | public Integer levelTwo; |
| | | |
| | | /** |
| | | * å·¥ä½1å½åè´§åä½ç½® |
| | | * 0 = è´§ååä½ |
| | | * 1 = è´§åå¨å·¦ä¾§ |
| | | * 2 = è´§åå¨å³ä¾§ |
| | | */ |
| | | public Integer forkPos; |
| | | |
| | | /** |
| | | * å·¥ä½2å½åè´§åä½ç½® |
| | | * 0 = è´§ååä½ |
| | | * 1 = è´§åå¨å·¦ä¾§ |
| | | * 2 = è´§åå¨å³ä¾§ |
| | | */ |
| | | public Integer forkPosTwo; |
| | | |
| | | public CrnForkPosType forkPosType; |
| | | |
| | | public CrnForkPosType forkPosTypeTwo; |
| | | |
| | | /** |
| | | * å½å载货å°ä½ç½® |
| | | * 0 = ä¸å®ä½ |
| | | * 1 = ä¸å®ä½ |
| | | */ |
| | | public Integer liftPos; |
| | | |
| | | public Integer liftPosTwo; |
| | | |
| | | public CrnLiftPosType liftPosType; |
| | | |
| | | public CrnLiftPosType liftPosTypeTwo; |
| | | |
| | | /** |
| | | * èµ°è¡å¨å®ä½ |
| | | * 0 = å¨å®ä½ |
| | | * 1 = ä¸å¨å®ä½ |
| | | */ |
| | | public Integer walkPos; |
| | | |
| | | public Integer walkPosTwo; |
| | | |
| | | /** |
| | | * è½½è´§å°æç© |
| | | */ |
| | | public Integer loaded; |
| | | |
| | | public Integer loadedTwo; |
| | | |
| | | private Integer temp1; |
| | | |
| | | private Integer temp2; |
| | | |
| | | private Integer temp3; |
| | | |
| | | private Integer temp4; |
| | | |
| | | /** |
| | | * Xè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer xSpeed; |
| | | |
| | | /** |
| | | * Yè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer ySpeed; |
| | | |
| | | /** |
| | | * Zè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer zSpeed; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡èµ°è¡è·ç¦»km |
| | | */ |
| | | public Integer xDistance; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡åéè·ç¦»km |
| | | */ |
| | | public Integer yDistance; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡èµ°è¡æ¶é¿h |
| | | */ |
| | | public Integer xDuration; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡åéæ¶é¿h |
| | | */ |
| | | public Integer yDuration; |
| | | |
| | | /** |
| | | * æè¿ä¸æ¬¡å
¥åºåºç±»å |
| | | * I:å
¥åº |
| | | * O:åºåº |
| | | */ |
| | | private String lastIo = "I"; |
| | | |
| | | /** |
| | | * å åæºæå¨å··é |
| | | */ |
| | | private Integer crnLane = 1; |
| | | |
| | | /** |
| | | * æ¥å¿ééæ¶é´ |
| | | */ |
| | | private Long deviceDataLog = System.currentTimeMillis(); |
| | | |
| | | /** |
| | | * ä¸ä¸æ¬¡æä»¤ä¸åæ¶é´ |
| | | */ |
| | | private Long lastCommandTime = System.currentTimeMillis(); |
| | | |
| | | public void setMode(Integer mode) { |
| | | this.mode = mode; |
| | | this.modeType = CrnModeType.get(mode); |
| | | } |
| | | |
| | | public void setMode(CrnModeType type) { |
| | | this.modeType = type; |
| | | this.mode = CrnModeType.get(type).id; |
| | | } |
| | | |
| | | public void setForkPos(Integer forkPos) { |
| | | this.forkPos = forkPos; |
| | | this.forkPosType = CrnForkPosType.get(forkPos); |
| | | } |
| | | |
| | | public void setForkPos(CrnForkPosType type) { |
| | | this.forkPosType = type; |
| | | this.forkPos = CrnForkPosType.get(type).id; |
| | | } |
| | | |
| | | public void setLiftPos(Integer liftPos) { |
| | | this.liftPos = liftPos; |
| | | this.liftPosType = CrnLiftPosType.get(liftPos); |
| | | } |
| | | |
| | | public void setLiftPos(CrnLiftPosType type) { |
| | | this.liftPosType = type; |
| | | this.liftPos = CrnLiftPosType.get(type).id; |
| | | } |
| | | |
| | | public void setStatus(Integer status){ |
| | | this.status = status; |
| | | this.statusType = CrnStatusType.get(status); |
| | | } |
| | | |
| | | public void setStatus(CrnStatusType type){ |
| | | this.statusType = type; |
| | | this.status = CrnStatusType.get(type).id; |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.core.network; |
| | | |
| | | import com.zy.asrs.entity.DeviceConfig; |
| | | import com.zy.core.ThreadHandler; |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.network.api.ZyDualCrnConnectApi; |
| | | import com.zy.core.network.entity.ZyDualCrnStatusEntity; |
| | | import com.zy.core.network.fake.ZyDualCrnFakeConnect; |
| | | import com.zy.core.network.real.ZyDualCrnRealConnect; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.ScheduledExecutorService; |
| | | import java.util.concurrent.ThreadFactory; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * è¿æ¥é©±å¨ |
| | | */ |
| | | @Slf4j |
| | | public class ZyDualCrnConnectDriver implements ThreadHandler{ |
| | | |
| | | private boolean connected = false; |
| | | private DeviceConfig deviceConfig; |
| | | private ZyDualCrnConnectApi zyDualCrnConnectApi; |
| | | private volatile boolean closed = false; |
| | | private ScheduledExecutorService executor; |
| | | |
| | | public ZyDualCrnConnectDriver(DeviceConfig deviceConfig) { |
| | | this.deviceConfig = deviceConfig; |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | if (deviceConfig.getFake() == 0) { |
| | | zyDualCrnConnectApi = new ZyDualCrnRealConnect(deviceConfig); |
| | | }else { |
| | | zyDualCrnConnectApi = new ZyDualCrnFakeConnect(deviceConfig); |
| | | } |
| | | |
| | | boolean connect = zyDualCrnConnectApi.connect(); |
| | | connected = connect; |
| | | return connect; |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | closed = true; |
| | | ScheduledExecutorService ex = executor; |
| | | if (ex != null) { |
| | | try { ex.shutdownNow(); } catch (Exception ignore) {} |
| | | } |
| | | if (zyDualCrnConnectApi != null) { |
| | | zyDualCrnConnectApi.disconnect(); |
| | | zyDualCrnConnectApi = null; |
| | | } |
| | | connected = false; |
| | | } |
| | | |
| | | public void start() { |
| | | executor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { |
| | | @Override |
| | | public Thread newThread(Runnable r) { |
| | | Thread t = new Thread(r); |
| | | t.setName("CrnConnect-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | return t; |
| | | } |
| | | }); |
| | | executor.scheduleAtFixedRate(() -> { |
| | | if (closed || Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | try { |
| | | if (!connected) { |
| | | connect(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | }, 0, 1000, TimeUnit.MILLISECONDS); |
| | | } |
| | | |
| | | public ZyDualCrnStatusEntity getStatus() { |
| | | if (zyDualCrnConnectApi == null) { |
| | | return null; |
| | | } |
| | | return zyDualCrnConnectApi.getStatus(); |
| | | } |
| | | |
| | | public CommandResponse sendCommand(DualCrnCommand command) { |
| | | return zyDualCrnConnectApi.sendCommand(command); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.core.network.api; |
| | | |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.network.entity.ZyDualCrnStatusEntity; |
| | | |
| | | public interface ZyDualCrnConnectApi { |
| | | |
| | | boolean connect(); |
| | | |
| | | boolean disconnect(); |
| | | |
| | | ZyDualCrnStatusEntity getStatus();//设å¤ç¶æ |
| | | |
| | | CommandResponse sendCommand(DualCrnCommand command);//ä¸åå½ä»¤ |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.core.network.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ZyDualCrnStatusEntity { |
| | | |
| | | /** |
| | | * å åæºå· |
| | | */ |
| | | private Integer crnNo; |
| | | |
| | | /** |
| | | * 1 = æå¨æ¨¡å¼ |
| | | * 2 = èªå¨æ¨¡å¼ |
| | | * 3 = çµèæ¨¡å¼ |
| | | */ |
| | | public Integer mode; |
| | | |
| | | /** |
| | | * å¼å¸¸ç |
| | | */ |
| | | public Integer alarm; |
| | | |
| | | /** |
| | | * ä»»å¡å· |
| | | */ |
| | | public Integer taskNo = 0; |
| | | |
| | | public Integer taskNoTwo = 0; |
| | | |
| | | /** |
| | | * å åæºå½åç¶æ |
| | | * 0ï¼ç©ºé²ï¼æ ä»»å¡ |
| | | * 1ï¼åè´§å®ä½ä¸ |
| | | * 2ï¼åè´§ä¸ |
| | | * 3ï¼åè´§å®æï¼æ¾è´§å®ä½ä¸ |
| | | * 4ï¼æ¾è´§ä¸ |
| | | * 5ï¼ååç¹ä¸ |
| | | * 6ï¼ååç¹ |
| | | * 7ï¼åºä½ç§»ä½ |
| | | * 90ï¼ä»»å¡å®æçå¾
WCS确认 |
| | | * 99ï¼æ¥è¦ |
| | | */ |
| | | public Integer status; |
| | | |
| | | public Integer statusTwo; |
| | | |
| | | /** |
| | | * å åæºå½ååå· |
| | | */ |
| | | public Integer bay; |
| | | |
| | | public Integer bayTwo; |
| | | |
| | | /** |
| | | * å åæºå½åå±å· |
| | | */ |
| | | public Integer level; |
| | | |
| | | public Integer levelTwo; |
| | | |
| | | /** |
| | | * å½åè´§åä½ç½® |
| | | * 0 = è´§ååä½ |
| | | * 1 = è´§åå¨å·¦ä¾§ |
| | | * 2 = è´§åå¨å³ä¾§ |
| | | */ |
| | | public Integer forkPos; |
| | | |
| | | public Integer forkPosTwo; |
| | | |
| | | /** |
| | | * å½å载货å°ä½ç½® |
| | | * 0 = ä¸å®ä½ |
| | | * 1 = ä¸å®ä½ |
| | | */ |
| | | public Integer liftPos; |
| | | |
| | | public Integer liftPosTwo; |
| | | |
| | | /** |
| | | * èµ°è¡å¨å®ä½ |
| | | * 0 = å¨å®ä½ |
| | | * 1 = ä¸å¨å®ä½ |
| | | */ |
| | | public Integer walkPos; |
| | | |
| | | public Integer walkPosTwo; |
| | | |
| | | /** |
| | | * è½½è´§å°æç© |
| | | */ |
| | | public Integer loaded; |
| | | |
| | | public Integer loadedTwo; |
| | | |
| | | /** |
| | | * Xè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer xSpeed; |
| | | |
| | | /** |
| | | * Yè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer ySpeed; |
| | | |
| | | /** |
| | | * Zè¡èµ°çº¿é度m/min |
| | | */ |
| | | private Integer zSpeed; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡èµ°è¡è·ç¦»km |
| | | */ |
| | | public Integer xDistance; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡åéè·ç¦»km |
| | | */ |
| | | public Integer yDistance; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡èµ°è¡æ¶é¿h |
| | | */ |
| | | public Integer xDuration; |
| | | |
| | | /** |
| | | * å åæºç´¯è®¡åéæ¶é¿h |
| | | */ |
| | | public Integer yDuration; |
| | | |
| | | private Integer temp1; |
| | | |
| | | private Integer temp2; |
| | | |
| | | private Integer temp3; |
| | | |
| | | private Integer temp4; |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.core.network.fake; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.zy.asrs.entity.DeviceConfig; |
| | | import com.zy.core.enums.CrnStatusType; |
| | | import com.zy.core.enums.CrnTaskModeType; |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.network.api.ZyDualCrnConnectApi; |
| | | import com.zy.core.network.entity.ZyDualCrnStatusEntity; |
| | | |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | public class ZyDualCrnFakeConnect implements ZyDualCrnConnectApi { |
| | | |
| | | private ZyDualCrnStatusEntity crnStatus; |
| | | private DeviceConfig deviceConfig; |
| | | private final ExecutorService executor = Executors.newSingleThreadExecutor(); |
| | | |
| | | public ZyDualCrnFakeConnect(DeviceConfig deviceConfig) { |
| | | this.deviceConfig = deviceConfig; |
| | | this.crnStatus = JSON.parseObject(deviceConfig.getFakeInitStatus(), ZyDualCrnStatusEntity.class); |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public boolean disconnect() { |
| | | try { executor.shutdownNow(); } catch (Exception ignore) {} |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public ZyDualCrnStatusEntity getStatus() { |
| | | return this.crnStatus; |
| | | } |
| | | |
| | | @Override |
| | | public CommandResponse sendCommand(DualCrnCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | if (command.getTaskMode().intValue() == CrnTaskModeType.LOC_MOVE.id) { |
| | | //åæ¾è´§ |
| | | executor.submit(() -> commandTake(command)); |
| | | } else if (command.getTaskMode().intValue() == CrnTaskModeType.CRN_MOVE.id) { |
| | | //ç§»å¨ |
| | | executor.submit(() -> commandMove(command)); |
| | | } else if (command.getTaskMode().intValue() == CrnTaskModeType.NONE.id) { |
| | | //å¤ä½ |
| | | executor.submit(() -> commandTaskComplete(command)); |
| | | } |
| | | response.setResult(true); |
| | | return response; |
| | | } |
| | | |
| | | private void commandTaskComplete(DualCrnCommand command) { |
| | | this.crnStatus.setTaskNo(0); |
| | | this.crnStatus.setStatus(CrnStatusType.IDLE.id); |
| | | } |
| | | |
| | | private void commandMove(DualCrnCommand command) { |
| | | int destinationPosX = command.getDestinationPosX().intValue(); |
| | | int destinationPosY = command.getDestinationPosY().intValue(); |
| | | int destinationPosZ = command.getDestinationPosZ().intValue(); |
| | | int taskMode = command.getTaskMode().intValue(); |
| | | int taskNo = command.getTaskNo().intValue(); |
| | | |
| | | if(command.getStation() == 1) { |
| | | this.crnStatus.setTaskNo(taskNo); |
| | | this.crnStatus.setStatus(CrnStatusType.MOVING.id); |
| | | moveY(this.crnStatus.getBay(), destinationPosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevel(), destinationPosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatus(CrnStatusType.WAITING.id); |
| | | }else { |
| | | this.crnStatus.setTaskNoTwo(taskNo); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.MOVING.id); |
| | | moveY(this.crnStatus.getBayTwo(), destinationPosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevelTwo(), destinationPosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.WAITING.id); |
| | | } |
| | | } |
| | | |
| | | private void commandTake(DualCrnCommand command) { |
| | | int sourcePosX = command.getSourcePosX().intValue(); |
| | | int sourcePosY = command.getSourcePosY().intValue(); |
| | | int sourcePosZ = command.getSourcePosZ().intValue(); |
| | | int destinationPosX = command.getDestinationPosX().intValue(); |
| | | int destinationPosY = command.getDestinationPosY().intValue(); |
| | | int destinationPosZ = command.getDestinationPosZ().intValue(); |
| | | int taskMode = command.getTaskMode().intValue(); |
| | | int taskNo = command.getTaskNo().intValue(); |
| | | |
| | | this.crnStatus.setMode(taskMode); |
| | | if(command.getStation() == 1) { |
| | | this.crnStatus.setTaskNo(taskNo); |
| | | this.crnStatus.setStatus(CrnStatusType.FETCH_MOVING.id); |
| | | |
| | | moveY(this.crnStatus.getBay(), sourcePosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevel(), sourcePosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatus(CrnStatusType.FETCHING.id); |
| | | sleep(2000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | |
| | | this.crnStatus.setLoaded(1); |
| | | this.crnStatus.setStatus(CrnStatusType.PUT_MOVING.id); |
| | | moveY(this.crnStatus.getBay(), destinationPosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevel(), destinationPosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatus(CrnStatusType.PUTTING.id); |
| | | sleep(2000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | this.crnStatus.setLoaded(0); |
| | | this.crnStatus.setStatus(CrnStatusType.WAITING.id); |
| | | }else { |
| | | this.crnStatus.setTaskNoTwo(taskNo); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.FETCH_MOVING.id); |
| | | |
| | | moveY(this.crnStatus.getBayTwo(), sourcePosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevelTwo(), sourcePosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.FETCHING.id); |
| | | sleep(2000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | |
| | | this.crnStatus.setLoadedTwo(1); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.PUT_MOVING.id); |
| | | moveY(this.crnStatus.getBayTwo(), destinationPosY, command.getStation().intValue()); |
| | | moveZ(this.crnStatus.getLevelTwo(), destinationPosZ, command.getStation().intValue()); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.PUTTING.id); |
| | | sleep(2000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | this.crnStatus.setLoadedTwo(0); |
| | | this.crnStatus.setStatusTwo(CrnStatusType.WAITING.id); |
| | | } |
| | | } |
| | | |
| | | private void moveZ(int sourcePosZ, int destinationPosZ, int station) { |
| | | if(destinationPosZ - sourcePosZ > 0) { |
| | | int moveLength = destinationPosZ - sourcePosZ; |
| | | int initSourcePosZ = sourcePosZ; |
| | | for(int i = 0; i < moveLength; i++) { |
| | | initSourcePosZ++; |
| | | if(station == 1) { |
| | | this.crnStatus.setLevel(initSourcePosZ); |
| | | }else { |
| | | this.crnStatus.setLevelTwo(initSourcePosZ); |
| | | } |
| | | sleep(1000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | } |
| | | }else { |
| | | int moveLength = sourcePosZ - destinationPosZ; |
| | | int initSourcePosZ = sourcePosZ; |
| | | for(int i = 0; i < moveLength; i++) { |
| | | initSourcePosZ--; |
| | | if(station == 1) { |
| | | this.crnStatus.setLevel(initSourcePosZ); |
| | | }else { |
| | | this.crnStatus.setLevelTwo(initSourcePosZ); |
| | | } |
| | | this.crnStatus.setLevel(initSourcePosZ); |
| | | sleep(1000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void moveY(int sourcePosY, int destinationPosY, int station) { |
| | | if(destinationPosY - sourcePosY > 0) { |
| | | int moveLength = destinationPosY - sourcePosY; |
| | | int initSourcePosY = sourcePosY; |
| | | for(int i = 0; i < moveLength; i++) { |
| | | initSourcePosY++; |
| | | if(station == 1) { |
| | | this.crnStatus.setBay(initSourcePosY); |
| | | }else { |
| | | this.crnStatus.setBayTwo(initSourcePosY); |
| | | } |
| | | sleep(1000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | } |
| | | }else { |
| | | int moveLength = sourcePosY - destinationPosY; |
| | | int initSourcePosY = sourcePosY; |
| | | for(int i = 0; i < moveLength; i++) { |
| | | initSourcePosY--; |
| | | if(station == 1) { |
| | | this.crnStatus.setBay(initSourcePosY); |
| | | }else { |
| | | this.crnStatus.setBayTwo(initSourcePosY); |
| | | } |
| | | sleep(1000); |
| | | if (Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void sleep(long ms) { |
| | | try { |
| | | Thread.sleep(ms); |
| | | } catch (InterruptedException e) { |
| | | Thread.currentThread().interrupt(); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | package com.zy.core.network.real; |
| | | |
| | | import HslCommunication.Core.Types.OperateResult; |
| | | import HslCommunication.Core.Types.OperateResultExOne; |
| | | import HslCommunication.Profinet.Siemens.SiemensPLCS; |
| | | import HslCommunication.Profinet.Siemens.SiemensS7Net; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.BasCrnpOpt; |
| | | import com.zy.asrs.entity.DeviceConfig; |
| | | import com.zy.asrs.service.BasCrnpOptService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.News; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.network.api.ZyDualCrnConnectApi; |
| | | import com.zy.core.network.entity.ZyDualCrnStatusEntity; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.Date; |
| | | |
| | | public class ZyDualCrnRealConnect implements ZyDualCrnConnectApi { |
| | | |
| | | private SiemensS7Net siemensNet; |
| | | private DeviceConfig deviceConfig; |
| | | |
| | | public ZyDualCrnRealConnect(DeviceConfig deviceConfig) { |
| | | this.deviceConfig = deviceConfig; |
| | | } |
| | | |
| | | public boolean connect() { |
| | | boolean connected = false; |
| | | siemensNet = new SiemensS7Net(SiemensPLCS.S1200, deviceConfig.getIp()); |
| | | OperateResult connect = siemensNet.ConnectServer(); |
| | | if(connect.IsSuccess){ |
| | | connected = true; |
| | | OutputQueue.CRN.offer(MessageFormat.format( "ã{0}åå·¥ä½å åæºplcè¿æ¥æå ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); |
| | | News.info("SiemensDualCrn åå·¥ä½å åæºplcè¿æ¥æå ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()); |
| | | } else { |
| | | OutputQueue.CRN.offer(MessageFormat.format("ã{0}åå·¥ä½å åæºplcè¿æ¥å¤±è´¥ï¼ï¼ï¼ ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); |
| | | News.error("SiemensDualCrn åå·¥ä½å åæºplcè¿æ¥å¤±è´¥ï¼ï¼ï¼ ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()); |
| | | } |
| | | // siemensNet.ConnectClose(); |
| | | return connected; |
| | | } |
| | | |
| | | @Override |
| | | public boolean disconnect() { |
| | | siemensNet.ConnectClose(); |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public ZyDualCrnStatusEntity getStatus() { |
| | | try { |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66); |
| | | if (result.IsSuccess) { |
| | | ZyDualCrnStatusEntity crnStatus = new ZyDualCrnStatusEntity(); |
| | | crnStatus.setCrnNo(deviceConfig.getDeviceNo()); |
| | | crnStatus.setMode((int) siemensNet.getByteTransform().TransInt16(result.Content, 0)); |
| | | |
| | | //å·¥ä½1 |
| | | crnStatus.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, 2)); |
| | | crnStatus.setStatus((int) siemensNet.getByteTransform().TransInt16(result.Content, 4)); |
| | | crnStatus.setBay((int) siemensNet.getByteTransform().TransInt16(result.Content, 6)); |
| | | crnStatus.setLevel((int) siemensNet.getByteTransform().TransInt16(result.Content, 8)); |
| | | crnStatus.setForkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 26)); |
| | | |
| | | //å·¥ä½2 |
| | | crnStatus.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16)); |
| | | crnStatus.setBayTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18)); |
| | | crnStatus.setLevelTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20)); |
| | | crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 22)); |
| | | crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 24)); |
| | | crnStatus.setWalkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 28)); |
| | | |
| | | crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 18)); |
| | | crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 20)); |
| | | crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 22)); |
| | | crnStatus.setTemp3((int) siemensNet.getByteTransform().TransInt16(result.Content, 24)); |
| | | crnStatus.setTemp4((int) siemensNet.getByteTransform().TransInt16(result.Content, 26)); |
| | | crnStatus.setXSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 28)); |
| | | crnStatus.setYSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 32)); |
| | | crnStatus.setZSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 36)); |
| | | crnStatus.setXDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 40)); |
| | | crnStatus.setYDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 44)); |
| | | crnStatus.setXDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 48)); |
| | | crnStatus.setYDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 52)); |
| | | |
| | | return crnStatus; |
| | | } else { |
| | | OutputQueue.CRN.offer(MessageFormat.format("ã{0}ã读ååå·¥ä½å åæºplcç¶æä¿¡æ¯å¤±è´¥ ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); |
| | | News.error("SiemensCrn 读ååå·¥ä½å åæºplcç¶æä¿¡æ¯å¤±è´¥ ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | OutputQueue.CRN.offer(MessageFormat.format("ã{0}ã读ååå·¥ä½å åæºplcç¶æä¿¡æ¯å¤±è´¥ ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); |
| | | News.error("SiemensCrn 读ååå·¥ä½å åæºplcç¶æä¿¡æ¯å¤±è´¥ ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public CommandResponse sendCommand(DualCrnCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | if (null == command) { |
| | | News.error("åå·¥ä½å åæºåå
¥å½ä»¤ä¸ºç©º"); |
| | | response.setMessage("åå·¥ä½å åæºåå
¥å½ä»¤ä¸ºç©º"); |
| | | return response; |
| | | } |
| | | |
| | | String address = "DB100.0"; |
| | | if (command.getStation() == 1) { |
| | | //å·¥ä½1 |
| | | address = "DB100.0"; |
| | | }else { |
| | | //å·¥ä½2 |
| | | address = "DB100.20"; |
| | | } |
| | | |
| | | int writeAck = 0; |
| | | boolean ackResult = false; |
| | | do { |
| | | OperateResult resultAck = siemensNet.Write(address, (short) 0); |
| | | if (resultAck.IsSuccess) { |
| | | Thread.sleep(200); |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 2); |
| | | short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); |
| | | if (ack != 0) { |
| | | writeAck++; |
| | | } else { |
| | | News.info("åå·¥ä½å åæºå½ä»¤ä¸å[id:{}] >>>>> {}", command.getCrnNo(), "ackå¤ä½å®æ"); |
| | | ackResult = true; |
| | | break; |
| | | } |
| | | } |
| | | } while (writeAck < 5); |
| | | |
| | | if (!ackResult) { |
| | | response.setMessage("åå·¥ä½å åæºå½ä»¤ä¸å[id:{}] >>>>> {}" + command.getCrnNo() + "ackå¤ä½å¤±è´¥"); |
| | | return response; |
| | | } |
| | | |
| | | short[] array = new short[10]; |
| | | array[0] = command.getAckFinish(); |
| | | array[1] = command.getTaskNo(); |
| | | array[2] = command.getTaskMode(); |
| | | array[3] = command.getSourcePosX(); |
| | | array[4] = command.getSourcePosY(); |
| | | array[5] = command.getSourcePosZ(); |
| | | array[6] = command.getDestinationPosX(); |
| | | array[7] = command.getDestinationPosY(); |
| | | array[8] = command.getDestinationPosZ(); |
| | | array[9] = command.getCommand(); |
| | | |
| | | OperateResult result = null; |
| | | int idx = 0; |
| | | do { |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 20); |
| | | if (resultRead.IsSuccess) { |
| | | if (command.getAckFinish() == 0) { |
| | | short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2); |
| | | short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4); |
| | | short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6); |
| | | short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8); |
| | | short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10); |
| | | short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12); |
| | | short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14); |
| | | short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16); |
| | | if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) { |
| | | result = siemensNet.Write(address, array); |
| | | } else { |
| | | break; |
| | | } |
| | | } else { |
| | | short ackFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); |
| | | if (ackFinish != command.getAckFinish()) { |
| | | result = siemensNet.Write(address, array); |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | idx++; |
| | | Thread.sleep(500); |
| | | } while (idx < 5); |
| | | |
| | | if (command.getAckFinish() == 0) { |
| | | short commandFinish = 1; |
| | | int i = 0; |
| | | do { |
| | | OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 4); |
| | | OperateResultExOne<byte[]> resultReadConfirm = siemensNet.Read(address + 18, (short) 2); |
| | | if (resultRead.IsSuccess && resultReadConfirm.IsSuccess) { |
| | | short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2); |
| | | short confirm = siemensNet.getByteTransform().TransInt16(resultReadConfirm.Content, 0); |
| | | if (taskNo != 0 && confirm == 0) { |
| | | result = siemensNet.Write(address + 18, commandFinish); |
| | | } |
| | | } |
| | | i++; |
| | | Thread.sleep(500); |
| | | } while (i < 5); |
| | | } |
| | | |
| | | if (result != null && result.IsSuccess) { |
| | | News.info("SiemensDualCrn åå·¥ä½å åæºå½ä»¤ä¸å[id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command)); |
| | | OutputQueue.CRN.offer(MessageFormat.format("ã{0}ã[id:{1}] >>>>> å½ä»¤ä¸åï¼ {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command))); |
| | | response.setResult(true); |
| | | response.setMessage("å½ä»¤ä¸åæå"); |
| | | } else { |
| | | News.error("SiemensDualCrn åå·¥ä½å åæºåå
¥å åæºplcæ°æ®å¤±è´¥ ===>> [id:{}]", command.getCrnNo()); |
| | | OutputQueue.CRN.offer(MessageFormat.format("ã{0}ãåå
¥å åæºplcæ°æ®å¤±è´¥ ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo())); |
| | | response.setResult(false); |
| | | response.setMessage("å½ä»¤ä¸å失败"); |
| | | } |
| | | |
| | | return response; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | }finally { |
| | | String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ()); |
| | | String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ()); |
| | | |
| | | // æ¥å¿è®°å½ |
| | | BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class); |
| | | BasCrnpOpt basCrnpOpt = new BasCrnpOpt( |
| | | command.getTaskNo().intValue(), // ä»»å¡å· |
| | | command.getCrnNo(), // å åæº[é空] |
| | | new Date(), // ä¸åæ¶é´ |
| | | String.valueOf(command.getTaskMode()), // æ¨¡å¼ |
| | | sourceLocNo, //æºåºä½ |
| | | targetLocNo, //ç®æ åºä½ |
| | | null, // ä¿®æ¹æ¶é´ |
| | | null, // ä¿®æ¹äººå |
| | | null, // 夿³¨ |
| | | JSON.toJSONString(command), // æä»¤ |
| | | JSON.toJSONString(getStatus()), // ç³»ç»ç¶æ |
| | | 1, // ä¸åç¶æ{0:æªä¸å,1:å·²ä¸å} |
| | | JSON.toJSONString(response) // ååº |
| | | ); |
| | | bean.insert(basCrnpOpt); |
| | | } |
| | | return response; |
| | | } |
| | | } |
| New file |
| | |
| | | package com.zy.core.thread; |
| | | |
| | | import com.zy.core.ThreadHandler; |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.model.protocol.DualCrnProtocol; |
| | | |
| | | public interface DualCrnThread extends ThreadHandler { |
| | | |
| | | DualCrnProtocol getStatus(); |
| | | |
| | | DualCrnCommand getPickAndPutCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo, Integer station);//åæ¾è´§ |
| | | |
| | | DualCrnCommand getMoveCommand(String targetLocNo, Integer taskNo, Integer crnNo);//ç§»å¨ |
| | | |
| | | DualCrnCommand getResetCommand(Integer crnNo, Integer station);//å¤ä½ |
| | | |
| | | CommandResponse sendCommand(DualCrnCommand command);//ä¸åå½ä»¤ |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.core.thread.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.BasDualCrnp; |
| | | import com.zy.asrs.entity.BasDualCrnpOpt; |
| | | import com.zy.asrs.entity.DeviceConfig; |
| | | import com.zy.asrs.entity.DeviceDataLog; |
| | | import com.zy.asrs.service.BasDualCrnpOptService; |
| | | import com.zy.asrs.service.BasDualCrnpService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.utils.RedisUtil; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.enums.CrnTaskModeType; |
| | | import com.zy.core.enums.RedisKeyType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.CommandResponse; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.DualCrnCommand; |
| | | import com.zy.core.model.protocol.DualCrnProtocol; |
| | | import com.zy.core.network.DeviceConnectPool; |
| | | import com.zy.core.network.ZyDualCrnConnectDriver; |
| | | import com.zy.core.network.entity.ZyDualCrnStatusEntity; |
| | | import com.zy.core.thread.DualCrnThread; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.Date; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.ScheduledExecutorService; |
| | | import java.util.concurrent.ThreadFactory; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * åå·¥ä½å åæºçº¿ç¨ |
| | | */ |
| | | @Data |
| | | @Slf4j |
| | | public class ZySiemensDualCrnThread implements Runnable, DualCrnThread { |
| | | |
| | | private DeviceConfig deviceConfig; |
| | | private RedisUtil redisUtil; |
| | | private ZyDualCrnConnectDriver zyDualCrnConnectDriver; |
| | | private DualCrnProtocol crnProtocol; |
| | | private int deviceLogCollectTime = 200; |
| | | private boolean resetFlag = false; |
| | | private volatile boolean closed = false; |
| | | private ScheduledExecutorService readExecutor; |
| | | private ScheduledExecutorService processExecutor; |
| | | |
| | | public ZySiemensDualCrnThread(DeviceConfig deviceConfig, RedisUtil redisUtil) { |
| | | this.deviceConfig = deviceConfig; |
| | | this.redisUtil = redisUtil; |
| | | } |
| | | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | this.connect(); |
| | | this.initCrn(); |
| | | readExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { |
| | | @Override |
| | | public Thread newThread(Runnable r) { |
| | | Thread t = new Thread(r); |
| | | t.setName("DualCrnReader-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | return t; |
| | | } |
| | | }); |
| | | readExecutor.scheduleAtFixedRate(() -> { |
| | | if (closed || Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | try { |
| | | deviceLogCollectTime = Utils.getDeviceLogCollectTime(); |
| | | readStatus(); |
| | | } catch (Exception e) { |
| | | log.error("DualCrnThread Fail", e); |
| | | } |
| | | }, 0, 200, TimeUnit.MILLISECONDS); |
| | | |
| | | processExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { |
| | | @Override |
| | | public Thread newThread(Runnable r) { |
| | | Thread t = new Thread(r); |
| | | t.setName("DualCrnWriter-" + deviceConfig.getDeviceNo()); |
| | | t.setDaemon(true); |
| | | return t; |
| | | } |
| | | }); |
| | | processExecutor.scheduleAtFixedRate(() -> { |
| | | if (closed || Thread.currentThread().isInterrupted()) { |
| | | return; |
| | | } |
| | | try { |
| | | int step = 1; |
| | | Task task = MessageQueue.poll(SlaveType.DualCrn, deviceConfig.getDeviceNo()); |
| | | if (task != null) { |
| | | step = task.getStep(); |
| | | } |
| | | if (step == 2 && task != null) { |
| | | sendCommand((DualCrnCommand) task.getData()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | }, 0, 200, TimeUnit.MILLISECONDS); |
| | | } |
| | | |
| | | /** |
| | | * åå§åå åæºç¶æ |
| | | */ |
| | | private void initCrn() { |
| | | if (null == crnProtocol) { |
| | | crnProtocol = new DualCrnProtocol(); |
| | | crnProtocol.setCrnNo(deviceConfig.getDeviceNo()); |
| | | } |
| | | crnProtocol.setMode(-1); |
| | | |
| | | //å·¥ä½1 |
| | | crnProtocol.setTaskNo(0); |
| | | crnProtocol.setStatus(-1); |
| | | crnProtocol.setBay(0); |
| | | crnProtocol.setLevel(0); |
| | | crnProtocol.setForkPos(-1); |
| | | crnProtocol.setLoaded(0); |
| | | crnProtocol.setWalkPos(0); |
| | | |
| | | //å·¥ä½2 |
| | | crnProtocol.setTaskNoTwo(0); |
| | | crnProtocol.setStatusTwo(-1); |
| | | crnProtocol.setBayTwo(0); |
| | | crnProtocol.setLevelTwo(0); |
| | | crnProtocol.setForkPosTwo(-1); |
| | | crnProtocol.setLoadedTwo(0); |
| | | crnProtocol.setWalkPosTwo(0); |
| | | |
| | | crnProtocol.setAlarm(0); |
| | | crnProtocol.setXSpeed(0); |
| | | crnProtocol.setYSpeed(0); |
| | | crnProtocol.setZSpeed(0); |
| | | crnProtocol.setXDistance(0); |
| | | crnProtocol.setYDistance(0); |
| | | crnProtocol.setXDuration(0); |
| | | crnProtocol.setYDuration(0); |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | zyDualCrnConnectDriver = new ZyDualCrnConnectDriver(deviceConfig); |
| | | zyDualCrnConnectDriver.start(); |
| | | DeviceConnectPool.put(SlaveType.Crn, deviceConfig.getDeviceNo(), zyDualCrnConnectDriver); |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 读åç¶æ |
| | | */ |
| | | private void readStatus(){ |
| | | ZyDualCrnStatusEntity crnStatus = zyDualCrnConnectDriver.getStatus(); |
| | | if (crnStatus == null) { |
| | | OutputQueue.DUAL_CRN.offer(MessageFormat.format("ã{0}ã读ååå·¥ä½å åæºplcç¶æä¿¡æ¯å¤±è´¥ ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort())); |
| | | return; |
| | | } |
| | | |
| | | crnProtocol.setMode(crnStatus.getMode()); |
| | | |
| | | //å·¥ä½1 |
| | | crnProtocol.setTaskNo(crnStatus.getTaskNo()); |
| | | crnProtocol.setStatus(crnStatus.getStatus()); |
| | | crnProtocol.setBay(crnStatus.getBay()); |
| | | crnProtocol.setLevel(crnStatus.getLevel()); |
| | | crnProtocol.setForkPos(crnStatus.getForkPos()); |
| | | crnProtocol.setLoaded(crnStatus.getLoaded()); |
| | | crnProtocol.setWalkPos(crnStatus.getWalkPos()); |
| | | |
| | | //å·¥ä½2 |
| | | crnProtocol.setTaskNoTwo(crnStatus.getTaskNoTwo()); |
| | | crnProtocol.setStatusTwo(crnStatus.getStatusTwo()); |
| | | crnProtocol.setBayTwo(crnStatus.getBayTwo()); |
| | | crnProtocol.setLevelTwo(crnStatus.getLevelTwo()); |
| | | crnProtocol.setForkPosTwo(crnStatus.getForkPosTwo()); |
| | | crnProtocol.setLoadedTwo(crnStatus.getLoadedTwo()); |
| | | crnProtocol.setWalkPosTwo(crnStatus.getWalkPosTwo()); |
| | | |
| | | crnProtocol.setAlarm(crnStatus.getAlarm()); |
| | | crnProtocol.setTemp1(crnStatus.getTemp1()); |
| | | crnProtocol.setTemp2(crnStatus.getTemp2()); |
| | | crnProtocol.setTemp3(crnStatus.getTemp3()); |
| | | crnProtocol.setTemp4(crnStatus.getTemp4()); |
| | | crnProtocol.setXSpeed(crnStatus.getXSpeed()); |
| | | crnProtocol.setYSpeed(crnStatus.getYSpeed()); |
| | | crnProtocol.setZSpeed(crnStatus.getZSpeed()); |
| | | crnProtocol.setXDistance(crnStatus.getXDistance()); |
| | | crnProtocol.setYDistance(crnStatus.getYDistance()); |
| | | crnProtocol.setXDuration(crnStatus.getXDuration()); |
| | | crnProtocol.setYDuration(crnStatus.getYDuration()); |
| | | |
| | | OutputQueue.DUAL_CRN.offer(MessageFormat.format("ã{0}ã[id:{1}] <<<<< 宿¶æ°æ®æ´æ°æå",DateUtils.convert(new Date()), deviceConfig.getDeviceNo())); |
| | | |
| | | if (crnProtocol.getAlarm() > 0) { |
| | | crnProtocol.setLastCommandTime(-1L); |
| | | } |
| | | |
| | | if (crnProtocol.getAlarm() == 0 && crnProtocol.getLastCommandTime() == -1) { |
| | | crnProtocol.setLastCommandTime(System.currentTimeMillis()); |
| | | } |
| | | |
| | | if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > deviceLogCollectTime) { |
| | | //ä¿åæ°æ®è®°å½ |
| | | DeviceDataLog deviceDataLog = new DeviceDataLog(); |
| | | deviceDataLog.setOriginData(JSON.toJSONString(crnStatus)); |
| | | deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol)); |
| | | deviceDataLog.setType(String.valueOf(SlaveType.DualCrn)); |
| | | deviceDataLog.setDeviceNo(crnProtocol.getCrnNo()); |
| | | deviceDataLog.setCreateTime(new Date()); |
| | | |
| | | redisUtil.set(RedisKeyType.DEVICE_LOG_KEY.key + System.currentTimeMillis(), deviceDataLog, 60 * 60 * 24); |
| | | //æ´æ°ééæ¶é´ |
| | | crnProtocol.setDeviceDataLog(System.currentTimeMillis()); |
| | | } |
| | | |
| | | BasDualCrnpService basDualCrnpService = null; |
| | | try { |
| | | basDualCrnpService = SpringUtils.getBean(BasDualCrnpService.class); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | if (basDualCrnpService != null) { |
| | | BasDualCrnp basDualCrnp = basDualCrnpService.selectOne(new EntityWrapper<BasDualCrnp>().eq("crn_no", deviceConfig.getDeviceNo())); |
| | | if(basDualCrnp == null) { |
| | | basDualCrnp = new BasDualCrnp(); |
| | | basDualCrnp.setCrnNo(deviceConfig.getDeviceNo()); |
| | | basDualCrnp.setStatus(1); |
| | | basDualCrnp.setInEnable("N"); |
| | | basDualCrnp.setOutEnable("N"); |
| | | basDualCrnp.setMaxInTask(5); |
| | | basDualCrnp.setMaxOutTask(5); |
| | | basDualCrnp.setCreateTime(new Date()); |
| | | basDualCrnpService.insert(basDualCrnp); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | closed = true; |
| | | ScheduledExecutorService ex = readExecutor; |
| | | if (ex != null) { |
| | | try { ex.shutdownNow(); } catch (Exception ignore) {} |
| | | } |
| | | ScheduledExecutorService px = processExecutor; |
| | | if (px != null) { |
| | | try { px.shutdownNow(); } catch (Exception ignore) {} |
| | | } |
| | | if (zyDualCrnConnectDriver != null) { |
| | | zyDualCrnConnectDriver.close(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public DualCrnProtocol getStatus() { |
| | | return this.crnProtocol; |
| | | } |
| | | |
| | | @Override |
| | | public DualCrnCommand getPickAndPutCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo, Integer station) { |
| | | DualCrnCommand crnCommand = new DualCrnCommand(); |
| | | crnCommand.setCrnNo(crnNo); // å åæºç¼å· |
| | | crnCommand.setTaskNo(taskNo.shortValue()); // å·¥ä½å· |
| | | crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE.id.shortValue()); // 任塿¨¡å¼: åºä½ç§»è½¬ |
| | | crnCommand.setSourcePosX((short) Utils.getRow(sourceLocNo)); // æºåºä½æ |
| | | crnCommand.setSourcePosY((short) Utils.getBay(sourceLocNo)); // æºåºä½å |
| | | crnCommand.setSourcePosZ((short) Utils.getLev(sourceLocNo)); // æºåºä½å± |
| | | crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // ç®æ åºä½æ |
| | | crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // ç®æ åºä½å |
| | | crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // ç®æ åºä½å± |
| | | crnCommand.setStation(station.shortValue());//å·¥ä½ |
| | | crnCommand.setCommand((short) 1); // ä»»å¡ç¡®è®¤ |
| | | return crnCommand; |
| | | } |
| | | |
| | | @Override |
| | | public DualCrnCommand getMoveCommand(String targetLocNo, Integer taskNo, Integer crnNo) { |
| | | DualCrnCommand crnCommand = new DualCrnCommand(); |
| | | crnCommand.setCrnNo(crnNo); // å åæºç¼å· |
| | | crnCommand.setTaskNo(taskNo.shortValue()); // å·¥ä½å· |
| | | crnCommand.setAckFinish((short) 0); // ä»»å¡å®æç¡®è®¤ä½ |
| | | crnCommand.setTaskMode(CrnTaskModeType.CRN_MOVE.id.shortValue()); // 任塿¨¡å¼: å åæºç§»å¨ |
| | | crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // ç®æ åºä½æ |
| | | crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // ç®æ åºä½å |
| | | crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // ç®æ åºä½å± |
| | | crnCommand.setCommand((short) 1); // ä»»å¡ç¡®è®¤ |
| | | return crnCommand; |
| | | } |
| | | |
| | | @Override |
| | | public DualCrnCommand getResetCommand(Integer crnNo, Integer station) { |
| | | DualCrnCommand crnCommand = new DualCrnCommand(); |
| | | crnCommand.setCrnNo(crnNo); // å åæºç¼å· |
| | | crnCommand.setTaskNo((short) 0); // å·¥ä½å· |
| | | crnCommand.setAckFinish((short) 1); // ä»»å¡å®æç¡®è®¤ä½ |
| | | crnCommand.setTaskMode(CrnTaskModeType.NONE.id.shortValue()); // 任塿¨¡å¼ |
| | | crnCommand.setSourcePosX((short)0); // æºåºä½æ |
| | | crnCommand.setSourcePosY((short)0); // æºåºä½å |
| | | crnCommand.setSourcePosZ((short)0); // æºåºä½å± |
| | | crnCommand.setDestinationPosX((short)0); // ç®æ åºä½æ |
| | | crnCommand.setDestinationPosY((short)0); // ç®æ åºä½å |
| | | crnCommand.setDestinationPosZ((short)0); // ç®æ åºä½å± |
| | | crnCommand.setStation(station.shortValue());//å·¥ä½ |
| | | crnCommand.setCommand((short) 1); // ä»»å¡ç¡®è®¤ |
| | | return crnCommand; |
| | | } |
| | | |
| | | @Override |
| | | public synchronized CommandResponse sendCommand(DualCrnCommand command) { |
| | | this.crnProtocol.setLastCommandTime(System.currentTimeMillis()); |
| | | CommandResponse response = null; |
| | | try { |
| | | response = zyDualCrnConnectDriver.sendCommand(command); |
| | | return response; |
| | | } finally { |
| | | String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ()); |
| | | String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ()); |
| | | BasDualCrnpOptService bean = SpringUtils.getBean(BasDualCrnpOptService.class); |
| | | ZyDualCrnStatusEntity statusEntity = zyDualCrnConnectDriver.getStatus(); |
| | | BasDualCrnpOpt basDualCrnpOpt = new BasDualCrnpOpt( |
| | | command.getTaskNo().intValue(), |
| | | command.getCrnNo(), |
| | | new Date(), |
| | | String.valueOf(command.getTaskMode()), |
| | | sourceLocNo, |
| | | targetLocNo, |
| | | null, |
| | | null, |
| | | null, |
| | | JSON.toJSONString(command), |
| | | JSON.toJSONString(statusEntity), |
| | | 1, |
| | | JSON.toJSONString(response) |
| | | ); |
| | | if (bean != null) { |
| | | bean.insert(basDualCrnpOpt); |
| | | } |
| | | } |
| | | } |
| | | } |
| 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.BasDualCrnpErrLogMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasDualCrnpErrLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="wrk_no" property="wrkNo" /> |
| | | <result column="start_time" property="startTime" /> |
| | | <result column="end_time" property="endTime" /> |
| | | <result column="wrk_sts" property="wrkSts" /> |
| | | <result column="io_type" property="ioType" /> |
| | | <result column="crn_no" property="crnNo" /> |
| | | <result column="loc_no" property="locNo" /> |
| | | <result column="sta_no" property="staNo" /> |
| | | <result column="source_sta_no" property="sourceStaNo" /> |
| | | <result column="source_loc_no" property="sourceLocNo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="err_code" property="errCode" /> |
| | | <result column="error" property="error" /> |
| | | <result column="status" property="status" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="system_status" property="systemStatus" /> |
| | | |
| | | </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.BasDualCrnpErrMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasDualCrnpErr"> |
| | | <id column="id" property="id" /> |
| | | <result column="error_code" property="errorCode" /> |
| | | <result column="err_name" property="errName" /> |
| | | <result column="modi_user" property="modiUser" /> |
| | | <result column="modi_time" property="modiTime" /> |
| | | <result column="appe_user" property="appeUser" /> |
| | | <result column="appe_time" property="appeTime" /> |
| | | |
| | | </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.BasDualCrnpMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasDualCrnp"> |
| | | <id column="crn_no" property="crnNo" /> |
| | | <result column="status" property="status" /> |
| | | <result column="wrk_no" property="wrkNo" /> |
| | | <result column="in_enable" property="inEnable" /> |
| | | <result column="out_enable" property="outEnable" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="control_rows" property="controlRows" /> |
| | | <result column="deep_rows" property="deepRows" /> |
| | | <result column="in_station_list" property="inStationList" /> |
| | | <result column="out_station_list" property="outStationList" /> |
| | | <result column="max_in_task" property="maxInTask" /> |
| | | <result column="max_out_task" property="maxOutTask" /> |
| | | |
| | | </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.BasDualCrnpOptMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasDualCrnpOpt"> |
| | | <id column="id" property="id" /> |
| | | <result column="wrk_no" property="wrkNo" /> |
| | | <result column="crn_no" property="crnNo" /> |
| | | <result column="send_time" property="sendTime" /> |
| | | <result column="mode" property="mode" /> |
| | | <result column="source_loc_no" property="sourceLocNo" /> |
| | | <result column="target_loc_no" property="targetLocNo" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="command" property="command" /> |
| | | <result column="system_status" property="systemStatus" /> |
| | | <result column="send" property="send" /> |
| | | <result column="response" property="response" /> |
| | | |
| | | </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: '#basDualCrnp', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/basDualCrnp/list/auth', |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'crnNo', align: 'center',title: 'ç¼å·'} |
| | | ,{field: 'status$', align: 'center',title: 'ç¶æ'} |
| | | ,{field: 'wrkNo', align: 'center',title: 'å·¥ä½å·'} |
| | | ,{field: 'inEnable', align: 'center',title: 'å¯å
¥(checkBox)'} |
| | | ,{field: 'outEnable', align: 'center',title: 'å¯åº(checkBox)'} |
| | | // ,{field: 'createBy', align: 'center',title: 'å建人å'} |
| | | // ,{field: 'createTime$', align: 'center',title: 'å建æ¶é´'} |
| | | // ,{field: 'updateBy', align: 'center',title: 'ä¿®æ¹äººå'} |
| | | // ,{field: 'updateTime$', align: 'center',title: 'ä¿®æ¹æ¶é´'} |
| | | ,{field: 'memo', align: 'center',title: '夿³¨'} |
| | | ,{field: 'controlRows', align: 'center',title: 'æ§å¶åºä½æå·'} |
| | | ,{field: 'deepRows', align: 'center',title: 'æ·±åºä½æå·'} |
| | | ,{field: 'inStationList', align: 'center',title: 'å
¥åºç«ç¹'} |
| | | ,{field: 'outStationList', align: 'center',title: 'åºåºç«ç¹'} |
| | | ,{field: 'maxInTask', align: 'center',title: 'æå¤§å
¥åºä»»å¡æ°'} |
| | | ,{field: 'maxOutTask', 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(basDualCrnp)', 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(basDualCrnp)', 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.crnNo; |
| | | })); |
| | | 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 = { |
| | | 'basDualCrnp': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/basDualCrnp/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(basDualCrnp)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | | showEditModel(data); |
| | | break; |
| | | case "del": |
| | | del([data.crnNo]); |
| | | 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+"/basDualCrnp/"+(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+"/basDualCrnp/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 |
| | |
| | | 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: '#basDualCrnpErr', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/basDualCrnpErr/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: 'errorCode', align: 'center',title: 'å¼å¸¸ç '} |
| | | ,{field: 'errName', align: 'center',title: 'å¼å¸¸'} |
| | | ,{field: 'modiUser$', align: 'center',title: 'ä¿®æ¹äººå'} |
| | | ,{field: 'modiTime$', align: 'center',title: 'ä¿®æ¹æ¶é´'} |
| | | ,{field: 'appeUser$', align: 'center',title: 'æ·»å 人å'} |
| | | ,{field: 'appeTime$', 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(basDualCrnpErr)', 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(basDualCrnpErr)', 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 = { |
| | | 'basDualCrnpErr': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/basDualCrnpErr/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(basDualCrnpErr)', 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+"/basDualCrnpErr/"+(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+"/basDualCrnpErr/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: '#modiTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['modiTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#appeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['appeTime\\$']: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: '#basDualCrnpErrLog', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/basDualCrnpErrLog/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: 'wrkNo', align: 'center',title: 'å·¥ä½å·'} |
| | | ,{field: 'startTime$', align: 'center',title: 'åçæ¶é´'} |
| | | ,{field: 'endTime$', align: 'center',title: 'ç»ææ¶é´'} |
| | | ,{field: 'wrkSts$', align: 'center',title: 'å·¥ä½ç¶æ'} |
| | | ,{field: 'ioType$', align: 'center',title: 'å
¥åºåºç±»å'} |
| | | ,{field: 'crnNo', align: 'center',title: 'å åæºå·'} |
| | | ,{field: 'locNo', align: 'center',title: 'ç®æ åºä½'} |
| | | ,{field: 'staNo', align: 'center',title: 'ç®æ ç«'} |
| | | ,{field: 'sourceStaNo', align: 'center',title: 'æºç«'} |
| | | ,{field: 'sourceLocNo', align: 'center',title: 'æºåºä½'} |
| | | ,{field: 'barcode', align: 'center',title: 'æ¡ç '} |
| | | ,{field: 'errCode', align: 'center',title: 'å¼å¸¸ç '} |
| | | ,{field: 'error', align: 'center',title: 'å¼å¸¸'} |
| | | ,{field: 'status$', align: 'center',title: 'å¼å¸¸æ
åµ'} |
| | | ,{field: 'createTime$', align: 'center',title: 'æ·»å æ¶é´'} |
| | | ,{field: 'createBy$', align: 'center',title: 'æ·»å 人å'} |
| | | ,{field: 'updateTime$', align: 'center',title: 'ä¿®æ¹æ¶é´'} |
| | | ,{field: 'updateBy$', align: 'center',title: 'ä¿®æ¹äººå'} |
| | | ,{field: 'memo', align: 'center',title: '夿³¨'} |
| | | ,{field: 'systemStatus', 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(basDualCrnpErrLog)', 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(basDualCrnpErrLog)', 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 = { |
| | | 'basDualCrnpErrLog': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/basDualCrnpErrLog/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(basDualCrnpErrLog)', 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+"/basDualCrnpErrLog/"+(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+"/basDualCrnpErrLog/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: '#startTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['startTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#endTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['endTime\\$']:null |
| | | }); |
| | | 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 |
| | |
| | | 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: '#basDualCrnpOpt', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/basDualCrnpOpt/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: 'wrkNo', align: 'center',title: 'å·¥ä½å·'} |
| | | ,{field: 'crnNo', align: 'center',title: 'å åæºå·'} |
| | | ,{field: 'sendTime$', align: 'center',title: 'ä¸åæ¶é´'} |
| | | ,{field: 'mode', align: 'center',title: 'ä½ä¸'} |
| | | ,{field: 'sourceLocNo', align: 'center',title: 'èµ·ç¹åºä½'} |
| | | ,{field: 'targetLocNo', align: 'center',title: 'ç®æ åºä½'} |
| | | ,{field: 'updateTime$', align: 'center',title: 'ä¿®æ¹æ¶é´'} |
| | | ,{field: 'updateBy$', align: 'center',title: 'ä¿®æ¹äººå'} |
| | | ,{field: 'memo', align: 'center',title: '夿³¨'} |
| | | ,{field: 'command', align: 'center',title: 'å½ä»¤'} |
| | | ,{field: 'systemStatus', align: 'center',title: 'ç³»ç»ç¶æ'} |
| | | ,{field: 'send$', align: 'center',title: 'ä¸åç¶æ'} |
| | | ,{field: 'response', 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(basDualCrnpOpt)', 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(basDualCrnpOpt)', 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 = { |
| | | 'basDualCrnpOpt': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/basDualCrnpOpt/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(basDualCrnpOpt)', 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+"/basDualCrnpOpt/"+(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+"/basDualCrnpOpt/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: '#sendTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['sendTime\\$']: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="basDualCrnp" lay-filter="basDualCrnp"></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/basDualCrnp/basDualCrnp.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="wrkNo" placeholder="请è¾å
¥å·¥ä½å·"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">å¯å
¥(checkBox): </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="inEnable" placeholder="请è¾å
¥å¯å
¥(checkBox)"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">å¯åº(checkBox): </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="outEnable" placeholder="请è¾å
¥å¯åº(checkBox)"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label">å建人å: </label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input class="layui-input" name="createBy" 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="updateBy" 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="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="controlRows" placeholder="请è¾å
¥æ§å¶åºä½æå·"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">æ·±åºä½æå·: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="deepRows" placeholder="请è¾å
¥æ·±åºä½æå·"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">å
¥åºç«ç¹: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="inStationList" placeholder="请è¾å
¥å
¥åºç«ç¹"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">åºåºç«ç¹: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="outStationList" placeholder="请è¾å
¥åºåºç«ç¹"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">æå¤§å
¥åºä»»å¡æ°: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="maxInTask" placeholder="请è¾å
¥æå¤§å
¥åºä»»å¡æ°"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">æå¤§åºåºä»»å¡æ°: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="maxOutTask" 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/cool.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/common.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <!-- 详æ
--> |
| | | <div id="data-detail" class="layer_self_wrap"> |
| | | <form id="detail" class="layui-form"> |
| | | <!-- |
| | | <div class="layui-inline" style="display: none"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" placeholder="ç¼å·"> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="crnNo" class="layui-input" type="text" onkeyup="check(this.id, 'basDualCrnp')" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç¶ããæï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <select id="status"> |
| | | <option value="" style="display: none"></option> |
| | | <option value="1">æ£å¸¸</option> |
| | | <option value="0">ç¦ç¨</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å·¥ ä½ å·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="wrkNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">å¯å
¥(checkBox)ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="inEnable" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">å¯åº(checkBox)ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="outEnable" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å建人åï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="createBy" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å建æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="createTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹äººåï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="updateBy" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="updateTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¤ããæ³¨ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="memo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">æ§å¶åºä½æå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="controlRows" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ·±åºä½æå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="deepRows" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å
¥åºç«ç¹ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="inStationList" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">åºåºç«ç¹ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="outStationList" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">æå¤§å
¥åºä»»å¡æ°ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="maxInTask" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">æå¤§åºåºä»»å¡æ°ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="maxOutTask" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <hr class="layui-bg-gray"> |
| | | |
| | | <div id="data-detail-btn" class="layui-btn-container layui-form-item"> |
| | | <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">ä¿å</div> |
| | | <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">ä¿®æ¹</div> |
| | | <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">å
³é</div> |
| | | </div> |
| | | |
| | | <div id="prompt"> |
| | | 温馨æç¤ºï¼è¯·ä»ç»å¡«åç¸å
³ä¿¡æ¯ï¼<span class="extrude"><span class="not-null">*</span> 为å¿
å¡«é项ã</span> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </body> |
| | | <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/basDualCrnp/basDualCrnp.js" charset="utf-8"></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="basDualCrnpErr" lay-filter="basDualCrnpErr"></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/basDualCrnpErr/basDualCrnpErr.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="errorCode" placeholder="请è¾å
¥å¼å¸¸ç "> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">å¼å¸¸: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="errName" 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 cool-auto-complete"> |
| | | <input class="layui-input" name="appeUser" placeholder="请è¾å
¥æ·»å 人å" style="display: none"> |
| | | <input id="appeUser$" name="appeUser$" 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="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" 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="appeTime" id="appeTime$" 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/cool.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/common.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <!-- 详æ
--> |
| | | <div id="data-detail" class="layer_self_wrap"> |
| | | <form id="detail" class="layui-form"> |
| | | <!-- |
| | | <div class="layui-inline" style="display: none"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" placeholder="ç¼å·"> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'basDualCrnpErr')" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¼ å¸¸ ç ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="errorCode" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¼ãã常ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="errName" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹äººåï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="modiUser" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="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-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="modiTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ·»å 人åï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="appeUser" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="appeUser$" 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="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ·»å æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="appeTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <hr class="layui-bg-gray"> |
| | | |
| | | <div id="data-detail-btn" class="layui-btn-container layui-form-item"> |
| | | <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">ä¿å</div> |
| | | <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">ä¿®æ¹</div> |
| | | <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">å
³é</div> |
| | | </div> |
| | | |
| | | <div id="prompt"> |
| | | 温馨æç¤ºï¼è¯·ä»ç»å¡«åç¸å
³ä¿¡æ¯ï¼<span class="extrude"><span class="not-null">*</span> 为å¿
å¡«é项ã</span> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </body> |
| | | <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/basDualCrnpErr/basDualCrnpErr.js" charset="utf-8"></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="basDualCrnpErrLog" lay-filter="basDualCrnpErrLog"></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/basDualCrnpErrLog/basDualCrnpErrLog.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="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="startTime" id="startTime$" placeholder="请è¾å
¥åçæ¶é´"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">ç»ææ¶é´: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="endTime" id="endTime$" 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 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="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="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="staNo" placeholder="请è¾å
¥ç®æ ç«"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">æºç«: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="sourceStaNo" placeholder="请è¾å
¥æºç«"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">æºåºä½: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="sourceLocNo" 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="errCode" placeholder="请è¾å
¥å¼å¸¸ç "> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">å¼å¸¸: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="error" placeholder="请è¾å
¥å¼å¸¸"> |
| | | </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> |
| | | </select> |
| | | </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="createBy" placeholder="请è¾å
¥æ·»å 人å" style="display: none"> |
| | | <input id="createBy$" name="createBy$" 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="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" 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="updateTime" id="updateTime$" 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="updateBy" placeholder="请è¾å
¥ä¿®æ¹äººå" style="display: none"> |
| | | <input id="updateBy$" name="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" 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="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="systemStatus" 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/cool.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/common.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <!-- 详æ
--> |
| | | <div id="data-detail" class="layer_self_wrap"> |
| | | <form id="detail" class="layui-form"> |
| | | <!-- |
| | | <div class="layui-inline" style="display: none"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" placeholder="ç¼å·"> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'basDualCrnpErrLog')" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å·¥ ä½ å·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="wrkNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">åçæ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="startTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç»ææ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="endTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å·¥ä½ç¶æï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="wrkSts" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="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-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å
¥åºåºç±»åï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="ioType" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="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-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å åæºå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="crnNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç®æ åºä½ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="locNo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç® æ ç«ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="staNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æºããç«ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="sourceStaNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æº åº ä½ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="sourceLocNo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ¡ããç ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="barcode" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¼ å¸¸ ç ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="errCode" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¼ãã常ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="error" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¼å¸¸æ
åµï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <select id="status"> |
| | | <option value="" style="display: none"></option> |
| | | <option value="1">æªå¤ç</option> |
| | | <option value="2">已修å¤</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ·»å æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="createTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">æ·»å 人åï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="createBy" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="createBy$" 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="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="updateTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹äººåï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="updateBy" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¤ããæ³¨ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="memo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label" style="font-size: x-small">ç³»ç»ç¶ææ°æ®ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="systemStatus" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <hr class="layui-bg-gray"> |
| | | |
| | | <div id="data-detail-btn" class="layui-btn-container layui-form-item"> |
| | | <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">ä¿å</div> |
| | | <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">ä¿®æ¹</div> |
| | | <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">å
³é</div> |
| | | </div> |
| | | |
| | | <div id="prompt"> |
| | | 温馨æç¤ºï¼è¯·ä»ç»å¡«åç¸å
³ä¿¡æ¯ï¼<span class="extrude"><span class="not-null">*</span> 为å¿
å¡«é项ã</span> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </body> |
| | | <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/basDualCrnpErrLog/basDualCrnpErrLog.js" charset="utf-8"></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="basDualCrnpOpt" lay-filter="basDualCrnpOpt"></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/basDualCrnpOpt/basDualCrnpOpt.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="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="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="sendTime" id="sendTime$" placeholder="请è¾å
¥ä¸åæ¶é´"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">ä½ä¸: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="mode" placeholder="请è¾å
¥ä½ä¸"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">èµ·ç¹åºä½: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="sourceLocNo" placeholder="请è¾å
¥èµ·ç¹åºä½"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">ç®æ åºä½: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="targetLocNo" 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 cool-auto-complete"> |
| | | <input class="layui-input" name="updateBy" placeholder="请è¾å
¥ä¿®æ¹äººå" style="display: none"> |
| | | <input id="updateBy$" name="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" 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="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="command" placeholder="请è¾å
¥å½ä»¤"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">ç³»ç»ç¶æ: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="systemStatus" placeholder="请è¾å
¥ç³»ç»ç¶æ"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">ä¸åç¶æ: </label> |
| | | <div class="layui-input-block"> |
| | | <select name="send"> |
| | | <option value="">è¯·éæ©ä¸åç¶æ</option> |
| | | <option value="0">æªä¸å</option> |
| | | <option value="1">å·²ä¸å</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="response" 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/cool.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/common.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <!-- 详æ
--> |
| | | <div id="data-detail" class="layer_self_wrap"> |
| | | <form id="detail" class="layui-form"> |
| | | <!-- |
| | | <div class="layui-inline" style="display: none"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" placeholder="ç¼å·"> |
| | | </div> |
| | | </div> |
| | | --> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label"><span class="not-null">*</span>ç¼ããå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'basDualCrnpOpt')" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å·¥ ä½ å·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="wrkNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å åæºå·ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="crnNo" class="layui-input" type="text" lay-verify="number" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¸åæ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="sendTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä½ããä¸ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="mode" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">èµ·ç¹åºä½ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="sourceLocNo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç®æ åºä½ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="targetLocNo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹æ¶é´ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="updateTime$" class="layui-input" type="text" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¿®æ¹äººåï¼</label> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="updateBy" class="layui-input" type="text" lay-verify="number" style="display: none"> |
| | | <input id="updateBy$" 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="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> |
| | | <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å¤ããæ³¨ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="memo" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">å½ãã令ï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="command" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ç³»ç»ç¶æï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="systemStatus" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">ä¸åç¶æï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <select id="send"> |
| | | <option value="" style="display: none"></option> |
| | | <option value="0">æªä¸å</option> |
| | | <option value="1">å·²ä¸å</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">请æ±ååºï¼</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="response" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <hr class="layui-bg-gray"> |
| | | |
| | | <div id="data-detail-btn" class="layui-btn-container layui-form-item"> |
| | | <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">ä¿å</div> |
| | | <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">ä¿®æ¹</div> |
| | | <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">å
³é</div> |
| | | </div> |
| | | |
| | | <div id="prompt"> |
| | | 温馨æç¤ºï¼è¯·ä»ç»å¡«åç¸å
³ä¿¡æ¯ï¼<span class="extrude"><span class="not-null">*</span> 为å¿
å¡«é项ã</span> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </body> |
| | | <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/basDualCrnpOpt/basDualCrnpOpt.js" charset="utf-8"></script> |
| | | </html> |
| | | |