diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls index 27cdf427..f0615451 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 1f9b539b..69dc0067 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -89,8 +89,7 @@ public class AcsToWmsController { @ApiOperation("向wms反馈设备状态") @SaIgnore public ResponseEntity feedDeviceStatusType(@RequestBody JSONObject param) { - return null; -// return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK); + return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 34ed7a8a..8145063d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -22,8 +22,6 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.service.TaskService; import org.nl.wms.product_manage.sch.service.dto.TaskDto; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; -import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; -import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; @@ -49,8 +47,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ private TaskService taskService; @Autowired private CacheLineHandService cacheLineHandService; - @Autowired - private IPdmProduceWorkorderService workorderService; @@ -207,12 +203,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ public Map orderStatus(JSONObject orderJson) { JSONObject result = new JSONObject(); try { - PdmProduceWorkorder workorder = new PdmProduceWorkorder(); - workorder.setWorkorder_id(orderJson.getString("workorder_id")); - workorder.setWorkorder_status(orderJson.getString("status")); - workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty")); - workorder.setRealproduceend_date(DateUtil.now()); - workorderService.updateById(workorder); + JSONObject map = new JSONObject(); + map.put("workorder_id", orderJson.getString("workorder_id")); + map.put("workorder_status", orderJson.getString("status")); + map.put("update_id", "1"); + map.put("real_qty", orderJson.getString("real_qty")); + map.put("device_code", ""); + map.put("update_name", "acs"); + map.put("update_time", DateUtil.now()); + map.put("realproduceend_date", DateUtil.now()); + WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'"); + //OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status"))); } catch (Exception e){ result.put("status", 400); result.put("message", e.getMessage()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java index 5d663f2c..b91a647c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java @@ -51,14 +51,8 @@ public class AgvInstService { private ISchBaseTaskService taskService; @Autowired private ISchCachelineVehicleService cachelineVehicleService; - @Autowired - private ISchCachelineVehicleService cachelineVe3hicleService; - public static void main(String[] args) { - String a= "A1_DC_15_6"; - int i = a.lastIndexOf("_"); - System.out.println(a.substring(0, i)); - } + //满料请求点位确认 //1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗 @@ -69,33 +63,29 @@ public class AgvInstService { public void fullMaster(JSONObject task){ String quantity = task.getString("material_qty"); //获取当前生产工序下一道工序 - Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code1")); + Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code")); FlowElement next = getFlowElement(task,workprodure).next(); - - Map query = MapOf.of("workprocedure_id", basePointService.getWorkprodureByCode(next.getId()).get("workprocedure_id") - , "qty", quantity); + String nextPoint = null; //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: + String cacheVehile = ""; + Map query = MapOf.of("workprocedure_id", workprodure.get("workprocedure_id") + , "qty", quantity); if (next.getName().equals("深坑清洗")){ query.put("material_id",task.getString("material_id")); } List> list = deviceService.workproceduceDevices(query); - String nextPoint = null; - String cacheVehile = ""; if (!CollectionUtils.isEmpty(list)){ nextPoint = list.get(0).get("point_code"); }else { if (next.getParams().get("cacheLine") == null){ throw new BadRequestException("当前任务下一道工序无可用设备"); } - nextPoint = getParamByXml(workprodure, next, nextPoint); + nextPoint = next.getParams().get("cacheLine"); cacheVehile = getCacheVehile(nextPoint, null); } - - 结果校验:{ - if (StringUtils.isBlank(nextPoint)) { - throw new BadRequestException("逻辑非配错误,请检查代码"); - } + if (StringUtils.isBlank(nextPoint)){ + throw new BadRequestException("逻辑非配错误,请检查代码"); } basePointService.update(new UpdateWrapper() .set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint)); @@ -106,20 +96,7 @@ public class AgvInstService { schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); taskService.updateById(schBaseTask); - } - - private String getParamByXml(Map workprodure, FlowElement next, String nextPoint) { - Object cacheLine = next.getParams().get("cacheLine"); - if (cacheLine instanceof String){ - nextPoint = (String) cacheLine; - } - if (cacheLine instanceof Map){ - nextPoint = ((Map) cacheLine).get(workprodure.get("device_code").substring(0, workprodure.get("device_code").lastIndexOf("_"))); - } - return nextPoint; - } - - ; + }; public FlowElement getFlowElement(JSONObject task,Map workprodure){ if (CollectionUtils.isEmpty(workprodure)){ @@ -132,7 +109,7 @@ public class AgvInstService { .eq("is_delete", "0") .eq("is_used", "1") ); - SchProcessRoute processRoute = schProcessRouteService.findByMaterialId(devicePoint.getRegion_code()); + SchProcessRoute processRoute = schProcessRouteService.findByMaterialId(material_id,devicePoint.getRegion_code()); if (processRoute == null){ throw new BadRequestException("当前没有配置对应工序调度线路:"+material_id+"/"+devicePoint.getRegion_code()); } @@ -149,16 +126,25 @@ public class AgvInstService { //3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务 public void empMatter(JSONObject task){ //参数 - String startPoint = task.getString("cacheLine"); - String cacheVehile = getCacheVehile(startPoint, task.getString("material_id")); + String targetDevice = task.getString("next_point_code"); + String material_id = task.getString("material_id"); + SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() + .eq("point_code", targetDevice) + .eq("is_delete", "0") + .eq("is_used", "1")); + JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getRegion_code()+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); + Assert.notNull(cacheLine, String.format("区域%s对应缓存线信息不存在", devicePoint.getRegion_code())); + //缓存线位置编码 :缺料请求获取缓存线满载具列表 + String startPoint = cacheLine.getString("cacheline_code"); + String cacheVehile = getCacheVehile(startPoint, material_id); if (StringUtils.isBlank(cacheVehile)) { - throw new BadRequestException("缓存线:"+startPoint+"没有物料"+task.getString("material_id")+"对应可用载具"); + throw new BadRequestException("缓存线:"+startPoint+"没有物料"+material_id+"对应可用载具"); } //判断当前物料载具已经任务分配数量:如果>物料已经分配任务。说明满了,不允许再分配 - List allocateTask = taskService.list(new QueryWrapper().eq("point_code1", startPoint).eq("material_id", task.getString("material_id")).lt("task_status", StatusEnum.TASK_FINISH.getCode())); + List allocateTask = taskService.list(new QueryWrapper().eq("point_code1", startPoint).eq("material_id", material_id).lt("task_status", StatusEnum.TASK_FINISH.getCode())); if (allocateTask.size()>=cacheVehile.split(",").length){ - log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,task.getString("material_id"),allocateTask.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); - throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,task.getString("material_id"))); + log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id)); } SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setVehicle_code(cacheVehile); @@ -171,14 +157,12 @@ public class AgvInstService { } public String getCacheVehile(String cacheLine,String materialId){ - if (StringUtils.isNotEmpty(cacheLine)){ - int count = taskService.count(new QueryWrapper().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode())); - String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode(); - List vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId)); - if (vehicle.size()>0){ - if (vehicle.size()>count){ - return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(",")); - } + int count = taskService.count(new QueryWrapper().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode())); + String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode(); + List vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId)); + if (vehicle.size()>0){ + if (vehicle.size()>count){ + return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(",")); } } return ""; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java index e98f1d4e..fa52e5f3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/MdMeMaterialbase.java @@ -1,8 +1,6 @@ package org.nl.wms.masterdata_manage.service.material.dao; import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; @@ -28,7 +26,6 @@ public class MdMeMaterialbase implements Serializable { /** * 物料标识 */ - @TableId private String material_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java index a56b0198..edee1353 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/vehicle/dao/MdPbBucketrecord.java @@ -3,11 +3,8 @@ package org.nl.wms.masterdata_manage.service.vehicle.dao; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; - -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** *

@@ -18,7 +15,6 @@ import lombok.experimental.Accessors; * @since 2023-05-10 */ @Data -@Builder @EqualsAndHashCode(callSuper = false) @TableName("md_pb_bucketrecord") public class MdPbBucketrecord implements Serializable { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java index 8b0df038..97e0db90 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java @@ -72,10 +72,10 @@ public class SectattrController { return new ResponseEntity<>(HttpStatus.OK); } - @PostMapping("/getSect") + @GetMapping("/getSect") @Log("查询库区下拉框") @ApiOperation("查询库区下拉框") - public ResponseEntity querySect(@RequestBody JSONObject query) { + public ResponseEntity querySect(@RequestBody(required = false) JSONObject query) { List list = isectattrService.getSect(query); return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java index 97d11d6a..7fa3e8c8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; @@ -19,7 +18,6 @@ import java.util.Date; * @since 2023-05-04 */ @Data -@Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_structattr") public class StIvtStructattr implements Serializable { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java index b8a3a07f..96a9083c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java @@ -120,7 +120,7 @@ public class StIvtSectattrServiceImpl extends ServiceImpl(); for (Map map : sectList) { Map sect_cas = new HashMap<>(); - sect_cas.put("value", String.valueOf(map.get("sect_id"))); + sect_cas.put("value", map.get("sect_id")); sect_cas.put("label", map.get("sect_name")); sect_ja.add(sect_cas); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql index c7facecb..11fa5445 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql @@ -72,7 +72,7 @@ WHERE d.is_delete = 0 ORDER BY device_code - LIMIT 200 + LIMIT 10 ENDSELECT ENDQUERY ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java deleted file mode 100644 index 2244a6dc..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao; - -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - *

- * 生产订单表 - *

- * - * @author generator - * @since 2023-05-25 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@TableName("mps_sale_order") -public class MpsSaleOrder implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 销售单标识 - */ - private Long sale_id; - - /** - * 销售单号 - */ - private String sale_code; - - /** - * 明细序号 - */ - private BigDecimal seq_no; - - /** - * 销售单类型 - */ - private String sale_type; - - /** - * 物料标识 - */ - private Long material_id; - - /** - * 状态 - */ - private String status; - - /** - * 销售数量 - */ - private BigDecimal sale_qty; - - /** - * 生产顺序 - */ - private BigDecimal produce_seq; - - /** - * 客户标识 - */ - private Long cust_id; - - /** - * 客户编码 - */ - private String cust_code; - - /** - * 客户名称 - */ - private String cust_name; - - /** - * 计量单位标识 - */ - private Long qty_unit_id; - - /** - * 计划交期 - */ - private String plandeliver_date; - - /** - * 创建人 - */ - private Long create_id; - - /** - * 创建人姓名 - */ - private String create_name; - - /** - * 创建时间 - */ - private String create_time; - - /** - * 提交人 - */ - private Long audit_optid; - - /** - * 提交时间 - */ - private String audit_time; - - /** - * 提交人姓名 - */ - private String audit_optname; - - /** - * 确认人 - */ - private Long confirm_optid; - - /** - * 确认人姓名 - */ - private String confirm_optname; - - /** - * 确认时间 - */ - private String confirm_time; - - /** - * 是否删除 - */ - private String is_delete; - - /** - * 备注 - */ - private String remark; - - /** - * 车间标识 - */ - private Long workshop_id; - - /** - * 生产数量 - */ - private BigDecimal product_qty; - - /** - * 预入库数量 - */ - private BigDecimal instor_qty; - - /** - * 发货数量 - */ - private BigDecimal sendout_qty; - - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java index 0b83c159..61ee34bf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java @@ -8,7 +8,6 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.utils.api.ResultCode; import org.nl.modules.common.exception.BizCoreException; @@ -247,7 +246,7 @@ public class CacheLineHandController { public ResponseEntity check(@RequestBody JSONObject param) { log.info("海亮缓存线手持服务 [盘点] 接口被请求, 请求参数-{}", param); cacheLineHandService.check(param); - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/checkEnd") @@ -256,7 +255,7 @@ public class CacheLineHandController { public ResponseEntity checkEnd(@RequestBody JSONObject param) { log.info("海亮缓存线手持服务 [盘点] 接口被请求, 请求参数-{}", param); cacheLineHandService.check(param); - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/agvInBoxExceptionQuery") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java index 60d4bfa6..a8217424 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java @@ -671,6 +671,7 @@ public class CacheLineHandServiceImpl implements CacheLineHandService { //载具编码 String vehicle_code = param.getString("vehicle_code"); //缓存线位置编码 + String position_code = param.getString("position_code"); // 封装给acs的数据 JSONArray jsonArray = new JSONArray(); JSONObject jsonObject = new JSONObject(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java index 9d288bff..c9ca3d46 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java @@ -1,20 +1,15 @@ package org.nl.wms.product_manage.controller.device; -import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; -import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; -import org.nl.wms.product_manage.service.device.dto.DeviceQuery; import org.nl.wms.product_manage.备份pdm.service.DeviceService; import org.nl.wms.product_manage.备份pdm.service.dto.DeviceDto; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +19,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Map; /** @@ -44,19 +38,9 @@ public class PdmBiDeviceController { @GetMapping @Log("查询生产设备") @ApiOperation("查询生产设备") - @SaIgnore - public ResponseEntity query(DeviceQuery query, PageQuery page){ - Page result = iDeviceService.page(page.build(PdmBiDevice.class), query.build()); - return new ResponseEntity<>(TableDataInfo.build(result),HttpStatus.OK); - } - - @GetMapping("/list") - @Log("查询生产设备列表") - @ApiOperation("查询生产设备列表") - @SaIgnore - public ResponseEntity queryList(DeviceQuery query){ - List> list = iDeviceService.listMaps(query.build().select("device_code", "device_name")); - return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); + //@PreAuthorize("@el.check('device:list')") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(deviceService.queryAll(whereJson,page),HttpStatus.OK); } @PostMapping diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java index 161f45b8..2a25fcb6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java @@ -15,7 +15,6 @@ import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -146,14 +145,6 @@ public class PdmProduceWorkorderController { return new ResponseEntity<>(HttpStatus.OK); } - @GetMapping("/reportQuery") - @Log("报工查询") - @ApiOperation("报工查询") - public ResponseEntity reportQuery(ReportQuery query) { - return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(query)),HttpStatus.OK); - } - - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java index 2df27ebd..8aae9977 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java @@ -6,10 +6,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.Nullable; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.InterfaceLogType; import org.nl.common.enums.StatusEnum; @@ -21,23 +18,11 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.impl.AgvInstService; import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; -import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; -import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService; -import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; -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.scheduler.ISchProcessRouteService; -import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; -import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; -import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -46,25 +31,16 @@ import java.util.Map; @Slf4j @Service public class SpeEmpTask extends AbstractAcsTask { - @Autowired - private IPdmProduceWorkorderService workorderService; - @Autowired - private ISchBaseTaskService taskService; - @Autowired - private AgvInstService agvInstService; - @Autowired - private ISchBasePointService basePointService; - @Autowired - private ISchCachelineVehilematerialService cacheLineVechileService; @Autowired - private ISchProcessRouteService schProcessRouteService; - + AgvInstService agvInstService; private final Map SpeHandles= new HashMap<>(); private static String OPT_NAME = "ACS回调# "; public SpeEmpTask() { + SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); + SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); } @@ -86,32 +62,28 @@ public class SpeEmpTask extends AbstractAcsTask { @Override @Transactional public String createTask(JSONObject param) { - //{"workorder_code":230523019,"device_code":"A1_TW_15_6_D","type":"1"} - String cahceLine = getRouteXmlFlowByWorkprodure(param); - if (cahceLine == null) { return null; } - PdmProduceWorkorder one = workorderService.getOne(new QueryWrapper() - .eq("workorder_code", param.getString("workorder_code")) - .lt("workorder_status", StatusEnum.TASK_FINISH.getCode())); - Assert.notNull(one, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); - List list = taskService.list(new QueryWrapper() - .eq("point_code2", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode()) - ); - if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code"))); - } + String point_code = param.getString("device_code"); + String quantity = param.getString("quantity"); + String type = param.getString("type"); + JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(chectIndDatabase)){ + Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code"))); + + } JSONObject form = new JSONObject(MapOf.of("start_point_code","", - "next_point_code",param.getString("device_code"),"return_point_code", "","vehicle_code", - "","product_area",one.getProduct_area(),"quantity", param.getString("quantity"),"type",param.getString("type"),"material_id", one.getMaterial_id())); + "next_point_code",point_code,"return_point_code", "","vehicle_code", + "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; + JSONObject task = packageParam(form, taskId); - taskService.save(task.toJavaObject(SchBaseTask.class)); - task.put("cacheLine",cahceLine); + WQLObject.getWQLObject("SCH_BASE_Task").insert(task); try { pointConfirm(task); //下发 }catch (Exception ex){ - log.error("SpeEmpTask#点位确认异常:{}",ex.getMessage()); task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode()); task.put("remark",ex.getMessage()); WQLObject.getWQLObject("sch_base_task").update(task); @@ -119,35 +91,6 @@ public class SpeEmpTask extends AbstractAcsTask { return taskId; } - @Nullable - private String getRouteXmlFlowByWorkprodure(JSONObject param) { - Map workprodure = basePointService.findDeviceWorkprodure(param.getString("device_code")); - SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() - .eq("point_code", param.getString("device_code")) - .eq("is_delete", "0") - .eq("is_used", "1") - ); - FlowElement flowElement = schProcessRouteService.checkWorkprodure(workprodure.get("workprocedure_code"), devicePoint.getRegion_code()); - if (flowElement == null){ - log.error("SpeEmpTask#createTask 没有对应路由线路{},{}",workprodure.get("workprocedure_code"),devicePoint.getRegion_code()); - throw new BadRequestException("缺料请求没有配置对应路由线路"+workprodure.get("workprocedure_code")+"——"+devicePoint.getRegion_code()); - } - FlowElement pre = flowElement.pre(); - if (pre == null || ObjectUtil.isEmpty(pre.getParams().get("cacheLine"))){ - log.error("SpeEmpTask#createTask 没有配置缓存线{},{}",workprodure.get("workprocedure_code"),devicePoint.getRegion_code()); - return null; - } - Object tmp_cahceLine = pre.getParams().get("cacheLine"); - String cahceLine = null; - if (tmp_cahceLine instanceof String){ - cahceLine = (String) tmp_cahceLine; - } - if (tmp_cahceLine instanceof Map){ - cahceLine = ((Map) tmp_cahceLine).get(workprodure.get("spec")); - } - return cahceLine; - } - private JSONObject packageParam(JSONObject form, String task_id) { JSONObject task = new JSONObject(); 参数封装:{ @@ -191,6 +134,72 @@ public class SpeEmpTask extends AbstractAcsTask { interface SpeStatusHandler{ void handle(JSONObject param,String status,JSONObject task); } + class Spe2Spe implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + //到专机:更新设备上料位物料数量 + String point_code2 = task.getString("point_code2"); + JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); + JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); + task.getDouble("material_qty"); + double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); + deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + log.error(OPT_NAME+"未定义任务状态:{}",sta); + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } + class Spe2Cache implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + String workprocedureCode = param.getString("workorder_code"); + String inboxtxm = param.getString("inboxtxm"); + String outboxtxm = param.getString("outboxtxm"); + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.insert(MapOf.of("quantity", task.getString("material_qty"), + "material_id", task.getString("material_id"), + "vehicle_code", inboxtxm, + "vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode(), + //工单,工序? + "workorder_code", workprocedureCode, + "create_time", DateUtil.now(), + "update_time", DateUtil.now() + //物料规格,物料名称 从物料信息表关联查询 + )); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } class Cache2Spe implements SpeStatusHandler{ @Override public void handle(JSONObject param, String sta,JSONObject task) { @@ -199,10 +208,12 @@ public class SpeEmpTask extends AbstractAcsTask { WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + String outboxtxm = param.getString("outboxtxm"); switch (status){ case STATUS_START: taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); break; case STATUS_FINISH: taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java index bb62bc4d..92eee538 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java @@ -2,14 +2,14 @@ package org.nl.wms.product_manage.sch.tasks.SpeMachinery; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.InterfaceLogType; import org.nl.common.enums.StatusEnum; -import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -19,21 +19,11 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.impl.AgvInstService; import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; -import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; -import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService; -import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; -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.ISchBaseTaskService; -import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -42,34 +32,26 @@ import java.util.Map; @Slf4j @Service public class SpeFullTask extends AbstractAcsTask { - @Autowired - private IPdmProduceWorkorderService workorderService; - @Autowired - private ISchBaseTaskService taskService; - @Autowired - private ISchBasePointService pointService; - @Autowired - private ISchCachelineVehilematerialService cacheLineVechileService; - @Autowired - private AgvInstService agvInstService; + @Autowired + AgvInstService agvInstService; private final Map SpeHandles= new HashMap<>(); - private static String OPT_NAME = "ACS回调# "; + private static String OPT_NAME = "ACS回调# "; public SpeFullTask() { SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); + SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); } @Override - @Transactional public void updateTaskStatus(JSONObject param,String status) { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); log.info(InterfaceLogType.ACS_TO_LMS.getDesc()); // 指令执行中 - SchBaseTask task = taskService.getById(param.getString("task_id")); - AcsTaskEnum taskType = AcsTaskEnum.getType(task.getTask_type(),"TASK_"); + JSONObject task = taskTable.query("task_id = '" + param.getString("task_id") + "'").uniqueResult(0); + AcsTaskEnum taskType = AcsTaskEnum.getType(task.getString("task_type"),"TASK_"); try { SpeHandles.get(taskType.name()).handle(param,status,task); }catch (Exception ex){ @@ -81,28 +63,25 @@ public class SpeFullTask extends AbstractAcsTask { @Override @Transactional public String createTask(JSONObject param) { + String point_code = param.getString("device_code"); String quantity = param.getString("quantity"); String type = param.getString("type"); - PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() - .eq("workorder_code", param.getString("workorder_code")) - .eq("is_delete", false) - .lt("workorder_status", StatusEnum.TASK_FINISH.getCode())); + JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0); Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); - List list = taskService.list(new QueryWrapper() - .eq("point_code1", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode()) - ); - if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code"))); + JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(chectIndDatabase)){ + Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code"))); } JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0); JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code, "next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code", - "","product_area",order.getProduct_area(),"quantity", quantity,"type",type,"material_id", order.getMaterial_id())); + "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); - String taskId = IdUtil.getStringId(); + String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; JSONObject task = packageParam(form, taskId); - taskService.save(task.toJavaObject(SchBaseTask.class)); + WQLObject.getWQLObject("SCH_BASE_Task").insert(task); + try { pointConfirm(task); //下发 @@ -155,38 +134,29 @@ public class SpeFullTask extends AbstractAcsTask { } interface SpeStatusHandler{ - void handle(JSONObject param,String status,SchBaseTask task); + void handle(JSONObject param,String status,JSONObject task); } class Spe2Spe implements SpeStatusHandler{ @Override - public void handle(JSONObject param, String sta,SchBaseTask task) { + public void handle(JSONObject param, String sta,JSONObject task) { AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + switch (status){ case STATUS_START: - taskService.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_RUNNING.getCode()) - .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); - Map extParam = (Map)param.get("ext_param"); - if (extParam.get("put_finish") != null){ - pointService.update(new UpdateWrapper() - .set("vehicle_code",task.getVehicle_code2()) - .eq("point_code",task.getPoint_code3())); - } - if (extParam.get("take_finish") != null){ - pointService.update(new UpdateWrapper() - .set("vehicle_code","") - .eq("point_code",task.getPoint_code3())); - pointService.update(new UpdateWrapper() - .set("vehicle_code",task.getVehicle_code2()) - .eq("point_code",task.getPoint_code1())); - } + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); break; case STATUS_FINISH: - taskService.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_FINISH.getCode()) - .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + //到专机:更新设备上料位物料数量 + String point_code2 = task.getString("point_code2"); + JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); + JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); + task.getDouble("material_qty"); + double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); + deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); break; case STATUS_CANNEL: cancel(param.getString("task_id")); @@ -199,36 +169,63 @@ public class SpeFullTask extends AbstractAcsTask { } class Spe2Cache implements SpeStatusHandler{ @Override - public void handle(JSONObject param, String sta,SchBaseTask task) { + public void handle(JSONObject param, String sta,JSONObject task) { AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + String workprocedureCode = param.getString("workorder_code"); + String inboxtxm = param.getString("inboxtxm"); + String outboxtxm = param.getString("outboxtxm"); switch (status){ case STATUS_START: - Map extParam = (Map)param.get("ext_param"); - UpdateWrapper wrapper = new UpdateWrapper() - .set("task_status", StatusEnum.TASK_RUNNING.getCode()) - .set("update_name", "acs") - .set("update_time", DateUtil.now()).eq("task_id", task.getTask_id()); - - if (extParam.get("outboxt")!= null){ wrapper.set("vehicle_code2",extParam.get("outboxt")); } - taskService.update(wrapper); - - if (extParam.get("inboxt") != null){ - SchCachelineVehilematerial vehilematerial = new SchCachelineVehilematerial(); - vehilematerial.setVehmaterial_id(IdUtil.getStringId()); - vehilematerial.setVehicle_code(extParam.get("inboxt")); - vehilematerial.setMaterial_id(task.getMaterial_id()); - vehilematerial.setErr_type("0"); - vehilematerial.setCreate_time(DateUtil.now()); - vehilematerial.setQuantity(task.getMaterial_qty()); - cacheLineVechileService.save(vehilematerial); - } - + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); break; case STATUS_FINISH: - taskService.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_FINISH.getCode()) - .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.insert(MapOf.of("quantity", task.getString("material_qty"), + "material_id", task.getString("material_id"), + "vehicle_code", inboxtxm, + "vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode(), + //工单,工序? + "workorder_code", workprocedureCode, + "create_time", DateUtil.now(), + "update_time", DateUtil.now() + //物料规格,物料名称 从物料信息表关联查询 + )); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } + class Cache2Spe implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + String outboxtxm = param.getString("outboxtxm"); + + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + + String point_code2 = task.getString("point_code2"); + JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); + JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); + task.getDouble("material_qty"); + double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); + deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); break; case STATUS_CANNEL: cancel(param.getString("task_id")); @@ -242,5 +239,6 @@ public class SpeFullTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject param) { agvInstService.fullMaster(param); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java index 9e3e4f69..43aa1b40 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java @@ -29,11 +29,6 @@ public class PdmBiDevice implements Serializable { @TableId(value = "device_code") private String device_code; - /** - * 设备系列TW_15/TW_22:25/22 - */ - private String spec; - /** * 设备名称 */ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml index 17efe475..fa038379 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml @@ -11,7 +11,7 @@ WHERE device.is_delete = '0' - and device.workprocedure_id = #{workprocedure_id} + device.workprocedure_id = #{workprocedure_id} and device.device_code not in ( select o.device_code as device_code @@ -23,7 +23,7 @@ GROUP_CONCAT(sch_base_task.task_id), pdm_bi_device.inupperlimit_qty - ifnull( sum( sch_base_task.material_qty ), 0 ) - pdm_bi_device.deviceinstor_qty AS currentQty, pdm_bi_device.device_code, - sch_base_point.point_code + sch_base_point.point_code, from sch_base_point left join pdm_bi_device on pdm_bi_device.device_code = sch_base_point.device_code left JOIN sch_base_task ON sch_base_point.point_code = point_code2 and '7' > task_status @@ -31,7 +31,7 @@ sch_base_point.point_type = '4' and workprocedure_id = #{workprocedure_id} - and (pdm_bi_device.material_id = #{material_id} or pdm_bi_device.material_id is null ) + and pdm_bi_device.material_id = #{material_id} GROUP BY pdm_bi_device.device_code HAVING currentQty > #{qty} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java deleted file mode 100644 index a9dffddc..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.nl.wms.product_manage.service.device.dto; - -import lombok.Data; -import org.nl.common.domain.query.BaseQuery; -import org.nl.common.domain.query.QParam; -import org.nl.common.enums.QueryTEnum; -import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; -import org.nl.wms.system_manage.service.dept.dao.SysDept; - -import java.util.List; - -/* - * @author ZZQ - * @Date 2022/12/15 4:20 下午 - */ -@Data -public class DeviceQuery extends BaseQuery { - private String search; - - private String workprocedure_id; - - private String product_area; - - - @Override - public void paramMapping() { - super.doP.put("search", QParam.builder().k(new String[]{"device_code"}).type(QueryTEnum.LK).build()); - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java index 2c403b12..6bb5e166 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java @@ -4,8 +4,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.OptionRecord; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.web.multipart.MultipartFile; @@ -115,6 +115,4 @@ public interface IPdmProduceWorkorderService extends IService reportQuery(ReportQuery query); - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java index c8b62eba..2f95ec1f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java @@ -2,10 +2,6 @@ package org.nl.wms.product_manage.service.workorder; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import com.baomidou.mybatisplus.extension.service.IService; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; - -import java.util.List; -import java.util.Map; /** *

@@ -17,5 +13,4 @@ import java.util.Map; */ public interface IPdmProduceWorkorderrecordService extends IService { - List getWorkorderRecordDtl(ReportQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java index 9d43749c..128ff135 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java @@ -220,10 +220,6 @@ public class PdmProduceWorkorder implements Serializable { * 完工时间 */ private String confirm_time; - /** - * 自增序号 - */ - private Integer seq_number; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java index ae7c714f..7fb66f71 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java @@ -1,12 +1,7 @@ package org.nl.wms.product_manage.service.workorder.dao.mapper; -import org.apache.ibatis.annotations.Param; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; - -import java.util.List; -import java.util.Map; /** *

@@ -18,5 +13,4 @@ import java.util.Map; */ public interface PdmProduceWorkorderrecordMapper extends BaseMapper { - List getWorkorderRecordDtl(@Param("query")ReportQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml index 0b782794..ac1a9b89 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml @@ -2,29 +2,4 @@ - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java deleted file mode 100644 index f7216905..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.nl.wms.product_manage.service.workorder.dto; - -import lombok.Data; -import org.nl.common.domain.query.BaseQuery; -import org.nl.common.domain.query.QParam; -import org.nl.common.enums.QueryTEnum; -import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; - -/* - * @author ZZQ - * @Date 2023/4/26 11:05 - */ -@Data -public class ReportQuery extends BaseQuery { - - private String device_code; - private String workorder_code; - private String report; - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index fb20ee9f..df9e9713 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.jsonwebtoken.lang.Assert; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; @@ -39,7 +38,6 @@ import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import org.nl.wms.product_manage.service.workorder.dao.WorkorderRecord; import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderMapper; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.nl.wms.system_manage.service.user.ISysUserService; import org.nl.wms.system_manage.service.user.dao.SysUser; @@ -65,7 +63,6 @@ import java.util.stream.Collectors; * @since 2023-04-26 */ @Service -@Slf4j public class IPdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService { @Autowired private IMdPbClassstandardService classstandardService; @@ -182,9 +179,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()) - .set("confirm_id", SecurityUtils.getCurrentUserId()) - .set("confirm_name", SecurityUtils.getCurrentNickName()) - .set("confirm_time", new Date()) + .set("update_id", SecurityUtils.getCurrentUserId()) + .set("update_name", SecurityUtils.getCurrentNickName()) + .set("update_time", new Date()) .in("workorder_id", workorder_id)); JSONArray array = new JSONArray(); JSONObject map = new JSONObject(); @@ -193,7 +190,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl result = wmsToAcsService.orderStatusUpdate(array); if (!HttpStatus.OK.equals(result.get("status"))) { - log.error((String) result.get("message")); + throw new BadRequestException((String) result.get("message")); } this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id); } @@ -528,8 +525,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, result.getWorkorder_id()); return RestBusinessTemplate.execute(() -> resp); } @@ -640,7 +637,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl reportQuery(ReportQuery query) { - return reportRecordService.getWorkorderRecordDtl(query); - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java index 1a7582cb..06bac38a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java @@ -1,16 +1,11 @@ package org.nl.wms.product_manage.service.workorder.impl; -import lombok.var; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderrecordMapper; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderrecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; - /** *

* 生产设备报工记录表 服务实现类 @@ -22,8 +17,4 @@ import java.util.Map; @Service public class PdmProduceWorkorderrecordServiceImpl extends ServiceImpl implements IPdmProduceWorkorderrecordService { - @Override - public List getWorkorderRecordDtl(ReportQuery query) { - return this.baseMapper.getWorkorderRecordDtl(query); - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java index e8b8baa2..07b3f1ad 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java @@ -58,7 +58,7 @@ public class SchedulerController { .or() .like("process_name", blurry) .or() - .like("rule_code", blurry); + .like("material_spec", blurry); } List list = processRouteService.list(query); return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml index 8a6b1e39..c15858b7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml @@ -9,10 +9,10 @@ FROM sch_cacheline_vehilematerial v LEFT JOIN sch_cacheline_position p ON p.vehicle_code = v.vehicle_code - WHERE p.vehicle_code ]]> '' and + WHERE p.vehicle_code <> '' and v.vehicle_status = #{vehicle_status} - and v.material_id = #{material_id} + v.material_id = #{material_id} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java index a1cdfd4b..f0168faa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java @@ -41,16 +41,9 @@ public interface ISchBasePointService extends IService { /** * 根据设备点位查询设备对应工序 - * r.workprocedure_code,r.workprocedure_id,p.device_code * @param point_code * @return */ Map findDeviceWorkprodure(String point_code); - - Map getWorkprodureById(String id); - Map getWorkprodureByCode(String code); - - - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java index e2e42ea3..fb07e862 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java @@ -1,7 +1,6 @@ package org.nl.wms.scheduler_manage.service.point.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import java.util.List; @@ -31,5 +30,4 @@ public interface SchBasePointMapper extends BaseMapper { List selectPoint(Map map); Map getDeviceWorkprodure(String pointCode); - Map getWorkprodure(@Param("workprodureId") String workprodureId,@Param("workprodureCode") String workprodureCode); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml index 335e0521..c4030f11 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml @@ -91,19 +91,9 @@ - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index a1740613..e6fda177 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -148,18 +148,4 @@ public class SchBasePointServiceImpl extends ServiceImpl @@ -14,7 +13,5 @@ import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowEle */ public interface ISchProcessRouteService extends IService { - SchProcessRoute findByMaterialId(String ruleCode); - - FlowElement checkWorkprodure(String workprodureCode,String ruleCode); + SchProcessRoute findByMaterialId(String materialId,String regionCode); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java index 99d51dc5..52464bd3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java @@ -2,19 +2,14 @@ package org.nl.wms.scheduler_manage.service.scheduler.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; -import org.nl.wms.scheduler_manage.service.scheduler.SchedulerService; import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; import org.nl.wms.scheduler_manage.service.scheduler.dao.mapper.SchProcessRouteMapper; import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; import org.nl.wms.system_manage.service.param.ISysParamService; import org.nl.wms.system_manage.service.param.dao.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; /** *

@@ -28,26 +23,18 @@ import org.springframework.util.CollectionUtils; public class SchProcessRouteServiceImpl extends ServiceImpl implements ISchProcessRouteService { @Autowired - private ISysParamService iSysParamService; - @Autowired - private SchedulerService schedulerService; + ISysParamService iSysParamService; @Override - public SchProcessRoute findByMaterialId(String ruleCode) { + public SchProcessRoute findByMaterialId(String materialId, String regionCode) { Param one = iSysParamService.getOne(new QueryWrapper().eq("code", "process_route")); String value = one.getValue(); if (value.equals("1")){ - return this.getOne(new QueryWrapper().eq("rule_code",ruleCode)); + return this.getOne(new QueryWrapper().eq("rule_code",regionCode)); }else { - return this.baseMapper.findByMaterialId(ruleCode); - } - } - - @Override - public FlowElement checkWorkprodure(String workprodureCode,String ruleCode) { - SchProcessRoute processRoute = this.findByMaterialId(ruleCode); - if (processRoute != null){ - return schedulerService.currentFlow(processRoute.getProcess_id(), workprodureCode); + if (StringUtils.isNotEmpty(materialId)){ + return this.baseMapper.findByMaterialId(materialId); + } } return null; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java index 4841d302..e2aacb89 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java @@ -4,7 +4,6 @@ import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.xml.stream.XMLStreamConstants; @@ -20,9 +19,6 @@ import java.util.Map; */ @Service("flow") public class FlowConverter implements BaseConverter { - @Autowired - ParamConverter paramConverter; - String[] labels = new String[]{"id","name","sourceRef","targetRef"}; @Override @SneakyThrows @@ -39,8 +35,8 @@ public class FlowConverter implements BaseConverter { break; } if (XMLStreamConstants.START_ELEMENT == xtr.next()){ - ParamElement process = (ParamElement)paramConverter.process(xtr); - element.getParams().put(process.getId(),process.getValue()); + System.out.println(xtr.getLocalName()); + element.getParams().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value")); i++; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java index 1d44e10a..d07b61b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java @@ -17,7 +17,7 @@ public class FlowElement extends BaseElement { private FlowElement targetRef; private String sourceRefId; private String targetRefId; - private Map params = new HashMap<>(); + private Map params = new HashMap<>(); @@ -55,11 +55,11 @@ public class FlowElement extends BaseElement { this.targetRefId = targetRefId; } - public Map getParams() { + public Map getParams() { return params; } - public void setParams(Map params) { + public void setParams(Map params) { this.params = params; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java deleted file mode 100644 index 4ea5da71..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl; - -import lombok.SneakyThrows; -import org.apache.commons.lang3.StringUtils; -import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter; -import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement; -import org.springframework.stereotype.Service; - -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamReader; - -/* - * @author ZZQ - * @Date 2023/5/19 11:00 - */ -@Service("param") -public class ParamConverter implements BaseConverter { - String[] labels = new String[]{"id","value"}; - @Override - @SneakyThrows - public BaseElement process(XMLStreamReader xtr) { - ParamElement element = new ParamElement(); - setBaseLabel(element,xtr,labels); - element.setValue(xtr.getAttributeValue(null,"value")); - String has = xtr.getAttributeValue(null, "has"); - if (StringUtils.isNotEmpty(has)){ - int i = 0; - while (true){ - if (i == Integer.valueOf(has)){ - break; - } - if (XMLStreamConstants.START_ELEMENT == xtr.next()){ - element.getItem().put(xtr.getAttributeValue(null,"spec"),xtr.getAttributeValue(null,"value")); - i++; - } - } - element.setValue(element.getItem()); - } - return element; - } - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamElement.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamElement.java deleted file mode 100644 index 0750d14d..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamElement.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl; - -import lombok.Data; -import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement; - -import java.util.HashMap; -import java.util.Map; - -/* - * @author ZZQ - * @Date 2023/5/21 18:03 - */ -@Data -public class ParamElement extends BaseElement { - private Object value; - private Map item = new HashMap<>(); - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java index 4a6eb419..52b2a5ef 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java @@ -9,7 +9,6 @@ import java.util.Date; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** *

@@ -20,7 +19,6 @@ import lombok.experimental.Accessors; * @since 2023-05-11 */ @Data -@Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @TableName("sch_base_task") public class SchBaseTask implements Serializable { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java index 457e6fc6..580a8248 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java @@ -98,28 +98,4 @@ public class IStivtlostorivnCpInController { return new ResponseEntity<>(HttpStatus.OK); } - @PostMapping("/unDivStruct") - @Log("取消分配") - @ApiOperation("取消分配") - public ResponseEntity unDivStruct(@RequestBody JSONObject whereJson){ - iStIvtIostorinvCpService.unDivStruct(whereJson); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/setPoint") - @Log("设置起点") - @ApiOperation("设置起点") - public ResponseEntity setPoint(@RequestBody JSONObject whereJson){ - iStIvtIostorinvCpService.setPoint(whereJson); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/confirm") - @Log("强制确认") - @ApiOperation("强制确认") - public ResponseEntity confirm(@RequestBody JSONObject whereJson){ - iStIvtIostorinvCpService.confirm(whereJson); - return new ResponseEntity<>(HttpStatus.OK); - } - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java index 1ef898a0..479c8aed 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java @@ -117,31 +117,4 @@ public interface IStIvtIostorinvCpService extends IService { * } */ void divStruct(JSONObject whereJson); - - /** - * 取消分配 - * @param whereJson - * { - * 分配明细 - * } - */ - void unDivStruct(JSONObject whereJson); - - /** - * 设置起点 - * @param whereJson - * { - * 分配明细 - * } - */ - void setPoint(JSONObject whereJson); - - /** - * 强制确认 - * @param whereJson - * { - * "iostorinv_id": 主表标识 - * } - */ - void confirm(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java index 5ca546b0..457de168 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java @@ -1,6 +1,5 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +27,6 @@ public class StIvtIostorinvdisCp implements Serializable { /** * 出入单分配标识 */ - @TableId private String iostorinvdis_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java index 22ec712c..8405ece2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java @@ -1,6 +1,5 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import lombok.experimental.Accessors; @@ -26,7 +25,6 @@ public class StIvtIostorinvdtlCp implements Serializable { /** * 出入单明细标识 */ - @TableId private String iostorinvdtl_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml index 5e4e5c63..c4c6e44b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml @@ -76,7 +76,7 @@ AND mst.bill_code =#{bill_code} - AND mst.iostorinv_id =#{iostorinv_id} + AND mst.bill_code =#{iostorinv_id} order by dtl.seq_no ASC diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index d2bcfb7c..8c396c31 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -1,9 +1,7 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -13,28 +11,18 @@ import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; -import org.nl.common.publish.BussEventMulticaster; -import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; -import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; -import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; -import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; -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.ISchBaseTaskService; -import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; -import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; @@ -46,8 +34,6 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; -import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; -import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -55,10 +41,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; +import java.util.*; import java.util.stream.Collectors; /** @@ -96,23 +79,12 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl pageQuery = this.page(page.build(), query.build()); @@ -236,7 +208,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda() - .eq(StIvtIostorinvdisCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id"))); - if (ObjectUtil.isNotEmpty(disDao.getStruct_code())) throw new BadRequestException("此明细已分配"); String struct_id = whereJson.getString("struct_id"); StIvtStructattr attrDao = new StIvtStructattr(); @@ -388,211 +356,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda() - .eq(StIvtIostorinvdisCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id")) - ); - if (ObjectUtil.isEmpty(disDao)) throw new BadRequestException("分配明细不存在!"); - - - SchBaseTask taskDao = iSchBaseTaskService.getOne( - new QueryWrapper().lambda() - .eq(SchBaseTask::getTask_id, disDao.getTask_id()) - .gt(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) - ); - if (ObjectUtil.isNotEmpty(taskDao)) throw new BadRequestException("任务已下发,不可取消!"); - - // 2.更新分配明细 - iStIvtIostorinvdisdtlCpService.update( - new StIvtIostorinvdisdtlCp() - .setStruct_name("") - .setStruct_code("") - .setStruct_id("") - .setSect_id("") - .setSect_code("") - .setSect_name(""), - new QueryWrapper().lambda() - .eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id,disDao.getIostorinvdis_id()) - ); - - // 3.更新任务 - iSchBaseTaskService.update( - new SchBaseTask().setIs_delete(true), - new QueryWrapper().lambda() - .eq(SchBaseTask::getTask_id, disDao.getTask_id()) - .lt(SchBaseTask::getTask_status, TaskStatusEnum.ISSUE.getCode()) - ); - - // 解锁货位 - iStIvtStructattrService.update( - new StIvtStructattr() - .setLock_type("1") // TODO 暂时写死 - .setInv_code("") - .setInv_type("") - .setInv_id(""), - new QueryWrapper().lambda() - .eq(StIvtStructattr::getStruct_code, disDao.getStruct_code()) - ); - - // 更新库存 - iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.SUBWAREHOUSING_QTY,null)); - - // 4.更新分配 - iostorinvdisCpService.updateById( - disDao.setStruct_name("").setStruct_code("") - .setStruct_id("").setSect_id("") - .setSect_code("").setSect_name("") - .setPoint_id("").setPoint_code("") - .setPoint_name("") - ); - - // 5.更新明细 - StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getOne( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, disDao.getIostorinvdtl_id()) - ); - - if (StrUtil.equals(dtlDao.getBill_status(), IOSEnum.BILL_STATUS.code("生成"))) { - throw new BadRequestException("没有可取消的分配明细!"); - } - - dtlDao.setAssign_qty(NumberUtil.sub(dtlDao.getAssign_qty(),disDao.getReal_qty())); - dtlDao.setUnassign_qty(disDao.getReal_qty()); - - if (dtlDao.getAssign_qty().doubleValue() == 0) { - dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); - } else if (dtlDao.getAssign_qty().doubleValue() > 0) { - dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中")); - } - - iostorinvdtlCpService.updateById(dtlDao); - - // 6.更新主表 - updateMst(dtlDao.getIostorinv_id()); - - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void setPoint(JSONObject whereJson) { - StIvtIostorinvdisCp disDao = iostorinvdisCpService.getById(whereJson.getString("iostorinvdis_id")); - - // 1.校验是否设置过起点 - if (ObjectUtil.isNotEmpty(disDao.getPoint_id())) throw new BadRequestException("此明细已生成任务!"); - - // 2.下发任务 - SchBasePoint pointDao = iSchBasePointService.getOne( - new QueryWrapper().lambda() - .eq(SchBasePoint::getPoint_code, whereJson.getString("point_code")) - ); - - PointEvent event = PointEvent.builder() - .type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode()) - .point_code1(disDao.getStruct_code()) - .point_code2(pointDao.getPoint_code()) - .callback((Consumer) disDao::setTask_id) - .build(); - BussEventMulticaster.Publish(event); - - // 3.更新分配表 - iostorinvdisCpService.updateById( - disDao.setPoint_id(pointDao.getPoint_id()) - .setPoint_code(pointDao.getPoint_code()) - .setPoint_name(pointDao.getPoint_name()) - ); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void confirm(JSONObject whereJson) { - - // 1.更新主表为完成 - StIvtIostorinvCp mstDao = this.getById(whereJson.getString("iostorinv_id")); - mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - mstDao.setConfirm_id(SecurityUtils.getCurrentUserId()); - mstDao.setConfirm_name(SecurityUtils.getCurrentNickName()); - mstDao.setConfirm_time(DateUtil.now()); - this.updateById(mstDao); - - // 2.判断所有明细是否为分配完 - List dtlDaoList = iostorinvdtlCpService.list( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) - ); - - boolean is_dis = dtlDaoList.stream() - .anyMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))); - - if (!is_dis) throw new BadRequestException("请先分配单据!"); - - // 3.更新明细表为完成 - iostorinvdtlCpService.update( - new StIvtIostorinvdtlCp() - .setBill_status(IOSEnum.BILL_STATUS.code("完成")), - new QueryWrapper().lambda() - .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) - ); - - // 4.更新箱记录表状态为入库 - List disDtlList = iStIvtIostorinvdisdtlCpService.list( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdisdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) - ); - - for (StIvtIostorinvdisdtlCp disDtlDao : disDtlList) { - // 更新箱记录表 - iMdPbBucketrecordService.update( - MdPbBucketrecord.builder() - .status("03") // TODO 暂时写死 - .instor_optid(Long.getLong(SecurityUtils.getCurrentUserId())) - .instor_optname(SecurityUtils.getCurrentNickName()) - .instor_time(DateUtil.now()) - .build(), - new QueryWrapper().lambda() - .eq(MdPbBucketrecord::getBucketunique, disDtlDao.getBucketunique()) - ); - } - - // 5.更新任务为完成、更新库存、解锁点位 - List disDaoList = iostorinvdisCpService.list( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id")) - ); - - for (StIvtIostorinvdisCp dao : disDaoList) { - // 1)更新任务为完成 - SchBaseTask taskDao = iSchBaseTaskService.getById(dao.getTask_id()); - - if (ObjectUtil.isNotEmpty(taskDao)) { - // 更新有任务分配 - if (!StrUtil.equals(taskDao.getTask_id(), TaskStatusEnum.FINISHED.getCode())) { - taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode()); - iSchBaseTaskService.updateById(taskDao); - } - } - - // 2)更新库存 - iStIvtStructivtCpService.UpdateIvt(ivtDataParam(dao,ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY,null)); - - // 3)解锁终点 - unLockNext(dao.getStruct_id(),dao.getStoragevehicle_code()); - } - + // TODO 更新库存、物流等 } @NotNull @@ -614,7 +378,6 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl row.getBill_status().equals(IOSEnum.BILL_STATUS.code("生成"))); - - if (is_create) mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); - this.updateById(mstDao); } - public JSONObject ivtDataParam(StIvtIostorinvdisCp disDao,String change_type,String sale_id) { - JSONObject ivtParam = new JSONObject(); - ivtParam.put("struct_id", disDao.getStruct_id()); - ivtParam.put("material_id", disDao.getMaterial_id()); - ivtParam.put("pcsn", disDao.getPcsn()); - ivtParam.put("quality_scode", disDao.getQuality_scode()); - ivtParam.put("ivt_level", disDao.getIvt_level()); - ivtParam.put("change_qty", disDao.getReal_qty()); - ivtParam.put("change_type", change_type); - ivtParam.put("sale_id", sale_id); - - return ivtParam; - } - - /* - 解锁终点 - */ - public void unLockNext(String struct_id, String storagevehicle_code) { - - StIvtStructattr attrDao = iStIvtStructattrService.getById(struct_id); - if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("仓位不存在!"); - - attrDao.setInv_code(""); - attrDao.setInv_type(""); - attrDao.setInv_id(""); - attrDao.setStoragevehicle_code(storagevehicle_code); - attrDao.setLock_type("1"); - iStIvtStructattrService.updateById(attrDao); - - } - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisdtlCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisdtlCpServiceImpl.java index 0281c5a4..f337e296 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisdtlCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisdtlCpServiceImpl.java @@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; -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.service.vehicle.IMdPbBucketrecordService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; @@ -46,10 +44,6 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl list) { if (!CollectionUtils.isEmpty(list)){ @@ -73,18 +67,13 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl().lambda() - .eq(MdMeMaterialbase::getMaterial_code, item.getString("material_code")) - ); - StIvtIostorinvdisdtlCp disDtlDao = new StIvtIostorinvdisdtlCp() .setIostorinv_id(json.getString("iostorinv_id")) .setIostorinvdtl_id(json.getString("iostorinvdtl_id")) .setIostorinvdis_id(json.getString("iostorinvdis_id")) .setIostorinvdisdtl_id(IdUtil.getStringId()) .setSeq_no(new BigDecimal(1)) - .setMaterial_id(mataDao.getMaterial_id()) + .setMaterial_id(item.getString("material_id")) .setPcsn(item.getString("pcsn")) .setQuality_scode("00") // TODO 暂时写 .setIvt_level("01") // TODO 暂时写 @@ -99,17 +88,16 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl() - .eq("bucketunique", item.getString("bucketunique")) + recodDao,new QueryWrapper().eq("bucketunique", item.getString("bucketunique")) ); }); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java index 81a0a8d9..3147a5c9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java @@ -1,6 +1,5 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -75,9 +74,7 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl { - double need_qty = dtl.getPlan_qty().doubleValue(); - List list = structivtYlService.list(new QueryWrapper() - .eq("material_id", dtl.getMaterial_id()) - .eq("stor_id", mst.getStor_id()) - .eq("workshop_id", mst.getWorkshop_id())); - - MdMeMaterialbase mater = materialbaseService.getOne(new QueryWrapper().eq("material_id", dtl.getMaterial_id())); - - if (ObjectUtil.isEmpty(list)) { - throw new BadRequestException("当前仓库内不存在物料:" + mater.getMaterial_name()); - } - - for (StIvtStructivtYl ivt : list) { - //判断是否需要继续分配库存,不大于0时跳出循环 - if (need_qty > 0){ - double canuse_qty = ivt.getCanuse_qty().doubleValue(); - if (canuse_qty >= need_qty){ - //插入分配表 - - - //维护库存 - } - }else { - break; - } - } - if (need_qty > 0){ - throw new BadRequestException("物料:"+mater.getMaterial_name()+"库存不足,缺少:"+need_qty+"KG"); - } - }); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java index 1e8bd5f4..357e6fa5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java @@ -1,7 +1,6 @@ package org.nl.wms.storage_manage.rawmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -75,6 +74,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); @@ -156,36 +156,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl().eq("struct_code", dis.getSect_code()).eq("material_id", dis.getMaterial_id())); - if (ObjectUtil.isNotEmpty(structivtYl)) { - structivtYl.setCanuse_qty(NumberUtil.add(structivtYl.getCanuse_qty(), dis.getPlan_qty())); - structivtYl.setIvt_qty(structivtYl.getCanuse_qty()); - structivtYlService.updateById(structivtYl); - } else { - structivtYlService.save(StIvtStructivtYl.builder() - .stockrecord_id(IdUtil.getStringId()) - .struct_id(dis.getStruct_id()) - .struct_code(dis.getStruct_code()) - .struct_name(dis.getStruct_name()) - .material_id(dis.getMaterial_id()) - .quality_scode(dis.getQuality_scode()) - .pcsn(dis.getPcsn()) - .ivt_level(dis.getIvt_level()) - .is_active(dis.getIs_active()) - .canuse_qty(dis.getReal_qty()) - .ivt_qty(dis.getReal_qty()) - .qty_unit_id(dis.getQty_unit_id()) - .instorage_time(DateUtil.now()) - .stor_id(mst.getStor_id()) - .workshop_id(mst.getWorkshop_id()) - .build() - ); - } - - /*//插入库存变动记录表 + //修改库存和插入库存变动记录表 structivtflowService.recordStructivtFlow( StIvtStructivtflowDto.builder() .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp") @@ -194,7 +165,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl - - - - - - - + + + + - + + - - + + + + diff --git a/mes/qd/src/api/wms/basedata/st/sectattr.js b/mes/qd/src/api/wms/basedata/st/sectattr.js index 2b5f2936..5ffa83c6 100644 --- a/mes/qd/src/api/wms/basedata/st/sectattr.js +++ b/mes/qd/src/api/wms/basedata/st/sectattr.js @@ -27,7 +27,7 @@ export function edit(data) { export function getSect(data) { return request({ url: 'api/sectattr/getSect', - method: 'post', + method: 'get', data }) } diff --git a/mes/qd/src/views/wms/old_manage/old_package/index.vue b/mes/qd/src/views/wms/old_manage/old_package/index.vue index c0eaea9b..f9ae5978 100644 --- a/mes/qd/src/views/wms/old_manage/old_package/index.vue +++ b/mes/qd/src/views/wms/old_manage/old_package/index.vue @@ -91,7 +91,7 @@ - + @@ -132,19 +132,19 @@ - + - + - + @@ -163,7 +163,7 @@ - + @@ -189,12 +189,12 @@ - + - + @@ -202,13 +202,13 @@ - + - + @@ -216,7 +216,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -270,29 +270,29 @@ @select="handleSelectionChange" @select-all="onSelectAll" > - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - + + + diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/AcsConfig.java b/wcs/nladmin-system/src/main/java/org/nl/acs/AcsConfig.java index 2606f028..a3497a34 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/AcsConfig.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/AcsConfig.java @@ -42,6 +42,7 @@ public interface AcsConfig { String ERPURL = "erpurl"; //是否存在wms系统 String HASWMS = "hasWms"; + String ISFEEDDEVICESTATUS = "isFeedDeviceStatus"; //路由选择 String ROUTE = "route"; //忽略取放货校验 diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java index 70824662..2ece320d 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java @@ -12,6 +12,9 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; +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.system.service.ParamService; import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.wql.util.SpringContextHolder; @@ -64,6 +67,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { try { ParamService paramService = SpringContextHolder.getBean(ParamServiceImpl.class); InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); + TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvServiceImpl.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); ip = paramService.findByCode(AcsConfig.AGVURL).getValue(); @@ -117,12 +121,45 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver; if (phase == 0x01) { //开始任务/上报订单号 - for (Instruction inst : insts) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - instructionService.update(inst); + if (ObjectUtil.isNotEmpty(insts)) { + Boolean flag = false; + Instruction instruction = insts.get(0); + TaskDto taskDto = taskService.findByTaskCode(instruction.getTask_code()); + if (taskDto != null) { + List taskDtos = taskService.findByLinkNumFromCache(taskDto.getLink_num()); + if (taskDtos != null) { + if (taskDtos.size() == 1) { + for (Instruction inst : insts) { + inst.setInstruction_status("1"); + inst.setAgv_jobno(String.valueOf(index)); + instructionService.update(inst); + log.info("修改指令执行信息成功,指令号:{}", inst.getInstruction_code()); + flag = true; + } + } else if (taskDtos.size() == 2) { + for (int i = 0; i < insts.size(); i++) { + Instruction inst = insts.get(i); + inst.setInstruction_status("1"); + inst.setAgv_jobno(String.valueOf(index)); + instructionService.update(inst); + if (i == 1) { + flag = true; + } + log.info("修改指令执行信息成功,指令号:{}", inst.getInstruction_code()); + } +// for (Instruction inst : insts) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// instructionService.update(inst); +// log.info("修改指令执行信息成功,指令号:{}", inst.getInstruction_code()); +// } + } + } + if (flag) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else if (phase == 0x1A) { //任务完毕(无车id及状态 // for (Instruction inst : insts) { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 55f11721..2f48d5d8 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -138,10 +138,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //取满箱任务起点 一般是专机满料点和缓存线 if (StrUtil.equals(inst.getStart_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialFullStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialFullStationDeviceDriver = (HailiangSpecialFullStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialFullStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -173,11 +175,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //取满箱任务起点 一般是专机满料点和缓存线 if (StrUtil.equals(inst.getStart_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialFullStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialFullStationDeviceDriver = (HailiangSpecialFullStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialFullStationDeviceDriver.set(phase, index, inst); } //入缓存线任务的起点有专机满料位 出缓存的起点是缓存线 if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -209,10 +213,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //双任务-取满箱任务起点2 一般是专机满料点和缓存线 if (StrUtil.equals(inst.getStart_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialFullStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialFullStationDeviceDriver = (HailiangSpecialFullStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialFullStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -243,10 +249,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //双任务-取满箱任务起点2 一般是专机满料点和缓存线 if (StrUtil.equals(inst.getStart_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialFullStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialFullStationDeviceDriver = (HailiangSpecialFullStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialFullStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -277,6 +285,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位入到缓存线有到达送满框 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -311,11 +320,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到倒料位、清洗储料仓,及缓存线到倒料位、清洗储料仓有倒料点 倒料点都是倒料位、清洗储料仓 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialPourStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialPourStationDeviceDriver = (HailiangSpecialPourStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialPourStationDeviceDriver.set(phase, index, inst); break; } if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); hailiangCleaningMachineStorageStationDeviceDriver.set(phase, index, inst); break; @@ -348,6 +359,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //送满框1 只有满料位到缓存线才有送满框1 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -380,11 +392,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位、缓存线到倒料位、清洗储料仓才有倒料完毕1 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialPourStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialPourStationDeviceDriver = (HailiangSpecialPourStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialPourStationDeviceDriver.set(phase, index, inst); break; } if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); hailiangCleaningMachineStorageStationDeviceDriver.set(phase, index, inst); break; @@ -416,6 +430,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线放满完成后才有到达取空框1 取空框是缓存线才有 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -447,11 +462,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到倒料位、清洗储料仓,及缓存线到倒料位、清洗储料仓有倒料点 倒料点都是倒料位、清洗储料仓 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialPourStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialPourStationDeviceDriver = (HailiangSpecialPourStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialPourStationDeviceDriver.set(phase, index, inst); break; } if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); hailiangCleaningMachineStorageStationDeviceDriver.set(phase, index, inst); break; @@ -483,6 +500,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线入库才有取空框1完毕 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -514,6 +532,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线才有到达送满框2 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -545,6 +564,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线才有到送满框完毕 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -577,6 +597,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线才有到达取空框2 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -608,6 +629,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到缓存线才有到达取空框完毕2 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); break; @@ -640,11 +662,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //只有满料位到倒料位、清洗储料仓,及缓存线到倒料位、清洗储料仓有倒料点 倒料点都是倒料位、清洗储料仓 if (StrUtil.equals(inst.getPut_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialPourStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialPourStationDeviceDriver = (HailiangSpecialPourStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialPourStationDeviceDriver.set(phase, index, inst); break; } if (device.getDeviceDriver() instanceof HailiangCleaningMachineStorageStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangCleaningMachineStorageStationDeviceDriver = (HailiangCleaningMachineStorageStationDeviceDriver) device.getDeviceDriver(); hailiangCleaningMachineStorageStationDeviceDriver.set(phase, index, inst); break; @@ -678,10 +702,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //所有任务都有到达送空框1 if (StrUtil.equals(inst.getNext_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialEmptyStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialEmptyStationDeviceDriver = (HailiangSpecialEmptyStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialEmptyStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -714,10 +740,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //所有任务都有到送空框1完毕 if (StrUtil.equals(inst.getNext_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialEmptyStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialEmptyStationDeviceDriver = (HailiangSpecialEmptyStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialEmptyStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -750,10 +778,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //所有双任务都有到达送空框2 if (StrUtil.equals(inst.getNext_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialEmptyStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialEmptyStationDeviceDriver = (HailiangSpecialEmptyStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialEmptyStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -786,10 +816,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //所有双任务都有送空框完毕2 if (StrUtil.equals(inst.getNext_device_code(), device_code)) { if (device.getDeviceDriver() instanceof HailiangSpecialEmptyStationDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangSpecialEmptyStationDeviceDriver = (HailiangSpecialEmptyStationDeviceDriver) device.getDeviceDriver(); hailiangSpecialEmptyStationDeviceDriver.set(phase, index, inst); } if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + log.info("开始设置phase值,设备号:{}", device_code); hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); hailiangAutoCacheLineDeviceDriver.set(phase, index, inst); } @@ -841,7 +873,6 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); } else if (phase == 0x71) { x = ikey; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java index 5a265278..2575add0 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java @@ -9,8 +9,11 @@ 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.IssuedDeviceOrderInfo; +import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.history.ErrorUtil; import org.nl.acs.history.service.DeviceErrorLogService; import org.nl.acs.history.service.dto.DeviceErrorLogDto; @@ -19,8 +22,10 @@ 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.ProduceshiftorderService; import org.nl.acs.order.service.dto.EalingOrderDto; import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -37,9 +42,15 @@ import java.util.Map; public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo { protected ItemProtocol itemProtocol = new ItemProtocol(this); + @Autowired + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired + ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); + @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); int heartbeat = 0; @@ -47,12 +58,16 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr int error = 0; int task = 0; int move = 0; + int order = 0; + int finish = 0; String barcode,last_barcode; int last_heartbeat = 0; int last_mode = 0; int last_error = 0; int last_task = 0; + int last_finish = 0; + int last_order = 0; Boolean isonline = true; @@ -77,7 +92,8 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr device_code = this.getDeviceCode(); mode = this.itemProtocol.getMode(); error = this.itemProtocol.getError(); - + order = this.itemProtocol.getOrder(); + finish = this.itemProtocol.getOrder_finish(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记"); } @@ -92,7 +108,33 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error + "复位请求标记"); } + if (finish != last_finish) { + if (mode == 2 && finish == 1) { + MonitoringLargeScreenData.orderData.put(String.valueOf(order), -1); + } + logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); + } + // 修改工单状态为生产中 + if (mode == 2 && 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 == 2 && finish != last_finish && 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); + } + } + } } catch (Exception var17) { var17.printStackTrace(); @@ -117,6 +159,9 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr last_mode = mode; last_error = error; last_task = task; + last_finish = finish; + last_order = order; + } @@ -141,24 +186,30 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr @Override public void issuedOrderInfo(ProduceshiftorderDto dto) { - EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); - if (ealingOrderDto != null) { - String is_foreward = ealingOrderDto.getIs_foreward(); + if (dto != null) { Map map = new HashMap<>(); - map.put("to_qty", dto.getQty()); + map.put("to_clear", "1"); + map.put("to_order_qty", String.valueOf(dto.getQty())); map.put("to_order", dto.getOrder_code()); - map.put("item_to_bz_qty", dto.getPackage_qty()); - map.put("item_to_box_qty", dto.getBox_num()); + map.put("to_bz_qty", dto.getPackage_qty()); + map.put("to_box_qty", dto.getBox_num()); map.put("to_one_box_qty", dto.getOne_box_package_qty()); map.put("to_one_bag_qty", dto.getOne_package_qty()); - map.put("to_one_box_qty", dto.getOne_box_package_qty()); this.writing(map); } } @Override public void issuedOrderFinish(String autoFinish) { - + Map map = new HashMap<>(); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { + map.put("to_finished", "1"); + } else { + map.put("to_confirm_finished", "1"); + } + //map.put("to_order", "0"); + //map.put("to_clear", "1"); + this.writing(map); } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java index f0e9d9b2..9562df72 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java @@ -26,6 +26,7 @@ public class ItemProtocol { public static String item_kz_qty = "kz_qty"; public static String item_ds_qty = "ds_qty"; public static String item_bz_qty = "bz_qty"; + public static String item_bz_box_qty = "bz_box_qty"; public static String item_order_finish = "order_finish"; public static String item_order_compulsion_finish = "order_compulsion_finish"; public static String item_order = "order"; @@ -91,6 +92,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_bz_qty); } + public int getBz_box_qty() { + return this.getOpcIntegerValue(item_bz_box_qty); + } + public int getError() { return this.getOpcIntegerValue(item_error); } @@ -111,6 +116,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_order); } + public int getOrder_finish() { + return this.getOpcIntegerValue(item_order_finish); + } + //是否有货 public int hasGoods(int move) { @@ -157,12 +166,13 @@ public class ItemProtocol { list.add(new ItemDto(item_kz_error, "刻字机报警信号", "DB600.W18")); list.add(new ItemDto(item_ds_error, "点数机报警信号", "DB600.W20")); list.add(new ItemDto(item_bz_error, "包装机报警信号", "DB600.W22")); - list.add(new ItemDto(item_kz_qty, "刻字数量", "DB600.W24")); - list.add(new ItemDto(item_ds_qty, "点数数量", "DB600.W26")); - list.add(new ItemDto(item_bz_qty, "包装数量", "DB600.W28")); - list.add(new ItemDto(item_order_finish, "工单完成", "DB600.W30")); - list.add(new ItemDto(item_order_compulsion_finish, "工单强制完成", "DB600.W32")); - list.add(new ItemDto(item_order, "工单号", "DB600.D34")); + list.add(new ItemDto(item_kz_qty, "刻字数量", "DB600.D24")); + list.add(new ItemDto(item_ds_qty, "点数数量", "DB600.D28")); + list.add(new ItemDto(item_bz_qty, "包装数量", "DB600.W32")); + list.add(new ItemDto(item_bz_box_qty, "包装箱数量", "DB600.W34")); + list.add(new ItemDto(item_order_finish, "工单完成", "DB600.W36")); + list.add(new ItemDto(item_order_compulsion_finish, "工单强制完成", "DB600.W38")); + list.add(new ItemDto(item_order, "工单号", "DB600.D40")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java index 4b4ccaa7..64bb9c9c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java @@ -1,10 +1,13 @@ package org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_package_ssx; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.AcsConfig; import org.nl.acs.acsEnum.WorkerOrderEnum; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; @@ -24,6 +27,7 @@ import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -45,6 +49,7 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr int heartbeat = 0; int mode = 0; + int action = 0; int error = 0; int task = 0; int move = 0; @@ -61,8 +66,8 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr Boolean isonline = true; String message = null; Boolean iserror = false; - - private int instruction_require_time_out; + private Date instruction_require_time = new Date(); + private int instruction_require_time_out = 3000; boolean requireSucess = false; private int instruction_finished_time_out; @@ -80,6 +85,7 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr device_code = this.getDeviceCode(); mode = this.itemProtocol.getMode(); move = this.itemProtocol.getMove(); + action = this.itemProtocol.getAction(); error = this.itemProtocol.getError(); task = this.itemProtocol.getTask(); barcode = this.itemProtocol.getBarcode(); @@ -88,11 +94,12 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记"); } if (move != last_move){ - if(to_command != 0){ + message = null; + requireSucess =false; + if(to_command != 0 && "true".equals(this.device.getExtraValue().get("open_scanner"))){ this.writing("to_command", "0"); this.writing("to_target", "0"); } - requireSucess =false; } if (error != last_error) { if (error != 0) { @@ -113,53 +120,16 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17); } - if (!this.itemProtocol.getIsonline()) { - //this.setIsonline(false); - //this.setIserror(true); - message = "信号量同步异常"; - //未联机 - } else if (mode == 0) { + if (mode == 0) { message = "未联机"; } else { - message = ""; Instruction instruction = null; List toInstructions; - if(move == 1 && error == 0 && barcode.length() > 0 && requireSucess == false ){ - //2305281100001 - if(barcode.trim().length() == 16){ - if(isNumeric(barcode.trim())){ - /** - * 工单为前9位 - * 第10位是否翻转 - * 第11位为前往巷道 - * 后5位为流水号 - */ - String order = barcode.trim().substring(0,9); - int isFlip = Integer.parseInt(barcode.trim().substring(9,10)); - int target = Integer.parseInt(barcode.trim().substring(10,11)); - if(isFlip>0 && target>0){ - this.writing("to_is_flip",String.valueOf(isFlip)); - this.writing("to_target", String.valueOf(target)); - this.writing("to_command","1"); - requireSucess = true; - } else { - message = "条码:"+ barcode + ",是否翻转:"+isFlip + "目标巷道:"+target; - } - - - } else { - message = "条码不为数字,无法解析"; - } - } else { - message = "条码长度不等于16,无法下发目标位置"; - } + if(action == 1 && move > 0 && error == 0 && barcode.length() > 0 && "true".equals(this.device.getExtraValue().get("open_scanner"))){ + applyTarget(barcode.trim()); } - - - - } last_mode = mode; last_move = move; @@ -169,6 +139,43 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr } + public synchronized void applyTarget(String barcode) { + Date date = new Date(); + if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + return; + } else { + //2305281100001 + if (barcode.trim().length() == 16) { + if (isNumeric(barcode.trim())) { + /** + * 工单为前9位 + * 第10位是否翻转 + * 第11位为前往巷道 + * 后5位为流水号 + */ + String order = barcode.trim().substring(0, 9); + int isFlip = Integer.parseInt(barcode.trim().substring(9, 10)); + int target = Integer.parseInt(barcode.trim().substring(10, 11)); + if (target > 0) { + this.writing("to_is_flip", String.valueOf(isFlip)); + this.writing("to_target", String.valueOf(target)); + this.writing("to_command", "1"); + requireSucess = true; + } else { + message = "条码:" + barcode + ",是否翻转:" + isFlip + "目标巷道:" + target; + } + + + } else { + message = "条码不为数字,无法解析"; + } + } else { + message = "条码长度不等于16,无法下发目标位置"; + } + } + } + @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); @@ -178,23 +185,23 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr String move = ""; if (this.getMode() == 0) { mode = "未联机"; + jo.put("isOnline", false); } else if (this.getMode() == 1) { mode = "单机"; + jo.put("isOnline", false); } else if (this.getMode() == 2) { mode = "联机"; + jo.put("isOnline", true); } else if (this.getMode() == 3) { mode = "运行中"; + jo.put("isOnline", true); } if (this.getMove() == 0) { move = "无货"; jo.put("hasGoods", false); - } else if (this.getMove() == 1) { + } else if (this.getMove() > 0) { move = "有货"; jo.put("hasGoods", true); - } else if (this.getMove() == 2) { - move = "有托盘有货"; - jo.put("move", move); - jo.put("hasGoods", true); } jo.put("move", move); jo.put("mode", mode); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java index 7d5a0ea4..4f708bb2 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java @@ -1,5 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_palletizing_station; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -22,6 +24,8 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -56,7 +60,8 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); - + @Autowired + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); Boolean isonline = true; int hasGoods = 0; String message = null; @@ -72,7 +77,8 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver private int instruction_require_time_out = 3000; //请求成功标记 Boolean requireSucess = false; - + JSONArray barcodeArr = new JSONArray(); + JSONArray last_barcodeArr = new JSONArray(); String device_code; //心跳 @@ -112,25 +118,17 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver error = this.itemProtocol.getError(); boxtype = this.itemProtocol.getBoxtype(); if (mode != last_mode) { - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); + } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); + + if(!ObjectUtil.equal(barcodeArr,last_barcodeArr)){ + lucene.deviceExecuteLog(new LuceneLogDto(this.device_code,"码垛工位当前最新条码:"+barcodeArr.toString())); } - if (number != last_number) { - logServer.deviceItemValue(this.device_code, "number", String.valueOf(number)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号number:" + last_number + "->" + number); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (boxtype != last_boxtype) { - logServer.deviceItemValue(this.device_code, "boxtype", String.valueOf(boxtype)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号boxtype:" + last_boxtype + "->" + boxtype); + + if(number != last_number && number ==0 ){ + barcodeArr.clear(); } + } catch (Exception var17) { logServer.deviceExecuteLog(this.device_code, "", "", "读取信号出现异常:" + var17.getMessage()); return; @@ -157,6 +155,9 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver this.setIserror(false); } + last_mode = mode; + last_number = number; + last_barcodeArr = barcodeArr; } protected void executing(Instruction instruction) { @@ -180,6 +181,7 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver Map itemMap = new HashMap(); itemMap.put(to_param, Integer.parseInt(value)); ReadUtil.write(itemMap, server); + server.dispose(); } @@ -192,12 +194,16 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver String move = ""; if (this.getMode() == 0) { mode = "未联机"; + jo.put("isOnline", false); } else if (this.getMode() == 1) { mode = "单机"; + jo.put("isOnline", false); } else if (this.getMode() == 2) { mode = "联机"; + jo.put("isOnline", true); } else if (this.getMode() == 3) { mode = "运行中"; + jo.put("isOnline", true); } if (this.getMove() == 0) { move = "无货"; @@ -209,11 +215,16 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver move = "有托盘有货"; jo.put("hasGoods", true); } + jo.put("move", move); + jo.put("mode", mode); + jo.put("number", this.itemProtocol.getNumber()); + jo.put("boxType", this.itemProtocol.getBoxtype()); jo.put("isOnline", this.getIsonline()); jo.put("isError", this.getIserror()); jo.put("error", ErrorUtil.getDictDetail("ssx_error_type", String.valueOf(error))); jo.put("isOnline", this.itemProtocol.getIsonline()); jo.put("message", message); + jo.put("barcodeArr",barcodeArr); return jo; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java index 8cdd07cb..42727180 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java @@ -1,6 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_stacking_manipulator; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -99,8 +100,6 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive Boolean singlePlacementRequireSuccess = false; //请求码垛完成标志 Boolean stackingRequireSuccess = false; - - JSONArray barcodeArr = new JSONArray(); //当前设备状态 01代表 关机, 02代表 开机, 03代表 生产中, 04代表 待机, 05代表 异常 int status_type = 0; //上次设备状态 @@ -162,25 +161,24 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (getStation != last_getStation) { - logServer.deviceItemValue(this.device_code, "getStation", String.valueOf(getStation)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号getStation:" + last_getStation + "->" + getStation); - } - if (putStation != last_putStation) { - logServer.deviceItemValue(this.device_code, "putStation", String.valueOf(putStation)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号putStation:" + last_putStation + "->" + putStation); - } - if (encoder_qty != last_encoder_qty) { - logServer.deviceItemValue(this.device_code, "encoder_qty", String.valueOf(encoder_qty)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号encoder_qty:" + last_encoder_qty + "->" + encoder_qty); - } - if (boxtype != last_boxtype) { - logServer.deviceItemValue(this.device_code, "boxtype", String.valueOf(boxtype)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号boxtype:" + last_boxtype + "->" + boxtype); - } +// if (getStation != last_getStation) { +// logServer.deviceItemValue(this.device_code, "getStation", String.valueOf(getStation)); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号getStation:" + last_getStation + "->" + getStation); +// } +// if (putStation != last_putStation) { +// logServer.deviceItemValue(this.device_code, "putStation", String.valueOf(putStation)); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号putStation:" + last_putStation + "->" + putStation); +// } +// if (encoder_qty != last_encoder_qty) { +// logServer.deviceItemValue(this.device_code, "encoder_qty", String.valueOf(encoder_qty)); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号encoder_qty:" + last_encoder_qty + "->" + encoder_qty); +// } +// if (boxtype != last_boxtype) { +// logServer.deviceItemValue(this.device_code, "boxtype", String.valueOf(boxtype)); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号boxtype:" + last_boxtype + "->" + boxtype); +// } } catch (Exception var17) { logServer.deviceExecuteLog(this.device_code, "", "", "读取信号出现异常:" + var17.getMessage()); - return; } if (!this.itemProtocol.getIsonline()) { this.setIsonline(false); @@ -274,7 +272,7 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive } String order = barcode.trim().substring(0,9); ProduceshiftorderDto dto =produceshiftorderService.findByCodeFromCache(order); - if(Objects.isNull(dto)){ + if(ObjectUtil.isEmpty(dto)){ message = "获取托盘信息,工单号:" + order + "未找到对应工单"; return false; } @@ -302,7 +300,10 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive HailiangOldPalletizingStationDriver hailiangOldPalletizingStationDriver; if(device.getDeviceDriver() instanceof HailiangOldPalletizingStationDriver){ hailiangOldPalletizingStationDriver = (HailiangOldPalletizingStationDriver) device.getDeviceDriver(); - if(hailiangOldPalletizingStationDriver.getNumber() == 0 ){ + if(hailiangOldPalletizingStationDriver.getNumber() == 0 && + hailiangOldPalletizingStationDriver.getMode() == 2 && + hailiangOldPalletizingStationDriver.getMove()==1 && + hailiangOldPalletizingStationDriver.getBoxtype() ==0) { targetStation = putDeviceCodeList.get(i); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code,"单次码垛完成,取货位:"+getDeviceCode+",条码:"+barcode +",未找到相同箱型放货位,分配空放货位:"+ putDeviceCodeList.get(i))); putIndex = i; @@ -362,19 +363,29 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive //暂时不反馈MES Device getDevice = deviceAppservice.findDeviceByCode(getDeviceCode); + Device putDevice = deviceAppservice.findDeviceByCode(putDeviceCode); HailiangLetteringPackageSsxDeviceDriver hailiangLetteringPackageSsxDeviceDriver; + HailiangOldPalletizingStationDriver hailiangOldPalletizingStationDriver; + String barcode = null; if(getDevice.getDeviceDriver() instanceof HailiangLetteringPackageSsxDeviceDriver ){ hailiangLetteringPackageSsxDeviceDriver = (HailiangLetteringPackageSsxDeviceDriver) getDevice.getDeviceDriver(); - String barcode = hailiangLetteringPackageSsxDeviceDriver.getLast_barcode(); - if(Objects.isNull(barcode)){ + barcode = hailiangLetteringPackageSsxDeviceDriver.getLast_barcode(); + if(ObjectUtil.isEmpty(barcode)){ message = "单次码垛完成,取货位:"+getDeviceCode+"条码为空"; return false; } lucene.deviceExecuteLog(new LuceneLogDto(this.device_code,"单次码垛完成,取货位:"+getDeviceCode+",条码:"+barcode)); - barcodeArr.add(barcode); + } + + if(putDevice.getDeviceDriver() instanceof HailiangOldPalletizingStationDriver ) { + hailiangOldPalletizingStationDriver = (HailiangOldPalletizingStationDriver) putDevice.getDeviceDriver(); + JSONArray arr = hailiangOldPalletizingStationDriver.getBarcodeArr(); + arr.add(barcode.trim()); + hailiangOldPalletizingStationDriver.setBarcodeArr(arr); } this.writing("to_feedback", "2"); + this.writing("to_boxType", "0"); this.setSinglePlacementRequireSuccess(true); } return true; @@ -393,22 +404,34 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive List putDeviceCodeList = this.getExtraDeviceCodes("link_put_device_code"); //根据kep读取到的放货工位的值 - 1 得到对应设备的下标,再根据下标获得对应设备的编码 String putDeviceCode = putDeviceCodeList.get(getPutStation() - 1).replace("\"", ""); + HailiangOldPalletizingStationDriver hailiangOldPalletizingStationDriver; + Device putDevice = deviceAppservice.findDeviceByCode(putDeviceCode); + JSONArray ja = null; + if(putDevice.getDeviceDriver() instanceof HailiangOldPalletizingStationDriver ) { + hailiangOldPalletizingStationDriver = (HailiangOldPalletizingStationDriver) putDevice.getDeviceDriver(); + ja = hailiangOldPalletizingStationDriver.getBarcodeArr(); + lucene.deviceExecuteLog(new LuceneLogDto(this.device_code,"码垛完成ja:"+ja.toString())); + } JSONObject map = new JSONObject(); map.put("device_code", putDeviceCode); map.put("encoder_qty", String.valueOf(getEncoder_qty())); map.put("boxtype", String.valueOf(getBoxtype())); - map.put("barcodeArr",barcodeArr); + map.put("barcodeArr", String.valueOf(ja)); map.put("id", IdUtil.simpleUUID()); - JSONObject resp = acsToWmsService.stackingCompleted(map); - int code = Integer.parseInt(resp.getString("code")); - String message = resp.getString("message"); - JSONObject data = resp.getJSONObject("data"); - if (code == 200) { - this.writing("to_feedback", "3"); - this.setStackingRequireSuccess(true); - } else { - log.warn("码垛完成反馈失败!设备号:{},原因{}", device_code, message); - } + lucene.deviceExecuteLog(new LuceneLogDto(this.device_code,"码垛完成反馈:"+map)); + +// JSONObject resp = acsToWmsService.stackingCompleted(map); +// int code = Integer.parseInt(resp.getString("code")); +// String message = resp.getString("message"); +// JSONObject data = resp.getJSONObject("data"); +// if (code == 200) { +// this.writing("to_feedback", "3"); +// this.setStackingRequireSuccess(true); +// } else { +// log.warn("码垛完成反馈失败!设备号:{},原因{}", device_code, message); +// } + this.writing("to_feedback", "3"); + this.setStackingRequireSuccess(true); } return true; } @@ -435,16 +458,18 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive Map itemMap = new HashMap(); itemMap.put(to_param, Integer.parseInt(value)); ReadUtil.write(itemMap, server); + server.disconnect(); } @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); jo.put("device_name", this.getDevice().getDevice_name()); - jo.put("mode", mode == 1 ? "联机" : "未联机"); + jo.put("mode", mode == 2 ? "联机" : "未联机"); jo.put("action", action); jo.put("error", ErrorUtil.getDictDetail("jxs_error_type", String.valueOf(error))); - jo.put("barcodeArr", barcodeArr); + jo.put("getStation", this.itemProtocol.getGetStation()); + jo.put("putStation", this.itemProtocol.getPutStation()); jo.put("isOnline", this.itemProtocol.getIsonline()); jo.put("message", message); return jo; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/HailiangOldUnboxingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/HailiangOldUnboxingMachineDeviceDriver.java index 1b22675e..d5e27a8b 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/HailiangOldUnboxingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/HailiangOldUnboxingMachineDeviceDriver.java @@ -129,11 +129,12 @@ public class HailiangOldUnboxingMachineDeviceDriver extends AbstractOpcDeviceDri @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); + jo.put("device_code", this.getDevice().getDevice_code()); jo.put("device_name", this.getDevice().getDevice_name()); jo.put("mode", mode == 1 ? "联机" : "未联机"); jo.put("error", ErrorUtil.getDictDetail("unbox_error_type", String.valueOf(error))); jo.put("qty", qty); - jo.put("status", this.itemProtocol.getStatus()==1 ? "未知":"工作中"); + jo.put("status", this.itemProtocol.getStatus()== 0 ? "未知":"工作中"); jo.put("one_qty", this.itemProtocol.getOne_qty()); jo.put("two_qty", this.itemProtocol.getTwo_qty()); jo.put("three_qty", this.itemProtocol.getThree_qty()); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/ApplyTaskTime.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/ApplyTaskTime.java new file mode 100644 index 00000000..eb2102d2 --- /dev/null +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/ApplyTaskTime.java @@ -0,0 +1,9 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one; + +/** + * @author: geng by + * @createDate: 2023/5/24 + */ +public class ApplyTaskTime { + public final static long APPLY_TIME = 30l; +} diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java index 592a44c9..db075916 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java @@ -248,8 +248,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i + "," + two_barcode1 + "," + two_barcode2 + "," + two_barcode3 + "," + two_barcode4 + "," + two_barcode5 + "," + two_barcode6 + "," + two_barcode7 + "," + two_barcode8 + "," + two_barcode9 + "," + two_barcode10 + "," + three_barcode1 + "," + three_barcode2 + "," + three_barcode3 + "," + three_barcode4 + "," + three_barcode5 - + "," + three_barcode6 + "," + three_barcode7 + "," + three_barcode8 + "," + three_barcode9 + "," + three_barcode10 - + "," + prepare_barcode + "," + prepare_barcode; + + "," + three_barcode6 + "," + three_barcode7 + "," + three_barcode8 + "," + three_barcode9 + "," + three_barcode10; if (!StrUtil.equals(material_spec, last_material_spec)) { logServer.deviceExecuteLog(this.device_code, "", "", "信号material_spec:" + last_material_spec + "->" + material_spec); @@ -478,6 +477,18 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i //agv送满框1完毕或送满框2完毕 //需要判断缓存线工作模式联机,对接位有货,任务号不为0,对接位条码正常才反馈agv以及电气放货完成 if (mode == 1 && move == 1 && task != 0 && prepare_barcode != 99999 && ObjectUtil.isNotEmpty(inst) && Integer.parseInt(inst.getInstruction_code()) == task) { + + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + if (docking_barcode != 0) { + taskDto.getExt_param().put("inbox", "" + docking_barcode); + } + taskDto.setVehicle_code(String.valueOf(docking_barcode)); + taskserver.update(taskDto); + } + } + this.writing("to_agv_put_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_FALL_SEND_FULL_FINISH.getCode()); instructionService.update(inst); @@ -531,7 +542,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i } else if (agvphase == 0x10 || agvphase == 0x27) { //agv取空框1完毕或取空框2完毕 if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_agv_get_finish", "1"); map.put("to_agv_put_finish", "0"); this.writing(map); @@ -626,7 +637,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_agv_get_finish", "1"); if (task == 0 || Integer.parseInt(inst.getTask_code()) == task) { map.put("to_task_finish", "1"); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java index ef93f851..c7e7e6fd 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java @@ -620,7 +620,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_pause, "专机暂停", "DB2.W22")); list.add(new ItemDto(item_to_priority_layer, "优先层", "DB2.W24")); list.add(new ItemDto(item_to_start_checking, "开始盘点", "DB2.W28")); - list.add(new ItemDto(item_to_check_finish, "盘点完成清零", "DB2.W30")); + list.add(new ItemDto(item_to_check_finish, "盘点强制完成", "DB2.W32")); list.add(new ItemDto(item_to_pause_out_check, "暂停出箱匹配", "DB2.W34")); list.add(new ItemDto(item_to_material_spec1, "物料规格1", "DB2.W40")); list.add(new ItemDto(item_to_material_spec2, "物料规格2", "DB2.W42")); 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 e798b457..cbe7c8dd 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 @@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine_storage_station.HailiangCleaningMachineStorageStationDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; @@ -28,10 +29,12 @@ import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.*; +import java.util.concurrent.TimeUnit; /** * 海亮-清洗上料线体 @@ -51,6 +54,8 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); //工作模式 int mode = 0; //开机状态 @@ -167,7 +172,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i message = "未联机"; //有报警 } else { - // this.setIsonline(true); + // this.setIsonline(true); this.setIserror(false); //申请清洗上料 @@ -227,9 +232,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i * 上料完成以后反馈mes 上料设备号 */ private boolean feedMesTaskClear() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey(this.device_code)) { return false; } else { this.writing("to_confirm_finished", "1"); @@ -260,17 +263,49 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// this.writing("to_confirm_finished", "1"); +// ProduceshiftorderDto dto = produceshiftorderService.findOrderByDeviceCode(this.getDevice_code()); +// if (dto != null) { +// 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); +// } +// }); +// //修改工单状态为执行中 +// dto.setOrder_status("1"); +// produceshiftorderService.update(dto); +// // TODO 反馈接口未确定 +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.QX_FULL_REQ.getCode()); +// reqParam.put("in_devices", dto.getIn_devices()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// requireSucess = true; +// return true; +// } +// } +// return false; +// } } /** * 申请清洗上料 */ private synchronized boolean applyForLoading() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); JSONObject reqParam = new JSONObject(); reqParam.put("device_code", this.getDevice_code()); reqParam.put("type", StatusEnum.QX_LACK_REQ.getCode()); @@ -282,6 +317,22 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.QX_LACK_REQ.getCode()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// this.writing("to_in_confirm_req", "1"); +// requireSucess = true; +// return true; +// } +// return false; +// } } @@ -351,7 +402,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i } } //下发电气信号 - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_all_num", String.valueOf(qtySum)); map.put("to_all_weight", String.valueOf(weightSum)); map.put("to_in_confirm_finish", "1"); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java index d07b2aec..95dff895 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java @@ -26,6 +26,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; @@ -184,7 +185,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO if (agvphase == 0x0D || agvphase == 0x11) { if (ObjectUtil.isNotEmpty(inst)) { //下发储料仓倒料数量及开始称重 - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_dumping_num", inst.getQuantity()); map.put("to_open_weight", "1"); this.writing(map); 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 6782b258..5346c8d4 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 @@ -23,10 +23,7 @@ import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 装箱机 @@ -246,6 +243,7 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); + jo.put("device_code", this.getDevice().getDevice_code()); jo.put("device_name", this.getDevice().getDevice_name()); jo.put("isOnline", this.itemProtocol.getIsonline()); return jo; @@ -268,7 +266,7 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement x = xys[0]; y = xys[1]; } - Map map = new HashMap<>(); + 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()); @@ -296,10 +294,11 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement @Override public void issuedOrderFinish(String autoFinish) { - if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())){ + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { this.writing("to_order_compel_finished", "1"); + } else { + this.writing("to_confirm_finished", "1"); } - this.writing("to_confirm_finished", "1"); } @Override 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 8b82c052..fa63daa9 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 @@ -14,6 +14,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; 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; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; @@ -35,12 +36,15 @@ 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.acs.task.service.impl.TaskServiceImpl; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; /** * 海亮刻字机工位 @@ -64,6 +68,8 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); //线体状态 int status = 0; @@ -542,11 +548,10 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive * @return */ public synchronized boolean apply_empty_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); TaskDto taskDto = taskService.findByNextCode(device_code); if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { @@ -562,6 +567,26 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// TaskDto taskDto = taskService.findByNextCode(device_code); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("type", StatusEnum.KZ_EMPTY_REQ.getCode()); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// requireSucess = true; +// return true; +// } +// } +// return false; +// } } /** @@ -570,11 +595,10 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive * @return */ public synchronized boolean apply_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); TaskDto taskDto = taskService.findByStartCode(device_code); if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { @@ -594,6 +618,30 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// TaskDto taskDto = taskService.findByStartCode(device_code); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.KZ_FULL_REQ.getCode()); +// reqParam.put("quantity", this.getPort_full_num()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } +// } +// } +// return false; +// } } @@ -607,7 +655,7 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive // if (!this.getItemProtocol().getIsonline()) { // throw new BadRequestException("设备未开机,工单下发失败!"); // } - Map map = new HashMap<>(); + 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())); @@ -620,14 +668,14 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive */ @Override public void issuedOrderFinish(String autoFinish) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { map.put("to_order_compel_finished", "1"); } else { map.put("to_confirm_finished", "1"); } //map.put("to_order", "0"); - //map.put("to_clear", "1"); + map.put("to_clear", "1"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java index efde2892..11ffd34e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java @@ -31,6 +31,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -307,7 +308,7 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl // if (!this.getItemProtocol().getIsonline()) { // throw new BadRequestException("设备未开机,开工失败!"); // } - Map map = new HashMap<>(); + 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())); @@ -321,14 +322,14 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl */ @Override public void issuedOrderFinish(String autoFinish) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { map.put("to_order_compel_finished", "1"); } else { map.put("to_confirm_finished", "1"); } //map.put("to_order", "0"); - //map.put("to_clear", "1"); + map.put("to_clear", "1"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java index 9c4360fd..dffeda20 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java @@ -22,6 +22,8 @@ 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.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -42,7 +44,8 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); String device_code; @@ -180,6 +183,13 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic this.writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.getExt_param().put("put_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java index fd5be23a..b93b0419 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java @@ -13,6 +13,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; import org.nl.acs.auto.run.NDCSocketConnectionAutoRun; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; @@ -30,10 +31,14 @@ import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; +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; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; +import java.util.concurrent.TimeUnit; /** * 海亮老车间专机设备满框位 @@ -55,7 +60,10 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); - + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); int mode = 0; int error = 0; int move = 0; @@ -166,7 +174,7 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice message = "未联机"; //有报警 } else { - // this.setIsonline(true); + // this.setIsonline(true); this.setIserror(false); message = ""; @@ -231,6 +239,13 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_GET_FINISH.getCode()); instructionService.update(inst); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.getExt_param().put("take_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); @@ -267,11 +282,10 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice * @return */ public synchronized boolean apply_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); //判断是否需要AGV搬运 需要就申请任务 不需要不申请 ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder())); if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { @@ -291,6 +305,30 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// //判断是否需要AGV搬运 需要就申请任务 不需要不申请 +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder())); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.FULL_REQ.getCode()); +// reqParam.put("quantity", this.getFull_number()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } +// } +// } +// return false; +// } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java index b6b7dd6f..825515db 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java @@ -13,6 +13,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; import org.nl.acs.auto.run.NDCSocketConnectionAutoRun; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -31,10 +32,12 @@ import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; +import java.util.concurrent.TimeUnit; /** * 海亮专机设备倒料位 @@ -56,6 +59,8 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); private Date instruction_require_time = new Date(); private int instruction_require_time_out = 3000; @@ -239,11 +244,10 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice * @return */ public synchronized boolean applyOutCacheLineTask() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { JSONObject reqParam = new JSONObject(); @@ -261,6 +265,28 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.LACK_REQ.getCode()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (httpResponse != null && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } +// } +// } +// return false; +// } } 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 605f5eb4..bbd0d276 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 @@ -15,6 +15,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; 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; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; @@ -36,12 +37,15 @@ 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.acs.task.service.impl.TaskServiceImpl; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; /** * 海亮包装机工位 @@ -65,6 +69,8 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); int heartbeat = 0; int running = 0; @@ -512,11 +518,10 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i * @return */ public synchronized boolean apply_take_empty_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); TaskDto taskDto = taskService.findByStartCode(device_code); if (produceshiftorderDto != null && produceshiftorderDto.getIs_needmove().equals(StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { @@ -532,6 +537,26 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// TaskDto taskDto = taskService.findByStartCode(device_code); +// if (produceshiftorderDto != null && produceshiftorderDto.getIs_needmove().equals(StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.BZ_EMPTY_REQ.getCode()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// requireSucess = true; +// return true; +// } +// } +// return false; +// } } /** @@ -540,11 +565,10 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i * @return */ public synchronized boolean apply_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); TaskDto taskDto = taskService.findByNextCode(device_code); if (produceshiftorderDto != null && produceshiftorderDto.getIs_needmove().equals(StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { @@ -563,6 +587,29 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// TaskDto taskDto = taskService.findByNextCode(device_code); +// if (produceshiftorderDto != null && produceshiftorderDto.getIs_needmove().equals(StatusEnum.NEED_MOVE.getCode()) && taskDto == null) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.BZ_FULL_REQ.getCode()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } +// } +// } +// return false; +// } } @@ -581,7 +628,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i // if (!this.getItemProtocol().getIsonline()) { // throw new BadRequestException("设备未开机,工单下发失败"); // } - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_clear", "1"); map.put("to_order", dto.getOrder_code()); map.put("to_order_prod_num", String.valueOf(dto.getQty())); @@ -593,14 +640,14 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i */ @Override public void issuedOrderFinish(String autoFinish) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { map.put("to_order_compel_finished", "1"); } else { map.put("to_confirm_finished", "1"); } //map.put("to_order", "0"); - //map.put("to_clear", "1"); + map.put("to_clear", "1"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java index 2ef8446b..f60e89a0 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -86,7 +87,7 @@ public class SealingMachineDeviceDriver extends AbstractOpcDeviceDriver implemen if (ealingOrderDto != null) { String is_auto_confirm = ealingOrderDto.getIs_auto_confirm(); String time = ealingOrderDto.getTime(); - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_is_auto_confirm", is_auto_confirm); map.put("to_time", time); this.writing(map); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java index 3cf26c5e..308e719a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java @@ -33,6 +33,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -131,31 +132,38 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme if (mode == 1 && finish == 1) { MonitoringLargeScreenData.orderData.put(String.valueOf(order), -1); } + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_finish, String.valueOf(this.last_finish), String.valueOf(this.finish))); logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); } if (order_compel_finish != last_order_compel_finish) { + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_order_compel_finish, String.valueOf(this.last_order_compel_finish), String.valueOf(this.order_compel_finish))); logServer.deviceExecuteLog(this.device_code, "", "", "信号order_compel_finish:" + last_order_compel_finish + "->" + order_compel_finish); } if (order != last_order) { + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_order, String.valueOf(this.last_order), String.valueOf(this.order))); logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } if (now_order_prod_num != last_now_order_prod_num) { if (mode == 1 && order > 0) { MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num); } + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_now_order_prod_num, String.valueOf(this.last_now_order_prod_num), String.valueOf(this.now_order_prod_num))); logServer.deviceExecuteLog(this.device_code, "", "", "信号now_order_prod_num:" + last_now_order_prod_num + "->" + now_order_prod_num); } if (now_one_box_num != last_now_one_box_num) { + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_now_one_box_num, String.valueOf(this.last_now_one_box_num), String.valueOf(this.now_one_box_num))); logServer.deviceExecuteLog(this.device_code, "", "", "信号now_one_box_num:" + last_now_one_box_num + "->" + now_one_box_num); } if (line_stock_num != last_line_stock_num) { + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_line_stock_num, String.valueOf(this.last_line_stock_num), String.valueOf(this.line_stock_num))); logServer.deviceExecuteLog(this.device_code, "", "", "信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); } if (order_prod_allnum != last_order_prod_allnum) { + luceneExecuteLogService.deviceExecuteLog(new LuceneLogDto(this.getDevice().getOpc_server_code(), this.getDevice().getOpc_plc_code(), this.device_code, ItemProtocol.item_order_prod_allnum, String.valueOf(this.last_order_prod_allnum), String.valueOf(this.order_prod_allnum))); logServer.deviceExecuteLog(this.device_code, "", "", "信号order_prod_allnum:" + last_order_prod_allnum + "->" + order_prod_allnum); } @@ -274,7 +282,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme // if (!this.getItemProtocol().getIsonline()) { // throw new BadRequestException("设备未开机,开工失败!"); // } - Map map = new HashMap<>(); + 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())); @@ -288,14 +296,14 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme */ @Override public void issuedOrderFinish(String autoFinish) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { map.put("to_order_compel_finished", "1"); } else { map.put("to_confirm_finished", "1"); } //map.put("to_order", "0"); - //map.put("to_clear", "1"); + map.put("to_clear", "1"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java index c58ba371..689171ac 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java @@ -22,6 +22,8 @@ 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.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +43,8 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvServiceImpl.class); @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); String device_code; @@ -180,6 +183,13 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.getExt_param().put("put_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java index 961b4625..2a526af5 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java @@ -13,6 +13,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; import org.nl.acs.auto.run.NDCSocketConnectionAutoRun; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; @@ -30,10 +31,14 @@ import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; +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; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; +import java.util.concurrent.TimeUnit; /** * 海亮专机设备满框位 @@ -55,8 +60,10 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); - - + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); int mode = 0; int error = 0; int move = 0; @@ -233,6 +240,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri this.writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_GET_FINISH.getCode()); instructionService.update(inst); + if (inst != null) { + TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.getExt_param().put("take_finish", "1"); + taskserver.update(taskDto); + } + } byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); this.set(0, 0, null); @@ -271,11 +285,11 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri * @return */ public synchronized boolean apply_task() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); //判断是否需要AGV搬运 需要就申请任务 不需要不申请 JSONObject reqParam = new JSONObject(); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder())); @@ -295,6 +309,31 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri } return false; } + +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// //判断是否需要AGV搬运 需要就申请任务 不需要不申请 +// JSONObject reqParam = new JSONObject(); +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(this.getOrder())); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { +// reqParam.put("type", StatusEnum.FULL_REQ.getCode()); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("quantity", this.getFull_number()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } +// } +// } +// return false; +// } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java index 1e932a86..f1f9114c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java @@ -13,6 +13,7 @@ import org.nl.acs.agv.server.impl.NDCAgvServiceImpl; import org.nl.acs.auto.run.NDCSocketConnectionAutoRun; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.ApplyTaskTime; import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -31,10 +32,12 @@ import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; +import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; +import java.util.concurrent.TimeUnit; /** * 海亮专机设备倒料位 @@ -56,7 +59,8 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); - + @Autowired + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); private int instruction_require_time_out = 3000; int mode = 0; @@ -243,11 +247,10 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri * @return */ public synchronized boolean applyOutCacheLineTask() { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + if (redisUtils.hasKey("apply:" + this.device_code)) { return false; } else { + redisUtils.setExpire(this.device_code, null, ApplyTaskTime.APPLY_TIME, TimeUnit.SECONDS); ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { JSONObject reqParam = new JSONObject(); @@ -269,6 +272,32 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri } return false; } +// Date date = new Date(); +// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { +// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); +// return false; +// } else { +// ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); +// if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { +// JSONObject reqParam = new JSONObject(); +// reqParam.put("device_code", this.getDevice_code()); +// reqParam.put("type", StatusEnum.LACK_REQ.getCode()); +// reqParam.put("workorder_code", this.getOrder()); +// HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); +// if (httpResponse != null && httpResponse.getStatus() == 200) { +// JSONObject resp = JSONObject.parseObject(httpResponse.body()); +// if (resp.getInteger("status") == 200) { +// requireSucess = true; +// return true; +// } else { +// message = "申请任务失败,原因:" + resp.getString("message"); +// } +// } else { +// message = "申请任务失败,原因:接口不通!"; +// } +// } +// return false; +// } } 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 958d63a1..11bdb193 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 @@ -31,6 +31,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -400,7 +401,7 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple if (StrUtil.isEmpty(dto.getTray_num())) { dto.setTray_num("1"); } - Map map = new HashMap<>(); + 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()); @@ -414,7 +415,7 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple */ @Override public void issuedOrderFinish(String autoFinish) { - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { map.put("to_compel_finish", "1"); } else { 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 12ec8c05..01012262 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 @@ -25,6 +25,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -196,7 +197,7 @@ public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver impleme EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); if (ealingOrderDto != null) { String is_foreward = ealingOrderDto.getIs_foreward(); - Map map = new HashMap<>(); + Map map = new LinkedHashMap<>(); map.put("to_clear", "1"); map.put("to_is_foreward", is_foreward); map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java index b2680b73..4a84d862 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java @@ -13,6 +13,8 @@ import org.nl.acs.opc.WcsConfig; import org.nl.acs.udw.UnifiedDataAccessor; import org.nl.acs.udw.UnifiedDataAccessorFactory; import org.nl.acs.udw.UnifiedDataAppService; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.exception.WDKException; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; @@ -144,6 +146,7 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc * @param value */ public void writing(String key, String value) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); String opcServerId = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcServerId); @@ -151,6 +154,7 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc itemMap.put(getToParam() + key, value); ReadUtil.write(itemMap, server); server.disconnect(); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(),"下发单个电气信号:" + key + ",下发电气信号值:" + value)); logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发单个电气信号:" + key + ",下发电气信号值:" + value); } @@ -161,8 +165,8 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc * @param map */ public void writing(Map map) { - DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - Map itemMap = new HashMap(); + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + Map itemMap = new LinkedHashMap<>(); map.forEach((key, value) -> { if (ObjectUtil.isNotEmpty(value)) { itemMap.put(getToParam() + key, value); @@ -170,7 +174,7 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc }); if (ObjectUtil.isNotEmpty(itemMap)) { this.control(itemMap); - logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(),"下发多个电气信号:" + itemMap)); } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index fd423fe8..01644c5a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -120,10 +120,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public HttpResponse feedDeviceStatusType(JSONObject param) { - log.info("acs开始向mes反馈设备状态,请求参数:{}", JSON.toJSONString(param)); try { MDC.put(log_file_type, log_type); - if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { + if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1") && StrUtil.equals(paramService.findByCode(AcsConfig.ISFEEDDEVICESTATUS).getValue(), "1")) { + log.info("acs开始向mes反馈设备状态,请求参数:{}", JSON.toJSONString(param)); String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); AddressDto addressDto = addressService.findByCode("feedDeviceStatusType"); String methods_url = addressDto.getMethods_url(); @@ -597,7 +597,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } JSONObject jo = JSONObject.parseObject(result.body()); return jo; - } finally { + } finally { MDC.remove(log_file_type); } } 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 dfc68fc7..42e51f16 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 @@ -248,25 +248,33 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String unboxing_device_code = param.getString("unboxing_device_code"); Map extra_map = param.getJSONObject("extra_map"); - - //老车间包装工单信息 - //每箱袋数 - String one_box_package_qty = extra_map.get("one_box_package_qty").toString(); - //袋数 - String package_qty = extra_map.get("package_qty").toString(); - //每袋数量 - String one_package_qty = extra_map.get("one_package_qty").toString(); - //箱数 - String box_num = extra_map.get("box_num").toString(); - //箱型 - String box_type = extra_map.get("box_type").toString(); - //目标巷道 - String target_roadway = extra_map.get("target_roadway").toString(); - //是否翻转 - String is_flip = extra_map.get("is_flip").toString(); - //托盘满托数量 - String tray_full_num = extra_map.get("tray_full_num").toString(); - + 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)) { + //老车间包装工单信息 + //每箱袋数 + one_box_package_qty = extra_map.get("one_box_package_qty").toString(); + //袋数 + package_qty = extra_map.get("package_qty").toString(); + //每袋数量 + one_package_qty = extra_map.get("one_package_qty").toString(); + //箱数 + box_num = extra_map.get("box_num").toString(); + //箱型 + box_type = extra_map.get("box_type").toString(); + //目标巷道 + target_roadway = extra_map.get("target_roadway").toString(); + //是否翻转 + is_flip = extra_map.get("is_flip").toString(); + //托盘满托数量 + tray_full_num = extra_map.get("tray_full_num").toString(); + } Map params = param.getJSONObject("params"); EalingOrderDto ealingOrderDto = null; @@ -569,8 +577,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); if (StrUtil.equals(type, StatusEnum.PAUSE_TYPE.getCode())) { hailiangAutoCacheLineDeviceDriver.writing("to_pause", "1"); + hailiangAutoCacheLineDeviceDriver.writing("to_pause_out_check", "1"); } else if (StrUtil.equals(type, StatusEnum.RESUME_TYPE.getCode())) { hailiangAutoCacheLineDeviceDriver.writing("to_pause", "0"); + hailiangAutoCacheLineDeviceDriver.writing("to_pause_out_check", "0"); } } JSONObject resultJson = new JSONObject(); @@ -683,8 +693,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public Map putAction(String jsonObject) throws Exception { + log.info("接收WMS下发动作信号,下发参数:{}", JSON.toJSONString(jsonObject)); JSONArray datas = JSONArray.parseArray(jsonObject); - log.info("putAction--------------:输入参数" + datas.toString()); + HailiangAutoCacheLineDeviceDriver hailiangAutoCacheLineDeviceDriver; for (int i = 0; i < datas.size(); i++) { JSONObject data = datas.getJSONObject(i); String device_code = data.getString("device_code"); @@ -694,12 +705,19 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (ObjectUtil.isEmpty(device)) { throw new Exception("未找到对应设备:" + device_code); } + if (device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) device.getDeviceDriver(); + hailiangAutoCacheLineDeviceDriver.writing(code, value); + if (code.equals("to_start_checking")) { + hailiangAutoCacheLineDeviceDriver.writing("to_task", "1001"); + } + } } JSONObject resultJson = new JSONObject(); resultJson.put("status", HttpStatus.OK); resultJson.put("message", "操作成功"); resultJson.put("data", new JSONObject()); - log.info("putAction--------------:输出参数" + resultJson.toString()); + log.info("接收WMS暂停或恢复缓存线,响应参数:{}", JSON.toJSONString(resultJson)); return resultJson; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java index 3fd7790a..ebbb90a7 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -331,7 +331,7 @@ public interface InstructionService { * @param to_task_type 缓存线任务类型 * @return */ - public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type,String to_open_check_barcode); + public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type, String to_open_check_barcode); /** * 自动创建指令时,根据任务信息创建指令对象 @@ -341,4 +341,11 @@ public interface InstructionService { * @return */ Instruction createInstDtoByTask(TaskDto taskDto, String link_no); + + /** + * 取消缓存线指令时清除agv上报信息 + * + * @param dto + */ + void removeCacheLinePhase(Instruction dto); } 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 79aad848..861f837a 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 @@ -893,7 +893,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void cancel(String id) throws Exception { // flag= true时取消指令 boolean flag = false; @@ -958,11 +958,12 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu entity.setInstruction_status("3"); this.update(entity); + removeCacheLinePhase(entity); } } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void cancelByLinkNum(String linkNum) { List insts = this.findByLinkNum(linkNum); if (insts != null) { @@ -978,7 +979,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void forceCancel(String id) throws Exception { // flag= true时取消指令 boolean flag = false; @@ -1020,7 +1021,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void forceCancelByLinkNum(String linkNum) throws Exception { List insts = this.findByLinkNum(linkNum); if (insts != null) { @@ -1036,6 +1037,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } @Override + @Transactional(rollbackFor = Exception.class) public void cancelNoSendAgv(String id) throws Exception { // flag= true时取消指令 Instruction entity = this.findById(id); @@ -1415,4 +1417,25 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu instDto.setAgv_system_type(taskDto.getAgv_system_type()); return instDto; } + + @Override + public void removeCacheLinePhase(Instruction dto) { + if (dto != null) { + String start_point_code = dto.getStart_device_code(); + String next_point_code = dto.getNext_device_code(); + String put_point_code = dto.getPut_device_code(); + Device start_device = deviceAppService.findDeviceByCode(start_point_code); + Device next_device = deviceAppService.findDeviceByCode(next_point_code); + Device put_device = deviceAppService.findDeviceByCode(put_point_code); + HailiangAutoCacheLineDeviceDriver hailiangAutoCacheLineDeviceDriver; + if (put_device != null && put_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) put_device.getDeviceDriver(); + hailiangAutoCacheLineDeviceDriver.set(0, 0, null); + } + if (start_device != null && next_device != null && start_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver && next_device.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { + hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) start_device.getDeviceDriver(); + hailiangAutoCacheLineDeviceDriver.set(0, 0, null); + } + } + } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index 601d1cc9..7ea25f40 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -412,11 +412,14 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC Object obj = accessor_value.getValue(relate); sb.append("key:" + relate + "value:" + obj + ";"); } - lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value))); + if (!itemDto.getItem_code().endsWith("heartbeat")) { + lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value))); + } } else { - - lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value))); + if (!itemDto.getItem_code().endsWith("heartbeat")) { + lucene.deviceExecuteLog(new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".")+1), String.valueOf(his), String.valueOf(value))); + } } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java index 631cd061..55825e71 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java @@ -3,6 +3,8 @@ package org.nl.acs.task.service.dto; import lombok.Data; import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; /** * @author ldjun @@ -309,4 +311,6 @@ public class TaskDto implements Serializable { */ private String material_code; + private Map ext_param = new HashMap<>(); + } diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/common/utils/RedisUtils.java b/wcs/nladmin-system/src/main/java/org/nl/modules/common/utils/RedisUtils.java index 6dbd667f..2bcdd1c6 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/common/utils/RedisUtils.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/common/utils/RedisUtils.java @@ -83,6 +83,15 @@ public class RedisUtils { return true; } + + public void setExpire(String key, Object value, long time, TimeUnit timeUnit) { + try { + redisTemplate.opsForValue().set("apply:" + key, null, time, timeUnit); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + /** * 根据 key 获取过期时间 * @@ -216,7 +225,7 @@ public class RedisUtils { public List multiGet(List keys) { List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys)); List resultList = Lists.newArrayList(); - Optional.ofNullable(list).ifPresent(e-> list.forEach(ele-> Optional.ofNullable(ele).ifPresent(resultList::add))); + Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add))); return resultList; } 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 df7c4eb9..d4e89056 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 @@ -16,7 +16,7 @@ import java.text.SimpleDateFormat; import java.util.Date; public class LuceneIndexWriter { - private static IndexWriter indexWriter; + private static volatile IndexWriter indexWriter; static { try { @@ -27,16 +27,16 @@ public class LuceneIndexWriter { e.printStackTrace(); } /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/ - Runtime.getRuntime().addShutdownHook(new Thread(){ - @Override - public void run() { - try { - closeIndexWriter(); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); +// Runtime.getRuntime().addShutdownHook(new Thread(){ +// @Override +// public void run() { +// try { +// closeIndexWriter(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// }); } /**在线程结束时,自动关闭IndexWriter*/ public static IndexWriter getIndexWriter() { @@ -47,7 +47,7 @@ public class LuceneIndexWriter { * @throws CorruptIndexException */ public static void closeIndexWriter() throws Exception { if(indexWriter != null) { - indexWriter.close(); +// indexWriter.close(); } } 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 f350977e..c1fd06cd 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 @@ -81,7 +81,7 @@ public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { long endTime = System.currentTimeMillis(); log.info("建立索引共耗时{}毫秒", endTime - startTime); indexWriter.commit(); - MDC.put("DEVICECODE", luceneLogDto.getDevice_code()); +// MDC.put("DEVICECODE", luceneLogDto.getDevice_code()); } catch (Exception e) { log.error(e.getMessage(), e); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java index 50627abf..e587cd25 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java @@ -1,5 +1,6 @@ package org.nl.modules.quartz.task; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; import org.nl.acs.acsEnum.AgvTypeEnum; @@ -47,6 +48,9 @@ public class AutoCreateInst { //查询所有诺宝AGV任务 List list = taskService.queryAll("task_status = '0' and agv_system_type = '1' "); + if (ObjectUtil.isEmpty(list)) { + return; + } //根据LINK_NUM分组任务 Map> link_num_tasks = Optional .ofNullable(list) @@ -77,7 +81,6 @@ public class AutoCreateInst { if (StrUtil.equals(taskDto.getIs_send(), StatusEnum.NO_SEND.getCode())) { continue; } - //生产指令关联编号 String link_no = CodeUtil.getNewCode("LINK_NO"); @@ -96,7 +99,6 @@ public class AutoCreateInst { taskService.update(taskDto); } else if (tasks.size() == TASK_SIZE_2) { - //生产指令关联编号 String link_no = CodeUtil.getNewCode("LINK_NO"); diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue index f6ab9efc..3130ac08 100644 --- a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue @@ -67,8 +67,8 @@ - - + + diff --git a/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue b/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue index 14249508..e69de29b 100644 --- a/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue +++ b/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue @@ -1,601 +0,0 @@ - - - - - diff --git a/wcs/nladmin-ui/src/views/acs/order/index.vue b/wcs/nladmin-ui/src/views/acs/order/index.vue index 047f7d4a..504b9dca 100644 --- a/wcs/nladmin-ui/src/views/acs/order/index.vue +++ b/wcs/nladmin-ui/src/views/acs/order/index.vue @@ -135,6 +135,27 @@ + + + + + + + + + + + + + + + + + + + + +