From 7b142f95c47f673c4468468406d1d1c01e48ab6e Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 7 Nov 2023 16:10:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?add:=20=E6=96=B0=E5=A2=9E=E6=88=90=E5=93=81?= =?UTF-8?q?=E6=8A=A5=E5=BA=9F=E5=AE=A1=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 309248 -> 317440 bytes .../instor/rest/ProductScrapController.java | 79 +++ .../instor/service/ProductScrapService.java | 52 ++ .../service/impl/ProductScrapServiceImpl.java | 287 +++++++++++ .../st/instor/wql/QST_IVT_PRODUCTSCRAP.wql | 112 +++++ .../wms/st/inStor/productscrap/AddDialog.vue | 476 ++++++++++++++++++ .../wms/st/inStor/productscrap/AddDtl.vue | 231 +++++++++ .../wms/st/inStor/productscrap/index.vue | 290 +++++++++++ .../st/inStor/productscrap/productscrap.js | 55 ++ 9 files changed, 1582 insertions(+) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql create mode 100644 lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue create mode 100644 lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDtl.vue create mode 100644 lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue create mode 100644 lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index e0cc1c651e57681a5203d6f26d4440dd605d2e00..bc5a57a9dbb2f14d99644c6248aea364c27be389 100644 GIT binary patch delta 18167 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 QO2$+P9-6?lAE+Jv510*UsQ>@~ delta 12355 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 XdKtlIcTdy*`xkNT#JxA1WhMUu$3p5r diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java new file mode 100644 index 000000000..34025866a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/ProductScrapController.java @@ -0,0 +1,79 @@ +package org.nl.wms.st.instor.rest; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.st.instor.service.ProductScrapService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@Api(tags = "成品报废审核") +@RequestMapping("/api/productscrap") +@Slf4j +public class ProductScrapController { + private final ProductScrapService productScrapService; + + @GetMapping + @Log("查询成品报废审核单") + @ApiOperation("查询成品报废审核单") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(productScrapService.pageQuery(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/getOutBillDtl") + @Log("查询明细") + @ApiOperation("查询明细") + public ResponseEntity getOutBillDtl(@RequestParam Map whereJson) { + return new ResponseEntity<>(productScrapService.getOutBillDtl(whereJson), HttpStatus.OK); + } + + @Log("删除") + @ApiOperation("删除") + @DeleteMapping + public ResponseEntity delete(@RequestBody Long[] ids) { + productScrapService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改") + @ApiOperation("修改") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + productScrapService.update(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping() + @Log("新增") + @ApiOperation("新增") + public ResponseEntity insertDtl(@RequestBody JSONObject whereJson) { + productScrapService.insertDtl(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/auditPass") + @Log("审核通过") + @ApiOperation("审核通过") + public ResponseEntity auditPass(@RequestBody JSONObject whereJson) { + productScrapService.auditPass(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/auditOut") + @Log("不通过") + @ApiOperation("不通过") + public ResponseEntity auditOut(@RequestBody JSONObject whereJson) { + productScrapService.auditOut(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java new file mode 100644 index 000000000..b4452140e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/ProductScrapService.java @@ -0,0 +1,52 @@ +package org.nl.wms.st.instor.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.springframework.data.domain.Pageable; + +import java.util.Map; + +public interface ProductScrapService { + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map pageQuery(Map whereJson, Pageable page); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Long[] ids); + /** + * 新增出库单 + * @param whereJson / + */ + void insertDtl (JSONObject whereJson); + /** + * 查询出库单明细 + * @param whereJson / + * @return + */ + JSONArray getOutBillDtl(Map whereJson); + /** + * 修改出库单 + * @param whereJson / + */ + void update(JSONObject whereJson); + + /** + * 审核通过 + * @param whereJson / + */ + void auditPass(JSONObject whereJson); + + /** + * 不通过 + * @param whereJson / + */ + void auditOut(JSONObject whereJson); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java new file mode 100644 index 000000000..d0c1eb0ed --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -0,0 +1,287 @@ +package org.nl.wms.st.instor.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; +import org.nl.wms.st.inbill.service.CheckOutBillService; +import org.nl.wms.st.instor.service.ProductScrapService; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * PC端成品报废审核 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class ProductScrapServiceImpl implements ProductScrapService { + private final CheckOutBillService checkOutBillService; + + @Override + public Map pageQuery(Map whereJson, Pageable page) { + HashMap map = new HashMap<>(whereJson); + map.put("flag", "1"); + if (StrUtil.isNotEmpty(map.get("bill_code"))) { + map.put("bill_code", "%" + map.get("bill_code") + "%"); + } + if (StrUtil.isNotEmpty(map.get("material_code"))) { + map.put("material_code", "%" + map.get("material_code") + "%"); + } + if (StrUtil.isNotEmpty(map.get("pcsn"))) { + map.put("pcsn", (String) whereJson.get("pcsn")); + } + + //获取人员对应的仓库 + UserStorServiceImpl userStorService = new UserStorServiceImpl(); + String in_stor_id = userStorService.getInStor(); + + if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id); + + JSONObject jo = WQL.getWO("QST_IVT_PRODUCTSCRAP").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "scrap_code desc"); + return jo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("is_delete", "1"); + for (Long scrap_id : ids) { + wo_mst.update(jsonObject,"scrap_id = '"+scrap_id+"'"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void insertDtl(JSONObject map) { + //主表 + WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + + JSONArray rows = map.getJSONArray("tableData"); + map.remove("tableData"); + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + JSONObject mst_jo = new JSONObject(); + mst_jo.put("scrap_id", changeinv_id); + mst_jo.put("scrap_code", CodeUtil.getNewCode("SCRAP_CODE")); + mst_jo.put("biz_date", DateUtil.today()); + mst_jo.put("stor_id", MapUtil.getStr(map, "stor_id")); + mst_jo.put("stor_code", MapUtil.getStr(map, "stor_code")); + mst_jo.put("stor_name", MapUtil.getStr(map, "stor_name")); + mst_jo.put("bill_status", "10"); + mst_jo.put("input_optid", currentUserId + ""); + mst_jo.put("input_optname", nickName); + mst_jo.put("input_time", now); + mst_jo.put("is_delete", "0"); + mst_jo.put("detail_count", rows.size()); + + //调用明细处理方法 + JSONObject ret = this.insertDtlByRows(mst_jo, rows); + mst_jo.put("total_qty", ret.getDoubleValue("total_qty")); + wo_mst.insert(mst_jo); + } + + /** + * 根据传进来的载具物料明细,查询载具所有库存记录,并生成移库明细 + * + * @param rows + */ + @Transactional(rollbackFor = Exception.class) + JSONObject insertDtlByRows(JSONObject jsonMst, JSONArray rows) { + WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_ProductScrapDtl"); + + //定义返回数据 + JSONObject ret = new JSONObject(); + double total_qty = 0; + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("scrapdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("scrap_id", jsonMst.getLongValue("scrap_id")); + jsonDtl.put("seq_no", i); + jsonDtl.put("material_id", json.getLongValue("material_id")); + jsonDtl.put("pcsn", json.getString("pcsn")); + jsonDtl.put("package_box_sn", json.getString("storagevehicle_code")); + jsonDtl.put("fail_source", json.getString("fail_source")); + jsonDtl.put("qty_unit_id", json.getString("qty_unit_id")); + jsonDtl.put("qty_unit_name", json.getString("qty_unit_name")); + jsonDtl.put("qty", json.getDoubleValue("qty")); + jsonDtl.put("remark", json.getString("remark")); + wo_dtl.insert(jsonDtl); + + total_qty = NumberUtil.add(total_qty, json.getDoubleValue("qty")); + + } + ret.put("total_qty", total_qty); + return ret; + } + + @Override + public JSONArray getOutBillDtl(Map whereJson) { + whereJson.put("flag", "2"); + JSONArray jo = WQL.getWO("QST_IVT_PRODUCTSCRAP") + .addParamMap((HashMap) whereJson) + .process() + .getResultJSONArray(0); + return jo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject whereJson) { + //主表 + WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + //主表 + WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_ProductScrapDtl"); + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + String scrap_id = (String) whereJson.get("scrap_id"); + //查询主表 + JSONObject jo_mst = wo_mst.query("scrap_id='" + scrap_id + "'").uniqueResult(0); + + //删除所有明细 + wo_dtl.delete("scrap_id = '"+scrap_id+"'"); + + //获取明细 + JSONArray rows = whereJson.getJSONArray("tableData"); + //调用明细处理方法 + JSONObject ret = this.insertDtlByRows(jo_mst, rows); + jo_mst.put("remark", whereJson.get("remark")); + jo_mst.put("biz_date", whereJson.get("biz_date")); + jo_mst.put("detail_count", rows.size()); + jo_mst.put("total_qty", ret.getString("total_qty")); + jo_mst.put("update_optid", currentUserId + ""); + jo_mst.put("update_optname", nickName); + jo_mst.put("update_time", now); + //更新主表 + wo_mst.update(jo_mst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void auditPass(JSONObject whereJson) { + /* + * 1.校验此些子卷是否都在库内并没有被锁定 + * 2.生成出库单 + * 3.更新单据 + */ + WQLObject mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + WQLObject dtl = WQLObject.getWQLObject("ST_IVT_ProductScrapDtl"); + WQLObject ivt = WQLObject.getWQLObject("st_ivt_structivt"); + + // 查询所有明细 + JSONArray dtlArr = dtl.query("scrap_id = '" + whereJson.getString("scrap_id") + "'").getResultJSONArray(0); + + // 查询库存中这些子卷是否存在 + String pcsnJoining = dtlArr.stream() + .map(row -> JSON.parseObject(row.toString())) + .map(row -> row.getString("pcsn")) + .collect(Collectors.joining("','")); + + List ivtList = ivt.query("pcsn in ('" + pcsnJoining + "') and canuse_qty > 0") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + if (dtlArr.size() != ivtList.size()) throw new BadRequestException("库存异常请检查!"); + + // 校验库存 + boolean is_pass = ivtList.stream() + .allMatch(row -> pcsnJoining.contains(row.getString("pcsn"))); + + if (!is_pass) throw new BadRequestException("库存异常请检查!"); + + /* List collect = ivtList.stream() + .filter(row -> !pcsnJoining.contains(row.getString("pcsn"))) + .map(row -> row.getString("pcsn")) + .collect(Collectors.toList()); + + if (ObjectUtil.isNotEmpty(collect)) { + throw new BadRequestException("子卷:"+collect.toString()+"异常请检查!"); + }*/ + + // 生成出库单 + JSONObject jsonOutMst = new JSONObject(); + jsonOutMst.put("stor_id",whereJson.getString("stor_id")); + jsonOutMst.put("stor_code", whereJson.getString("stor_code")); + jsonOutMst.put("stor_name", whereJson.getString("stor_name")); + jsonOutMst.put("detail_count", ivtList.size()); + jsonOutMst.put("bill_status", "10"); + jsonOutMst.put("create_mode", "03"); + jsonOutMst.put("biz_date", DateUtil.now()); + jsonOutMst.put("io_type", "1"); + jsonOutMst.put("buss_type", "1002"); + jsonOutMst.put("bill_type", "1002"); + jsonOutMst.put("source_name", "成品报废审核单"); + + JSONArray tableData = new JSONArray(); + for (int i = 0; i < dtlArr.size(); i++) { + JSONObject json = dtlArr.getJSONObject(i); + + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("pcsn", json.getString("pcsn")); + jsonDtl.put("box_no", json.getString("package_box_sn")); + jsonDtl.put("material_id", json.getString("material_id")); + jsonDtl.put("qty_unit_id", json.getLongValue("qty_unit_id")); + jsonDtl.put("qty_unit_name", json.getString("qty_unit_name")); + jsonDtl.put("plan_qty", json.getDoubleValue("qty")); + tableData.add(jsonDtl); + } + + // 调用出库新增并分配 + jsonOutMst.put("tableData", tableData); + String iostorinv_id = checkOutBillService.insertDtl(jsonOutMst); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("iostorinv_id", iostorinv_id); + checkOutBillService.allDiv(jsonObject); + + // 更新主表为完成 + JSONObject param = new JSONObject(); + param.put("bill_status", "99"); + param.put("confirm_optid", SecurityUtils.getCurrentUserId()); + param.put("confirm_optname", SecurityUtils.getCurrentNickName()); + param.put("confirm_time", DateUtil.now()); + mst.update(param,"scrap_id = '"+whereJson.getString("scrap_id")+"'"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void auditOut(JSONObject whereJson) { + WQLObject mst = WQLObject.getWQLObject("ST_IVT_ProductScrapMst"); + + // 更新主表为完成 + JSONObject param = new JSONObject(); + param.put("bill_status", "99"); + param.put("confirm_optid", SecurityUtils.getCurrentUserId()); + param.put("confirm_optname", SecurityUtils.getCurrentNickName()); + param.put("confirm_time", DateUtil.now()); + mst.update(param,"scrap_id = '"+whereJson.getString("scrap_id")+"'"); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql new file mode 100644 index 000000000..d3dcb1ca1 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql @@ -0,0 +1,112 @@ +[交易说明] + 交易名: 成品报废审核分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.material_code TYPEAS s_string + 输入.bill_status TYPEAS s_string + 输入.bill_code TYPEAS s_string + 输入.stor_id TYPEAS s_string + 输入.end_time TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.pcsn TYPEAS s_string + 输入.scrap_id TYPEAS s_string + 输入.in_stor_id TYPEAS f_string +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT DISTINCT + mst.* + FROM + ST_IVT_ProductScrapMst mst + LEFT JOIN ST_IVT_ProductScrapDtl dtl ON mst.scrap_id = dtl.scrap_id + WHERE + 1 = 1 + AND mst.is_delete = '0' + and mst.stor_id in 输入.in_stor_id + + OPTION 输入.bill_code <> "" + mst.scrap_code like 输入.bill_code + ENDOPTION + + OPTION 输入.pcsn <> "" + dtl.pcsn = 输入.pcsn + ENDOPTION + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.bill_status <> "" + mst.bill_status = 输入.bill_status + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.input_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.input_time <= 输入.end_time + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT DISTINCT + dtl.*, + dtl.package_box_sn AS storagevehicle_code, + mater.material_code, + mater.material_name + FROM + ST_IVT_ProductScrapDtl dtl + LEFT JOIN ST_IVT_ProductScrapMst mst ON mst.scrap_id = dtl.scrap_id + LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id + WHERE + 1 = 1 + OPTION 输入.scrap_id <> "" + dtl.scrap_id = 输入.scrap_id + ENDOPTION + + OPTION 输入.scrapdtl_id <> "" + dtl.scrapdtl_id = 输入.scrapdtl_id + ENDOPTION + + order by dtl.seq_no + ENDSELECT + ENDQUERY + ENDIF \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue new file mode 100644 index 000000000..07af0dd6f --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue @@ -0,0 +1,476 @@ + + + + + + + diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDtl.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDtl.vue new file mode 100644 index 000000000..a36dcb3ea --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDtl.vue @@ -0,0 +1,231 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue new file mode 100644 index 000000000..6b8a33b65 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/index.vue @@ -0,0 +1,290 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js new file mode 100644 index 000000000..f5d578e96 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/productscrap.js @@ -0,0 +1,55 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/productscrap', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/productscrap/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/productscrap', + method: 'put', + data + }) +} + +export function getOutBillDtl(params) { + return request({ + url: '/api/productscrap/getOutBillDtl', + method: 'get', + params + }) +} +export function insertDtl(data) { + return request({ + url: '/api/productscrap/insertDtl', + method: 'post', + data + }) +} +export function auditPass(data) { + return request({ + url: '/api/productscrap/auditPass', + method: 'post', + data + }) +} +export function auditOut(data) { + return request({ + url: '/api/productscrap/auditOut', + method: 'post', + data + }) +} +export default { add, edit, del, getOutBillDtl, auditPass, auditOut } From 46463e7b6514eacdfd3417a756d5bfbbcdf38eb7 Mon Sep 17 00:00:00 2001 From: yanps Date: Wed, 8 Nov 2023 17:30:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?opt:=20=E7=BA=B8=E7=AE=A1=E5=BA=93,?= =?UTF-8?q?=E5=A5=97=E7=AE=A1=E5=B7=A5=E4=BD=8D=E9=A9=B1=E5=8A=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/acs/device/wql/task_inst.xls | Bin 167424 -> 167936 bytes .../CasingStationConveyorDeviceDriver.java | 2 +- .../casing_station/ItemProtocol.java | 2 +- .../paper_tube_device2/ItemProtocol.java | 94 +++++ .../basedriver/paper_tube_device2/Paper.java | 2 +- .../PaperTubeConveyor2DeviceDriver.java | 372 ++++++++++++++++-- .../device_driver/driver/OpcDeviceDriver.java | 16 + .../acs/ext/wms/data/CreateTaskRequest.java | 4 + .../wms/service/impl/AcsToWmsServiceImpl.java | 3 + .../wms/service/impl/WmsToAcsServiceImpl.java | 5 + .../org/nl/acs/task/service/dto/TaskDto.java | 10 +- 11 files changed, 465 insertions(+), 45 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls b/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls index 7470984f1b975aa75f7771b3840aaf0f499a2cc4..136a812e81e915eea21b20e8461ad4313f33d810 100644 GIT binary patch delta 16461 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

^N3BaC|7U7qH_?Nk(rKu;a@F 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 Cvv!sM diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/CasingStationConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/CasingStationConveyorDeviceDriver.java index 48c33ca87..0c7406519 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/CasingStationConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/CasingStationConveyorDeviceDriver.java @@ -298,7 +298,7 @@ public class CasingStationConveyorDeviceDriver extends AbstractOpcDeviceDriver i } else { message = applyPaperActionResponse.getMessage(); map.put("code", "to_command"); - map.put("value", "5"); + map.put("value", "99"); this.writing(map); requireSucess = false; message = "纸管不匹配"; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/ItemProtocol.java index feb67bc19..6e560b925 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/casing_station/ItemProtocol.java @@ -107,7 +107,7 @@ public class ItemProtocol { list.add(new ItemDto(item_error, "报警", "DB101.W58")); list.add(new ItemDto(item_task, "任务号", "DB101.W6")); list.add(new ItemDto(item_material1, "物料1", "DB101.W7")); - list.add(new ItemDto(item_material2, "物料1", "DB101.W8")); + list.add(new ItemDto(item_material2, "物料2", "DB101.W8")); return list; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/ItemProtocol.java index 8a14a2ad5..79da1956a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/ItemProtocol.java @@ -7,6 +7,7 @@ import cn.hutool.json.JSONUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; +import org.jinterop.dcom.core.JIUnsignedInteger; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import java.util.ArrayList; @@ -110,6 +111,47 @@ public class ItemProtocol { this.driver = driver; } + public String getTo_material1() { + return this.getOpcStringValue(item_to_material1); + } + public String getTo_material2() { + return this.getOpcStringValue(item_to_material2); + } + public String getTo_material3() { + return this.getOpcStringValue(item_to_material3); + } + + public int getTo_out_qty1() { + return this.getOpcIntegerValue(item_to_out_qty1); + } + public int getTo_out_qty2() { + return this.getOpcIntegerValue(item_to_out_qty2); + } + public int getTo_out_qty3() { + return this.getOpcIntegerValue(item_to_out_qty3); + } + + public int getTo_seq1() { + return this.getOpcIntegerValue(item_to_seq1); + } + public int getTo_seq2() { + return this.getOpcIntegerValue(item_to_seq2); + } + public int getTo_seq3() { + return this.getOpcIntegerValue(item_to_seq3); + } + + public int getTo_position1() { + return this.getOpcIntegerValue(item_to_position1); + } + public int getTo_position2() { + return this.getOpcIntegerValue(item_to_position2); + } + public int getTo_position3() { + return this.getOpcIntegerValue(item_to_position3); + } + + public int getHeartbeat() { return this.getOpcIntegerValue(item_heartbeat); } @@ -201,6 +243,48 @@ public class ItemProtocol { } + public int getQty1() { + return this.getOpcIntegerValue(item_qty1); + } + public int getQty2() { + return this.getOpcIntegerValue(item_qty2); + } + public int getQty3() { + return this.getOpcIntegerValue(item_qty3); + } + public int getQty4() { + return this.getOpcIntegerValue(item_qty4); + } + public int getQty5() { + return this.getOpcIntegerValue(item_qty5); + } + public int getQty6() { + return this.getOpcIntegerValue(item_qty6); + } + public int getQty7() { + return this.getOpcIntegerValue(item_qty7); + } + public int getQty8() { + return this.getOpcIntegerValue(item_qty8); + } + public int getQty9() { + return this.getOpcIntegerValue(item_qty9); + } + public int getQty10() { + return this.getOpcIntegerValue(item_qty10); + } + public int getQty11() { + return this.getOpcIntegerValue(item_qty11); + } + public int getQty12() { + return this.getOpcIntegerValue(item_qty12); + } + + + + + + public int getTotarget() { return this.getOpcIntegerValue(item_to_target); } @@ -244,6 +328,16 @@ public class ItemProtocol { return new int[3]; } + public int[] getJIUnsignedInteger(String protocol) { + int[] jiUnsignedIntegerArrayValue = this.driver.getJIUnsignedIntegerArrayValue(protocol); + if (ObjectUtil.isNull(jiUnsignedIntegerArrayValue)) { + + } else { + return jiUnsignedIntegerArrayValue; + } + return new int[3]; + } + public List getOpcArrayValue1(String protocol) { List arrayValue = this.driver.getArrayValue(protocol); if (ObjectUtil.isNull(arrayValue)) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/Paper.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/Paper.java index e088a576e..fad8e0cd6 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/Paper.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/Paper.java @@ -13,7 +13,7 @@ public class Paper implements Serializable { //设备号 private String device_code; // - private String meterial_code; + private String material_code; private String qty; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java index 8bee5865e..b522eb139 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java @@ -8,9 +8,12 @@ import cn.hutool.json.JSON; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jinterop.dcom.core.JIUnsignedInteger; import org.nl.acs.agv.server.AgvService; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -108,13 +111,93 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl //下发任务号 int to_task = 0; int last_to_task = 0; - + //出库顺序数组 String item_out_seq_arr = null; - List item_out_seq_arr1 = null; String last_item_out_seq_arr = null; + //出库数量数组 int[] item_out_qty_arr = null; int[] last_item_out_qty_arr = null; + + String item_material1 = null; + String last_item_material1 = null; + String item_material2 = null; + String last_item_material2 = null; + String item_material3 = null; + String last_item_material3 = null; + String item_material4 = null; + String last_item_material4 = null; + String item_material5 = null; + String last_item_material5 = null; + String item_material6 = null; + String last_item_material6 = null; + String item_material7 = null; + String last_item_material7 = null; + String item_material8 = null; + String last_item_material8 = null; + String item_material9 = null; + String last_item_material9 = null; + String item_material10 = null; + String last_item_material10 = null; + String item_material11 = null; + String last_item_material11 = null; + String item_material12 = null; + String last_item_material12 = null; + + int item_qty1 = 0; + int last_item_qty1 = 0; + int item_qty2 = 0; + int last_item_qty2 = 0; + int item_qty3 = 0; + int last_item_qty3 = 0; + int item_qty4 = 0; + int last_item_qty4 = 0; + int item_qty5 = 0; + int last_item_qty5 = 0; + int item_qty6 = 0; + int last_item_qty6 = 0; + int item_qty7 = 0; + int last_item_qty7 = 0; + int item_qty8 = 0; + int last_item_qty8 = 0; + int item_qty9 = 0; + int last_item_qty9 = 0; + int item_qty10 = 0; + int last_item_qty10 = 0; + int item_qty11 = 0; + int last_item_qty11 = 0; + int item_qty12 = 0; + int last_item_qty12 = 0; + + String item_to_material1 = null; + String last_item_to_material1 = null; + String item_to_material2 = null; + String last_item_to_material2 = null; + String item_to_material3 = null; + String last_item_to_material3 = null; + + int item_to_out_qty1 = 0; + int last_item_to_out_qty1 = 0; + int item_to_out_qty2 = 0; + int last_item_to_out_qty2 = 0; + int item_to_out_qty3 = 0; + int last_item_to_out_qty3 = 0; + + int item_to_seq1 = 0; + int last_item_to_seq1 = 0; + int item_to_seq2 = 0; + int last_item_to_seq2 = 0; + int item_to_seq3 = 0; + int last_item_to_seq3 = 0; + + int item_to_position1 = 0; + int last_item_to_position1 = 0; + int item_to_position2 = 0; + int last_item_to_position2 = 0; + int item_to_position3 = 0; + int last_item_to_position3 = 0; + + //当前指令 Instruction inst = null; @@ -149,7 +232,6 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl @Override public void execute() { try { - String message = null; device_code = this.getDeviceCode(); heartbeat = this.itemProtocol.getHeartbeat(); mode = this.itemProtocol.getMode(); @@ -160,20 +242,48 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl to_command = this.itemProtocol.getTo_command(); to_target = this.itemProtocol.getTotarget(); to_task = this.itemProtocol.getTo_task(); - //item_out_seq_arr1 = this.itemProtocol.getItem_out_seq_arr1(); item_out_seq_arr = this.itemProtocol.getItem_out_seq_arr(); item_out_qty_arr = this.itemProtocol.getItem_out_qty_arr(); + item_material1 = this.itemProtocol.getMaterial1(); + item_material2 = this.itemProtocol.getMaterial2(); + item_material3 = this.itemProtocol.getMaterial3(); + item_material4 = this.itemProtocol.getMaterial4(); + item_material5 = this.itemProtocol.getMaterial5(); + item_material6 = this.itemProtocol.getMaterial6(); + item_material7 = this.itemProtocol.getMaterial7(); + item_material8 = this.itemProtocol.getMaterial8(); + item_material9 = this.itemProtocol.getMaterial9(); + item_material10 = this.itemProtocol.getMaterial10(); + item_material11 = this.itemProtocol.getMaterial11(); + item_material12 = this.itemProtocol.getMaterial12(); + item_qty1 = this.itemProtocol.getQty1(); + item_qty2 = this.itemProtocol.getQty2(); + item_qty3 = this.itemProtocol.getQty3(); + item_qty4 = this.itemProtocol.getQty4(); + item_qty5 = this.itemProtocol.getQty5(); + item_qty6 = this.itemProtocol.getQty6(); + item_qty7 = this.itemProtocol.getQty7(); + item_qty8 = this.itemProtocol.getQty8(); + item_qty9 = this.itemProtocol.getQty9(); + item_qty10 = this.itemProtocol.getQty10(); + item_qty11 = this.itemProtocol.getQty11(); + item_qty12 = this.itemProtocol.getQty12(); + item_to_material1 = this.itemProtocol.getTo_material1(); + item_to_material2 = this.itemProtocol.getTo_material2(); + item_to_material3 = this.itemProtocol.getTo_material3(); + item_to_out_qty1 = this.itemProtocol.getTo_out_qty1(); + item_to_out_qty2 = this.itemProtocol.getTo_out_qty2(); + item_to_out_qty3 = this.itemProtocol.getTo_out_qty3(); + item_to_seq1 = this.itemProtocol.getTo_seq1(); + item_to_seq2 = this.itemProtocol.getTo_seq2(); + item_to_seq3 = this.itemProtocol.getTo_seq3(); + item_to_position1 = this.itemProtocol.getTo_position1(); + item_to_position2 = this.itemProtocol.getTo_position2(); + item_to_position3 = this.itemProtocol.getTo_position3(); - if (to_command != last_to_command) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); - } - if (to_target != last_to_target) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); - } - if (to_task != last_to_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); - } + //信号位置校验,记录日志 + signal_verification(); if (mode != last_mode) { JSONObject param = new JSONObject(); @@ -254,10 +364,13 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl request_for_shipment(String.valueOf(mode), item_out_seq_arr, item_out_qty_arr); } break; + default: + break; } } last_heartbeat = heartbeat; last_mode = mode; + last_move = move; last_error = error; last_carrier_direction = carrier_direction; last_task = task; @@ -266,6 +379,42 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl last_to_task = to_task; last_item_out_seq_arr = item_out_seq_arr; last_item_out_qty_arr = item_out_qty_arr; + last_item_material1 = item_material1; + last_item_material2 = item_material2; + last_item_material3 = item_material3; + last_item_material4 = item_material4; + last_item_material5 = item_material5; + last_item_material6 = item_material6; + last_item_material7 = item_material7; + last_item_material8 = item_material8; + last_item_material9 = item_material9; + last_item_material10 = item_material10; + last_item_material11 = item_material11; + last_item_material12 = item_material12; + last_item_qty1 = item_qty1; + last_item_qty2 = item_qty2; + last_item_qty3 = item_qty3; + last_item_qty4 = item_qty4; + last_item_qty5 = item_qty5; + last_item_qty6 = item_qty6; + last_item_qty7 = item_qty7; + last_item_qty8 = item_qty8; + last_item_qty9 = item_qty9; + last_item_qty10 = item_qty10; + last_item_qty11 = item_qty11; + last_item_qty12 = item_qty12; + last_item_to_material1 = item_to_material1; + last_item_to_material2 = item_to_material2; + last_item_to_material3 = item_to_material3; + last_item_to_out_qty1 = item_to_out_qty1; + last_item_to_out_qty2 = item_to_out_qty2; + last_item_to_out_qty3 = item_to_out_qty3; + last_item_to_seq1 = item_to_seq1; + last_item_to_seq2 = item_to_seq2; + last_item_to_seq3 = item_to_seq3; + last_item_to_position1 = item_to_position1; + last_item_to_position2 = item_to_position2; + last_item_to_position3 = item_to_position3; } @@ -331,26 +480,29 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl applyPaperActionRequest.setTask_code(String.valueOf(task)); //获取出库顺序 boolean contains = item_out_seq_arr.contains(","); - //String s = item_out_seq_arr.replaceAll("[\\[\\]]", ""); + boolean contains1 = item_out_seq_arr.contains(","); + if (contains) { String[] split = item_out_seq_arr.split(","); applyPaperActionRequest.setMaterial1(split[0]); - applyPaperActionRequest.setMaterial2(split[1]); + applyPaperActionRequest.setMaterial1(split[1]); + } else if (contains1) { + String[] split = item_out_seq_arr.split(","); + applyPaperActionRequest.setMaterial1(split[0]); + applyPaperActionRequest.setMaterial1(split[1]); } else { applyPaperActionRequest.setMaterial1(item_out_seq_arr); } - /*if (item_out_qty_arr.length == 2) { - // 去除方括号 - applyPaperActionRequest.setMaterial1(String.valueOf(item_out_qty_arr[0])); - applyPaperActionRequest.setMaterial2(String.valueOf(item_out_qty_arr[1])); - } else if (item_out_qty_arr.length == 1) { - applyPaperActionRequest.setMaterial1(String.valueOf(item_out_qty_arr[0])); - }*/ if (item_out_qty_arr.length >= 1 && item_out_qty_arr.length < 4) { applyPaperActionRequest.setQty1(String.valueOf(item_out_qty_arr[0])); applyPaperActionRequest.setQty2(String.valueOf(item_out_qty_arr[1])); } ApplyPaperActionResponse applyPaperActionResponse = acsToWmsService.applyPaperActionRequest(applyPaperActionRequest); + if (ObjectUtil.isNull(applyPaperActionResponse)) { + message = "请求失败"; + requireSucess = false; + return; + } Map map3 = new HashMap(); if (applyPaperActionResponse.getstatus() == 200) { map3.put("to_command", "4"); @@ -383,10 +535,7 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl //查找有没有对应的指令 //找指令类型是10的 Instruction inst = instructionService.findByDeviceCodeFromCache(this.device_code); - if (ObjectUtil.isNull(inst)) { - return false; - } - if (ObjectUtil.isNotNull(inst) && "10".equals(inst.getInstruction_code())) { + if (ObjectUtil.isNotNull(inst) && "10".equals(inst.getInstruction_type())) { Device nextdevice = deviceAppservice.findDeviceByCode(inst.getNext_device_code()); String next_addr = nextdevice.getExtraValue().get("address").toString(); TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); @@ -424,10 +573,12 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl } //判断当前任务号是否存在指令 Instruction inst1 = instructionService.findByTaskcodeAndStatus(taskdto.getTask_code()); - Device nextdevice = deviceAppservice.findDeviceByCode(inst1.getNext_device_code()); - String next_addr = nextdevice.getExtraValue().get("address").toString(); - Device pointdevice = deviceAppservice.findDeviceByCode(inst1.getNext_point_code()); - String point_addr = pointdevice.getExtraValue().get("address").toString(); + /*if(ObjectUtil.isNotNull(inst1)){ + Device nextdevice = deviceAppservice.findDeviceByCode(inst1.getNext_device_code()); + String next_addr = nextdevice.getExtraValue().get("address").toString(); + Device pointdevice = deviceAppservice.findDeviceByCode(inst1.getNext_point_code()); + String point_addr = pointdevice.getExtraValue().get("address").toString(); + }*/ //没有就创建指令 String taskid = taskdto.getTask_id(); String taskcode = taskdto.getTask_code(); @@ -435,7 +586,6 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl String start_point_code = taskdto.getStart_point_code(); String start_device_code = taskdto.getStart_device_code(); String route_plan_code = taskdto.getRoute_plan_code(); - Instruction instdto = new Instruction(); instdto.setInstruction_id(IdUtil.simpleUUID()); instdto.setRoute_plan_code(route_plan_code); @@ -448,9 +598,9 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl instdto.setCreate_time(now); instdto.setCreate_by("auto"); instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_addr); + instdto.setNext_device_code(taskdto.getNext_device_code()); instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(point_addr); + instdto.setNext_point_code(taskdto.getNext_point_code()); instdto.setPriority(priority); instdto.setInstruction_status("0"); instdto.setExecute_device_code(start_point_code); @@ -475,7 +625,7 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl writeStatus(paperArray, map, 2); writeStatus(paperArray, map, 3); } - writeData(next_addr, instdto, map); + writeData(taskdto.getNext_device_code(), instdto, map); this.writing(map); requireSucess = true; return true; @@ -502,11 +652,13 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl } public void writeStatus(List paperArray, Map map, Integer status) { - Paper paper = paperArray.get(status); - map.put("to_material" + status, paper.getMeterial_code()); + Paper paper = paperArray.get(status - 1); + map.put("to_material" + status, paper.getMaterial_code()); map.put("to_out_qty" + status, paper.getQty()); - map.put("to_seq" + status, "1"); - map.put("to_position" + status, paper.getDevice_code()); + map.put("to_seq" + status, status); + Device nextdevice = deviceAppservice.findDeviceByCode(paper.getDevice_code()); + String next_addr = nextdevice.getExtraValue().get("address").toString(); + map.put("to_position" + status, next_addr); } @@ -560,8 +712,7 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl * 解析出库的顺序 */ public List getPaperArray(String paper_array) { - JSONArray jsonArray = JSONUtil.parseArray(paper_array); - List papers = jsonArray.toList(Paper.class); + List papers = JSONUtil.toList(paper_array, Paper.class); return papers; } @@ -573,7 +724,6 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl Date date = new Date(); if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) { log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out); - } else { this.instruction_update_time = date; inst = checkInst(); @@ -614,9 +764,149 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl return null; } + private void signal_verification() { + if (!item_out_seq_arr.equals(last_item_out_seq_arr)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号item_out_seq_arr:" + last_item_out_seq_arr + "->" + item_out_seq_arr); + } + if (!arrayEquals(item_out_qty_arr, last_item_out_qty_arr)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号item_out_qty_arr:" + Arrays.toString(last_item_out_qty_arr) + "->" + Arrays.toString(item_out_qty_arr)); + } + if (item_qty1 != (last_item_qty1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty1:" + last_item_qty1 + "->" + item_qty1); + } + if (item_qty2 != (last_item_qty2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty2:" + last_item_qty2 + "->" + item_qty2); + } + if (item_qty3 != (last_item_qty3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty3:" + last_item_qty3 + "->" + item_qty3); + } + if (item_qty4 != (last_item_qty4)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty4:" + last_item_qty4 + "->" + item_qty4); + } + if (item_qty5 != (last_item_qty5)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty5:" + last_item_qty5 + "->" + item_qty5); + } + if (item_qty6 != (last_item_qty6)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty6:" + last_item_qty6 + "->" + item_qty6); + } + if (item_qty7 != (last_item_qty7)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty7:" + last_item_qty7 + "->" + item_qty7); + } + if (item_qty8 != (last_item_qty8)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty8:" + last_item_qty8 + "->" + item_qty8); + } + if (item_qty9 != (last_item_qty9)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty9:" + last_item_qty9 + "->" + item_qty9); + } + if (item_qty10 != (last_item_qty10)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty10:" + last_item_qty10 + "->" + item_qty10); + } + if (item_qty11 != (last_item_qty11)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty11:" + last_item_qty11 + "->" + item_qty11); + } + if (item_qty12 != (last_item_qty12)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号qty12:" + last_item_qty12 + "->" + item_qty12); + } + if (item_material1.equals(last_item_material1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material1:" + last_item_material1 + "->" + item_material1); + } + if (!item_material2.equals(last_item_material2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material2:" + last_item_material2 + "->" + item_material2); + } + if (!item_material3.equals(last_item_material3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material3:" + last_item_material3 + "->" + item_material3); + } + if (!item_material4.equals(last_item_material4)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material4:" + last_item_material4 + "->" + item_material4); + } + if (!item_material5.equals(last_item_material5)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material5:" + last_item_material5 + "->" + item_material5); + } + if (!item_material6.equals(last_item_material6)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material6:" + last_item_material6 + "->" + item_material6); + } + if (!item_material7.equals(last_item_material7)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material7:" + last_item_material7 + "->" + item_material7); + } + if (!item_material8.equals(last_item_material8)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material8:" + last_item_material8 + "->" + item_material8); + } + if (!item_material9.equals(last_item_material9)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material9:" + last_item_material9 + "->" + item_material9); + } + if (!item_material10.equals(last_item_material10)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material10:" + last_item_material10 + "->" + item_material10); + } + if (!item_material11.equals(last_item_material11)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material11:" + last_item_material11 + "->" + item_material11); + } + if (!item_material12.equals(last_item_material12)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号material12:" + last_item_material12 + "->" + item_material12); + } + if (to_command != last_to_command) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); + } + if (to_target != last_to_target) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); + } + if (to_task != last_to_task) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); + } + if (!item_to_material1.equals(last_item_to_material1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_material1:" + last_item_to_material1 + "->" + item_to_material1); + } + if (!item_to_material2.equals(last_item_to_material2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_material2:" + last_item_to_material2 + "->" + item_to_material2); + } + if (!item_to_material3.equals(last_item_to_material3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_material3:" + last_item_to_material2 + "->" + item_to_material2); + } + if (item_to_out_qty1 != (last_item_to_out_qty1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_out_qty1:" + last_item_to_out_qty1 + "->" + item_to_out_qty1); + } + if (item_to_out_qty2 != (last_item_to_out_qty2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_out_qty2:" + last_item_to_out_qty2 + "->" + item_to_out_qty2); + } + if (item_to_out_qty3 != (last_item_to_out_qty3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_out_qty3:" + last_item_to_out_qty3 + "->" + item_to_out_qty3); + } + if (item_to_seq1 != (last_item_to_seq1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_seq1:" + last_item_to_seq1 + "->" + item_to_seq1); + } + if (item_to_seq2 != (last_item_to_seq2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_seq2:" + last_item_to_seq2 + "->" + item_to_seq2); + } + if (item_to_seq3 != (last_item_to_seq3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_seq3:" + last_item_to_seq3 + "->" + item_to_seq3); + } + if (item_to_position1 != (last_item_to_position1)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_position1:" + last_item_to_position1 + "->" + item_to_position1); + } + if (item_to_position2 != (last_item_to_position2)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_position2:" + last_item_to_position2 + "->" + item_to_position2); + } + if (item_to_position3 != (last_item_to_position3)) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号to_position3:" + last_item_to_position3 + "->" + item_to_position3); + } + + } @Override public void setDeviceStatus(JSONObject data) { } + + public static boolean arrayEquals(int[] a, int[] b) { + // 判断两个数组长度是否相等 + if (a.length != b.length) { + return false; + } + // 判断两个数组对应位置上的元素是否相同 + for (int i = 0; i < a.length; i++) { + if (a[i] != b[i]) { + return false; + } + } + return true; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java index 157d4f3f1..b51132023 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java @@ -4,6 +4,7 @@ package org.nl.acs.device_driver.driver; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.jinterop.dcom.core.JIUnsignedInteger; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.opc.Device; import org.nl.acs.opc.OpcItemDto; @@ -77,6 +78,21 @@ public interface OpcDeviceDriver extends DeviceDriver { return (int[]) this.getOpcValueAccessor().getValue(this.getItem(protocol)); } + + default int[] getJIUnsignedIntegerArrayValue(String protocol) { + JIUnsignedInteger[] jiUnsignedIntegers = (JIUnsignedInteger[]) this.getOpcValueAccessor().getValue(this.getItem(protocol)); + if(ObjectUtil.isNull(jiUnsignedIntegers)){ + return new int[3]; + } + // 将 JIUnsignedInteger[] 转换为 int[] + int[] intArray = new int[jiUnsignedIntegers.length]; + for (int i = 0; i < jiUnsignedIntegers.length; i++) { + intArray[i] = jiUnsignedIntegers[i].getValue().intValue(); + } + + return intArray; + } + default String getStringValue(String protocol) { return (String) this.getOpcValueAccessor().getValue(this.getItem(protocol)); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java index d9b4cb330..226fb0a07 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/CreateTaskRequest.java @@ -1,7 +1,9 @@ package org.nl.acs.ext.wms.data; import lombok.Data; +import org.nl.acs.device_driver.basedriver.paper_tube_device2.Paper; +import java.util.List; import java.util.Map; @Data @@ -120,4 +122,6 @@ public class CreateTaskRequest extends BaseRequest { */ Map params; + private List paper_array; + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 4e305c38f..9ed99ea66 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -488,6 +488,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); AddressDto addressDto = addressService.findByCode("applyPaperAction"); + if(ObjectUtil.isNull(addressDto)){ + return null; + } String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; log.info("ApplyPaperActionRequest----请求参数{}", param); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 4ac9b6396..3ae28e74c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -27,6 +28,7 @@ import org.nl.acs.device_driver.basedriver.hongxiang_device.HongXiangConveyorDev import org.nl.acs.device_driver.basedriver.lamp_three_color.LampThreecolorDeviceDriver; import org.nl.acs.device_driver.basedriver.oven_manipulator.OvenGantryManipulatorDeviceDriver; import org.nl.acs.device_driver.basedriver.paper_tube_device.PaperTubeConveyorDeviceDriver; +import org.nl.acs.device_driver.basedriver.paper_tube_device2.Paper; import org.nl.acs.device_driver.basedriver.plug_pull_device_site.PlugPullDeviceSiteDeviceDriver; import org.nl.acs.device_driver.basedriver.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.siemens_conveyor_ckk.SiemensConveyorCkkDeviceDriver; @@ -614,6 +616,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { for (int i = 0; i < datas.size(); i++) { String data = datas.get(i).toString(); CreateTaskRequest request = JsonUtl.format(data, CreateTaskRequest.class); + List paper_array = request.getPaper_array(); String ext_task_id = request.getExt_task_id(); String task_code = request.getTask_code(); String start_device_code = request.getStart_device_code(); @@ -823,6 +826,8 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { jo.put("remark", remark); jo.put("params", params); jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type)); + jo.put("paper_array", JSONUtil.toJsonStr(paper_array)); + if (!StrUtil.isEmpty(ext_task_id)) { jo.put("ext_task_id", ext_task_id); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java index f770f33b3..3db2e300a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java @@ -1,8 +1,16 @@ package org.nl.acs.task.service.dto; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; +import org.jinterop.dcom.core.JIUnsignedFactory; +import org.jinterop.dcom.core.JIUnsignedInteger; +import org.nl.acs.device_driver.basedriver.paper_tube_device2.Paper; import java.io.Serializable; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + /** * @author ldjun @@ -329,11 +337,11 @@ public class TaskDto implements Serializable { private String bushing_num; - //array device_code\material_code\qty private String paper_array; + @Override public String toString(){ return "task_code:" + this.getTask_code() From 61ed74e4ae0dd5e9e6a6c594dc8e623c6b5f9b4c Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 8 Nov 2023 19:02:50 +0800 Subject: [PATCH 3/3] =?UTF-8?q?rev=EF=BC=9A=E6=88=90=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E5=AE=A1=E6=A0=B8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/st/inStor/productscrap/AddDialog.vue | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue index 07af0dd6f..fac90b93f 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/productscrap/AddDialog.vue @@ -118,7 +118,7 @@ - + - 一键填充 + 填充

不合格品明细 @@ -198,6 +198,11 @@ + + +