From 427a3084a49cbf7499b718995c80998f1c9dc501 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 30 Aug 2023 18:17:11 +0800 Subject: [PATCH 01/13] =?UTF-8?q?add:=20=E4=B8=89=E7=BA=BF=E6=89=8B?= =?UTF-8?q?=E6=8C=81=E5=8A=9F=E8=83=BD=20=EF=BC=9A=20=E5=8D=8A=E6=88=90?= =?UTF-8?q?=E5=93=81=E5=85=A5=E5=BA=93=E3=80=81=E5=8D=8A=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E3=80=81=E7=A9=BA=E7=AE=B1=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/MdMeMaterialbaseMapper.xml | 3 +- .../nl/wms/storage_manage/pda/PDAEnum.java | 6 +- .../PdaStHrBcpEmpOutController.java | 52 +++++ .../controller/PdaStHrBcpInController.java | 60 ++++++ .../controller/PdaStHrBcpOutController.java | 54 ++++++ .../pda/service/PdaStHrBcpEmpOutService.java | 33 ++++ .../pda/service/PdaStHrBcpInService.java | 42 ++++ .../pda/service/PdaStHrBcpOutService.java | 34 ++++ .../impl/PdaStHrBcpEmpOutServiceImpl.java | 182 ++++++++++++++++++ .../service/impl/PdaStHrBcpInServiceImpl.java | 152 +++++++++++++++ .../impl/PdaStHrBcpOutServiceImpl.java | 157 +++++++++++++++ .../iostorInv/dao/StIvtIostorinvOrder.java | 7 +- .../impl/StIvtIostorinvEmpBcpServiceImpl.java | 2 +- .../mapper/xml/StIvtStructivtHrBcpMapper.xml | 1 + .../java/org/nl/wms/storage_manage/stivt.xls | Bin 436224 -> 436736 bytes 15 files changed, 780 insertions(+), 5 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpEmpOutController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpInController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpOutController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpEmpOutService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpInService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpOutService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpEmpOutServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpInServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpOutServiceImpl.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml index 264b1a2c..1211fabb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml @@ -15,7 +15,8 @@ 1 = 1 and mater.material_type_id = '1528555445302726656' AND (mater.material_code LIKE '%${query.material_code}%' or - mater.material_name LIKE '%${query.material_code}%') + mater.material_name LIKE '%${query.material_code}%') or + mater.material_spec LIKE '%${query.material_code}%') order by mater.material_code ASC diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java index 2a11bca4..f8ade71d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java @@ -13,14 +13,16 @@ import java.util.Map; public enum PDAEnum { //点位区域 REGION_CODE(MapOf.of("半成品入库区域", "A1_BCPRK01", "半成品出库区域", "A1_BCPCK01","成品入库区域", - "A1_CPRK01","半成品盘点区域", "A1_BCP_PP","海柔半成品出库区域","A3_BCPCK01", - "发货区域","A1_FH01")), + "A1_CPRK01","半成品盘点区域", "A1_BCP_PP","海柔半成品出库区域","A3_BCPCK01","海柔半成品入库区域","A3_BCPRK01", + "发货区域","A1_FH01","三线半成品空箱出库区域","A3_BCPKXCK01")), //库区编码 SECT_CODE(MapOf.of("半成品库区", "KQ005")), //库区id SECT_ID(MapOf.of("成品库区", "1528631043496742912")), //仓库id STOR_ID(MapOf.of("紫铜三线半成品仓库", "15286279952695336963")), + //车间 + WORKSHOP_ID(MapOf.of("智能三线车间", "A3")), //物料类别 MATERIAL_CLASS(MapOf.of("管件原材料", "1503644349995552768","管件半成品", "1528555443906023424","管件成品", "1528555444031852544")), ; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpEmpOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpEmpOutController.java new file mode 100644 index 00000000..13e14969 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpEmpOutController.java @@ -0,0 +1,52 @@ +package org.nl.wms.storage_manage.pda.controller; + + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.anno.Log; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpEmpOutService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 手持半成品出库 前端控制器 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@RestController +@RequestMapping("/api/pda/hrBcp/empOut") +public class PdaStHrBcpEmpOutController { + + @Autowired + private PdaStHrBcpEmpOutService pdaStHrBcpEmpOutService; + + @PostMapping("/getIvt") + @Log("获取库存") + //("获取库存") + public ResponseEntity getMaterial(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaStHrBcpEmpOutService.getIvt(whereJson), HttpStatus.OK); + } + + @PostMapping("/getPoint") + @Log("获取入库点") + //("获取入库点") + public ResponseEntity getPoint() { + return new ResponseEntity<>(pdaStHrBcpEmpOutService.getPoint(), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("出库确认") + //("出库确认") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaStHrBcpEmpOutService.confirm(whereJson), HttpStatus.OK); + } + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpInController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpInController.java new file mode 100644 index 00000000..3e9601c5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpInController.java @@ -0,0 +1,60 @@ +package org.nl.wms.storage_manage.pda.controller; + + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 手持半成品入库 前端控制器 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@RestController +@RequestMapping("/api/pda/hrBcp/iosIn") +public class PdaStHrBcpInController { + + @Autowired + private PdaStHrBcpInService pdaStHrBcpInService; + + @PostMapping("/getMaterial") + @Log("查询物料") + //("查询物料") + public ResponseEntity getMaterial(@RequestBody JSONObject whereJson, PageQuery pageQuery) { + return new ResponseEntity<>(pdaStHrBcpInService.getMaterial(whereJson,pageQuery), HttpStatus.OK); + } + + @PostMapping("/getWork") + @Log("获取工序下拉框") + //("获取工序下拉框") + public ResponseEntity getWork() { + return new ResponseEntity<>(pdaStHrBcpInService.getWork(), HttpStatus.OK); + } + + @PostMapping("/getPoint") + @Log("获取入库点") + //("获取入库点") + public ResponseEntity getPoint() { + return new ResponseEntity<>(pdaStHrBcpInService.getPoint(), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("确认入库") + //("确认入库") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaStHrBcpInService.confirm(whereJson), HttpStatus.OK); + } + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpOutController.java new file mode 100644 index 00000000..a5ef4926 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/controller/PdaStHrBcpOutController.java @@ -0,0 +1,54 @@ +package org.nl.wms.storage_manage.pda.controller; + + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpOutService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 手持半成品出库 前端控制器 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@RestController +@RequestMapping("/api/pda/hrBcp/iosOut") +public class PdaStHrBcpOutController { + + @Autowired + private PdaStHrBcpOutService pdaStHrBcpOutService; + + @PostMapping("/getIvt") + @Log("获取库存") + //("获取库存") + public ResponseEntity getMaterial(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaStHrBcpOutService.getIvt(whereJson), HttpStatus.OK); + } + + @PostMapping("/getPoint") + @Log("获取入库点") + //("获取入库点") + public ResponseEntity getPoint() { + return new ResponseEntity<>(pdaStHrBcpOutService.getPoint(), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("出库确认") + //("出库确认") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaStHrBcpOutService.confirm(whereJson), HttpStatus.OK); + } + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpEmpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpEmpOutService.java new file mode 100644 index 00000000..0f698720 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpEmpOutService.java @@ -0,0 +1,33 @@ +package org.nl.wms.storage_manage.pda.service; + +import com.alibaba.fastjson.JSONObject; + +/** + *

+ * 手持半成品出库 服务类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +public interface PdaStHrBcpEmpOutService { + + /** + * 获取库存 + * @param whereJson / + * @return / + */ + JSONObject getIvt(JSONObject whereJson); + + /** + * 获取入库点 + * @return / + */ + JSONObject getPoint(); + + /** + * 出库确认 + * @return / + */ + JSONObject confirm(JSONObject whereJson); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpInService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpInService.java new file mode 100644 index 00000000..bd59a677 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpInService.java @@ -0,0 +1,42 @@ +package org.nl.wms.storage_manage.pda.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.domain.query.PageQuery; + +/** + *

+ * 手持半成品入库 服务类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +public interface PdaStHrBcpInService { + + /** + * 查询物料 + * @param whereJson / + * @return JSONObject / + */ + JSONObject getMaterial(JSONObject whereJson, PageQuery pageQuery); + + /** + * 获取工序下拉框 + * @return / + */ + JSONObject getWork(); + + /** + * 确认入库 + * @param whereJson / + * @return / + */ + JSONObject confirm(JSONObject whereJson); + + /** + * 获取入库点 + * @return / + */ + JSONObject getPoint(); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpOutService.java new file mode 100644 index 00000000..a59c465b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStHrBcpOutService.java @@ -0,0 +1,34 @@ +package org.nl.wms.storage_manage.pda.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.domain.query.PageQuery; + +/** + *

+ * 手持半成品出库 服务类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +public interface PdaStHrBcpOutService { + + /** + * 获取库存 + * @param whereJson / + * @return / + */ + JSONObject getIvt(JSONObject whereJson); + + /** + * 获取入库点 + * @return / + */ + JSONObject getPoint(); + + /** + * 出库确认 + * @return / + */ + JSONObject confirm(JSONObject whereJson); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpEmpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpEmpOutServiceImpl.java new file mode 100644 index 00000000..95e50e14 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpEmpOutServiceImpl.java @@ -0,0 +1,182 @@ +package org.nl.wms.storage_manage.pda.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; +import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.IVTEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpEmpOutService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl.StIvtIostorinvEmpBcpServiceImpl; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.dao.mapper.StIvtStructivtHrBcpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + *

+ * 手持半成品入库 服务实现类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@Service +public class PdaStHrBcpEmpOutServiceImpl implements PdaStHrBcpEmpOutService { + + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务 + + @Autowired + private IPdmBiWorkprocedureService iPdmBiWorkprocedureService; // 工序服务 + + @Autowired + private IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入库顺序服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private StIvtStructivtHrBcpMapper stIvtStructivtHrBcpMapper; //库存服务mapper + + @Autowired + protected IMdPbMeasureunitService iMdPbMeasureunitService; // 计量单位服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private IStIvtSectattrService sectattrService; // 库区服务 + + @Override + public JSONObject getIvt(JSONObject whereJson) { + + StIvtSectattr sect = sectattrService.getOne( + new QueryWrapper().lambda() + .eq(StIvtSectattr::getSect_name, "海柔半成品库区") + ); + + List list = new ArrayList<>(); + if (ObjectUtil.isEmpty(whereJson.getString("storagevehicle_code"))) { + list = structattrService.list( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getSect_id, sect.getSect_id()) + .eq(StIvtStructattr::getStor_id, sect.getStor_id()) + .eq(StIvtStructattr::getIs_used, true) + .eq(StIvtStructattr::getIs_emptyvehicle, true) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .and(qr -> qr.ne(StIvtStructattr::getStoragevehicle_code, "") + .or().isNull(StIvtStructattr::getStoragevehicle_code) + ) + .orderByDesc(StIvtStructattr::getXqty) + .orderByAsc(StIvtStructattr::getYqty) + ); + } else { + list = structattrService.list( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getSect_id, sect.getSect_id()) + .eq(StIvtStructattr::getStor_id, sect.getStor_id()) + .eq(StIvtStructattr::getIs_used, true) + .eq(StIvtStructattr::getIs_emptyvehicle, true) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .and(qr -> qr.ne(StIvtStructattr::getStoragevehicle_code, "") + .or().isNull(StIvtStructattr::getStoragevehicle_code) + ) + .likeRight(StIvtStructattr::getStoragevehicle_code, whereJson.getString("storagevehicle_code")) + .orderByDesc(StIvtStructattr::getXqty) + .orderByAsc(StIvtStructattr::getYqty) + ); + } + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; + } + + @Override + public JSONObject getPoint() { + List list = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("三线半成品空箱出库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + .eq(SchBasePoint::getIs_delete, IOSEnum.IS_USED.code("否")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; + } + + @Override + @Transactional + public JSONObject confirm(JSONObject whereJson) { + String point_code = whereJson.getString("point_code"); + + if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空!"); + + JSONArray rows = whereJson.getJSONArray("rows"); + + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + + StIvtStructattr attrDao = structattrService.getById(json.getString("struct_id")); + + // 1.生成任务 + SchBaseTask taskDao = new SchBaseTask(); + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_HR_EMP_OUT) + .acs_task_type("16") + .task_group_id(IdUtil.getStringId()) + .point_code1(attrDao.getStruct_code()) + .point_code3(point_code) + .vehicle_code(attrDao.getStoragevehicle_code()) + .product_area("A3") + .callback((Consumer) taskDao::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + + // 2.下发任务 + StIvtIostorinvEmpBcpServiceImpl bean = SpringContextHolder.getBean(StIvtIostorinvEmpBcpServiceImpl.class); + bean.sendTask(taskDao.getTask_id()); + + // 3.锁定货位 + attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁")); + structattrService.updateById(attrDao); + + } + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "出库成功"); + return result; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpInServiceImpl.java new file mode 100644 index 00000000..81e049e6 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpInServiceImpl.java @@ -0,0 +1,152 @@ +package org.nl.wms.storage_manage.pda.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService; +import org.nl.wms.storage_manage.pda.service.dto.PdaQuery; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 手持半成品入库 服务实现类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@Service +public class PdaStHrBcpInServiceImpl implements PdaStHrBcpInService { + + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务 + + @Autowired + private IPdmBiWorkprocedureService iPdmBiWorkprocedureService; // 工序服务 + + @Autowired + private IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入库顺序服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Override + public JSONObject getMaterial(JSONObject whereJson1, PageQuery pageQuery) { + PdaQuery whereJson = new PdaQuery(); + whereJson.setMaterial_code(whereJson1.getString("material_spec")); + int size = whereJson1.getIntValue("size"); + + int totalCount = 0; + + List list = new ArrayList<>(); + if (ObjectUtil.isEmpty(whereJson1.getString("material_spec"))) { + List list1 = iMdMeMaterialbaseService.list( + new QueryWrapper().lambda() + .eq(MdMeMaterialbase::getMaterial_type_id, "1528555445302726656") + ); + list = list1.subList(0, Math.min(list1.size(), size)); + totalCount = list1.size(); + } else { + List list1 = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson, pageQuery); + list = list1.subList(0, Math.min(list1.size(), size)); + totalCount = list1.size(); + } + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("totalCount", totalCount); + result.put("message", "查询成功"); + return result; + } + + @Override + public JSONObject getWork() { + JSONArray array = iPdmBiWorkprocedureService.downSelect(PDAEnum.WORKSHOP_ID.code("智能三线车间")); + + JSONObject result = new JSONObject(); + result.put("data", array); + result.put("message", "查询成功"); + return result; + + } + + @Override + public JSONObject getPoint() { + List list = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("海柔半成品入库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + .eq(SchBasePoint::getIs_delete, IOSEnum.IS_USED.code("否")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; + } + + @Override + @Transactional + public JSONObject confirm(JSONObject whereJson) { + // 校验 + if (ObjectUtil.isEmpty(whereJson.getString("material_code"))) throw new BadRequestException("请选择物料!"); + if (ObjectUtil.isEmpty(whereJson.getString("qty"))) throw new BadRequestException("请填写数量!"); + if (ObjectUtil.isEmpty(whereJson.getString("bar_code"))) throw new BadRequestException("请扫码!"); + if (ObjectUtil.isEmpty(whereJson.getString("point_code"))) throw new BadRequestException("请选择点位!"); + + + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne( + new QueryWrapper().lambda() + .eq(MdMeMaterialbase::getMaterial_code, whereJson.getString("material_code")) + , false); + + // 插入出入库顺序表 + StIvtIostorinvOrder dao = new StIvtIostorinvOrder(); + dao.setOrder_id(IdUtil.getStringId()); + dao.setWorkshop_id(PDAEnum.WORKSHOP_ID.code("智能三线车间")); + dao.setStor_id(PDAEnum.STOR_ID.code("紫铜三线半成品仓库")); + dao.setIn_device(whereJson.getString("point_code")); + dao.setBar_code(whereJson.getString("bar_code")); + dao.setMaterial_id(materDao.getMaterial_id()); + dao.setSale_id(whereJson.getString("sale_id")); + + // 重量 : kg + double weight = NumberUtil.div(NumberUtil.mul(materDao.getNet_weight().doubleValue(), whereJson.getDoubleValue("qty")), 1000); + dao.setWeight(BigDecimal.valueOf(weight)); + dao.setQty(whereJson.getBigDecimal("qty")); + dao.setType(IOSEnum.IO_TYPE.check("入库")); + dao.setIs_delete(false); + dao.setCreate_time(DateUtil.now()); + dao.setBiz_date(DateUtil.today()); + dao.setWorkprocedure_id(whereJson.getString("workprocedure_id")); + iStIvtIostorinvOrderService.save(dao); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "操作成功"); + return result; + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpOutServiceImpl.java new file mode 100644 index 00000000..6b675b95 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStHrBcpOutServiceImpl.java @@ -0,0 +1,157 @@ +package org.nl.wms.storage_manage.pda.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; +import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.IVTEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; +import org.nl.wms.storage_manage.pda.service.PdaStHrBcpOutService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpOutService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.dao.mapper.StIvtStructivtHrBcpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 手持半成品入库 服务实现类 + *

+ * + * @author Liuxy + * @since 2023-08-30 + */ +@Service +public class PdaStHrBcpOutServiceImpl implements PdaStHrBcpOutService { + + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private StIvtStructivtHrBcpMapper stIvtStructivtHrBcpMapper; //库存服务mapper + + @Autowired + protected IMdPbMeasureunitService iMdPbMeasureunitService; // 计量单位服务 + + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + + @Autowired + private IStIvtIostorinvHrBcpOutService iStIvtIostorinvHrBcpOutService; // 半成品出库服务 + + @Override + public JSONObject getIvt(JSONObject whereJson) { + + JSONObject param = new JSONObject(); + param.put("material_code", whereJson.getString("material_spec")); + + List list = stIvtStructivtHrBcpMapper.getPdaBcpIvt(param); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; + } + + @Override + public JSONObject getPoint() { + List list = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("海柔半成品出库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + .eq(SchBasePoint::getIs_delete, IOSEnum.IS_USED.code("否")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; + } + + @Override + @Transactional + public JSONObject confirm(JSONObject whereJson) { + String point_code = whereJson.getString("point_code"); + + if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空!"); + + // 组织数据出库 + JSONArray rows = whereJson.getJSONArray("rows"); + + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + + JSONObject jsonMst = new JSONObject(); + jsonMst.put("biz_date", DateUtil.today()); + jsonMst.put("bill_type", IOSEnum.BILL_TYPE_HR.code("生产出库")); + jsonMst.put("remark", "手持PDA创建" ); + jsonMst.put("product_code", PDAEnum.WORKSHOP_ID.code("智能三线车间") ); + jsonMst.put("point_code", point_code ); + jsonMst.put("stor_id", IOSEnum.STOR_CODE.code("海柔半成品")); + jsonMst.put("auto_send", "1"); // 是否自动创建任务并下发 + + JSONArray tableData = new JSONArray(); + + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("material_id", json.getString("material_id")); + jsonDtl.put("pcsn", ""); + jsonDtl.put("plan_qty", json.getString("canuse_qty")); + jsonDtl.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品")); + jsonDtl.put("base_bill_code", ""); + + 物料信息: + { + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById( json.getString("material_id")); + MdPbMeasureunit untiDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id()); + + jsonDtl.put("qty_unit_id", untiDao.getMeasure_unit_id()); + jsonDtl.put("qty_unit_name", untiDao.getUnit_name()); + jsonDtl.put("unit_weight", materDao.getNet_weight()); + jsonDtl.put("storagevehicle_code", json.getString("storagevehicle_code")); + } + + 仓位信息: + { + StIvtStructattr attrDao = structattrService.getById(json.getString("struct_id")); + + jsonDtl.put("sect_id", attrDao.getSect_id()); + jsonDtl.put("sect_code", attrDao.getSect_code()); + jsonDtl.put("sect_name", attrDao.getSect_name()); + jsonDtl.put("struct_id", attrDao.getStruct_id()); + jsonDtl.put("struct_code", attrDao.getStruct_code()); + jsonDtl.put("struct_name", attrDao.getStruct_name()); + } + + tableData.add(jsonDtl); + jsonMst.put("tableData",tableData); + + // 调用出库服务 + iStIvtIostorinvHrBcpOutService.create(jsonMst); + } + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "出库成功"); + return result; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java index 224b7fa3..b754543f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java @@ -89,10 +89,15 @@ public class StIvtIostorinvOrder implements Serializable { */ private String type; + /** + * 工序标识 + */ + private String workprocedure_id; + /** * 是否删除 */ - private boolean is_delete; + private Boolean is_delete; /** * 创建时间 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java index aecb3f03..1a89659e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java @@ -262,7 +262,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe * 下发任务 * @param task_id / */ - private void sendTask(String task_id) { + public void sendTask(String task_id) { SchBaseTask taskDao = iSchBaseTaskService.getById(task_id); JSONArray param = new JSONArray(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml index 07fa7c66..49fd4310 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/structIvt/dao/mapper/xml/StIvtStructivtHrBcpMapper.xml @@ -160,6 +160,7 @@ unit.unit_name, ROUND(ivt.canuse_qty / mater.net_weight,3) AS qty, attr.struct_name, + attr.struct_code, attr.sect_code, attr.sect_name, attr.stor_name, diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls index ff3593955c606e4a24d744094316912e90150efd..ed3c910616e123ee182a5c8d3be7433bc7eab8e5 100644 GIT binary patch delta 10156 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 delta 10341 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 From 79ab3099fa0e9fa6d6ed4f82da6c124e9221e479 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 09:56:56 +0800 Subject: [PATCH 02/13] =?UTF-8?q?rev=EF=BC=9A=E5=BC=80=E7=AE=B1=E6=9C=BA?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E4=BF=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java index df6d11e7..a8b5ffca 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java @@ -198,7 +198,7 @@ public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver impleme if (ealingOrderDto != null) { String is_foreward = ealingOrderDto.getIs_foreward(); Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); +// map.put("to_clear", "1"); map.put("to_foreward", is_foreward); map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); map.put("to_order", ealingOrderDto.getOrder_code()); From 01fd8b0d19b5666ac56ee5a04a478a7527cc8a16 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 09:58:08 +0800 Subject: [PATCH 03/13] =?UTF-8?q?rev=EF=BC=9A=E6=B8=85=E6=B4=97=E4=B8=8A?= =?UTF-8?q?=E3=80=81=E4=B8=8B=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../HailiangCleaningFeedingLineDriver.java | 150 +++++++++++------- .../HailiangCleaningPutLineDeviceDriver.java | 108 +++++++++---- 2 files changed, 176 insertions(+), 82 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java index 2aa148de..9246a3e3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.acsEnum.WorkerOrderEnum; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; @@ -122,7 +123,6 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i allowed_in = this.itemProtocol.getItem_allowed_in(); error = this.itemProtocol.getItem_error(); in_pcsn = this.itemProtocol.getItem_in_pcsn(); - to_in_confirm_finish = this.itemProtocol.getItem_to_in_confirm_finish(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } @@ -224,19 +224,37 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i // } // } + // 修改工单状态为生产中 +// if (mode == 1 && allowed_in == 1 && in_pcsn > 0) { + if (mode == 1 && in_pcsn > 0 && task_finish == 0) { + ProduceshiftorderDto pdto = produceshiftorderService.findOrderByDeviceCode(this.getDevice_code()); + if (pdto != null) { + if (pdto.getOrder_status().equals(WorkerOrderEnum.READY.getCode())) { + pdto.setOrder_status(WorkerOrderEnum.PRODUCTING.getCode()); + produceshiftorderService.update(pdto); + // TODO 反馈mes + JSONObject reqParam = new JSONObject(); + reqParam.put("in_pcsn", in_pcsn); + reqParam.put("status", StatusEnum.TASK_RUNNING.getCode()); + HttpResponse httpResponse = acsToWmsService.washTask(reqParam); + if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { + requireSucess = true; + this.message = "反馈清洗上料执行中成功"; + } + } + } + + } + if (mode == 1 && task_finish == 1 ) { - boolean flag = washTask(in_pcsn); + logServer.deviceExecuteLog(this.device_code, "", "", "task_finish:"+task_finish+"电气完成任务后信号last_in_pcsn:" + last_in_pcsn + "last_in_pcsn任务号不为空则查询工单更新状态自动完成"); + logServer.deviceExecuteLog(this.device_code, "", "", "this.device_code:"+this.device_code+ "device_code不为空则查询工单更新状态自动完成"); + boolean flag = washTask(last_in_pcsn); if (flag) { this.message = "反馈清洗上料完成成功"; } } - if (mode == 1 && to_in_confirm_finish == 1 ) { - boolean flag = washTaskRun(in_pcsn); - if (flag) { - this.message = "反馈清洗上料执行中"; - } - } } last_mode = mode; last_is_open = is_open; @@ -369,32 +387,31 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i private boolean washTask(int in_pcsn) { ProduceshiftorderDto dto = produceshiftorderService.findOrderByDeviceCode(this.getDevice_code()); if (dto != null) { - if (!StrUtil.equals(dto.getOrder_code(),String.valueOf(in_pcsn))){ - return false; - } - this.writing("to_confirm_finished", "1"); - String[] in_devices = dto.getIn_devices().split(","); - //上料完成清除储料仓内存中的物料信息 - Arrays.stream(in_devices).forEach(device_code -> { - Device device = deviceAppService.findDeviceByCode(device_code); - if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { - HailiangCleaningMachineStorageStationDeviceDriver hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); - hailiangCleaningMachineStorageStationDeviceDriver.setMaterial_code(null); - //下发储料仓去皮 - hailiangCleaningMachineStorageStationDeviceDriver.writing("to_peel","1"); + if (dto.getOrder_status().equals(WorkerOrderEnum.PRODUCTING.getCode())) { + this.writing("to_confirm_finished", "1"); + this.writing("to_pcsn","0"); + String[] in_devices = dto.getIn_devices().split(","); + //上料完成清除储料仓内存中的物料信息 + Arrays.stream(in_devices).forEach(device_code -> { + Device device = deviceAppService.findDeviceByCode(device_code); + if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { + HailiangCleaningMachineStorageStationDeviceDriver hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); + hailiangCleaningMachineStorageStationDeviceDriver.setMaterial_code(null); + //下发储料仓去皮 + hailiangCleaningMachineStorageStationDeviceDriver.writing("to_peel","1"); + } + }); + //修改工单状态为完成 + dto.setOrder_status(WorkerOrderEnum.COMPLETE.getCode()); + produceshiftorderService.update(dto); + // TODO 反馈mes + JSONObject reqParam = new JSONObject(); + reqParam.put("in_pcsn", dto.getOrder_code()); + reqParam.put("status", StatusEnum.TASK_FINISH.getCode()); + HttpResponse httpResponse = acsToWmsService.washTask(reqParam); + if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { + this.message = "反馈清洗上料任务完成成功"; } - }); - //修改工单状态为执行中 - dto.setOrder_status("2"); - produceshiftorderService.update(dto); - // TODO 反馈mes - JSONObject reqParam = new JSONObject(); - reqParam.put("in_pcsn", in_pcsn); - reqParam.put("status", StatusEnum.TASK_FINISH.getCode()); - HttpResponse httpResponse = acsToWmsService.washTask(reqParam); - if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { - requireSucess = true; - return true; } } return false; @@ -477,30 +494,51 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i @Override public void issuedOrderInfo(ProduceshiftorderDto dto) { - String[] in_devices = dto.getIn_devices().split(","); - //上料储料仓总重量 - int weightSum = 0; - //上料储料仓总数量 - int qtySum = 0; - //遍历上料储料仓设备 求重量和数量和下发给清洗上料位 - for (int i = 0; i < in_devices.length; i++) { - String in_device = in_devices[i]; - Device device = deviceAppService.findDeviceByCode(in_device); - if (device != null) { - HailiangCleaningMachineStorageStationDeviceDriver hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); - weightSum += hailiangCleaningMachineStorageStationDeviceDriver.getSilo_weight(); - qtySum += hailiangCleaningMachineStorageStationDeviceDriver.getFull_number(); - hailiangCleaningMachineStorageStationDeviceDriver.writing("to_feeding", "1"); + try { + this.writing("to_confirm_finished", "1"); + this.writing("to_del_task","1"); + Thread.sleep(2000L); + String[] in_devices = dto.getIn_devices().split(","); + //上料储料仓总重量 + int weightSum = 0; + //上料储料仓总数量 + int qtySum = 0; + + //下发电气信号 + Map map = new LinkedHashMap<>(); + map.put("task_finish","0"); + map.put("to_pcsn",dto.getOrder_code());//下发批次号,暂时用工单号 + map.put("to_all_num", String.valueOf(qtySum)); + map.put("to_all_weight", String.valueOf(weightSum)); + map.put("to_in_confirm_finish", "1"); + map.put("allowed_in","1"); + this.writing(map); + //遍历上料储料仓设备 求重量和数量和下发给清洗上料位 + for (int i = 0; i < in_devices.length; i++) { + String in_device = in_devices[i]; + Device device = deviceAppService.findDeviceByCode(in_device); + if (device != null) { + HailiangCleaningMachineStorageStationDeviceDriver hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); + weightSum += hailiangCleaningMachineStorageStationDeviceDriver.getSilo_weight(); + qtySum += hailiangCleaningMachineStorageStationDeviceDriver.getFull_number(); + hailiangCleaningMachineStorageStationDeviceDriver.writing("to_feeding", "1"); + } } + } catch (InterruptedException e) { + e.printStackTrace(); } - //下发电气信号 - Map map = new LinkedHashMap<>(); - map.put("to_pcsn",dto.getOrder_code());//下发批次号,暂时用工单号 - map.put("to_all_num", String.valueOf(qtySum)); - map.put("to_all_weight", String.valueOf(weightSum)); - map.put("to_in_confirm_finish", "1"); - map.put("allowed_in","1"); - this.writing(map); + +// this.writing("to_compel_finished","1"); + + +// //修改工单状态为执行中 +// dto.setOrder_status(StatusEnum.TASK_RUNNING.getCode()); +// // TODO 反馈mes +// JSONObject reqParam = new JSONObject(); +// reqParam.put("in_pcsn", dto.getOrder_code()); +// reqParam.put("status", StatusEnum.TASK_RUNNING.getCode()); +// HttpResponse httpResponse = acsToWmsService.washTask(reqParam); + } /** @@ -508,6 +546,8 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i */ @Override public void issuedOrderFinish(String autoFinish) { + this.writing("to_compel_finished","1"); + this.writing("to_del_task","1"); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_put_line/HailiangCleaningPutLineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_put_line/HailiangCleaningPutLineDeviceDriver.java index 883b2c49..be26866d 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_put_line/HailiangCleaningPutLineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_put_line/HailiangCleaningPutLineDeviceDriver.java @@ -1,7 +1,6 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_put_line; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -11,7 +10,7 @@ import org.nl.acs.acsEnum.InstActionEnum; import org.nl.acs.acsEnum.StatusEnum; import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; -import org.nl.acs.auto.run.NDCSocketConnectionAutoRun; +import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; @@ -28,7 +27,7 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; -import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; @@ -57,6 +56,8 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvServiceImpl.class); @Autowired InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); //工作模式 int mode = 0; @@ -133,7 +134,7 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver int last_full_weight = 0; //上料批次号 int last_in_pcsn = 0; - int last_barcode = 0; + String last_barcode = null; //收料位1批次入料总数量 int last_all_num = 0; //收料位1批次入料总重量 @@ -141,7 +142,10 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver int last_open_ready_time = 0; int last_device_running_time = 0; int last_await_time = 0; - + int last_barcode_1 = 0; + int last_barcode_2 = 0; + int last_barcode_3 = 0; + int last_barcode_4 = 0; Boolean isonline = true; @@ -207,6 +211,9 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } if (move != last_move) { + if (move == 1) { + requireSucess = false; + } logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } if (is_open != last_is_open) { @@ -257,6 +264,18 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver if (await_time != last_await_time) { logServer.deviceExecuteLog(this.device_code, "", "", "信号await_time:" + last_await_time + "->" + await_time); } + if (barcode_1 != last_barcode_1) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode_1:" + last_barcode_1 + "->" + barcode_1); + } + if (barcode_2 != last_barcode_2) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode_2:" + last_barcode_2 + "->" + barcode_2); + } + if (barcode_3 != last_barcode_3) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode_3:" + last_barcode_3 + "->" + barcode_3); + } + if (barcode_4 != last_barcode_4) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode_4:" + last_barcode_4 + "->" + barcode_4); + } if (error != last_error) { if (error != 0) { @@ -286,15 +305,17 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver this.setIserror(false); message = ""; //工作模式联机、满框请求 就申请agv任务 - if (mode == 1 && full_req == 1 && put_line_ready ==0 && !requireSucess) { - boolean flag = apply_task(StatusEnum.QXXL_FULL_REQ.getCode()); - this.noApplyTaskMessage = null; - if (flag) { - this.message = "申请满框请求任务成功"; - } - } +// if (mode == 1 && full_req == 1 && !requireSucess) { +// boolean flag = apply_task(StatusEnum.QXXL_FULL_REQ.getCode()); +// this.noApplyTaskMessage = null; +// if (flag) { +// this.message = "申请满框请求任务成功"; +// } +// } //工作模式联机、强制搬出请求 就申请agv任务 - if (mode == 1 && compel_full_req == 1 && put_line_ready ==0 && !requireSucess) { + logServer.deviceExecuteLog(device_code, "", "", "mode="+this.mode+"----compel_full_req="+compel_full_req+"-------requireSucess="+requireSucess); + if (mode == 1 && compel_full_req == 1) { + logServer.deviceExecuteLog(device_code, "", "", "mode="+this.mode+"----compel_full_req="+compel_full_req+"-------requireSucess="+requireSucess); boolean flag = apply_task(StatusEnum.QXXL_COMPEL_REQ.getCode()); this.noApplyTaskMessage = null; if (flag) { @@ -302,7 +323,9 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver } } //工作模式联机、空框请求 就申请agv任务 - if (mode == 1 && empty_req == 1 && put_line_ready ==0 && !requireSucess) { + logServer.deviceExecuteLog(device_code, "", "", "mode="+this.mode+"----empty_req="+empty_req+"-------requireSucess="+requireSucess); + if (mode == 1 && empty_req == 1 && !requireSucess) { + logServer.deviceExecuteLog(device_code, "", "", "mode="+this.mode+"----empty_req="+empty_req+"-------requireSucess="+requireSucess); boolean flag = apply_task(StatusEnum.QXXL_EMPTY_REQ.getCode()); this.noApplyTaskMessage = null; if (flag) { @@ -311,11 +334,11 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver } //agv到达取货位 if (agvphase == 0x03) { - if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 1 && is_up== 1) { + if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 1) { inst.setExecute_status(InstActionEnum.EXECUTE_TO_GET.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); - NDCSocketConnectionAutoRun.write(data); + OneNDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); @@ -337,13 +360,21 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver //agv取货完成 if (agvphase == 0x05) { - if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 0) { + if (ObjectUtil.isNotEmpty(inst) && mode == 1 && is_up == 1) { + //下发取货位AGV取货完成 + this.writing("to_agv_take_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_GET_FINISH.getCode()); instructionService.update(inst); - //下发取货位AGV取货完成 - writing("to_agv_take_finish", "1"); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.setExt_param(new HashMap<>()); + taskDto.getExt_param().put("take_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); - NDCSocketConnectionAutoRun.write(data); + OneNDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); @@ -364,11 +395,11 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver } //agv到达放框位 if (agvphase == 0x07) { - if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 0 && is_up== 1) { + if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 0 && is_up == 1) { inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_FALL_SEND_FULL.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); - NDCSocketConnectionAutoRun.write(data); + OneNDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); @@ -390,17 +421,32 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver //agv放框完成 if (agvphase == 0x09) { - if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 1 && is_up == 0) { - inst.setExecute_status(InstActionEnum.EXECUTE_PUT_FALL_SEND_FULL_FINISH.getCode()); - instructionService.update(inst); + if (ObjectUtil.isNotEmpty(inst) && mode == 1 && move == 1) { //下发AGV放框完成 writing("to_agv_release_finish", "1"); + inst.setExecute_status(InstActionEnum.EXECUTE_PUT_FALL_SEND_FULL_FINISH.getCode()); + instructionService.update(inst); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.setExt_param(new HashMap<>()); + taskDto.getExt_param().put("put_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); - NDCSocketConnectionAutoRun.write(data); + OneNDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); + try { + logServer.deviceExecuteLog(device_code, "", "", "PS20放完空框后延迟3秒去皮"); + Thread.sleep(3000L); + this.writing("to_peel","1"); + } catch (InterruptedException e) { + e.printStackTrace(); + } } else { String notFeedAgvMessage = ""; if (mode != 1) { @@ -437,6 +483,12 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver last_open_ready_time = open_ready_time; last_device_running_time = device_running_time; last_await_time = await_time; + last_barcode_1 = barcode_1; + last_barcode_2 = barcode_2; + last_barcode_3 = barcode_3; + last_barcode_4 = barcode_4; + last_barcode = barcode; + } public String stringToascii(int num) { @@ -664,9 +716,11 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver * @return */ public synchronized boolean apply_task(String code) { + logServer.deviceExecuteLog(device_code,"", "", "开始申请任务类型"+code+"mode="+this.mode+"----compel_full_req="+compel_full_req+"-------requireSucess="+requireSucess); if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + logServer.deviceExecuteLog(device_code,"", "", "执行申请任务类型"+code+"mode="+this.mode+"----compel_full_req="+compel_full_req+"-------requireSucess="+requireSucess); redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); JSONObject reqParam = new JSONObject(); reqParam.put("type", code); @@ -674,7 +728,7 @@ public class HailiangCleaningPutLineDeviceDriver extends AbstractOpcDeviceDriver reqParam.put("in_pcsn", this.getIn_pcsn()); reqParam.put("workorder_code", this.getIn_pcsn()); reqParam.put("vehicle_code", this.getBarcode()); - reqParam.put("weight", this.getFull_weight()); + reqParam.put("weight", this.getNow_weight()); reqParam.put("qty",this.getAll_num()); HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { From 1f07dab81f2ae7ead8f282d04dc2264cc9a2a9c6 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:01:03 +0800 Subject: [PATCH 04/13] =?UTF-8?q?rev=EF=BC=9A=E8=A3=85=E7=AE=B1=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../hailiang_ealing_machine/EalingMachineDeviceDriver.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java index a0d8f1e8..110ad439 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java @@ -245,7 +245,11 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement JSONObject jo = new JSONObject(); jo.put("device_code", this.getDevice().getDevice_code()); jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("order", task); + jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("isOnline", this.itemProtocol.getIsonline()); + jo.put("isError", this.getIserror()); + jo.put("message", this.getMessage()); return jo; } @@ -259,8 +263,8 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement public void issuedOrderInfo(ProduceshiftorderDto dto) { EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); if (ObjectUtil.isNotEmpty(ealingOrderDto)) { + this.writing("to_clear", "1"); Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); map.put("to_order", ealingOrderDto.getOrder_code()); map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); map.put("to_order_bag_num", ealingOrderDto.getOrder_bag_num()); From b20069eaa4769d2b151eaca56b667bb19429e8c9 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:01:55 +0800 Subject: [PATCH 05/13] =?UTF-8?q?rev=EF=BC=9A=E5=88=BB=E5=AD=97=E4=B8=8A?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../HailiangEngravingInDeviceDriver.java | 198 +++++++++++------- .../hailiang_engraving_in/ItemProtocol.java | 12 +- 2 files changed, 135 insertions(+), 75 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java index 8b9221a9..d8c659aa 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/HailiangEngravingInDeviceDriver.java @@ -40,6 +40,8 @@ import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.impl.TaskServiceImpl; import org.nl.modules.common.utils.RedisUtils; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -75,6 +77,8 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp TaskService taskserver = SpringContextHolder.getBean(TaskService.class); @Autowired ParamService paramService = SpringContextHolder.getBean(ParamService.class); + @Autowired + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); //线体状态 int status = 0; //线体开机状态 @@ -123,6 +127,8 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp int device_running_time = 0; //待机时间(S) int await_time = 0; + //拉闸信号 + int to_agv_put_finish = 0; //线体状态 int last_status = 0; @@ -247,11 +253,14 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp device_running_time = this.itemProtocol.getItem_device_running_time();//设备运转时间(S) await_time = this.itemProtocol.getItem_await_time(); //待机时间(S) + to_agv_put_finish = this.itemProtocol.getItem_to_agv_put_finish(); + isonline = this.itemProtocol.getIsonline(); if (mode != last_mode) { feedDeviceStatusFlag = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); + lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, ItemProtocol.item_mode, mode, last_mode)); } if (gd_move != last_gd_move) { logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_gd_move + "->" + gd_move); @@ -263,7 +272,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp logServer.deviceExecuteLog(this.device_code, "", "", "信号is_open:" + last_is_open + "->" + is_open); } if (is_running != last_is_running) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号is_running:" + last_is_running + "->" + is_running); + logServer.deviceExecuteLog(this.device_code, "", "", "信号is_running【是否允】:" + last_is_running + "->" + is_running); } if (empty_req != last_empty_req) { if (empty_req == 1) { @@ -324,7 +333,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp logServer.deviceExecuteLog(this.device_code, "", "", "信号engraving_weight:" + last_engraving_weight + "->" + engraving_weight); } if (engraving_storage_now_weight != last_engraving_storage_now_weight) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号engraving_storage_now_weight:" + last_engraving_storage_now_weight + "->" + engraving_storage_now_weight); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号engraving_storage_now_weight:" + last_engraving_storage_now_weight + "->" + engraving_storage_now_weight); } if (engraving_all_weight != last_engraving_all_weight) { logServer.deviceExecuteLog(this.device_code, "", "", "信号engraving_all_weight:" + last_engraving_all_weight + "->" + engraving_all_weight); @@ -335,9 +344,9 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp if (fl_full_weight != last_fl_full_weight) { logServer.deviceExecuteLog(this.device_code, "", "", "信号fl_full_weight:" + last_fl_full_weight + "->" + fl_full_weight); } - if (barcode != last_barcode) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode:" + last_barcode + "->" + barcode); - } +// if (barcode != last_barcode) { +// logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode:" + last_barcode + "->" + barcode); +// } if (open_ready_time != last_open_ready_time) { logServer.deviceExecuteLog(this.device_code, "", "", "信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); } @@ -399,26 +408,54 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp feedDeviceStatusFlag = true; } -// // 修改工单状态为生产中 -// if (mode == 1 && order > 0) { -// ProduceshiftorderDto pdto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); -// if (pdto != null) { -// if (pdto.getOrder_status().equals(WorkerOrderEnum.READY.getCode())) { -// pdto.setOrder_status(WorkerOrderEnum.PRODUCTING.getCode()); -// produceshiftorderService.update(pdto); -// } -// } -// } + // 修改工单状态为生产中 + if (mode == 1 && task_finish == 0 && task > 0 ) { + ProduceshiftorderDto pdto = produceshiftorderService.findByCodeFromCache(String.valueOf(task)); + if (pdto != null) { + if (pdto.getOrder_status().equals(WorkerOrderEnum.READY.getCode())) { + pdto.setOrder_status(WorkerOrderEnum.PRODUCTING.getCode()); + produceshiftorderService.update(pdto); + // TODO 反馈mes + JSONObject reqParam = new JSONObject(); + reqParam.put("task_code", task); + reqParam.put("status", StatusEnum.TASK_RUNNING.getCode()); + HttpResponse httpResponse = acsToWmsService.washTask(reqParam); + if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { + this.message = "反馈刻字输送线任务执行中成功"; + } + } + } + } //修改工单状态为自动完成 -// if (mode == 1 && order_finish != last_order_finish && order_finish == 1 && order > 0) { -// ProduceshiftorderDto pdto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); -// if (pdto != null) { -// if (pdto.getOrder_status().equals(WorkerOrderEnum.PRODUCTING.getCode())) { -// produceshiftorderService.finished(pdto); -// } -// } -// } + if (mode == 1 && task_finish == 1) { + logServer.deviceExecuteLog(this.device_code, "", "", "task_finish:"+task_finish+"电气完成任务后信号last_task:" + last_task + "last_task任务号不为空则查询工单更新状态自动完成"); + logServer.deviceExecuteLog(this.device_code, "", "", "this.device_code:"+this.device_code+ "device_code不为空则查询工单更新状态自动完成"); +// ProduceshiftorderDto pdto = produceshiftorderService.findByCodeFromCache(String.valueOf(last_task)); + ProduceshiftorderDto pdto = produceshiftorderService.findOrderByDeviceCode(this.device_code); + if (pdto != null) { + if (pdto.getOrder_status().equals(WorkerOrderEnum.PRODUCTING.getCode())) { + //修改工单状态为完成 + pdto.setOrder_status(WorkerOrderEnum.COMPLETE.getCode()); + produceshiftorderService.update(pdto); + // TODO 反馈mes + JSONObject reqParam = new JSONObject(); + reqParam.put("task_code", pdto.getOrder_code()); + reqParam.put("status", StatusEnum.TASK_FINISH.getCode()); + HttpResponse httpResponse = acsToWmsService.washTask(reqParam); + if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { + this.message = "反馈刻字输送线任务完成成功"; + } + this.writing("to_confirm_finished", "1"); + this.writing("to_agv_put_finish", "0"); + this.writing("to_del_task","1"); + + } + } + + // this.writing("to_task","0"); + } + } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); @@ -461,7 +498,8 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp // } // } - //无货、联机、空箱请求申请AGV搬运任务 + //有框、联机、空箱请求申请AGV搬运任务 + if (StrUtil.equals(paramService.findByCode(AcsConfig.KZPLAN).getValue(), "1")) { if (gd_move == 1 && mode == 1 && empty_req == 1 && !requireSucess) { // boolean flag_wash = washTaskRun(task); // if (flag_wash) { @@ -487,6 +525,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp this.noApplyTaskMessage = this.replace(notApplyTaskMessage); } } + } //到达取货点 if (agvphase == 0x03) { @@ -540,6 +579,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp if (agvphase == 0x07) { logServer.deviceExecuteLog(this.device_code, "", inst.getInstruction_code(), "刻字上料PS20上报到达放货点:" + ",inst == null :" + ObjectUtil.isEmpty(inst)); // if (ObjectUtil.isNotEmpty(inst) && gd_move == 0) { + this.writing("to_peel","1"); if (ObjectUtil.isNotEmpty(inst)) { inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_FALL_SEND_FULL.getCode()); instructionService.update(inst); @@ -563,49 +603,41 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp //放货完成 if (agvphase == 0x09) { -// if (ObjectUtil.isNotEmpty(inst) && mode == 1 && allow_put == 1) { + logServer.deviceExecuteLog(device_code, "", "","PS20上报放货完成信号="+agvphase); + logServer.deviceExecuteLog(device_code, "", "","信号to_agv_put_finish="+to_agv_put_finish); + if (mode == 1) { + logServer.deviceExecuteLog(device_code, "", "","信号to_agv_put_finish="+to_agv_put_finish); + if (StrUtil.equals(paramService.findByCode(AcsConfig.KZPLAN).getValue(), "1")) { + if(to_agv_put_finish == 0){ + try { + logServer.deviceExecuteLog(device_code, "", "","拉闸前实时重量="+engraving_storage_now_weight); + logServer.deviceExecuteLog(device_code, "", "","agv放货完成,检测到料框光电,信号to_agv_put_finish=0,延迟2秒开始下发拉闸信号"); + Thread.sleep(2000L); + this.writing("to_agv_put_finish", "1"); + logServer.deviceExecuteLog(device_code, "", "","下发拉闸信号完成"); + Thread.sleep(10000L); + logServer.deviceExecuteLog(device_code, "", "","拉闸后等5秒让车走"); + is_test = ObjectUtil.isNotEmpty(inst) && mode == 1 && gd_move == 1 && engraving_storage_now_weight <10000; + } catch (InterruptedException e) { + e.printStackTrace(); + } + } -// if (ObjectUtil.isNotEmpty(inst) && mode == 1) {//正式方案需要联机 - //一体机临时方案不判断联机 - - if (StrUtil.equals(paramService.findByCode(AcsConfig.ISTEST).getValue(), "1")) { - is_test = ObjectUtil.isNotEmpty(inst); + }else { + is_test = ObjectUtil.isNotEmpty(inst) && mode == 1 && gd_move == 1; + } }else { - is_test = ObjectUtil.isNotEmpty(inst) && mode == 1; + is_test = ObjectUtil.isNotEmpty(inst) && mode == 0; } if (is_test) { - //放框完成 - writing("to_agv_put_finish", "1"); - //判断电气上报的【剩余实时重量】>10kg ,保障电气拉开气闸门下料 - logServer.deviceExecuteLog(device_code, "", "任务号"+inst.getTask_code(), "下发开闸门开始----"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - int i = 0; - while (this.engraving_storage_now_weight < 10000 && i<5){ - writing("to_agv_put_finish", "1"); - i++; - logServer.deviceExecuteLog(device_code, "", "任务号"+inst.getTask_code(), "重量小于10KG循环下发拉闸门"); - } - logServer.deviceExecuteLog(device_code, "", "任务号"+inst.getTask_code(), "关闭闸门----反馈称重"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_FALL_SEND_FULL_FINISH.getCode()); instructionService.update(inst); + byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); OneNDCSocketConnectionAutoRun.write(data); - //agv任务完成,反馈mes - if (inst != null) { - TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); - logServer.deviceExecuteLog(device_code, "", "任务号"+inst.getTask_code(), "任务="+taskDto.getTask_code()); - if (taskDto != null) { - taskDto.setExt_param(new HashMap<>()); - taskDto.getExt_param().put("take_finish", "1"); - taskDto.getExt_param().put("weight", String.valueOf(engraving_storage_now_weight)); - taskserver.update(taskDto); - } - } this.set(0, 0, null); + logServer.deviceExecuteLog(device_code, "", "","PS20车可以走了"); + noFeedAgvMessage = null; message = this.messageInfo(agvphase); logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); @@ -620,12 +652,12 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp this.noFeedAgvMessage = this.replace(notFeedAgvMessage); } } - if (mode == 1 && task_finish == 1 ) { - boolean flag = washTask(task); - if (flag) { - this.message = "反馈刻字上料完成成功"; - } - } +// if (mode == 1 && task_finish == 1 ) { +// boolean flag = washTask(task); +// if (flag) { +// this.message = "反馈刻字上料完成成功"; +// } +// } // } @@ -668,7 +700,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { - redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME_TEN, TimeUnit.SECONDS); // ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); TaskDto taskDto = taskService.findByNextCode(device_code); if (taskDto == null) { @@ -802,15 +834,34 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp */ @Override public void issuedOrderInfo(ProduceshiftorderDto dto) { -// if (!this.getItemProtocol().getIsonline()) { -// throw new BadRequestException("设备未开机,工单下发失败!"); -// } Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); - map.put("to_order", dto.getOrder_code()); - map.put("to_one_box_num", String.valueOf(dto.getOne_qty())); - map.put("to_order_prod_num", String.valueOf(dto.getQty())); - this.writing(map); + try { + this.writing("to_del_task","1"); + this.writing("to_confirm_finished", "1"); + this.writing("to_agv_put_finish", "0"); + Thread.sleep(1000L); + String[] sort = dto.getMaterial_name().split(","); + for (int i=0;i< sort.length;i++){ + map.put("to_sort"+(i+1),sort[i]); + } + String[] devices = dto.getIn_devices().split(","); + for (int i=0;i< devices.length;i++){ + String[] device_i = devices[i].split("_"); + map.put("to_devices"+(i+1),device_i[device_i.length-1]); + } + String[] weight = dto.getMaterial_spec().split(","); + for (int i=0;i< weight.length;i++){ + map.put("to_weight"+(i+1),weight[i]); + } + + map.put("to_all_weight", dto.getQty().toString()); + this.writing(map); + Thread.sleep(1000L); + this.writing("to_task",dto.getOrder_code()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } /** @@ -827,6 +878,7 @@ public class HailiangEngravingInDeviceDriver extends AbstractOpcDeviceDriver imp } //map.put("to_order", "0"); map.put("to_clear", "1"); + map.put("to_del_task","1"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/ItemProtocol.java index 909180f1..92cc946a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_in/ItemProtocol.java @@ -64,6 +64,8 @@ public class ItemProtocol { public static String item_to_dis_barcode = "to_dis_barcode"; //秤去皮 public static String item_to_peel = "to_peel"; + //删除任务 + public static String item_to_del_task = "to_del_task"; //任务号 public static String item_to_task = "to_task"; //刻字上料重量 @@ -226,8 +228,8 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_device_running_time); } - public int getItem_await_time() { - return this.getOpcIntegerValue(item_await_time); + public int getItem_to_agv_put_finish() { + return this.getOpcIntegerValue(item_to_agv_put_finish); } public int getItem_engraving_weight() { @@ -264,6 +266,9 @@ public class ItemProtocol { return this.getOpcFloatValue(item_current_weight); } + public int getItem_await_time() { + return this.getOpcIntegerValue(item_await_time); + } //是否有货 public int hasGoods(int move) { return move; @@ -340,6 +345,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_agv_take_finish, "AGV取货完成", "DB2.W26")); list.add(new ItemDto(item_to_dis_barcode, "是否禁用条码", "DB2.W28")); list.add(new ItemDto(item_to_peel, "秤去皮", "DB2.W30")); + list.add(new ItemDto(item_to_del_task, "删除任务", "DB2.W32")); list.add(new ItemDto(item_to_task, "任务号", "DB2.D92")); list.add(new ItemDto(item_to_in_weight, "刻字上料重量", "DB2.D96")); list.add(new ItemDto(item_to_fl_full_weight, "回流满框重量标准值", "DB2.D100")); @@ -348,6 +354,8 @@ public class ItemProtocol { list.add(new ItemDto(item_to_sort_array, "排序数组", "DB200.W0[15]")); list.add(new ItemDto(item_to_devices_array, "站点数组", "DB200.W30[15]")); list.add(new ItemDto(item_to_weight_array, "重量数组", "DB200.REAL60[15]")); + + list.add(new ItemDto(item_to_sort1, "排序1", "DB200.W0")); list.add(new ItemDto(item_to_sort2, "排序2", "DB200.W2")); list.add(new ItemDto(item_to_sort3, "排序3", "DB200.W4")); From bb30c8e84c40566bfc448d3600df24d147afb50f Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:03:02 +0800 Subject: [PATCH 06/13] =?UTF-8?q?rev=EF=BC=9A=E5=8C=85=E8=A3=85=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../HailiangPackerStationDeviceDriver.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java index 25f28997..e9bd74e4 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java @@ -354,17 +354,17 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } - if (!this.itemProtocol.getIsonline()) { - //this.setIsonline(false); - //this.setIserror(true); - message = "信号量同步异常"; - //未联机 - } else if (mode == 0) { - //this.setIsonline(false); - // this.setIserror(true); - message = "未联机"; - //有报警 - } else { +// if (!this.itemProtocol.getIsonline()) { +// //this.setIsonline(false); +// //this.setIserror(true); +// message = "信号量同步异常"; +// //未联机 +// } else if (mode == 0) { +// //this.setIsonline(false); +// // this.setIserror(true); +// message = "未联机"; +// //有报警 +// } else { this.setIsonline(true); this.setIserror(false); message = ""; @@ -386,7 +386,6 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i this.noApplyTaskMessage = this.replace(notApplyTaskMessage); } } - if (mode == 1 && req_task_empty == 1 && !requireSucess) { boolean flag = apply_take_empty_task(); this.noApplyTaskMessage = null; @@ -488,7 +487,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i this.noFeedAgvMessage = this.replace(noFeedMessage); } } - } +// } last_packer_error = packer_error; last_out_num = out_num; last_agv_abutment_error = agv_abutment_error; @@ -593,13 +592,17 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i String bag_total_num = ealingOrderDto.getOrder_bag_num(); String time = ealingOrderDto.getTime(); Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); + this.writing("to_clear", "1"); +// this.writing("to_order", dto.getOrder_code()); +// this.writing("to_order_prod_num", bag_total_num);//包装机总包数 +// this.writing("to_box_total_num", box_total_num);//总箱数 +// this.writing("to_bag_total_num", bag_total_num);//总袋数 + map.put("to_order", dto.getOrder_code()); // map.put("to_order_prod_num", String.valueOf(dto.getQty())); map.put("to_order_prod_num", bag_total_num);//包装机总包数 map.put("to_box_total_num", box_total_num);//总箱数 map.put("to_bag_total_num", bag_total_num);//总袋数 - this.writing(map); } } From 2ea54295a401b9e6fe6e944761df6af1403777c3 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:04:20 +0800 Subject: [PATCH 07/13] =?UTF-8?q?rev=EF=BC=9A=E6=9C=BA=E6=A2=B0=E6=89=8B?= =?UTF-8?q?=E7=A0=81=E5=9E=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../HailiangStackingStationDriver.java | 36 +++--- .../ItemProtocol.java | 115 ++++++++++++------ .../ItemProtocol.java | 2 +- 3 files changed, 99 insertions(+), 54 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java index 4a549692..1858564c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java @@ -139,7 +139,7 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple move = this.itemProtocol.getItem_move(); line_ready = this.itemProtocol.getItem_line_ready(); all_ready = this.itemProtocol.getItem_all_ready(); - finish = this.itemProtocol.getItem_finish(); + finish = this.itemProtocol.getItem_finish1(); is_full_1 = this.itemProtocol.getItem_is_full_1(); is_full_2 = this.itemProtocol.getItem_is_full_2(); is_full_3 = this.itemProtocol.getItem_is_full_3(); @@ -149,7 +149,7 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple move_3 = this.itemProtocol.getItem_move_3(); move_4 = this.itemProtocol.getItem_move_4(); error = this.itemProtocol.getItem_error(); - lane_error = this.itemProtocol.getItem_lane_error(); + lane_error = this.itemProtocol.getItem_lane_error1(); pallet_num_1 = this.itemProtocol.getItem_pallet_num_1(); pallet_num_2 = this.itemProtocol.getItem_pallet_num_2(); pallet_num_3 = this.itemProtocol.getItem_pallet_num_3(); @@ -158,9 +158,9 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple material_2 = this.itemProtocol.getItem_material_2(); material_3 = this.itemProtocol.getItem_material_3(); material_4 = this.itemProtocol.getItem_material_4(); - order_now = this.itemProtocol.getItem_order_now(); - tray_now = this.itemProtocol.getItem_tray_now(); - order = this.itemProtocol.getItem_order(); + order_now = this.itemProtocol.getItem_order_now1(); + tray_now = this.itemProtocol.getItem_tray_now1(); + order = this.itemProtocol.getItem_order1(); isonline = this.itemProtocol.getIsonline(); @@ -392,21 +392,25 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple // } String lane_tray_template = dto.getLane_tray_template(); String to_tray_info = ""; - if (lane_tray_template.equals("1")) { - to_tray_info = lane_tray_template + "12"; - } - if (lane_tray_template.equals("2")) { - to_tray_info = lane_tray_template + "24"; - } if (StrUtil.isEmpty(dto.getTray_num())) { dto.setTray_num("1"); } + int num = 0; + //判断包装机1对应巷道2,包装机2对应巷道2 + if(StrUtil.equals(dto.getDevice_code(),"A1_BZJ_1")){ + num = 2; + to_tray_info = dto.getLane_tray_template() + num + "4"; + } else if(StrUtil.equals(dto.getDevice_code(),"A1_BZJ_2")){ + num = 1; + to_tray_info = dto.getLane_tray_template() + num + "2"; + } + +// this.writing("to_clear"+num, "1"); Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); - map.put("to_order", dto.getOrder_code()); - map.put("to_order_prod_num", dto.getQty().toString()); - map.put("to_tray_num", dto.getTray_num()); - map.put("to_tray_info", to_tray_info); + map.put("to_order"+num, dto.getOrder_code()); + map.put("to_order_prod_num"+num, dto.getEalingOrderDto().getOrder_box_num()); + map.put("to_tray_num"+num, dto.getTray_num()); + map.put("to_tray_info"+num, to_tray_info); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java index 50c55829..e59ddee9 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java @@ -24,7 +24,8 @@ public class ItemProtocol { //所有设备就绪 public static String item_all_ready = "all_ready"; //1、2#订单完成 - public static String item_finish = "finish"; + public static String item_finish1 = "finish1"; + public static String item_finish2 = "finish2"; //1托盘是否满托 public static String item_is_full_1 = "is_full_1"; //2托盘是否满托 @@ -44,7 +45,8 @@ public class ItemProtocol { //线体故障信息 public static String item_error = "error"; //1、2#巷道故障信息 - public static String item_lane_error = "lane_error"; + public static String item_lane_error1 = "lane_error1"; + public static String item_lane_error2 = "lane_error2"; //1#托盘当前码垛箱数 public static String item_pallet_num_1 = "pallet_num_1"; //2#托盘当前码垛箱数 @@ -62,23 +64,28 @@ public class ItemProtocol { //4#托盘物料信息 public static String item_material_4 = "material_4"; //1、2#当前生产总量(订单实时) - public static String item_order_now = "order_now"; + public static String item_order_now1 = "order_now1"; + public static String item_order_now2 = "order_now2"; //1、2#当前托盘总数(实时) - public static String item_tray_now = "tray_now"; + public static String item_tray_now1 = "tray_now1"; + public static String item_tray_now2 = "tray_now2"; //1、2#工单号 - public static String item_order = "order"; - + public static String item_order1 = "order1"; + public static String item_order2 = "order2"; //设备开关 public static String item_to_open = "to_open"; //机械手启动开关 public static String item_to_open_pulator = "to_open_pulator"; //1、2 码盘信息模板号 - public static String item_to_tray_info = "to_tray_info"; + public static String item_to_tray_info1 = "to_tray_info1"; + public static String item_to_tray_info2 = "to_tray_info2"; //1、2当前产量清零 - public static String item_to_clear = "to_clear"; + public static String item_to_clear1 = "to_clear1"; + public static String item_to_clear2 = "to_clear2"; //1、2确认完成(订单完成状态置零) - public static String item_to_confirm_finished = "to_confirm_finished"; + public static String item_to_confirm_finished1 = "to_confirm_finished1"; + public static String item_to_confirm_finished2 = "to_confirm_finished2"; //1、2巷道箱子长 public static String item_to_lane_box_l = "to_lane_box_l"; //1、2巷道箱子宽 @@ -94,15 +101,20 @@ public class ItemProtocol { //巷道4号托盘强制满托 public static String item_to_lane4_tray_compel_full = "to_lane4_tray_compel_full"; //1、2巷道禁用 - public static String item_to_lane_off = "to_lane_off"; + public static String item_to_lane_off1 = "to_lane_off1"; + public static String item_to_lane_off2 = "to_lane_off2"; //1、2工单强制完成 - public static String item_to_compel_finish = "to_compel_finish"; + public static String item_to_compel_finish1 = "to_compel_finish1"; + public static String item_to_compel_finish2 = "to_compel_finish2"; //1、2订单生产总量 - public static String item_to_order_prod_num = "to_order_prod_num"; + public static String item_to_order_prod_num1 = "to_order_prod_num1"; + public static String item_to_order_prod_num2 = "to_order_prod_num2"; //1、2订单需托盘总数 - public static String item_to_tray_num = "to_tray_num"; + public static String item_to_tray_num1 = "to_tray_num1"; + public static String item_to_tray_num2 = "to_tray_num2"; //1、2工单号 - public static String item_to_order = "to_order"; + public static String item_to_order1 = "to_order1"; + public static String item_to_order2 = "to_order2"; private HailiangStackingStationDriver driver; @@ -130,8 +142,11 @@ public class ItemProtocol { public int getItem_all_ready() { return this.getOpcIntegerValue(item_all_ready); } - public int getItem_finish() { - return this.getOpcIntegerValue(item_finish); + public int getItem_finish1() { + return this.getOpcIntegerValue(item_finish1); + } + public int getItem_finish2() { + return this.getOpcIntegerValue(item_finish2); } public int getItem_is_full_1() { return this.getOpcIntegerValue(item_is_full_1); @@ -160,8 +175,11 @@ public class ItemProtocol { public int getItem_error() { return this.getOpcIntegerValue(item_error); } - public int getItem_lane_error() { - return this.getOpcIntegerValue(item_lane_error); + public int getItem_lane_error1() { + return this.getOpcIntegerValue(item_lane_error1); + } + public int getItem_lane_error2() { + return this.getOpcIntegerValue(item_lane_error2); } public int getItem_pallet_num_1() { return this.getOpcIntegerValue(item_pallet_num_1); @@ -187,14 +205,23 @@ public class ItemProtocol { public int getItem_material_4() { return this.getOpcIntegerValue(item_material_4); } - public int getItem_order_now() { - return this.getOpcIntegerValue(item_order_now); + public int getItem_order_now1() { + return this.getOpcIntegerValue(item_order_now1); } - public int getItem_tray_now() { - return this.getOpcIntegerValue(item_tray_now); + public int getItem_order_now2() { + return this.getOpcIntegerValue(item_order_now2); } - public int getItem_order() { - return this.getOpcIntegerValue(item_order); + public int getItem_tray_now1() { + return this.getOpcIntegerValue(item_tray_now1); + } + public int getItem_tray_now2() { + return this.getOpcIntegerValue(item_tray_now2); + } + public int getItem_order1() { + return this.getOpcIntegerValue(item_order1); + } + public int getItem_order2() { + return this.getOpcIntegerValue(item_order2); } @@ -240,7 +267,8 @@ public class ItemProtocol { list.add(new ItemDto(item_move, "光电信号", "DB1.B1.1")); list.add(new ItemDto(item_line_ready, "线体就绪", "DB1.B2.1")); list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B2.2")); - list.add(new ItemDto(item_finish, "工单完成", "DB1.B2.3")); + list.add(new ItemDto(item_finish1, "工单完成", "DB1.B2.3")); + list.add(new ItemDto(item_finish2, "工单完成", "DB1.B2.4")); list.add(new ItemDto(item_is_full_1, "托盘1是否满托", "DB1.B2.5")); list.add(new ItemDto(item_is_full_2, "托盘2是否满托", "DB1.B2.6")); list.add(new ItemDto(item_is_full_3, "托盘3是否满托", "DB1.B2.7")); @@ -250,7 +278,8 @@ public class ItemProtocol { list.add(new ItemDto(item_move_3, "托盘3光电信号", "DB1.B3.3")); list.add(new ItemDto(item_move_4, "托盘4光电信号", "DB1.B3.4")); list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); - list.add(new ItemDto(item_lane_error, "巷道故障", "DB1.W10")); + list.add(new ItemDto(item_lane_error1, "巷道1故障", "DB1.W10")); + list.add(new ItemDto(item_lane_error2, "巷道2故障", "DB1.W12")); list.add(new ItemDto(item_pallet_num_1, "托盘1当前码垛箱数", "DB1.W64")); list.add(new ItemDto(item_pallet_num_2, "托盘2当前码垛箱数", "DB1.W66")); list.add(new ItemDto(item_pallet_num_3, "托盘3当前码垛箱数", "DB1.W68")); @@ -259,9 +288,13 @@ public class ItemProtocol { list.add(new ItemDto(item_material_2, "托盘2物料信息", "DB1.W74")); list.add(new ItemDto(item_material_3, "托盘3物料信息", "DB1.W76")); list.add(new ItemDto(item_material_4, "托盘4物料信息", "DB1.W78")); - list.add(new ItemDto(item_order_now, "当前生产总量(订单实时)", "DB1.D84")); - list.add(new ItemDto(item_tray_now, "当前托盘总数(实时)", "DB1.D88")); - list.add(new ItemDto(item_order, "工单号", "DB1.D156")); + list.add(new ItemDto(item_order_now1, "当前生产总量1(订单1实时)", "DB1.D84")); + list.add(new ItemDto(item_order_now2, "当前生产总量2(订单2实时)", "DB1.D92")); + list.add(new ItemDto(item_tray_now1, "当前托盘1总数(实时)", "DB1.D88")); + list.add(new ItemDto(item_tray_now2, "当前托盘2总数(实时)", "DB1.D96")); + + list.add(new ItemDto(item_order1, "工单号1", "DB1.D156")); + list.add(new ItemDto(item_order2, "工单号2", "DB1.D160")); return list; } @@ -269,9 +302,12 @@ public class ItemProtocol { ArrayList list = new ArrayList(); list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); list.add(new ItemDto(item_to_open_pulator, "机械手开关", "DB2.W10")); - list.add(new ItemDto(item_to_tray_info, "码盘信息(模板号)", "DB2.W12")); - list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W16")); - list.add(new ItemDto(item_to_confirm_finished, "订单确认完成", "DB2.W20")); + list.add(new ItemDto(item_to_tray_info1, "码盘信息1(模板号)", "DB2.W12")); + list.add(new ItemDto(item_to_tray_info2, "码盘信息2(模板号)", "DB2.W14")); + list.add(new ItemDto(item_to_clear1, "1号当前产量清零", "DB2.W16")); + list.add(new ItemDto(item_to_clear2, "2号当前产量清零", "DB2.W18")); + list.add(new ItemDto(item_to_confirm_finished1, "订单1确认完成", "DB2.W20")); + list.add(new ItemDto(item_to_confirm_finished2, "订单2确认完成", "DB2.W22")); list.add(new ItemDto(item_to_lane_box_l, "巷道箱子长", "DB2.W28")); list.add(new ItemDto(item_to_lane_box_w, "巷道箱子宽", "DB2.W30")); list.add(new ItemDto(item_to_lane_box_h, "巷道箱子高", "DB2.W32")); @@ -279,11 +315,16 @@ public class ItemProtocol { list.add(new ItemDto(item_to_lane2_tray_compel_full, "托盘2强制满托", "DB2.W42")); list.add(new ItemDto(item_to_lane3_tray_compel_full, "托盘3强制满托", "DB2.W44")); list.add(new ItemDto(item_to_lane4_tray_compel_full, "托盘4强制满托", "DB2.W46")); - list.add(new ItemDto(item_to_lane_off, "巷道暂停", "DB2.W48")); - list.add(new ItemDto(item_to_compel_finish, "工单强制完成", "DB2.W80")); - list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.D84")); - list.add(new ItemDto(item_to_tray_num, "托盘总量", "DB2.D88")); - list.add(new ItemDto(item_to_order, "工单号", "DB2.D156")); + list.add(new ItemDto(item_to_lane_off1, "巷道暂停", "DB2.W48")); + list.add(new ItemDto(item_to_lane_off2, "巷道暂停", "DB2.W50")); + list.add(new ItemDto(item_to_compel_finish1, "工单1强制完成", "DB2.W80")); + list.add(new ItemDto(item_to_compel_finish2, "工单2强制完成", "DB2.W82")); + list.add(new ItemDto(item_to_order_prod_num1, "订单1生产总量", "DB2.D84")); + list.add(new ItemDto(item_to_order_prod_num2, "订单2生产总量", "DB2.D92")); + list.add(new ItemDto(item_to_tray_num1, "托盘1总量", "DB2.D88")); + list.add(new ItemDto(item_to_tray_num2, "托盘2总量", "DB2.D96")); + list.add(new ItemDto(item_to_order1, "工单号1", "DB2.D156")); + list.add(new ItemDto(item_to_order2, "工单号2", "DB2.D160")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java index 2831e08a..68663963 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java @@ -41,7 +41,7 @@ public class ItemProtocol { public static String item_order = "order"; - //是否正转 + //是否正转(正常情况下都是正转:1,开箱机1给包装机1;或开箱机2给包装机2。另一情况反转:0,例如开箱机1给包装机2号) public static String item_to_foreward = "to_foreward"; //当前产量清零 public static String item_to_clear = "to_clear"; From 99554a6376c086faab2fee2fdae4c1c9420fd45d Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:05:11 +0800 Subject: [PATCH 08/13] =?UTF-8?q?rev=EF=BC=9A=E5=8C=85=E8=A3=85=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../hailiang_one/hailiang_packer_station/ItemProtocol.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java index 61923387..264d439a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java @@ -241,7 +241,8 @@ public class ItemProtocol { list.add(new ItemDto(item_tap_close_pos, "阀门关定位", "DB1.B1.2")); list.add(new ItemDto(item_agv_abutment_error, "AGV对接故障", "DB1.B1.3")); list.add(new ItemDto(item_order_finish, "订单完成", "DB1.B1.5")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B0.6")); +// list.add(new ItemDto(item_mode, "工作模式", "DB1.B0.6")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); list.add(new ItemDto(item_lack_req, "请求料", "DB1.B2.0")); list.add(new ItemDto(item_hopper_already, "料斗已经到位", "DB1.B2.1")); list.add(new ItemDto(item_req_task_empty, "请求取空料斗", "DB1.B2.6")); From 57c10fd2fc7e47e9bf16173558ff64fe5b5f76d2 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:05:42 +0800 Subject: [PATCH 09/13] =?UTF-8?q?rev=EF=BC=9A=E6=B8=85=E6=B4=97=E4=B8=8A?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../hailiang_cleaning_feeding_line/ItemProtocol.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java index d7b08d01..d991a5c9 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java @@ -69,9 +69,7 @@ public class ItemProtocol { public int getItem_task_finish() { return this.getOpcIntegerValue(item_task_finish); } - public int getItem_to_in_confirm_finish() { - return this.getOpcIntegerValue(item_to_in_confirm_finish); - } + public int getItem_allowed_in() { return this.getOpcIntegerValue(item_allowed_in); } From 7727ca0699c2dbaef75f5d49bc6858b7dec7170e Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:06:02 +0800 Subject: [PATCH 10/13] =?UTF-8?q?rev=EF=BC=9A=20=E5=88=BB=E5=AD=97?= =?UTF-8?q?=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../HailiangEngravingMachineDeviceDriver.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java index 61f24a02..59b958b3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java @@ -656,8 +656,9 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive // if (!this.getItemProtocol().getIsonline()) { // throw new BadRequestException("设备未开机,工单下发失败!"); // } + this.writing("to_clear", "1"); Map map = new LinkedHashMap<>(); - map.put("to_clear", "1"); +// map.put("to_clear", "1"); map.put("to_order", dto.getOrder_code()); map.put("to_one_box_num", String.valueOf(dto.getOne_qty())); map.put("to_order_prod_num", String.valueOf(dto.getQty())); From 4b8d2a781442df8924a19eb46fcac3d500e05679 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:07:22 +0800 Subject: [PATCH 11/13] =?UTF-8?q?rev=EF=BC=9Alucene?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../lucene/common/LuceneIndexWriter.java | 132 +++++++++--------- .../nl/modules/lucene/common/Searcher.java | 4 +- .../lucene/service/dto/LuceneLogDto.java | 17 +++ .../impl/LuceneExecuteLogServiceImpl.java | 4 +- 4 files changed, 87 insertions(+), 70 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java index d4e89056..fb9451d2 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/LuceneIndexWriter.java @@ -1,66 +1,66 @@ -package org.nl.modules.lucene.common; - -import cn.hutool.core.date.DateUtil; -import org.apache.lucene.index.CorruptIndexException; -import org.apache.lucene.index.IndexWriter; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.FSDirectory; -import org.nl.modules.lucene.config.UrlConfig; -import org.wltea.analyzer.lucene.IKAnalyzer; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class LuceneIndexWriter { - private static volatile IndexWriter indexWriter; - - static { - try { - Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath()); - IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); - indexWriter = new IndexWriter(directory, config); - } catch (Exception e) { - e.printStackTrace(); - } - /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ -// Runtime.getRuntime().addShutdownHook(new Thread(){ -// @Override -// public void run() { -// try { -// closeIndexWriter(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// }); - } - /**在线程结束时,自动关闭IndexWriter*/ - public static IndexWriter getIndexWriter() { - return indexWriter; - } - /**关闭IndexWriter - * @throws IOException - * @throws CorruptIndexException */ - public static void closeIndexWriter() throws Exception { - if(indexWriter != null) { -// indexWriter.close(); - } - } - - public static void main(String[] args) throws IOException { - indexWriter.deleteAll(); - } - - public static String getDate(String timeString) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 - Date date = sdf.parse(timeString); - timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 - return timeString; - } - - -} +//package org.nl.modules.lucene.common; +// +//import cn.hutool.core.date.DateUtil; +//import org.apache.lucene.index.CorruptIndexException; +//import org.apache.lucene.index.IndexWriter; +//import org.apache.lucene.index.IndexWriterConfig; +//import org.apache.lucene.store.Directory; +//import org.apache.lucene.store.FSDirectory; +//import org.nl.modules.lucene.config.UrlConfig; +//import org.wltea.analyzer.lucene.IKAnalyzer; +// +//import java.io.File; +//import java.io.IOException; +//import java.text.ParseException; +//import java.text.SimpleDateFormat; +//import java.util.Date; +// +//public class LuceneIndexWriter { +// private static volatile IndexWriter indexWriter; +// +// static { +// try { +// Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath()); +// IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer()); +// indexWriter = new IndexWriter(directory, config); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ +//// Runtime.getRuntime().addShutdownHook(new Thread(){ +//// @Override +//// public void run() { +//// try { +//// closeIndexWriter(); +//// } catch (Exception e) { +//// e.printStackTrace(); +//// } +//// } +//// }); +// } +// /**在线程结束时,自动关闭IndexWriter*/ +// public static IndexWriter getIndexWriter() { +// return indexWriter; +// } +// /**关闭IndexWriter +// * @throws IOException +// * @throws CorruptIndexException */ +// public static void closeIndexWriter() throws Exception { +// if(indexWriter != null) { +//// indexWriter.close(); +// } +// } +// +// public static void main(String[] args) throws IOException { +// indexWriter.deleteAll(); +// } +// +// public static String getDate(String timeString) throws ParseException { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 +// Date date = sdf.parse(timeString); +// timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 +// return timeString; +// } +// +// +//} diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java index 140c96e5..ae027a4c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java @@ -58,12 +58,12 @@ public class Searcher { if (startDate == null){ startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); }else{ - startDate = LuceneIndexWriter.getDate(startDate); + startDate = LuceneServiceAutoRun.getDate(startDate); } if (endDate == null){ endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); } else { - endDate = LuceneIndexWriter.getDate(endDate); + endDate = LuceneServiceAutoRun.getDate(endDate); } TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST); diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java index 57cdcea3..bed52ce9 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java @@ -91,4 +91,21 @@ public class LuceneLogDto { + "] : " + remark; } + + public LuceneLogDto(final String device_code, final String item, final int last_info, + final int info) { + super(); + String info_china = ""; + switch(info){ + case 0: info_china = "未联机"; + case 1: info_china = "已联机"; + case 2: break; + default:; + } + this.device_code = device_code; + this.content = "信号 [" + +item + "] 发生变更 " + + last_info + " -> " + + info; + } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java index c1fd06cd..b8dff032 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java @@ -10,7 +10,7 @@ import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.StringField; import org.apache.lucene.index.IndexWriter; -import org.nl.modules.lucene.common.LuceneIndexWriter; +import org.nl.modules.lucene.common.LuceneServiceAutoRun; import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; @@ -48,7 +48,7 @@ public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { } private void addIndex(LuceneLogDto luceneLogDto) throws IOException { - IndexWriter indexWriter = LuceneIndexWriter.getIndexWriter(); + IndexWriter indexWriter = LuceneServiceAutoRun.getIndexWriter(); //创建一个Document对象 Document document = new Document(); try { From d7d4341684d3ec9416170287c327edfc66fc2bf4 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:08:22 +0800 Subject: [PATCH 12/13] =?UTF-8?q?rev=EF=BC=9A=E6=8C=87=E4=BB=A4=E4=B8=8B?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../run/OneNDCSocketConnectionAutoRun.java | 10 ++++++- .../service/impl/InstructionServiceImpl.java | 29 +++++++++++++++---- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index 51068f13..795b3810 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -187,7 +187,15 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { dos.write(b); dos.flush(); } catch (IOException e) { - throw new BadRequestException(e.getMessage()); + try { + log.info("再次下发agv数据:" + Bytes2HexString(b)); + System.out.println("再次下发agv数据:" + Bytes2HexString(b)); + dos.write(b); + dos.flush(); + }catch (IOException e1){ + throw new BadRequestException(e1.getMessage()); + } + } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 3f7df84e..dd9bb8aa 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -41,6 +41,8 @@ import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.SecurityUtils; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; @@ -84,7 +86,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu private TaskService taskService; @Autowired AcsToLiKuService acsToLiKuService; - +// private LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); @Override public void autoInitial() { this.reload(); @@ -354,7 +356,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu * 7 不去称重平台称重PS20 agvtype:2 * 8 RT20 agvtype:3 */ - if(StrUtil.equals(task.getTask_type(),"10")){ + if(StrUtil.equals(task.getTask_type(),"18")){ CreateRequest createRequest = new CreateRequest(); List list = new ArrayList(); AcsToLiKuService acsToLiKuService = SpringContextHolder.getBean(AcsToLiKuService.class); @@ -457,7 +459,20 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } } } catch (Exception e) { - dto.setSend_status("2"); + try { + Thread.sleep(5000L); + if (StrUtil.equals("1", dto.getAgv_system_type())) { + ndcAgvService.sendAgvTwoInstToNDC(dto, null); + } else if (StrUtil.equals("2", dto.getAgv_system_type())) { + ndcAgvService.sendAgvOneInstToNDC(dto); + } + dto.setSend_status("1"); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } catch (Exception exception) { + dto.setSend_status("2"); + exception.printStackTrace(); + } e.printStackTrace(); } @@ -863,6 +878,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu jo.put("batch", ""); jo.put("islock", "0"); deviceService.changeDeviceStatus(jo); +// lucene.deviceExecuteLog(new LuceneLogDto(id,"指令更新状态为:"+entity.getInstruction_status())); + log.info("{}指令更新状态为:{}",id,entity.getInstruction_status()); this.update(entity); JSONObject taskjson = taskwo.query("task_id ='" + insttaskid + "'").uniqueResult(0); TaskDto obj = taskjson.toJavaObject(TaskDto.class); @@ -880,7 +897,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Transactional public void finishByLinkNum(String linkNum) { List insts = this.findByLinkNum(linkNum); - if (insts != null) { + if (insts != null && insts.size() > 0) { insts.stream().forEach(inst -> { try { this.finish(inst.getInstruction_id()); @@ -1039,7 +1056,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu }else { ndcAgvService.deleteAgvInstToNDC(entity); } - + flag = true; } else { flag = true; } @@ -1053,7 +1070,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } if (flag) { - if (StrUtil.equals(entity.getInstruction_type(), "10")) { + if (StrUtil.equals(entity.getInstruction_type(), AgvTypeEnum.HAIROU_TYPE_1.getTaskType())) { CancelRequest cancelRequest = new CancelRequest(); cancelRequest.setTaskCodes(new ArrayList(Collections.singleton(entity.getInstruction_id()))); acsToLiKuService.cancel(cancelRequest); From ba52db4d183714011fae802d22b2ee34b1799f63 Mon Sep 17 00:00:00 2001 From: jiaoliming Date: Fri, 1 Sep 2023 10:10:36 +0800 Subject: [PATCH 13/13] =?UTF-8?q?add=EF=BC=9A=E6=96=B0=E5=A2=9Elms?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiaoliming --- .../acs/ext/wms/rest/WmsToAcsController.java | 8 + .../acs/ext/wms/service/WmsToAcsService.java | 16 + .../service/impl/AcsToLiKuServiceImpl.java | 8 + .../service/impl/LiKuToAcsServiceImpl.java | 172 ++++--- .../wms/service/impl/WmsToAcsServiceImpl.java | 418 +++++++++++++++--- 5 files changed, 500 insertions(+), 122 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index b3fca404..59907c80 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -39,6 +39,14 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.createFromWms(tasks), HttpStatus.OK); } + @PostMapping("/liKuTaskAgain") + @Log("接收LMS重新分配任务") + @ApiOperation("接收LMS重新分配任务") + @SaIgnore + public ResponseEntity createLiKuTask(@RequestBody List tasks) { + return new ResponseEntity<>(wmstoacsService.createLiKuTaskAgain(tasks), HttpStatus.OK); + } + @PostMapping("/order") @Log("wms下发acs工单") @ApiOperation("wms下发acs工单") diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index 20813899..671a80eb 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -15,6 +15,14 @@ public interface WmsToAcsService { */ Map createFromWms(List tasks); + /** + * lms重新分配liku任务 + * + * @param tasks 条件 + * @return + */ + Map createLiKuTaskAgain(List tasks); + /** * wms下发工单 * @@ -162,4 +170,12 @@ public interface WmsToAcsService { * @return Map */ Map cleaningIn(JSONObject param); + + /** + * 下发电气信号(公用接口) + * + * @param param 条件 + * @return Map + */ + Map writePlc(JSONObject param); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java index 577fc88c..13bd7dd1 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java @@ -109,5 +109,13 @@ public class AcsToLiKuServiceImpl implements AcsToLiKuService { JSONObject jo = new JSONObject(); jo.put("code", 0); jo.put("msg", "111"); + + UnloadContainerReqResponse unloadContainerReqResponse = new UnloadContainerReqResponse(); + unloadContainerReqResponse.setAllow(false); + JSONObject result = new JSONObject(); + result.put("code", "0"); + result.put("msg", "success"); + result.put("data", unloadContainerReqResponse); + log.info("放容器请求-----输出参数{}", JSON.toJSONString(result)); } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/LiKuToAcsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/LiKuToAcsServiceImpl.java index 0e866796..ce87844c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/LiKuToAcsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/LiKuToAcsServiceImpl.java @@ -2,14 +2,15 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; 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.acs.AcsConfig; import org.nl.acs.device.address.service.AddressService; -import org.nl.acs.device_driver.basedriver.agv.liku_agv.LiKuDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_hr_ssx.HailiangHrSsxDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_hr_ssx.HailiangHrSsxDeviceDriver; import org.nl.acs.ext.wms.RespUtil; import org.nl.acs.ext.wms.liKuData.a.*; import org.nl.acs.ext.wms.service.AcsToLiKuService; @@ -19,11 +20,9 @@ import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.common.utils.StringUtils; -import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.modules.system.service.ParamService; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -41,19 +40,20 @@ import java.util.List; @RequiredArgsConstructor @Slf4j public class LiKuToAcsServiceImpl implements LiKuToAcsService { - - private final AddressService addressService; - - private final TaskService taskService; - - private final InstructionService instructionService; - - private final DeviceAppService deviceAppService; - - private final AcsToWmsService acsToWmsService; - - private final AcsToLiKuService acsToLiKuService; - + @Autowired + private AddressService addressService; + @Autowired + private TaskService taskService; + @Autowired + private InstructionService instructionService; + @Autowired + private DeviceAppService deviceAppService; + @Autowired + private AcsToWmsService acsToWmsService; + @Autowired + private AcsToLiKuService acsToLiKuService; + @Autowired + private ParamService paramService; // DeviceAppService appService= SpringContextHolder.getBean(DeviceAppServiceImpl.class); @@ -63,16 +63,14 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { @Override public JSONObject queryConveyor(QueryConveyorRequest requestParam) throws Exception { - try{ log.info("查询输送线料箱状态-----输入参数{}", JSON.toJSONString(requestParam)); - String conveyorCodes = requestParam.conveyorCodes; - NodeStates nodeStates=new NodeStates(); + JSONObject result = new JSONObject(); + try{ + String conveyorCodes = requestParam.getConveyorCodes(); + NodeStates nodeStates = new NodeStates(); List list2 = new ArrayList<>(); - Conveyors conveyors=new Conveyors(); - JSONObject result = new JSONObject(); - Device device=deviceAppService.findDeviceByCode(conveyorCodes); - result.put("code", "0"); - result.put("msg", "success"); + Conveyors conveyors = new Conveyors(); + Device device = deviceAppService.findDeviceByCode(conveyorCodes); QueryConveyorResponse queryConveyorResponse = new QueryConveyorResponse(); if (device != null && device.getDeviceDriver() instanceof HailiangHrSsxDeviceDriver) { HailiangHrSsxDeviceDriver hailiangHrSsxDeviceDriver= (HailiangHrSsxDeviceDriver) device.getDeviceDriver(); @@ -82,23 +80,29 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { if (!ObjectUtil.isEmpty(device.getLocation())) { nodeStates.setSlotCode(device.getDevice_code()); } - if (!ObjectUtil.equals(hailiangHrSsxDeviceDriver.getMove(),"1")) { + if (ObjectUtil.equals(hailiangHrSsxDeviceDriver.getMove(),"1")) { nodeStates.setHasContainer(true); - }else { nodeStates.setHasContainer(false);} + }else { + nodeStates.setHasContainer(false); + } } list2.add(nodeStates); conveyors.setNodeStates(list2); List list = new ArrayList<>(); - queryConveyorResponse.setConveyors(list); list.add(conveyors); - result.put("data", queryConveyorResponse); - log.info("查询输送线料箱状态-----输出参数{}", result); - return result; - - } finally { - MDC.remove(log_file_type); - } - } + queryConveyorResponse.setConveyors(list); + result.put("code", "0"); + result.put("msg", "success"); + result.put("data", queryConveyorResponse); + }catch (Exception e) { + result.put("code", "1"); + result.put("msg", "fail"); + result.put("data", new JSONObject()); + log.info("查询输送线料箱状态--------------:输出参数{}" , JSON.toJSONString(result)); + } + log.info("查询输送线料箱状态,响应参数:{}", JSON.toJSONString(result)); + return result; + } @Override public JSONObject queryNodeReader(QueryNodeReaderRequest requestParam) throws Exception { try{ @@ -118,39 +122,60 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { @Override public JSONObject loadContainerFinish(LoadContainerFinishRequest requestParam) throws Exception { + log.info("取容器完成通知-----输入参数{}", JSON.toJSONString(requestParam)); + JSONObject result = new JSONObject(); try{ - log.info("取容器完成通知-----输入参数{}", JSON.toJSONString(requestParam)); String slotCode = requestParam.slotCode; String containerCode=requestParam.containerCode; - LoadContainerFinishResponse loadContainerFinishResponse = new LoadContainerFinishResponse(); - JSONObject result = new JSONObject(); - JSONObject json = (JSONObject) JSONObject.toJSON(loadContainerFinishResponse); - result.put("code", "0"); - result.put("msg", "success"); - result.put("data", json); - log.info("取容器完成通知-----输出参数{}", result); - return result; - } finally { - MDC.remove(log_file_type); +// LoadContainerFinishResponse loadContainerFinishResponse = new LoadContainerFinishResponse(); + Device device = deviceAppService.findDeviceByCode(slotCode); + if (device != null && device.getDeviceDriver() instanceof HailiangHrSsxDeviceDriver) { + HailiangHrSsxDeviceDriver hailiangHrSsxDeviceDriver= (HailiangHrSsxDeviceDriver) device.getDeviceDriver(); + //下发输送线电气取货完成 + hailiangHrSsxDeviceDriver.writing("to_command","2"); +// JSONObject json = (JSONObject) JSONObject.toJSON(loadContainerFinishResponse); + result.put("code", "0"); + result.put("msg", "success"); + result.put("data", new JSONObject()); + } + }catch (Exception e) { + result.put("code", "1"); + result.put("msg", "fail"); + result.put("data", new JSONObject()); + log.info("取容器完成通知--------------:输出参数{}" , JSON.toJSONString(result)); } + log.info("取容器完成通知-----输出参数{}", JSON.toJSONString(result)); + return result; } @Override public JSONObject unloadContainerReq(UnloadContainerReqRequest requestParam) throws Exception { + log.info("放容器请求-----输入参数{}", JSON.toJSONString(requestParam)); + UnloadContainerReqResponse unloadContainerReqResponse = new UnloadContainerReqResponse(); + JSONObject result = new JSONObject(); try{ - log.info("放容器请求-----输入参数{}", JSON.toJSONString(requestParam)); String slotCode = requestParam.slotCode; String containerCode=requestParam.containerCode; - UnloadContainerReqResponse unloadContainerReqResponse = new UnloadContainerReqResponse(); - JSONObject result = new JSONObject(); + Device device = deviceAppService.findDeviceByCode(slotCode); + if (device != null && device.getDeviceDriver() instanceof HailiangHrSsxDeviceDriver) { + HailiangHrSsxDeviceDriver hailiangHrSsxDeviceDriver= (HailiangHrSsxDeviceDriver) device.getDeviceDriver(); + if (hailiangHrSsxDeviceDriver.getAction() == 2){ + unloadContainerReqResponse.setAllow(true); + }else{ + unloadContainerReqResponse.setAllow(false); + } + } result.put("code", "0"); result.put("msg", "success"); result.put("data", unloadContainerReqResponse); - log.info("放容器请求-----输出参数{}", result); - return result; - } finally { - MDC.remove(log_file_type); + } catch (Exception e) { + result.put("code", "1"); + result.put("msg", "fail"); + result.put("data", new JSONObject()); + log.info("放容器请求--------------:输出参数{}" , JSON.toJSONString(result)); } + log.info("放容器请求-----输出参数{}", JSON.toJSONString(result)); + return result; } @Override @@ -198,9 +223,9 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { try{ log.info("任务状态上报-----输入参数{}", JSON.toJSONString(requestParam)); String inst_id = requestParam.getTaskCode(); - String eventType=requestParam.getEventType(); - String status=requestParam.getStatus(); - String carNo=requestParam.getRobotCode(); + String eventType = requestParam.getEventType(); + String status = requestParam.getStatus(); + String carNo = requestParam.getRobotCode(); Instruction inst = instructionService.findById(inst_id); if (ObjectUtil.isEmpty(inst)) { TaskstatusReportingResponse taskstatusReportingResponse = new TaskstatusReportingResponse(); @@ -208,7 +233,7 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { result.put("result", "false"); result.put("code", "0"); result.put("comment", "未找到对应指令"); - result.put("data", taskstatusReportingResponse ); + result.put("data", taskstatusReportingResponse); log.info("任务状态上报-----输出参数{}", result); return RespUtil.getResp(result.toString(), new TaskstatusReportingResponse()); } @@ -301,8 +326,33 @@ public class LiKuToAcsServiceImpl implements LiKuToAcsService { try{ log.info("异常上报-----输入参数{}", JSON.toJSONString(requestParam)); String eventType=requestParam.getEventType(); - if(StrUtil.equals(eventType,"location_abnormal") || StrUtil.equals(eventType,"robot_abnormal") ){ + if(StrUtil.equals(eventType,"location_abnormal") || StrUtil.equals(eventType,"robot_abnormal") ){ + //异常描述 + String message = requestParam.getMessage(); + if (StrUtil.equals(message,"TRY_ACTION_LOCATION_ALREADY_LOADING_CONTAINER")){ + // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS + String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); +// if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { +// JSONObject feed_jo = new JSONObject(); +// feed_jo.put("task_id", entity.getExt_task_id()); +// feed_jo.put("status", dto.getTask_status()); +// if (ObjectUtil.isNotEmpty(dto.getQuantity())) { +// feed_jo.put("quantity", dto.getQuantity()); +// } +// if (ObjectUtil.isNotEmpty(dto.getVehicle_code())) { +// feed_jo.put("vehicle_code", dto.getVehicle_code()); +// } +// if (ObjectUtil.isNotEmpty(dto.getWeight())) { +// feed_jo.put("weight", dto.getWeight()); +// } +// feed_jo.put("ext_param", dto.getExt_param()); +// JSONArray ja = new JSONArray(); +// ja.add(feed_jo); +// HttpResponse httpResponse = acsToWmsService.feedbackTaskStatusToWms(ja); +// this.taskFeedbackAdd(httpResponse, dto); +// } + } } AbnormarReportingResponse abnormarReportingResponse = new AbnormarReportingResponse(); JSONObject result = new JSONObject(); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index b4e5be87..86b55754 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -13,7 +13,6 @@ import org.nl.acs.AcsConfig; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_feeding_line.HailiangCleaningFeedingLineDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine_storage_station.HailiangCleaningMachineStorageStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_put_line.HailiangCleaningPutLineDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_in.HailiangEngravingInDeviceDriver; @@ -44,13 +43,11 @@ import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.service.ParamService; import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -85,6 +82,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String task_id = task.getString("task_id"); String task_code = task.getString("task_code"); String task_type = task.getString("task_type"); + String storage_task_type = task.getString("storage_task_type"); String task_group_id = task.getString("task_group_id"); String is_send = task.getString("is_send"); String start_point_code = task.getString("start_point_code"); @@ -183,24 +181,41 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (hailiangEngravingInDeviceDriver.getGd_move() == 0) { JSONObject json = new JSONObject(); json.put("task_id", task_id); - json.put("message", "上面无料框!请核实后再点击按钮!"); + json.put("message", "->上面无料框!请核实后再点击按钮!"); errArr.add(json); continue; } } } - if (StrUtil.equals(put_point_code,"A1_KZ_SL")) { - Device device = deviceAppService.findDeviceByCode(put_point_code); + if (StrUtil.equals(next_point_code,"A1_KZ_SL")) { + Device device = deviceAppService.findDeviceByCode(next_point_code); HailiangEngravingInDeviceDriver hailiangEngravingInDeviceDriver; if (device.getDeviceDriver() instanceof HailiangEngravingInDeviceDriver) { hailiangEngravingInDeviceDriver = (HailiangEngravingInDeviceDriver) device.getDeviceDriver(); if (hailiangEngravingInDeviceDriver.getGd_move() == 1) { JSONObject json = new JSONObject(); json.put("task_id", task_id); - json.put("message", "上面有料框!请核实后再点击按钮!"); + json.put("message", "->已有料框!请核实后再点击按钮!"); errArr.add(json); continue; } + if (StrUtil.equals(start_point_code,"A1_BCPRKW_SD")){ + if (hailiangEngravingInDeviceDriver.getMode() == 1) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "->请切换手动模式!"); + errArr.add(json); + continue; + } + }else { + if (hailiangEngravingInDeviceDriver.getMode() == 0) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "->请切换自动模式!"); + errArr.add(json); + continue; + } + } } } @@ -241,13 +256,15 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { jo.put("priority", priority); jo.put("vehicle_code", vehicle_code); jo.put("agv_system_type", agv_system_type); - jo.put("create_by", "mes"); + jo.put("create_by", "lms"); jo.put("barcodeArr", barcodeArr); jo.put("priority_floor", priority_floor); jo.put("material_code", material_code); jo.put("quantity", quantity); jo.put("qtyArr", qtyArr); jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type)); + jo.put("storage_task_type", StrUtil.isEmpty(storage_task_type) ? 1 : Integer.parseInt(storage_task_type)); + TaskDto task_dto = jo.toJavaObject(TaskDto.class); try { taskService.create(task_dto); @@ -310,7 +327,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { Map package_ext = param.getJSONObject("package_ext"); EalingOrderDto ealingOrderDto = new EalingOrderDto(); -// UnboxingOrderDto unboxingOrderDto = null; + String one_box_package_qty = ""; + String package_qty = ""; + String one_package_qty = ""; + String box_num = ""; + String box_type = ""; + String target_roadway = ""; + String is_flip = ""; + String tray_full_num = ""; if (ObjectUtil.isNotEmpty(package_ext)) { //是否启用封箱线 is_used_fxx = ObjectUtil.isEmpty(package_ext.get("is_used_fxx")) ? null : package_ext.get("is_used_fxx").toString(); @@ -319,16 +343,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { ealingOrderDto.setOrder_box_num(ObjectUtil.isEmpty(package_ext.get("demol_num")) ? null : package_ext.get("demol_num").toString()); //装箱模版 ealingOrderDto.setTemplate_no(ObjectUtil.isEmpty(package_ext.get("package_model")) ? null : package_ext.get("package_model").toString()); - //码盘模版 - lane_tray_template= ObjectUtil.isEmpty(package_ext.get("stack_model")) ? null : package_ext.get("stack_model").toString(); //是否正反转 ealingOrderDto.setIs_foreward(ObjectUtil.isEmpty(package_ext.get("is_foreward")) ? null : package_ext.get("is_foreward").toString()); //总袋数 ealingOrderDto.setOrder_bag_num(ObjectUtil.isEmpty(package_ext.get("order_bag_num")) ? null : package_ext.get("order_bag_num").toString()); - //装箱机设备 - ealing_device_code = ObjectUtil.isEmpty(package_ext.get("ealing_device_code")) ? null : package_ext.get("ealing_device_code").toString(); - //开箱机设备 - unboxing_device_code = ObjectUtil.isEmpty(package_ext.get("unboxing_device_code")) ? null : package_ext.get("unboxing_device_code").toString(); //封箱机是否自动确认(1:自动确认 2:定时确认 3:人工确认) ealingOrderDto.setIs_auto_confirm(ObjectUtil.isEmpty(package_ext.get("auto_confirm")) ? null : package_ext.get("auto_confirm").toString()); //确认时间 @@ -339,17 +357,32 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { ealingOrderDto.setOne_box_weight(ObjectUtil.isEmpty(package_ext.get("demol_weight")) ? null : package_ext.get("demol_weight").toString()); //每袋重量 ealingOrderDto.setOne_bag_weight(ObjectUtil.isEmpty(package_ext.get("one_bag_weight")) ? null : package_ext.get("one_bag_weight").toString()); + //后期下面参数为准 + //装箱机设备 + ealing_device_code = ObjectUtil.isEmpty(package_ext.get("ealing_device_code")) ? null : package_ext.get("ealing_device_code").toString(); + //开箱机设备 + unboxing_device_code = ObjectUtil.isEmpty(package_ext.get("unboxing_device_code")) ? null : package_ext.get("unboxing_device_code").toString(); + //每箱袋数 + one_box_package_qty = ObjectUtil.isEmpty(package_ext.get("one_bag_num")) ? null : package_ext.get("one_bag_num").toString(); + //袋数 + package_qty = ObjectUtil.isEmpty(package_ext.get("order_bag_num")) ? null : package_ext.get("order_bag_num").toString(); + //每袋数量 + one_package_qty = ObjectUtil.isEmpty(package_ext.get("one_bag_weight")) ? null : package_ext.get("one_bag_weight").toString(); + //箱数 + box_num = ObjectUtil.isEmpty(package_ext.get("demol_num")) ? null : package_ext.get("demol_num").toString(); + //目标巷道 +// target_roadway = ObjectUtil.isEmpty(extra_map.get("target_roadway")) ? null : extra_map.get("target_roadway").toString(); + //是否翻转 + is_flip = ObjectUtil.isEmpty(package_ext.get("is_foreward")) ? null : package_ext.get("is_foreward").toString(); + //托盘满托数量 + tray_full_num = ObjectUtil.isEmpty(package_ext.get("tray_full_num")) ? null : package_ext.get("tray_full_num").toString(); + //码盘模版 + lane_tray_template = ObjectUtil.isEmpty(package_ext.get("stack_model")) ? null : package_ext.get("stack_model").toString(); + //码盘数量 + tray_num = ObjectUtil.isEmpty(package_ext.get("tray_num")) ? null : package_ext.get("tray_num").toString(); } ealingOrderDto.setOrder_code(workorder_code); - String one_box_package_qty = ""; - String package_qty = ""; - String one_package_qty = ""; - String box_num = ""; - String box_type = ""; - String target_roadway = ""; - String is_flip = ""; - String tray_full_num = ""; if (ObjectUtil.isNotEmpty(extra_map)) { //老车间包装工单信息 //每箱袋数 @@ -368,8 +401,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { is_flip = ObjectUtil.isEmpty(extra_map.get("is_flip")) ? null : extra_map.get("is_flip").toString(); //托盘满托数量 tray_full_num = ObjectUtil.isEmpty(extra_map.get("tray_full_num")) ? null : extra_map.get("tray_full_num").toString(); - // + //码垛模板号 lane_tray_template = ObjectUtil.isEmpty(extra_map.get("lane_tray_template")) ? null : extra_map.get("lane_tray_template").toString(); + //码盘数量 tray_num = ObjectUtil.isEmpty(extra_map.get("tray_num")) ? null : extra_map.get("tray_num").toString(); } @@ -453,7 +487,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { dto.setIs_flip(is_flip); dto.setTray_full_num(tray_full_num); dto.setEalingOrderDto(ealingOrderDto); - dto.setCreate_by("mes"); + dto.setCreate_by("lms"); dto.setTray_num(tray_num); dto.setLane_tray_template(lane_tray_template); try { @@ -727,7 +761,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { //更改工单设备号 produceshiftorderDto.setDevice_code(new_device_code); produceshiftorderDto.setUpdate_time(now); - produceshiftorderDto.setUpdate_by("mes"); + produceshiftorderDto.setUpdate_by("lms"); produceshiftorderService.updateByOrderCode(produceshiftorderDto); //将新设备中的报工数量Report_qty更改为上个设备生产的数量 @@ -1311,7 +1345,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { hailiangCleaningPutLineDeviceDriver = (HailiangCleaningPutLineDeviceDriver) device.getDeviceDriver(); resultJson.put("in_pcsn", hailiangCleaningPutLineDeviceDriver.getIn_pcsn()); resultJson.put("vechile_code", hailiangCleaningPutLineDeviceDriver.getBarcode()); - resultJson.put("weight", hailiangCleaningPutLineDeviceDriver.getFull_weight()); + resultJson.put("weight", hailiangCleaningPutLineDeviceDriver.getNow_weight()); } resultJson.put("status", 200); resultJson.put("message", "操作成功"); @@ -1319,54 +1353,119 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return resultJson; } +// @Override +// public Map engravingIn(JSONObject param) { +// log.info("接收WMS刻字上料,下发参数:{}", JSON.toJSONString(param)); +// String start_device_code = param.getString("start_point_code"); +// String to_sort_array = param.getString("to_sort_array"); +// String to_devices_array = param.getString("to_devices_array"); +// String to_weight_array = param.getString("to_weight_array"); +// //上料总重量 +// String all_weight = param.getString("all_weight"); +// String to_task = param.getString("task_code"); +// if (StrUtil.isEmpty(start_device_code)) { +// throw new BadRequestException("设备号不能为空!"); +// } +// Device device = deviceAppService.findDeviceByCode(start_device_code); +// if (ObjectUtil.isEmpty(device)) { +// throw new BadRequestException("未找到对应设备:" + start_device_code); +// } +// JSONObject resultJson = new JSONObject(); +// //刻字上料 +// HailiangEngravingInDeviceDriver hailiangEngravingInDeviceDriver; +// if (device.getDeviceDriver() instanceof HailiangEngravingInDeviceDriver) { +// hailiangEngravingInDeviceDriver = (HailiangEngravingInDeviceDriver) device.getDeviceDriver(); +// String[] sort = to_sort_array.split(","); +// for (int i=0;i< sort.length;i++){ +// hailiangEngravingInDeviceDriver.writing("to_sort"+(i+1),sort[i]); +// } +// String[] devices = to_devices_array.split(","); +// for (int i=0;i< devices.length;i++){ +// String[] device_i = devices[i].split("_"); +// hailiangEngravingInDeviceDriver.writing("to_devices"+(i+1),device_i[device_i.length-1]); +// } +// String[] weight = to_weight_array.split(","); +// for (int i=0;i< weight.length;i++){ +// hailiangEngravingInDeviceDriver.writing("to_weight"+(i+1),weight[i]); +// } +// hailiangEngravingInDeviceDriver.writing("to_all_weight", all_weight); +//// hailiangEngravingInDeviceDriver.writing("to_all_weight",String.valueOf(hailiangEngravingInDeviceDriver.getEngraving_storage_now_weight())); +// hailiangEngravingInDeviceDriver.writing("to_task",to_task); +// } +// // TODO 反馈mes +// JSONObject reqParam = new JSONObject(); +// reqParam.put("task_code", to_task); +// reqParam.put("status", StatusEnum.TASK_RUNNING.getCode()); +// HttpResponse httpResponse = acsToWmsService.washTask(reqParam); +// +// resultJson.put("status", 200); +// resultJson.put("message", "操作成功"); +// log.info("接收WMS刻字上料成功,响应参数:{}", JSON.toJSONString(resultJson)); +// return resultJson; +// } + @Override public Map engravingIn(JSONObject param) { - log.info("接收WMS刻字上料,下发参数:{}", JSON.toJSONString(param)); + log.info("接收WMS刻字输送线任务,下发参数:{}", JSON.toJSONString(param)); String start_device_code = param.getString("start_point_code"); String to_sort_array = param.getString("to_sort_array"); String to_devices_array = param.getString("to_devices_array"); String to_weight_array = param.getString("to_weight_array"); //上料总重量 String all_weight = param.getString("all_weight"); - String to_task = param.getString("task_code"); + String task_code = param.getString("task_code"); +// String[] in_devices = param.getString("in_devices").split(","); + JSONArray errArr = new JSONArray(); if (StrUtil.isEmpty(start_device_code)) { throw new BadRequestException("设备号不能为空!"); } Device device = deviceAppService.findDeviceByCode(start_device_code); if (ObjectUtil.isEmpty(device)) { - throw new BadRequestException("未找到对应设备:" + start_device_code); + throw new BadRequestException("未找到对应刻字上料设备:" + start_device_code); } - JSONObject resultJson = new JSONObject(); - //刻字上料 - HailiangEngravingInDeviceDriver hailiangEngravingInDeviceDriver; - if (device.getDeviceDriver() instanceof HailiangEngravingInDeviceDriver) { - hailiangEngravingInDeviceDriver = (HailiangEngravingInDeviceDriver) device.getDeviceDriver(); - String[] sort = to_sort_array.split(","); - for (int i=0;i< sort.length;i++){ - hailiangEngravingInDeviceDriver.writing("to_sort"+(i+1),sort[i]); - } - String[] devices = to_devices_array.split(","); - for (int i=0;i< devices.length;i++){ - String[] device_i = devices[i].split("_"); - hailiangEngravingInDeviceDriver.writing("to_devices"+(i+1),device_i[device_i.length-1]); - } - String[] weight = to_weight_array.split(","); - for (int i=0;i< weight.length;i++){ - hailiangEngravingInDeviceDriver.writing("to_weight"+(i+1),weight[i]); - } - hailiangEngravingInDeviceDriver.writing("to_all_weight", all_weight); -// hailiangEngravingInDeviceDriver.writing("to_all_weight",String.valueOf(hailiangEngravingInDeviceDriver.getEngraving_storage_now_weight())); - hailiangEngravingInDeviceDriver.writing("to_task",to_task); - } - // TODO 反馈mes - JSONObject reqParam = new JSONObject(); - reqParam.put("task_code", to_task); - reqParam.put("status", StatusEnum.TASK_RUNNING.getCode()); - HttpResponse httpResponse = acsToWmsService.washTask(reqParam); - resultJson.put("status", 200); - resultJson.put("message", "操作成功"); - log.info("接收WMS刻字上料成功,响应参数:{}", JSON.toJSONString(resultJson)); + JSONObject resultJson = new JSONObject(); + ProduceshiftorderDto dto = new ProduceshiftorderDto(); + dto.setExt_order_id(task_code); + dto.setOrder_code(task_code); + dto.setQty(BigDecimal.valueOf(Long.parseLong(all_weight))); + dto.setMaterial_code("KZSL"); + dto.setDevice_code(start_device_code); + dto.setIs_needmove("0"); + dto.setIn_devices(to_devices_array); + dto.setCreate_by("lms"); + dto.setMaterial_name(to_sort_array); + dto.setMaterial_spec(to_weight_array); + try { + HailiangEngravingInDeviceDriver hailiangEngravingInDeviceDriver; + if (device.getDeviceDriver() instanceof HailiangEngravingInDeviceDriver) { + hailiangEngravingInDeviceDriver = (HailiangEngravingInDeviceDriver) device.getDeviceDriver(); + if (hailiangEngravingInDeviceDriver.getMode() == 0) { + JSONObject json = new JSONObject(); + json.put("task_code", task_code); + json.put("message", "->请切换自动模式!"); + errArr.add(json); + }else if (hailiangEngravingInDeviceDriver.getMode() == 1){ + produceshiftorderService.create(dto); + } + } + + } catch (Exception e) { + e.printStackTrace(); + JSONObject json = new JSONObject(); + json.put("task_code", task_code); + json.put("message", e.getMessage()); + errArr.add(json); + } + if (ObjectUtil.isEmpty(errArr)) { + resultJson.put("status", 200); + } else { + resultJson.put("status", 400); + } + resultJson.put("errArr", errArr); + resultJson.put("message", errArr.size() > 0 ? "存在下发未成功的刻字输送线任务!" : "操作成功!"); + resultJson.put("data", new JSONObject()); + log.info("接收wms下发刻字输送线任务,响应参数:{}", JSON.toJSONString(resultJson)); return resultJson; } @@ -1460,7 +1559,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { dto.setDevice_code(device_code); dto.setIs_needmove("0"); dto.setIn_devices(in_devices); - dto.setCreate_by("mes"); + dto.setCreate_by("lms"); try { produceshiftorderService.create(dto); } catch (Exception e) { @@ -1481,4 +1580,201 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { log.info("接收wms下发清洗下料,响应参数:{}", JSON.toJSONString(resultJson)); return resultJson; } + + @Override + public Map writePlc(JSONObject param) { + log.info("接收WMS下发电气,下发参数:{}", JSON.toJSONString(param)); + String device_code = param.getString("device_code"); + List extArray = (List) param.get("extArray"); + if (StrUtil.isEmpty(device_code)) { + throw new BadRequestException("设备号不能为空!"); + } + Device device = deviceAppService.findDeviceByCode(device_code); + if (ObjectUtil.isEmpty(device)) { + throw new BadRequestException("未找到对应设备:" + device_code); + } + for (int i = 0; i < extArray.size(); i++) { + JSONObject object = (JSONObject) extArray.get(i); + + } + JSONObject resultJson = new JSONObject(); + + //清洗下料 + HailiangCleaningPutLineDeviceDriver hailiangCleaningPutLineDeviceDriver; + if (device.getDeviceDriver() instanceof HailiangCleaningPutLineDeviceDriver) { + hailiangCleaningPutLineDeviceDriver = (HailiangCleaningPutLineDeviceDriver) device.getDeviceDriver(); + hailiangCleaningPutLineDeviceDriver.writing("",""); + } + resultJson.put("status", 200); + resultJson.put("message", "操作成功"); + log.info("接收WMS清洗下料成功,响应参数:{}", JSON.toJSONString(resultJson)); + return resultJson; + } + + @Override + public Map createLiKuTaskAgain(List tasks) { + log.info("接收lms重新分配海柔任务,下发参数:{}", JSON.toJSONString(tasks)); + JSONObject resultJson = new JSONObject(); + try { + JSONArray errArr = new JSONArray(); + for (int i = 0; i < tasks.size(); i++) { + JSONObject task = tasks.get(i); + String task_id = task.getString("task_id"); + String task_code = task.getString("task_code"); + String task_type = task.getString("task_type"); + String task_group_id = task.getString("task_group_id"); + String is_send = task.getString("is_send"); + String start_point_code = task.getString("start_point_code"); + String next_point_code = task.getString("next_point_code"); + String put_point_code = task.getString("put_point_code"); + String priority = task.getString("priority"); + String vehicle_code = task.getString("vehicle_code"); + String agv_system_type = task.getString("agv_system_type"); + String barcodeArr = task.getString("barcodeArr"); + String priority_floor = task.getString("priority_floor"); + String material_code = task.getString("material_code"); + String quantity = task.getString("quantity"); + String qtyArr = task.getString("qtyArr"); + + if (StrUtil.isEmpty(task_id)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "任务id不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(task_code)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "任务号不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(task_group_id)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "任务关联编号不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(task_type)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "任务类型不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(is_send)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "是否立刻下发AGV"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(start_point_code)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "起点不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(next_point_code)) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "终点不能为空"); + errArr.add(json); + continue; + } + if (taskService.findByCodeFromCache(task_code) != null) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "不能存在相同的任务号:" + task_code); + errArr.add(json); + continue; + } + if (!StrUtil.isEmpty(vehicle_code)) { + TaskDto vehicle_dto = taskService.findByContainer(vehicle_code); + if (vehicle_dto != null) { + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", "已存在该载具的任务,载具号:" + vehicle_code + ",对应的任务号:" + task_code); + errArr.add(json); + continue; + } + } + + String start_device_code = ""; + String next_device_code = ""; + JSONObject start_device_json = WQLObject.getWQLObject("acs_storage_cell").query("parent_storage_code ='" + start_point_code + "'").uniqueResult(0); + if (!ObjectUtil.isEmpty(start_device_json)) { + start_point_code = (String) start_device_json.get("parent_storage_code") == null ? start_point_code : (String) start_device_json.get("storage_code"); + } + JSONObject next_device_json = WQLObject.getWQLObject("acs_storage_cell").query("parent_storage_code ='" + next_point_code + "'").uniqueResult(0); + if (!ObjectUtil.isEmpty(next_device_json)) { + next_point_code = (String) next_device_json.get("parent_storage_code") == null ? next_point_code : (String) next_device_json.get("storage_code"); + } + if (start_point_code.indexOf("-") > 0) { + String str[] = start_point_code.split("-"); + start_device_code = str[0]; + } else { + start_device_code = start_point_code; + } + + if (next_point_code.indexOf("-") > 0) { + String str[] = next_point_code.split("-"); + next_device_code = str[0]; + } else { + next_device_code = next_point_code; + } + JSONObject jo = new JSONObject(); + jo.put("task_code", task_code); + jo.put("ext_task_id", task_id); + jo.put("link_num", task_group_id); + jo.put("is_send", is_send); + jo.put("start_point_code", start_point_code); + jo.put("start_device_code", start_device_code); + jo.put("next_point_code", next_point_code); + jo.put("next_device_code", next_device_code); + jo.put("put_point_code", put_point_code); + jo.put("put_device_code", put_point_code); + jo.put("priority", priority); + jo.put("vehicle_code", vehicle_code); + jo.put("agv_system_type", agv_system_type); + jo.put("create_by", "lms"); + jo.put("barcodeArr", barcodeArr); + jo.put("priority_floor", priority_floor); + jo.put("material_code", material_code); + jo.put("quantity", quantity); + jo.put("qtyArr", qtyArr); + jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type)); + TaskDto task_dto = jo.toJavaObject(TaskDto.class); + try { + taskService.create(task_dto); + } catch (Exception e) { + e.printStackTrace(); + JSONObject json = new JSONObject(); + json.put("task_id", task_id); + json.put("message", e.getMessage()); + errArr.add(json); + } + } + if (ObjectUtil.isEmpty(errArr)) { + resultJson.put("status", 200); + } else { + resultJson.put("status", 400); + } + resultJson.put("errArr", errArr); + resultJson.put("message", errArr.size() > 0 ? "存在下发未成功的任务!" + JSON.toJSONString(errArr) : "下发成功!"); + resultJson.put("data", new JSONObject()); + log.info("createFromWms--------------:输出参数:" + resultJson.toString()); + } catch (Exception e) { + resultJson.put("status", 400); + resultJson.put("errArr", new JSONArray()); + resultJson.put("message", e.getMessage()); + resultJson.put("data", new JSONObject()); + log.info("createFromWms--------------:输出参数:" + resultJson.toString()); + } + log.info("接收wms下发任务,响应参数:{}", JSON.toJSONString(resultJson)); + return resultJson; + } }