From 68de8850d0c2fb4e5efef77ad92275ff05686708 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 02 十一月 2024 11:03:12 +0800 Subject: [PATCH] Merge branch 'phyzwms2' into phyzasrs-erp --- src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 54 + src/main/java/com/zy/asrs/controller/AgvLocDetlController.java | 14 src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java | 24 src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html | 428 +++++++++ src/main/java/com/zy/asrs/service/AgvLocDetlService.java | 2 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 168 ++- src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js | 1 src/main/java/com/zy/asrs/utils/Utils.java | 8 src/main/webapp/static/js/agvWrkMastLog/wrkMastLogWithWrktype.js | 496 +++++++++++ src/main/webapp/views/index.html | 2 src/main/java/com/zy/asrs/controller/AdjDetlController.java | 3 src/main/java/com/zy/asrs/mapper/WrkMastDetlLogMapper.java | 12 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 54 src/main/java/com/zy/asrs/entity/WrkMastDetlLog.java | 535 ++++++++++++ src/main/java/com/zy/asrs/controller/OrderController.java | 28 src/main/java/com/zy/asrs/entity/FlowLog.java | 2 src/main/webapp/views/agvWrkMastLog/wrkMastLogWithWrktype.html | 98 ++ src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java | 127 ++ src/main/java/com/zy/asrs/service/impl/WrkMastDetlLogServiceImpl.java | 12 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 27 src/main/java/com/zy/asrs/service/WrkMastDetlLogService.java | 8 src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js | 337 +++++++ src/main/webapp/views/report/viewWorkCountIn.html | 16 src/main/webapp/views/report/viewWorkCountOut.html | 16 src/main/resources/mapper/WrkMastDetlLogMapper.xml | 56 + 25 files changed, 2,365 insertions(+), 163 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AdjDetlController.java b/src/main/java/com/zy/asrs/controller/AdjDetlController.java index 1405ead..afc9c24 100644 --- a/src/main/java/com/zy/asrs/controller/AdjDetlController.java +++ b/src/main/java/com/zy/asrs/controller/AdjDetlController.java @@ -44,8 +44,9 @@ excludeTrash(param); EntityWrapper<AdjDetl> wrapper = new EntityWrapper<>(); convert(param, wrapper); + wrapper.orderBy("appe_time",false); allLike(AdjDetl.class, param.keySet(), wrapper, condition); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "desc".equals(orderByType));} return R.ok(adjDetlService.selectPage(new Page<>(curr, limit), wrapper)); } diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java index 1b46653..9f6d390 100644 --- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java @@ -130,12 +130,18 @@ .eq("three_code", record.getThreeCode()) .eq("matnr", record.getMatnr()) .in("source",docIds)); - if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { - record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); +// if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { +// record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); +// } else { +// record.setStock(-1D); +// } + if (Cools.isEmpty(orderDetl)) { + record.setStock(0D); } else { - record.setStock(-1D); + record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); + record.setOrderNo(orderDetl.getOrderNo()); } - record.setOrderNo(orderDetl.getOrderNo()); + } return R.ok(agvLocDetlPage); } diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java index 71e7913..bc239c6 100644 --- a/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java +++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java @@ -58,6 +58,30 @@ return R.ok(wrkMastLogService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/wrkMastLogWithWrktype/list/auth") + @ManagerAuth + public R wrkMastLogWithWrktypeList(@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){ + excludeTrash(param); + EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>(); + convert(param, wrapper); + allLike(AgvWrkMastLog.class, param.keySet(), wrapper, condition); + if (!Cools.isEmpty(orderByField)){ + if (orderByField.endsWith("$")){ + orderByField = orderByField.substring(0, orderByField.length()-1); + } + wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); + }else { + wrapper.orderBy("modi_time", false); + } + + return R.ok(wrkMastLogService.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()); diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index bd12fb7..0d7cb2b 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -419,7 +419,7 @@ } DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); if (DetlDto.has(list, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime()); Double anfme = item.getAnfme(); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { @@ -430,7 +430,7 @@ // flowLog.setFid(String.valueOf(flowId)); // flowLog.setOpType(2L); // flowLog.setOrderNo(param.getOrderNo()); -// flowLog.setThreeCode(orderDetl.getThreeCode()); +// flowLog.setThreeCode(orderDetl.getThreeCode().trim()); // flowLog.setMatnr(orderDetl.getMatnr()); // flowLog.setMaktx(orderDetl.getMaktx()); // flowLog.setOrderPrevious(anfme); @@ -463,7 +463,7 @@ // flowLog.setFid(String.valueOf(flowId)); // flowLog.setOpType(1L); // flowLog.setOrderNo(param.getOrderNo()); -// flowLog.setThreeCode(orderDetl.getThreeCode()); +// flowLog.setThreeCode(orderDetl.getThreeCode().trim()); // flowLog.setMatnr(orderDetl.getMatnr()); // flowLog.setMaktx(orderDetl.getMaktx()); // flowLog.setOrderPrevious(0.0D); @@ -523,7 +523,7 @@ for (OrderDetl orderDetl : param.getOrderDetlList()) { DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); if (DetlDto.has(dbList, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime()); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�"); @@ -593,7 +593,7 @@ if (orderDetl.getProcessSts() != 1) continue; DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); if (DetlDto.has(dbList, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime()); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�"); @@ -617,7 +617,7 @@ // flowLog.setFid(String.valueOf(flowId)); // flowLog.setOpType(1L); // flowLog.setOrderNo(param.getOrderNo()); -// flowLog.setThreeCode(orderDetl.getThreeCode()); +// flowLog.setThreeCode(orderDetl.getThreeCode().trim()); // flowLog.setMatnr(orderDetl.getMatnr()); // flowLog.setMaktx(orderDetl.getMaktx()); // flowLog.setOrderPrevious(0.0D); @@ -674,7 +674,7 @@ for (OrderDetl orderDetl : param.getOrderDetlList()) { DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getAnfme(), orderDetl.getProcessSts()); if (DetlDto.has(list, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode().trim(),orderDetl.getDeadTime()); Double anfme = item.getAnfme(); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { @@ -685,7 +685,7 @@ // flowLog.setFid(String.valueOf(flowId)); // flowLog.setOpType(2L); // flowLog.setOrderNo(param.getOrderNo()); -// flowLog.setThreeCode(orderDetl.getThreeCode()); +// flowLog.setThreeCode(orderDetl.getThreeCode().trim()); // flowLog.setMatnr(orderDetl.getMatnr()); // flowLog.setMaktx(orderDetl.getMaktx()); // flowLog.setOrderPrevious(anfme); @@ -728,7 +728,7 @@ // flowLog.setFid(String.valueOf(flowId)); // flowLog.setOpType(2L); // flowLog.setOrderNo(param.getOrderNo()); -// flowLog.setThreeCode(orderDetl.getThreeCode()); +// flowLog.setThreeCode(orderDetl.getThreeCode().trim()); // flowLog.setMatnr(orderDetl.getMatnr()); // flowLog.setMaktx(orderDetl.getMaktx()); // flowLog.setOrderPrevious(0.0D); @@ -956,15 +956,15 @@ Integer proSts = 0; Row row = sheet.getRow(i); //鍗曟嵁绫诲瀷 - String docName = dataFormatter.formatCellValue(row.getCell(0)); + String docName = dataFormatter.formatCellValue(row.getCell(0)).trim(); //鍗曟嵁缂栧彿 - String uuid = dataFormatter.formatCellValue(row.getCell(1)); + String uuid = dataFormatter.formatCellValue(row.getCell(1)).trim(); //鐗╂枡鍙� - String matnr = dataFormatter.formatCellValue(row.getCell(2)); + String matnr = dataFormatter.formatCellValue(row.getCell(2)).trim(); //閿�鍞崟鍙� - String csocode = dataFormatter.formatCellValue(row.getCell(3)); + String csocode = dataFormatter.formatCellValue(row.getCell(3)).trim(); //鑷敱椤� - String isocode = dataFormatter.formatCellValue(row.getCell(4)); + String isocode = dataFormatter.formatCellValue(row.getCell(4)).trim(); // 鏁伴噺 if(Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(5)))){ continue; diff --git a/src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java b/src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java new file mode 100644 index 0000000..7a4b06b --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/WrkMastDetlLogController.java @@ -0,0 +1,127 @@ +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.WrkMastDetlLog; +import com.zy.asrs.service.WrkMastDetlLogService; +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 WrkMastDetlLogController extends BaseController { + + @Autowired + private WrkMastDetlLogService wrkMastDetlLogService; + + @RequestMapping(value = "/wrkMastDetlLog/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(wrkMastDetlLogService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/wrkMastDetlLog/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<WrkMastDetlLog> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + allLike(WrkMastDetlLog.class, param.keySet(), wrapper, condition); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + wrapper.orderBy("io_time", false); + return R.ok(wrkMastDetlLogService.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 = "/wrkMastDetlLog/add/auth") + @ManagerAuth + public R add(WrkMastDetlLog wrkMastDetlLog) { + wrkMastDetlLogService.insert(wrkMastDetlLog); + return R.ok(); + } + + @RequestMapping(value = "/wrkMastDetlLog/update/auth") + @ManagerAuth + public R update(WrkMastDetlLog wrkMastDetlLog){ + if (Cools.isEmpty(wrkMastDetlLog)){ + return R.error(); + } + wrkMastDetlLogService.updateById(wrkMastDetlLog); + return R.ok(); + } + + @RequestMapping(value = "/wrkMastDetlLog/delete/auth") + @ManagerAuth + public R delete(@RequestParam(value="ids[]") Long[] ids){ + for (Long id : ids){ + wrkMastDetlLogService.deleteById(id); + } + return R.ok(); + } + + @RequestMapping(value = "/wrkMastDetlLog/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<WrkMastDetlLog> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMastDetlLog")); + convert(map, wrapper); + wrapper.orderBy("io_time", false); + List<WrkMastDetlLog> list = wrkMastDetlLogService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/wrkMastDetlLogQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<WrkMastDetlLog> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<WrkMastDetlLog> page = wrkMastDetlLogService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (WrkMastDetlLog wrkMastDetlLog : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", wrkMastDetlLog.getWrkNo()); + map.put("value", wrkMastDetlLog.getWrkNo()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/wrkMastDetlLog/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<WrkMastDetlLog> wrapper = new EntityWrapper<WrkMastDetlLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != wrkMastDetlLogService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(WrkMastDetlLog.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/FlowLog.java b/src/main/java/com/zy/asrs/entity/FlowLog.java index 4146d9e..d5c5fdf 100644 --- a/src/main/java/com/zy/asrs/entity/FlowLog.java +++ b/src/main/java/com/zy/asrs/entity/FlowLog.java @@ -262,6 +262,8 @@ otp = "鍙栨秷绉诲簱"; } else if (this.opType == 9L) { otp = "鍙栨秷璋冩嫧"; + } else if (this.opType == 101L) { + otp = "101.鍏ュ簱"; } return otp; } diff --git a/src/main/java/com/zy/asrs/entity/WrkMastDetlLog.java b/src/main/java/com/zy/asrs/entity/WrkMastDetlLog.java new file mode 100644 index 0000000..b13be8a --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/WrkMastDetlLog.java @@ -0,0 +1,535 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; +import java.text.SimpleDateFormat; +import java.util.Date; + +import com.zy.asrs.service.BasWrkIotypeService; +import com.zy.asrs.service.BasWrkStatusService; +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 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("agv_wrk_mast_detl_log") +public class WrkMastDetlLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 宸ヤ綔鍙� + */ + @ApiModelProperty(value= "宸ヤ綔鍙�") + @TableField("wrk_no") + private Integer wrkNo; + + /** + * 宸ヤ綔鏃堕棿 + */ + @ApiModelProperty(value= "宸ヤ綔鏃堕棿") + @TableField("io_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date ioTime; + + /** + * 鏁伴噺 + */ + @ApiModelProperty(value= "鏁伴噺") + private Double anfme; + + /** + * 鎵樼洏鏉$爜 + */ + @ApiModelProperty(value= "鎵樼洏鏉$爜") + private String zpallet; + + /** + * 鍟嗗搧缂栧彿 + */ + @ApiModelProperty(value= "鍟嗗搧缂栧彿") + private String matnr; + + /** + * 鍟嗗搧鍚嶇О + */ + @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + private String maktx; + + /** + * 鎵瑰彿 + */ + @ApiModelProperty(value= "鎵瑰彿") + private String batch; + + /** + * 鍗曟嵁缂栧彿 + */ + @ApiModelProperty(value= "鍗曟嵁缂栧彿") + @TableField("order_no") + private String orderNo; + + /** + * 瑙勬牸 + */ + @ApiModelProperty(value= "瑙勬牸") + private String specs; + + /** + * 鍨嬪彿 + */ + @ApiModelProperty(value= "鍨嬪彿") + private String model; + + /** + * 棰滆壊 + */ + @ApiModelProperty(value= "棰滆壊") + private String color; + + /** + * 鍝佺墝 + */ + @ApiModelProperty(value= "鍝佺墝") + private String brand; + + /** + * 鍗曚綅 + */ + @ApiModelProperty(value= "鍗曚綅") + private String unit; + + /** + * 鍗曚环 + */ + @ApiModelProperty(value= "鍗曚环") + private Double price; + + /** + * sku + */ + @ApiModelProperty(value= "sku") + private String sku; + + /** + * 鍗曚綅閲� + */ + @ApiModelProperty(value= "鍗曚綅閲�") + private Double units; + + /** + * 鏉$爜 + */ + @ApiModelProperty(value= "鏉$爜") + private String barcode; + + /** + * 浜у湴 + */ + @ApiModelProperty(value= "浜у湴") + private String origin; + + /** + * 鍘傚 + */ + @ApiModelProperty(value= "鍘傚") + private String manu; + + /** + * 鐢熶骇鏃ユ湡 + */ + @ApiModelProperty(value= "鐢熶骇鏃ユ湡") + @TableField("manu_date") + private String manuDate; + + /** + * 鍝侀」鏁� + */ + @ApiModelProperty(value= "鍝侀」鏁�") + @TableField("item_num") + private String itemNum; + + /** + * 瀹夊叏搴撳瓨閲� + */ + @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") + @TableField("safe_qty") + private Double safeQty; + + /** + * 閲嶉噺 + */ + @ApiModelProperty(value= "閲嶉噺") + private Double weight; + + /** + * 闀垮害 + */ + @ApiModelProperty(value= "闀垮害") + private Double length; + + /** + * 浣撶Н + */ + @ApiModelProperty(value= "浣撶Н") + private Double volume; + + /** + * 涓夋柟缂栫爜 + */ + @ApiModelProperty(value= "涓夋柟缂栫爜") + @TableField("three_code") + private String threeCode; + + /** + * 渚涘簲鍟� + */ + @ApiModelProperty(value= "渚涘簲鍟�") + private String supp; + + /** + * 渚涘簲鍟嗙紪鐮� + */ + @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�") + @TableField("supp_code") + private String suppCode; + + /** + * 鏄惁鎵规 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @TableField("be_batch") + private Integer beBatch; + + /** + * 淇濊川鏈� + */ + @ApiModelProperty(value= "淇濊川鏈�") + @TableField("dead_time") + private String deadTime; + + /** + * 棰勮澶╂暟 + */ + @ApiModelProperty(value= "棰勮澶╂暟") + @TableField("dead_warn") + private Integer deadWarn; + + /** + * 鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 + */ + @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") + private Integer source; + + /** + * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") + private Integer inspect; + + /** + * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + private Integer danger; + + /** + * 淇敼浜哄憳 + */ + @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; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + @ApiModelProperty(value= "") + @TableField("process_sts") + private Integer processSts; + + @ApiModelProperty(value= "") + @TableField("wrk_sts") + private Integer wrkSts; + + @ApiModelProperty(value= "") + @TableField("io_type") + private Integer ioType; + + @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; + + public WrkMastDetlLog() {} + + public WrkMastDetlLog(Integer wrkNo,Date ioTime,Double anfme,String zpallet,String matnr,String maktx,String batch,String orderNo,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double length,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String memo,Integer processSts,Integer wrkSts,Integer ioType,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo) { + this.wrkNo = wrkNo; + this.ioTime = ioTime; + this.anfme = anfme; + this.zpallet = zpallet; + this.matnr = matnr; + this.maktx = maktx; + this.batch = batch; + this.orderNo = orderNo; + this.specs = specs; + this.model = model; + this.color = color; + this.brand = brand; + this.unit = unit; + this.price = price; + this.sku = sku; + this.units = units; + this.barcode = barcode; + this.origin = origin; + this.manu = manu; + this.manuDate = manuDate; + this.itemNum = itemNum; + this.safeQty = safeQty; + this.weight = weight; + this.length = length; + this.volume = volume; + this.threeCode = threeCode; + this.supp = supp; + this.suppCode = suppCode; + this.beBatch = beBatch; + this.deadTime = deadTime; + this.deadWarn = deadWarn; + this.source = source; + this.inspect = inspect; + this.danger = danger; + this.modiUser = modiUser; + this.modiTime = modiTime; + this.appeUser = appeUser; + this.appeTime = appeTime; + this.memo = memo; + this.processSts = processSts; + this.wrkSts = wrkSts; + this.ioType = ioType; + this.locNo = locNo; + this.staNo = staNo; + this.sourceStaNo = sourceStaNo; + this.sourceLocNo = sourceLocNo; + } + +// WrkMastDetlLog wrkMastDetlLog = new WrkMastDetlLog( +// null, // 宸ヤ綔鍙穂闈炵┖] +// null, // 宸ヤ綔鏃堕棿 +// null, // 鏁伴噺 +// null, // 鎵樼洏鏉$爜 +// null, // 鍟嗗搧缂栧彿[闈炵┖] +// null, // 鍟嗗搧鍚嶇О +// null, // 鎵瑰彿 +// null, // 鍗曟嵁缂栧彿 +// null, // 瑙勬牸 +// null, // 鍨嬪彿 +// null, // 棰滆壊 +// null, // 鍝佺墝 +// null, // 鍗曚綅 +// null, // 鍗曚环 +// null, // sku +// null, // 鍗曚綅閲� +// null, // 鏉$爜 +// null, // 浜у湴 +// null, // 鍘傚 +// null, // 鐢熶骇鏃ユ湡 +// null, // 鍝侀」鏁� +// null, // 瀹夊叏搴撳瓨閲� +// null, // 閲嶉噺 +// null, // 闀垮害 +// null, // 浣撶Н +// null, // 涓夋柟缂栫爜 +// null, // 渚涘簲鍟� +// null, // 渚涘簲鍟嗙紪鐮� +// null, // 鏄惁鎵规 +// null, // 淇濊川鏈� +// null, // 棰勮澶╂暟 +// null, // 鍒惰喘 +// null, // 瑕佹眰妫�楠� +// null, // 鍗遍櫓鍝� +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null, // 娣诲姞浜哄憳 +// null, // 娣诲姞鏃堕棿 +// null, // 澶囨敞 +// null, // +// null, // +// null, // +// null, // +// null, // +// null, // +// null // +// ); + + public String getIoTime$(){ + if (Cools.isEmpty(this.ioTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime); + } + + public String getBeBatch$(){ + if (null == this.beBatch){ return null; } + switch (this.beBatch){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.beBatch); + } + } + + public String getSource$(){ + if (null == this.source){ return null; } + switch (this.source){ + case 1: + return "鍒堕��"; + case 2: + return "閲囪喘"; + case 3: + return "澶栧崗"; + default: + return String.valueOf(this.source); + } + } + + public String getInspect$(){ + if (null == this.inspect){ return null; } + switch (this.inspect){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.inspect); + } + } + + public String getDanger$(){ + if (null == this.danger){ return null; } + switch (this.danger){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.danger); + } + } + + public String getModiUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.modiUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getNickname()); + } + 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.getNickname()); + } + return null; + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + public String getProcessSts$(){ + if (null == this.processSts){ return null; } + switch (this.processSts){ + case 0: + return "鍏朵粬"; + case 1: + return "寰呭姞宸�"; + case 2: + return "宸插姞宸�"; + case 3: + return "鏃犻渶鍔犲伐"; + default: + return String.valueOf(this.processSts); + } + } + + 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 String.valueOf(this.wrkSts); + } + + 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 String.valueOf(this.ioType); + } + +} diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastDetlLogMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastDetlLogMapper.java new file mode 100644 index 0000000..1669dd0 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/WrkMastDetlLogMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.WrkMastDetlLog; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface WrkMastDetlLogMapper extends BaseMapper<WrkMastDetlLog> { + +} diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java index 781e690..759d93d 100644 --- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java +++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java @@ -52,6 +52,8 @@ public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode(String locNo, String matnr, String batch, String csocode, String isocode); + public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode2(String locNo, String matnr, String orderNo, String batch, String csocode, String isocode); + public Double selectSumAnfmeByLocNo(String locNo); public Double selectSumAnfmeByMatnr(String matnr); diff --git a/src/main/java/com/zy/asrs/service/WrkMastDetlLogService.java b/src/main/java/com/zy/asrs/service/WrkMastDetlLogService.java new file mode 100644 index 0000000..938a544 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/WrkMastDetlLogService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.WrkMastDetlLog; +import com.baomidou.mybatisplus.service.IService; + +public interface WrkMastDetlLogService extends IService<WrkMastDetlLog> { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java index 17fe2ca..7b2dde8 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java @@ -5,16 +5,11 @@ import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; -import com.zy.asrs.entity.AgvLocDetl; -import com.zy.asrs.entity.AgvLocMast; -import com.zy.asrs.entity.AgvWrkDetl; -import com.zy.asrs.entity.LocDetl; +import com.zy.asrs.entity.*; import com.zy.asrs.mapper.AgvLocDetlMapper; -import com.zy.asrs.service.AgvBasDevpService; -import com.zy.asrs.service.AgvLocDetlService; -import com.zy.asrs.service.AgvLocMastService; -import com.zy.asrs.service.AgvWrkDetlService; +import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.model.LocDto; import com.zy.common.model.TaskDto; @@ -47,15 +42,50 @@ AgvBasDevpService agvBasDevpService; @Autowired AgvLocMastService agvLocMastService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; public void addLocDetlInfo(String locNo, int taskCode) { + Date now = new Date(); List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode)); + long flowId = snowflakeIdWorker.nextId(); agvWrkDetls.stream().map(agvWrkDetl -> { AgvLocDetl agvLocDetl = new AgvLocDetl(); log.info("agvWrkDetl: " + agvLocDetl.getBarcode()); BeanUtils.copyProperties(agvWrkDetl, agvLocDetl); agvLocDetl.setLocNo(locNo); this.insert(agvLocDetl); + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode()); +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(String.valueOf(taskCode)); +// flowLog.setLocNo(locNo); +// flowLog.setSpare1(agvWrkDetl.getSuppCode()); +// flowLog.setOpType(101L); +// flowLog.setOrderNo(agvWrkDetl.getOrderNo()); +// flowLog.setThreeCode(agvWrkDetl.getThreeCode()); +// flowLog.setMatnr(agvWrkDetl.getMatnr()); +// flowLog.setMaktx(agvWrkDetl.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// flowLog.setQtyPrevious(orderDetl.getQty()-agvWrkDetl.getAnfme()); +// flowLog.setQtyCurrent(orderDetl.getQty()); +// flowLog.setQtyChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setLocPrevious(0.0D); +// flowLog.setLocCurrent(agvWrkDetl.getAnfme()); +// flowLog.setLocChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setAppeTime(now); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } return agvLocDetl; }).collect(Collectors.toList()); @@ -250,6 +280,14 @@ } @Override + public AgvLocDetl selectByMatnrAndBatchAndCsocodeAndisoCode2(String locNo,String orderNo, String matnr, String batch, String csocode, String isocode) { + EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>(); + wrapper.eq("loc_no",locNo); + Utils.confirmOnlyMat2(wrapper,orderNo,matnr,batch,csocode,isocode); + return this.selectOne(wrapper); + } + + @Override public Double selectSumAnfmeByLocNo(String locNo) { return this.baseMapper.sumByLocNo(locNo); } diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index 1dd5e23..25d00d2 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -150,8 +150,9 @@ agvWrkDetlService.insert(wrkDetl); } else { Double anfme = agvWrkDetl.getAnfme() + pick.getCount(); + agvWrkDetl.setIoTime(agvWrkMast.getIoTime()); agvWrkDetl.setAnfme(anfme); - agvWrkDetl.setModiTime(new Date()); + agvWrkDetl.setModiTime(now); agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).eq("supp_code",pick.getSuppCode())); } @@ -165,23 +166,21 @@ } } // 纭鏄惁鍏ㄩ儴鍑哄簱 - int sameNumber = 0; + double totleWrkdetl = 0.0; + double totleLocdetl = 0.0; List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo())); for (AgvLocDetl agvLocDetl : agvLocDetls) { - for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { - if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr()) - && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode()) - && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode()) - && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) { - sameNumber++; - } - } + totleLocdetl = totleLocdetl + agvLocDetl.getAnfme(); } - if (agvLocDetls.size() == sameNumber || agvLocDetls.size() == 1) { + for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { + totleWrkdetl = totleWrkdetl + agvWrkDetl.getAnfme(); + } + if (totleWrkdetl >= totleLocdetl) { agvWrkMast.setIoType(101); - agvWrkMast.setModiTime(new Date()); agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); + } +// agvLocDetls.size() == 1 return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�"; @@ -591,6 +590,7 @@ agvWrkDetl.setWrkNo(wrkMast.getWrkNo()); agvWrkDetl.setModiUser(userId); agvWrkDetl.setModiTime(now); + agvWrkDetl.setIoTime(now); if (!agvWrkDetlService.insert(agvWrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } @@ -745,6 +745,7 @@ agvWrkMast.setWrkSts(201L); agvWrkMast.setModiUser(userId); agvWrkMast.setModiTime(now); + agvWrkMast.setIoTime(now); @@ -770,6 +771,7 @@ agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2)); agvWrkDetl.setModiUser(userId); agvWrkDetl.setModiTime(now); + agvWrkDetl.setIoTime(now); if (!agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>() .eq("matnr",agvWrkDetl.getMatnr()) .eq("three_code",agvWrkDetl.getThreeCode()) @@ -818,6 +820,7 @@ agvWrkDetl.setWrkNo(wrkMast.getWrkNo()); // 淇濇寔宸ヤ綔妗f槑缁� agvWrkDetl.setWrkNo(wrkMast.getWrkNo()); + agvWrkDetl.setIoTime(now); agvWrkDetl.setModiUser(userId); agvWrkDetl.setModiTime(now); if (!agvWrkDetlService.insert(agvWrkDetl)) { diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index b253cfd..721488c 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -353,12 +353,21 @@ String locNo = agvWrkMast.getLocNo(); agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo()); agvWrkMast.setSourceLocNo(locNo); - agvWrkMast.setModiTime(new Date()); + agvWrkMast.setModiTime(now); agvWrkMast.setIoTime(now); agvWrkMast.setLogErrMemo("createWaitPainWrkMastStart"); agvWrkMastService.updateById(agvWrkMast); List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + for (AgvWrkDetl agvWrkDetl : agvWrkDetlList) { + agvWrkDetl.setIoTime(now); + boolean bl = agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>() + .eq("wrk_no", agvWrkDetl.getWrkNo()) + .eq("matnr",agvWrkDetl.getMatnr()) + .eq("order_no",agvWrkDetl.getOrderNo()) + .eq("three_code",agvWrkDetl.getThreeCode())); +// .eq("dead_time",agvWrkDetl.getDeadTime())); + } AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); //List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo()); @@ -460,19 +469,7 @@ //鐢熸垚绉诲簱宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,getContainerTypeByloc(sourceLocNo),targetLocMast.getPltType()); //鐢熸垚宸ヤ綔鍏氭槑缁� - createWrkDetlReWrite( - sourceLocDetl.getMatnr(), - wrkMast.getWrkNo(), - null, - sourceLocDetl.getBatch(), - sourceLocDetl.getAnfme(), - sourceLocDetl.getZpallet(), - now, - userId, - sourceLocDetl.getThreeCode(), - sourceLocDetl.getDeadTime(), - sourceLocDetl.getProcessSts() - ); + createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProcessSts()); //淇敼鐩爣搴撲綅鐘舵�� updateAgvLocMast(targetLocMast,"S"); //淇敼鍘熷簱浣嶇姸鎬� @@ -594,34 +591,6 @@ long flowId = snowflakeIdWorker.nextId(); agvWaitPakinList.forEach(wp -> { createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts()); - // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 - OrderDetl orderDetl = orderDetlService.selectItem(wp.getOrderNo(), wp.getMatnr(),wp.getBatch(), wp.getThreeCode()); -// FlowLog flowLog = new FlowLog(); -// flowLog.setFid(String.valueOf(flowId)); -// flowLog.setSpare2(wrkMast.getWrkNo().toString()); -// flowLog.setLocNo(locNo); -// flowLog.setSpare1(containerCode); -// flowLog.setOpType(3L); -// flowLog.setOrderNo(wp.getOrderNo()); -// flowLog.setThreeCode(wp.getThreeCode()); -// flowLog.setMatnr(wp.getMatnr()); -// flowLog.setMaktx(wp.getMaktx()); -// flowLog.setOrderPrevious(orderDetl.getAnfme()); -// flowLog.setOrderCurrent(orderDetl.getAnfme()); -// flowLog.setOrderChanged(0.0); -// flowLog.setQtyPrevious(orderDetl.getQty()-wp.getAnfme()); -// flowLog.setQtyCurrent(orderDetl.getQty()); -// flowLog.setQtyChanged(wp.getAnfme()); -// -// flowLog.setLocPrevious(0.0D); -// flowLog.setLocCurrent(wp.getAnfme()); -// flowLog.setLocChanged(wp.getAnfme()); -// -// flowLog.setUserId(userId); -// flowLog.setAppeTime(now); -// if (!flowLogService.insert(flowLog)) { -// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); -// } }); //淇敼鍏ュ簱閫氱煡妗g姸鎬� agvWaitPakinService.updateIoStatus(containerCode,"Y"); @@ -1321,6 +1290,7 @@ wrkMast.setModiTime(now); wrkMast.setPltType(pltType); wrkMast.setLogErrMemo("createWaitPainWrkMastStart"); + if (!agvWrkMastService.insertByIncrease(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastDetlLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastDetlLogServiceImpl.java new file mode 100644 index 0000000..3e915f9 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastDetlLogServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.WrkMastDetlLogMapper; +import com.zy.asrs.entity.WrkMastDetlLog; +import com.zy.asrs.service.WrkMastDetlLogService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("wrkMastDetlLogService") +public class WrkMastDetlLogServiceImpl extends ServiceImpl<WrkMastDetlLogMapper, WrkMastDetlLog> implements WrkMastDetlLogService { + +} diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java index a176161..9b0d1aa 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.R; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.MesBuyPakinReportParam; @@ -105,6 +107,12 @@ private DocTypeService docTypeService; @Autowired private OrderDetlService orderDetlService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; @Transactional public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { @@ -112,6 +120,9 @@ List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); try { + long flowId = snowflakeIdWorker.nextId(); + Date now = new Date(); + try{ int wrkNo = agvWrkMast.getWrkNo(); String barcode = agvWrkMast.getBarcode(); String orderNo = getOrderNoByWrkNo(wrkNo); @@ -169,7 +180,35 @@ AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); if (!Cools.isEmpty(agvLocDetl)) { double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme(); - agvLocDetlService.updateAnfme(updateAnfme, agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getBatch(), agvLocDetl.getThreeCode(), agvLocDetl.getDeadTime()); +// OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode()); +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(String.valueOf(agvWrkMast.getWrkNo())); +// flowLog.setLocNo(agvWrkMast.getLocNo()); +// flowLog.setSpare1(agvWrkDetl.getSuppCode()); +// flowLog.setOpType(53L); +// flowLog.setOrderNo(agvWrkDetl.getOrderNo()); +// flowLog.setThreeCode(agvWrkDetl.getThreeCode()); +// flowLog.setMatnr(agvWrkDetl.getMatnr()); +// flowLog.setMaktx(agvWrkDetl.getMaktx()); +// +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(updateAnfme); +// flowLog.setQtyChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setLocPrevious(agvLocDetl.getAnfme()); +// flowLog.setLocCurrent(updateAnfme); +// flowLog.setLocChanged(agvWrkDetl.getAnfme()); +// +// flowLog.setAppeTime(now); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } + agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); } //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); @@ -178,7 +217,6 @@ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); break; case 57: - Date now = new Date(); // 鏇存柊搴撳瓨鏄庣粏 List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); wrkDetlList.forEach(agvWrkDetl -> { @@ -192,60 +230,60 @@ } }); // 鏇存柊绔欑偣 + 搴撲綅鐘舵�� 婧愬簱浣嶆槸绔欑偣 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); break; case 58: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); break; case 108: case 114: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); break; case 109: // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); } break; case 111: // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 - if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 } else { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); } break; case 112: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { AgvLocDetl locDetl = new AgvLocDetl(); @@ -255,27 +293,27 @@ agvLocDetlService.insert(locDetl); } // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅 } else { //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); } break; case 113: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); // 鎺ラ┏浣� -- 搴撲綅 - if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0); + if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0); } break; case 121: - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); //鏇存柊搴撳瓨鏄庣粏 - agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); + agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0); break; default: @@ -285,7 +323,7 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); } // else { // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); @@ -295,7 +333,7 @@ // agvWrkMastService.updateById(agvWrkMast); // } - if (!isJSON(orderNo)) { + if(!isJSON(orderNo)){ //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 orderService.checkComplete(orderNo, agvWrkMast.getPltType()); } else { @@ -345,11 +383,11 @@ agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O if (agvWrkMast.getIoType() == 110) { - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); } - if (agvWrkMast.getIoType() == 101) { + if(agvWrkMast.getIoType() == 101){ //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); //鐢熸垚绌烘澘鍏ュ簱浠诲姟 Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)); try { @@ -389,7 +427,7 @@ agvBasDevp.setLocSts("R"); agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2))); agvBasDevpService.updateById(agvBasDevp); - } catch (Exception e) { + }catch (Exception e){ e.printStackTrace(); log.error(e.getMessage()); } @@ -402,11 +440,11 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); - if (!isJSON(orderNo)) { + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); + if(!isJSON(orderNo)){ //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 - orderService.checkComplete(orderNo, agvWrkMast.getPltType()); - } else { + orderService.checkComplete(orderNo); + }else{ List<Map> maps = JSONArray.parseArray(orderNo, Map.class); maps.forEach(map -> { String o = map.get("orderNo").toString(); @@ -447,10 +485,10 @@ agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); - if (agvWrkMast.getIoType() == 101) { + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + if(agvWrkMast.getIoType() == 101){ //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� - agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo())); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); } //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� @@ -460,15 +498,15 @@ //鍒犻櫎AGV宸ヤ綔妗� agvWrkMastService.deleteById(wrkNo); //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� - agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo)); - if (!isJSON(orderNo)) { + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); + if(!isJSON(orderNo)){ //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 - orderService.checkComplete(orderNo, agvWrkMast.getPltType()); - } else { + orderService.checkComplete(orderNo); + }else{ List<Map> maps = JSONArray.parseArray(orderNo, Map.class); maps.forEach(map -> { String o = map.get("orderNo").toString(); - orderService.checkComplete(o, agvWrkMast.getPltType()); + orderService.checkComplete(o); }); } //涓婃姤mes @@ -490,19 +528,19 @@ @Synchronized public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException { - try { + try{ //涓嬪彂浠诲姟 int startWrkCode = agvWrkMastService.startWrk(agvWrkMast); - if (startWrkCode != 0) { + if(startWrkCode != 0){ throw new CoolException("浠诲姟涓嬪彂澶辫触"); } agvWrkMast.setWrkSts(202L); agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); - if (agvWrkMast.getIoType() == 1) { + if(agvWrkMast.getIoType() == 1){ //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y - agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(), "Y"); + agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); } return SUCCESS; } catch (Exception e) { @@ -515,16 +553,16 @@ @Transactional @Synchronized public ReturnT<String> startAllcationIn(AgvWrkMast agvWrkMast) throws IOException { - + //涓嬪彂浠诲姟 - try { + try{ int startWrkCode = agvWrkMastService.startAllcationIn(agvWrkMast); - if (startWrkCode != 0) { + if(startWrkCode != 0){ throw new CoolException("浠诲姟涓嬪彂澶辫触"); } return SUCCESS; - } catch (Exception e) { - log.error("浠诲姟涓嬪彂澶辫触" + e.getMessage()); + }catch (Exception e){ + log.error("浠诲姟涓嬪彂澶辫触"+e.getMessage()); } return FAIL; @@ -563,11 +601,11 @@ List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo()); //鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝 Map<String, Object> devNoMap = devNoMaps.get(0); - if ((int) devNoMap.get("num") < maxWrokNum) { + if((int)devNoMap.get("num") < maxWrokNum){ agvWrkMast.setLocNo(devNoMap.get("dev_no").toString()); agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); - log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); + log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); } }); @@ -606,10 +644,10 @@ } } - private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList) { + private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){ return agvWrkMastList.stream().filter(agvWrkMast -> { AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo())); - if (!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts() <= 202) { + if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){ System.out.println("source_loc_no > 1"); return false; } @@ -622,7 +660,7 @@ /* 鐢熸垚宸ヤ綔妗� */ - private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor) { + private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor){ AgvWrkMast wrkMast = new AgvWrkMast(); //宸ヤ綔鐘舵�� wrkMast.setWrkSts(wrkSts); @@ -651,7 +689,7 @@ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } - wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo).eq("barcode", barcode).orderBy("modi_time", false)); + wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false)); return wrkMast; } diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index c1c4613..5dc6c20 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -460,6 +460,14 @@ wapperSetCondition(wrapper,"batch",batch); } + public static void confirmOnlyMat2(Wrapper wrapper, String orderNo, String matnr, String batch, String threeCode, String deadTime){ + wapperSetCondition(wrapper,"matnr",matnr); + wapperSetCondition(wrapper,"order_no",orderNo); + wapperSetCondition(wrapper,"three_code",threeCode); + wapperSetCondition(wrapper,"dead_time",deadTime); + wapperSetCondition(wrapper,"batch",batch); + } + //鐢熸垚搴撳瓨璋冩暣璁板綍鍗曟嵁鍙� (骞存湀鏃�+4浣嶆祦姘�) public static String generateAdjustOrderNo(){ Date date = new Date(); diff --git a/src/main/resources/mapper/WrkMastDetlLogMapper.xml b/src/main/resources/mapper/WrkMastDetlLogMapper.xml new file mode 100644 index 0000000..b829974 --- /dev/null +++ b/src/main/resources/mapper/WrkMastDetlLogMapper.xml @@ -0,0 +1,56 @@ +<?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.WrkMastDetlLogMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMastDetlLog"> + <result column="wrk_no" property="wrkNo" /> + <result column="io_time" property="ioTime" /> + <result column="anfme" property="anfme" /> + <result column="zpallet" property="zpallet" /> + <result column="matnr" property="matnr" /> + <result column="maktx" property="maktx" /> + <result column="batch" property="batch" /> + <result column="order_no" property="orderNo" /> + <result column="specs" property="specs" /> + <result column="model" property="model" /> + <result column="color" property="color" /> + <result column="brand" property="brand" /> + <result column="unit" property="unit" /> + <result column="price" property="price" /> + <result column="sku" property="sku" /> + <result column="units" property="units" /> + <result column="barcode" property="barcode" /> + <result column="origin" property="origin" /> + <result column="manu" property="manu" /> + <result column="manu_date" property="manuDate" /> + <result column="item_num" property="itemNum" /> + <result column="safe_qty" property="safeQty" /> + <result column="weight" property="weight" /> + <result column="length" property="length" /> + <result column="volume" property="volume" /> + <result column="three_code" property="threeCode" /> + <result column="supp" property="supp" /> + <result column="supp_code" property="suppCode" /> + <result column="be_batch" property="beBatch" /> + <result column="dead_time" property="deadTime" /> + <result column="dead_warn" property="deadWarn" /> + <result column="source" property="source" /> + <result column="inspect" property="inspect" /> + <result column="danger" property="danger" /> + <result column="modi_user" property="modiUser" /> + <result column="modi_time" property="modiTime" /> + <result column="appe_user" property="appeUser" /> + <result column="appe_time" property="appeTime" /> + <result column="memo" property="memo" /> + <result column="process_sts" property="processSts" /> + <result column="wrk_sts" property="wrkSts" /> + <result column="io_type" property="ioType" /> + <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" /> + + </resultMap> + +</mapper> diff --git a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js index c29516e..104dc9c 100644 --- a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js +++ b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js @@ -21,6 +21,7 @@ cellMinWidth: 50, cols: [[ {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',event: 'wrkNo', sort: true} + ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true} ,{field: 'modiTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true} ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160} ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160} diff --git a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLogWithWrktype.js b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLogWithWrktype.js new file mode 100644 index 0000000..421f39a --- /dev/null +++ b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLogWithWrktype.js @@ -0,0 +1,496 @@ +var pageCurr; +var wrkNo; +var ioTime; +layui.use(['table','laydate', 'form'], function(){ + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var layDate = layui.laydate; + var form = layui.form; + + // 鏁版嵁娓叉煋 + tableIns = table.render({ + elem: '#wrkMastLog', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/agv//wrkMastLogWithWrktype/list/auth', + page: true, + limit: 16, + limits: [16, 30, 50, 100, 200, 500], + even: true, + toolbar: '#toolbar', + cellMinWidth: 50, + cols: [[ + {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',event: 'wrkNo', sort: true} + ,{field: 'modiTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true} + ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160} + ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160} + ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'} + ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'} + ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'} + ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true} + ,{field: 'appeTime$', align: 'center',title: '寮�濮嬫椂闂�', hide:false} + ,{field: 'barcode', align: 'center',title: '璐ф灦鐮�'} + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80} + ]], + 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(); + form.on('checkbox(tableCheckbox)', function (data) { + var _index = $(data.elem).attr('table-index')||0; + if(data.elem.checked){ + res.data[_index][data.value] = 'Y'; + }else{ + res.data[_index][data.value] = 'N'; + } + }); + } + }); + + // 鐩戝惉鎺掑簭浜嬩欢 + table.on('sort(wrkMastLog)', 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 + }, + done: function (res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + } + }); + }); + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(wrkMastLog)', function (obj) { + var checkStatus = table.checkStatus(obj.config.id); + switch(obj.event) { + case 'addData': + layer.open({ + type: 2, + title: '鏂板', + maxmin: true, + area: [top.detailWidth, top.detailHeight], + shadeClose: false, + content: 'wrkMastLog_detail.html', + success: function(layero, index){ + layer.getChildFrame('#data-detail-submit-edit', index).hide(); + clearFormVal(layer.getChildFrame('#detail', index)); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + } + }); + break; + case 'refreshData': + tableIns.reload({ + page: { + curr: pageCurr + } + }); + limit(); + break; + case 'deleteData': + var data = checkStatus.data; + if (data.length === 0){ + layer.msg('璇烽�夋嫨鏁版嵁'); + } else { + layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){ + $.ajax({ + url: baseUrl+"/agv/wrkMastLog/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: {param: JSON.stringify(data)}, + method: 'POST', + traditional:true, + success: function (res) { + if (res.code === 200){ + layer.closeAll(); + tableReload(false); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg) + } + } + }) + }); + } + break; + case 'exportData': + layer.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 = { + 'wrkMastLog': exportData, + 'fields': fields + }; + $.ajax({ + url: baseUrl+"/agv/wrkMastLog/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) + } + } + }); + }); + break; + } + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(wrkMastLog)', function(obj){ + var data = obj.data; + switch (obj.event) { + // 鏄庣粏灞曠ず + case 'detlShow': + wrkNo = data.wrkNo; + ioTime = data.ioTime; + // 琛ㄦ牸涓嬫柟鏄剧ず + // locDetl(data.wrkNo); + // 寮瑰眰鏄剧ず + layer.open({ + type: 2, + title: '宸ヤ綔鏄庣粏鍘嗗彶妗�', + maxmin: true, + area: [top.detailWidth, top.detailHeight], + shadeClose: true, + content: 'wrkDetlLog.html', + success: function(layero, index){ + } + }); + break; + // 璇︽儏 + case 'detail': + layer.open({ + type: 2, + title: '璇︽儏', + maxmin: true, + area: [top.detailWidth, top.detailHeight], + shadeClose: false, + content: 'wrkMastLog_detail.html', + success: function(layero, index){ + setFormVal(layer.getChildFrame('#detail', index), data, true); + top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true); + layero.find('iframe')[0].contentWindow.layui.form.render('select'); + layero.find('iframe')[0].contentWindow.layui.form.render('checkbox'); + layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide(); + layer.getChildFrame('##dealDownLine', index).hide(); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + + } + }); + break; + } + }); + + // 鏁版嵁淇濆瓨鍔ㄤ綔 + form.on('submit(save)', function () { + if (banMsg != null){ + layer.msg(banMsg); + return; + } + method("add"); + }); + + // 鏁版嵁淇敼鍔ㄤ綔 + form.on('submit(edit)', function () { + method("update") + }); + + function method(name){ + var index = layer.load(1, { + shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙 + }); + var data = { +// id: $('#id').val(), + id: $('#id').val(), + wrkNo: $('#wrkNo').val(), + invWh: $('#invWh').val(), + ymd: top.strToDate($('#ymd\\$').val()), + mk: $('#mk').val(), + whsType: $('#whsType').val(), + wrkSts: $('#wrkSts').val(), + ioType: $('#ioType').val(), + crnNo: $('#crnNo').val(), + sheetNo: $('#sheetNo').val(), + ioPri: $('#ioPri').val(), + wrkDate: top.strToDate($('#wrkDate\\$').val()), + locNo: $('#locNo').val(), + staNo: $('#staNo').val(), + sourceStaNo: $('#sourceStaNo').val(), + sourceLocNo: $('#sourceLocNo').val(), + locSts: $('#locSts').val(), + picking: $('#picking').val(), + linkMis: $('#linkMis').val(), + onlineYn: $('#onlineYn').val(), + updMk: $('#updMk').val(), + exitMk: $('#exitMk').val(), + pltType: $('#pltType').val(), + emptyMk: $('#emptyMk').val(), + ioTime: top.strToDate($('#ioTime\\$').val()), + ctnType: $('#ctnType').val(), + packed: $('#packed').val(), + oveMk: $('#oveMk').val(), + mtnType: $('#mtnType').val(), + userNo: $('#userNo').val(), + crnStrTime: top.strToDate($('#crnStrTime\\$').val()), + crnEndTime: top.strToDate($('#crnEndTime\\$').val()), + plcStrTime: top.strToDate($('#plcStrTime\\$').val()), + crnPosTime: top.strToDate($('#crnPosTime\\$').val()), + loadTime: $('#loadTime').val(), + expTime: $('#expTime').val(), + refWrkno: $('#refWrkno').val(), + refIotime: top.strToDate($('#refIotime\\$').val()), + modiUser: $('#modiUser').val(), + modiTime: top.strToDate($('#modiTime\\$').val()), + appeUser: $('#appeUser').val(), + appeTime: top.strToDate($('#appeTime\\$').val()), + pauseMk: $('#pauseMk').val(), + errorTime: top.strToDate($('#errorTime\\$').val()), + errorMemo: $('#errorMemo').val(), + ctnKind: $('#ctnKind').val(), + manuType: $('#manuType').val(), + memoM: $('#memoM').val(), + scWeight: $('#scWeight').val(), + logMk: $('#logMk').val(), + logErrTime: top.strToDate($('#logErrTime\\$').val()), + logErrMemo: $('#logErrMemo').val(), + barcode: $('#barcode').val(), + PdcType: $('#PdcType').val(), + ctnNo: $('#ctnNo').val(), + fullPlt: $('#fullPlt').val(), + + }; + $.ajax({ + url: baseUrl+"/agv/wrkMastLog/"+name+"/auth", + headers: {'token': localStorage.getItem('token')}, + data: top.reObject(data), + method: 'POST', + success: function (res) { + if (res.code === 200){ + parent.layer.closeAll(); + parent.$(".layui-laypage-btn")[0].click(); + $("#data-detail :input").each(function () { + $(this).val(""); + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg) + } + layer.close(index); + } + }) + } + + // 澶嶉�夋浜嬩欢 + form.on('checkbox(detailCheckbox)', function (data) { + var el = data.elem; + if (el.checked) { + $(el).val('Y'); + } else { + $(el).val('N'); + } + }); + + // 鎼滅储鏍忔悳绱簨浠� + form.on('submit(search)', function (data) { + pageCurr = 1; + tableReload(false); + }); + + // 鎼滅储鏍忛噸缃簨浠� + form.on('submit(reset)', function (data) { + pageCurr = 1; + clearFormVal($('#search-box')); + tableReload(false); + }); + + // 鏃堕棿閫夋嫨鍣� + layDate.render({ + elem: '#ymd\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#wrkDate\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#ioTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#crnStrTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#crnEndTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#plcStrTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#crnPosTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#refIotime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#modiTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#appeTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#errorTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#logErrTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '.layui-laydate-range' + ,type: 'datetime' + ,range: true + }); + +}); + +// 鍏抽棴鍔ㄤ綔 +$(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; + }); + (child ? parent.tableIns : tableIns).reload({ + where: searchData, + page: { + curr: pageCurr + }, + done: function (res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + if (res.data.length === 0 && count !== 0) { + tableIns.reload({ + where: searchData, + page: { + curr: pageCurr-1 + } + }); + pageCurr -= 1; + } + limit(child); + } + }); +} + +function setFormVal(el, data, showImg) { + for (var val in data) { + var find = el.find(":input[id='" + val + "']"); + if (find[0]!=null){ + if (find[0].type === 'checkbox'){ + if (data[val]==='Y'){ + find.attr("checked","checked"); + find.val('Y'); + } else { + find.remove("checked"); + find.val('N'); + } + continue; + } + } + find.val(data[val]); + if (showImg){ + var next = find.next(); + if (next.get(0)){ + if (next.get(0).localName === "img") { + find.hide(); + next.attr("src", data[val]); + next.show(); + } + } + } + } +} + +function clearFormVal(el) { + $(':input', el) + .val('') + .removeAttr('checked') + .removeAttr('selected'); +} + +function detailScreen(index) { + var detail = layer.getChildFrame('#data-detail', index); + var height = detail.height()+60; + if (height > ($(window).height()*0.9)) { + height = ($(window).height()*0.8); + } + layer.style(index, { +// top: (($(window).height()-height)/3)+"px", + height: height+'px' + }); +} + +$('body').keydown(function () { + if (event.keyCode === 13) { + $("#search").click(); + } +}); diff --git a/src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js b/src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js new file mode 100644 index 0000000..36e4d0f --- /dev/null +++ b/src/main/webapp/static/js/wrkMastDetlLog/wrkMastDetlLog.js @@ -0,0 +1,337 @@ +var pageCurr; +var pageLimit; +function getCol() { + var cols = [ + {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'} + ,{field: 'modiTime$', align: 'center',title: '宸ヤ綔鏃堕棿','width': 180} + ]; + cols.push( + //{field: 'suppCode', align: 'center',title: '璐ф灦鐮�'}, + {field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'} + ,{field: 'ioType$', align: 'center',title: '宸ヤ綔绫诲瀷'} + ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'} + // ,{field: 'staNo', align: 'center',title: '鐩爣绔�'} + // ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'} + ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}); + arrRemove(detlCols, 'field', 'zpallet'); + cols.push.apply(cols, detlCols); + cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',hide: true} + ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿',hide: true} + ) + return cols; +} + +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: '#wrkMastDetlLog', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/wrkMastDetlLog/list/auth', + page: true, + limit: 15, + limits: [15, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + height: 'full-120', + cols: [getCol()], + // cols: [[ + // {type: 'checkbox'} + // ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'} + // ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿'} + // ,{field: 'wrkSts', align: 'center',title: '宸ヤ綔鐘舵��'} + // ,{field: 'ioType', align: 'center',title: '宸ヤ綔绫诲瀷'} + // ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'} + // ,{field: 'staNo', align: 'center',title: '鐩爣绔�'} + // ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'} + // ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'} + // ,{field: 'anfme', align: 'center',title: '鏁伴噺'} + // ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'} + // ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'} + // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} + // // ,{field: 'batch', align: 'center',title: '鎵瑰彿'} + // ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿'} + // ,{field: 'specs', align: 'center',title: '瑙勬牸'} + // ,{field: 'model', align: 'center',title: '鍨嬪彿'} + // // ,{field: 'color', align: 'center',title: '棰滆壊'} + // // ,{field: 'brand', align: 'center',title: '鍝佺墝'} + // // ,{field: 'unit', align: 'center',title: '鍗曚綅'} + // // ,{field: 'price', align: 'center',title: '鍗曚环'} + // // ,{field: 'sku', align: 'center',title: 'sku'} + // // ,{field: 'units', align: 'center',title: '鍗曚綅閲�'} + // // ,{field: 'barcode', align: 'center',title: '鏉$爜'} + // // ,{field: 'origin', align: 'center',title: '浜у湴'} + // // ,{field: 'manu', align: 'center',title: '鍘傚'} + // // ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡'} + // // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'} + // // ,{field: 'safeQty', align: 'center',title: '瀹夊叏搴撳瓨閲�'} + // // ,{field: 'weight', align: 'center',title: '閲嶉噺'} + // // ,{field: 'length', align: 'center',title: '闀垮害'} + // // ,{field: 'volume', align: 'center',title: '浣撶Н'} + // // ,{field: 'threeCode', align: 'center',title: '涓夋柟缂栫爜'} + // // ,{field: 'supp', align: 'center',title: '渚涘簲鍟�'} + // // ,{field: 'suppCode', align: 'center',title: '渚涘簲鍟嗙紪鐮�'} + // // ,{field: 'beBatch$', align: 'center',title: '鏄惁鎵规'} + // // ,{field: 'deadTime', align: 'center',title: '淇濊川鏈�'} + // // ,{field: 'deadWarn', align: 'center',title: '棰勮澶╂暟'} + // // ,{field: 'source$', align: 'center',title: '鍒惰喘'} + // // ,{field: 'inspect$', align: 'center',title: '瑕佹眰妫�楠�'} + // // ,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�'} + // // ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'} + // // ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'} + // // ,{field: 'appeUser$', align: 'center',title: '娣诲姞浜哄憳'} + // // ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'} + // // ,{field: 'memo', align: 'center',title: '澶囨敞'} + // ,{field: 'processSts', 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, + 'limit': res.data.size, + } + }, + response: { + statusCode: 200 + }, + done: function(res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + pageLimit=res.limit; + limit(); + } + }); + + // 鐩戝惉鎺掑簭浜嬩欢 + table.on('sort(wrkMastDetlLog)', 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(wrkMastDetlLog)', 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 searchData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + searchData[this.name] = this.value; + }); + var param = { + 'wrkMastDetlLog': exportData, + 'fields': fields, + 'where': searchData, + 'page': pageCurr, + 'size': pageLimit + }; + $.ajax({ + url: baseUrl+"/wrkMastDetlLog/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(wrkMastDetlLog)', 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+"/wrkMastDetlLog/"+(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+"/wrkMastDetlLog/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: '#ioTime\\$', + type: 'datetime', + value: data!==undefined?data['ioTime\\$']:null + }); + 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} + }); +} diff --git a/src/main/webapp/views/agvWrkMastLog/wrkMastLogWithWrktype.html b/src/main/webapp/views/agvWrkMastLog/wrkMastLogWithWrktype.html new file mode 100644 index 0000000..326bcd4 --- /dev/null +++ b/src/main/webapp/views/agvWrkMastLog/wrkMastLogWithWrktype.html @@ -0,0 +1,98 @@ +<!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="search-box" class="layui-form layui-card-header"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="wrk_no" placeholder="宸ヤ綔鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline cool-auto-complete"> + <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="璇疯緭鍏�" autocomplete="off" 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"> + <div class="layui-input-inline cool-auto-complete"> + <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="璇疯緭鍏�" autocomplete="off" 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"> + <div class="layui-input-inline cool-auto-complete"> + <input id="crnNo" class="layui-input" name="crn_no" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none"> + <input id="crnNo$" 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="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <!-- 鏃ユ湡鑼冨洿 --> + <div class="layui-inline" style="width: 300px"> + <div class="layui-input-inline"> + <input class="layui-input layui-laydate-range" name="io_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 id="data-search-btn" class="layui-btn-container layui-form-item"> + <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> + <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> + </div> +</div> + +<!-- 琛ㄦ牸 --> +<div class="layui-form"> + <table class="layui-hide" id="wrkMastLog" lay-filter="wrkMastLog"></table> +</div> +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button> + </div> +</script> + +<script type="text/html" id="operate"> + <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="detlShow">鏄庣粏</a> + <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</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/agvWrkMastLog/wrkMastLogWithWrktype.js" charset="utf-8"></script> + +<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> + +</body> +</html> + diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html index e8e681d..c9ca6c8 100644 --- a/src/main/webapp/views/index.html +++ b/src/main/webapp/views/index.html @@ -44,7 +44,7 @@ <!-- <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a>--> <!-- </li>--> <li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;"> - <div style="color: red;">璁稿彲璇佹湁鏁堟湡锛�<span id="licenseDays">29</span>澶�</div> +<!-- <div style="color: red;">璁稿彲璇佹湁鏁堟湡锛�<span id="licenseDays">29</span>澶�</div>--> </li> <li class="layui-nav-item layui-hide-xs" lay-unselect> <a ew-event="fullScreen" title="鍏ㄥ睆"><i class="layui-icon layui-icon-screen-full"></i></a> diff --git a/src/main/webapp/views/report/viewWorkCountIn.html b/src/main/webapp/views/report/viewWorkCountIn.html index fd8a55a..205be16 100644 --- a/src/main/webapp/views/report/viewWorkCountIn.html +++ b/src/main/webapp/views/report/viewWorkCountIn.html @@ -32,14 +32,14 @@ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> </div> - <div class="layui-inline"> - <fieldset class="layui-elem-field"> - <legend>鎬昏鏁伴噺</legend> - <div class="layui-field-box" id="countNum"> - 璇风◢绛� - </div> - </fieldset> - </div> +<!-- <div class="layui-inline">--> +<!-- <fieldset class="layui-elem-field">--> +<!-- <legend>鎬昏鏁伴噺</legend>--> +<!-- <div class="layui-field-box" id="countNum">--> +<!-- 璇风◢绛�--> +<!-- </div>--> +<!-- </fieldset>--> +<!-- </div>--> </div> <!-- 琛ㄦ牸 --> diff --git a/src/main/webapp/views/report/viewWorkCountOut.html b/src/main/webapp/views/report/viewWorkCountOut.html index 197c32a..e6ed38a 100644 --- a/src/main/webapp/views/report/viewWorkCountOut.html +++ b/src/main/webapp/views/report/viewWorkCountOut.html @@ -33,14 +33,14 @@ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> </div> - <div class="layui-inline"> - <fieldset class="layui-elem-field"> - <legend>鎬昏鏁伴噺</legend> - <div class="layui-field-box" id="countNum"> - 璇风◢绛� - </div> - </fieldset> - </div> +<!-- <div class="layui-inline">--> +<!-- <fieldset class="layui-elem-field">--> +<!-- <legend>鎬昏鏁伴噺</legend>--> +<!-- <div class="layui-field-box" id="countNum">--> +<!-- 璇风◢绛�--> +<!-- </div>--> +<!-- </fieldset>--> +<!-- </div>--> </div> <!-- 琛ㄦ牸 --> diff --git a/src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html b/src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html new file mode 100644 index 0000000..bed654a --- /dev/null +++ b/src/main/webapp/views/wrkMastDetlLog/wrkMastDetlLog.html @@ -0,0 +1,428 @@ +<!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="wrk_no" placeholder="宸ヤ綔鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline cool-auto-complete"> + <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="璇疯緭鍏�" autocomplete="off" 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"> + <div class="layui-input-inline cool-auto-complete"> + <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="璇疯緭鍏�" autocomplete="off" 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: 300px"> + <div class="layui-input-inline"> + <input class="layui-input layui-laydate-range" name="modi_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="matnr" placeholder="鐗╂枡鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="supp_code" placeholder="璐ф灦鐮�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="order_no" placeholder="鍗曟嵁缂栧彿" autocomplete="off"> + </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="wrkMastDetlLog" lay-filter="wrkMastDetlLog"></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 style="visibility: hidden;" 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/wrkMastDetlLog/wrkMastDetlLog.js" charset="utf-8"></script> +</body> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md12"> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">宸ヤ綔鍙�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ュ伐浣滃彿" lay-vertype="tips" lay-verify="required"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">宸ヤ綔鏃堕棿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="ioTime" id="ioTime$" placeholder="璇疯緭鍏ュ伐浣滄椂闂�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏁伴噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="anfme" placeholder="璇疯緭鍏ユ暟閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鎵樼洏鏉$爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="zpallet" placeholder="璇疯緭鍏ユ墭鐩樻潯鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鍟嗗搧缂栧彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鍙�" lay-vertype="tips" lay-verify="required"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧鍚嶇О: </label> + <div class="layui-input-block"> + <input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鎵瑰彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="batch" placeholder="璇疯緭鍏ユ壒鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁缂栧彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="orderNo" placeholder="璇疯緭鍏ュ崟鎹紪鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍨嬪彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">棰滆壊: </label> + <div class="layui-input-block"> + <input class="layui-input" name="color" placeholder="璇疯緭鍏ラ鑹�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍝佺墝: </label> + <div class="layui-input-block"> + <input class="layui-input" name="brand" placeholder="璇疯緭鍏ュ搧鐗�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚綅: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unit" placeholder="璇疯緭鍏ュ崟浣�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚环: </label> + <div class="layui-input-block"> + <input class="layui-input" name="price" placeholder="璇疯緭鍏ュ崟浠�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">sku: </label> + <div class="layui-input-block"> + <input class="layui-input" name="sku" placeholder="璇疯緭鍏ku"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚綅閲�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="units" 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="origin" placeholder="璇疯緭鍏ヤ骇鍦�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍘傚: </label> + <div class="layui-input-block"> + <input class="layui-input" name="manu" placeholder="璇疯緭鍏ュ巶瀹�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鐢熶骇鏃ユ湡: </label> + <div class="layui-input-block"> + <input class="layui-input" name="manuDate" placeholder="璇疯緭鍏ョ敓浜ф棩鏈�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍝侀」鏁�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瀹夊叏搴撳瓨閲�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="safeQty" placeholder="璇疯緭鍏ュ畨鍏ㄥ簱瀛橀噺"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">閲嶉噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">闀垮害: </label> + <div class="layui-input-block"> + <input class="layui-input" name="length" placeholder="璇疯緭鍏ラ暱搴�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">浣撶Н: </label> + <div class="layui-input-block"> + <input class="layui-input" name="volume" placeholder="璇疯緭鍏ヤ綋绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">涓夋柟缂栫爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="threeCode" placeholder="璇疯緭鍏ヤ笁鏂圭紪鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">渚涘簲鍟�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="supp" placeholder="璇疯緭鍏ヤ緵搴斿晢"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">渚涘簲鍟嗙紪鐮�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="suppCode" placeholder="璇疯緭鍏ヤ緵搴斿晢缂栫爜"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏄惁鎵规: </label> + <div class="layui-input-block"> + <select name="beBatch"> + <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="deadTime" placeholder="璇疯緭鍏ヤ繚璐ㄦ湡"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">棰勮澶╂暟: </label> + <div class="layui-input-block"> + <input class="layui-input" name="deadWarn" placeholder="璇疯緭鍏ラ璀﹀ぉ鏁�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍒惰喘: </label> + <div class="layui-input-block"> + <select name="source"> + <option value="">璇烽�夋嫨鍒惰喘</option> + <option value="1">鍒堕��</option> + <option value="2">閲囪喘</option> + <option value="3">澶栧崗</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瑕佹眰妫�楠�: </label> + <div class="layui-input-block"> + <select name="inspect"> + <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"> + <select name="danger"> + <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 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 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="processSts" placeholder="璇疯緭鍏�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">: </label> + <div class="layui-input-block"> + <input class="layui-input" name="wrkSts" placeholder="璇疯緭鍏�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">: </label> + <div class="layui-input-block"> + <input class="layui-input" name="ioType" 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> + </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> + -- Gitblit v1.9.1