diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java index 8c29c2d..212fa5e 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java @@ -54,9 +54,6 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im int move = 0; int order = 0; int order_detail = 0; - int last_mode = 0; - int last_order = order; - int last_order_detail = order_detail; int ready = 0; int pause = 0; int clear = 0; @@ -74,6 +71,28 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im int detail_labeling_qualified_qty = 0; int detail_labeling_qty = 0; + int last_mode = 0; + int last_error = 0; + int last_move = 0; + int last_order = 0; + int last_order_detail = 0; + int last_last_order = order; + int last_ready = 0; + int last_pause = 0; + int last_clear = 0; + int last_order_feeding_qty = 0; + int last_detail_feeding_qty = 0; + int last_detail_feeding_qualified_qty = 0; + int last_detail_lettering_qty = 0; + int last_detail_lettering_qualified_qty = 0; + int last_detail_risking_qualified_qty = 0; + int last_detail_risking_qty = 0; + int last_detail_strapping_qty = 0; + int last_detail_strapping_oneqty = 0; + int last_detail_coating_qty = 0; + int last_labeling_order = 0; + int last_detail_labeling_qualified_qty = 0; + int last_detail_labeling_qty = 0; Boolean send_letter_flag_back = false; Boolean send_letter_flag = false; @@ -123,6 +142,7 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im if (mode != last_mode) { this.setRequireSucess(false); + logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } @@ -143,6 +163,109 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im logServer.deviceLog(this.device_code,"order_detail" ,String.valueOf(order_detail)); logServer.deviceLogToacs(this.device_code,"","","信号order_detail:" + last_order_detail + "->" + order_detail); } + + if(error != last_error) + { + logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + } + + if(ready != last_ready) + { + logServer.deviceLog(this.device_code,"ready" ,String.valueOf(ready)); + logServer.deviceLogToacs(this.device_code,"","","信号ready:" + last_ready + "->" + ready); + } + + if(pause != last_pause) + { + logServer.deviceLog(this.device_code,"pause" ,String.valueOf(pause)); + logServer.deviceLogToacs(this.device_code,"","","信号pause:" + last_pause + "->" + pause); + } + + if(clear != last_clear) + { + logServer.deviceLog(this.device_code,"clear" ,String.valueOf(clear)); + logServer.deviceLogToacs(this.device_code,"","","信号clear:" + last_clear + "->" + clear); + } + + if(order_feeding_qty != last_order_feeding_qty) + { + logServer.deviceLog(this.device_code,"order_feeding_qty" ,String.valueOf(order_feeding_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号order_feeding_qty:" + last_order_feeding_qty + "->" + order_feeding_qty); + } + + if(detail_feeding_qty != last_detail_feeding_qty) + { + logServer.deviceLog(this.device_code,"detail_feeding_qty" ,String.valueOf(detail_feeding_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_feeding_qty:" + last_detail_feeding_qty + "->" + detail_feeding_qty); + } + + if(detail_feeding_qualified_qty != last_detail_feeding_qualified_qty) + { + logServer.deviceLog(this.device_code,"detail_feeding_qualified_qty" ,String.valueOf(detail_feeding_qualified_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_detail_feeding_qualified_qty + "->" + detail_feeding_qualified_qty); + } + + if(detail_lettering_qty != last_detail_lettering_qty) + { + logServer.deviceLog(this.device_code,"detail_lettering_qty" ,String.valueOf(detail_lettering_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_lettering_qty:" + last_detail_lettering_qty + "->" + detail_lettering_qty); + } + + if(detail_lettering_qualified_qty != last_detail_lettering_qualified_qty) + { + logServer.deviceLog(this.device_code,"detail_lettering_qualified_qty" ,String.valueOf(detail_lettering_qualified_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_lettering_qualified_qty:" + last_detail_lettering_qualified_qty + "->" + detail_lettering_qualified_qty); + } + + if(detail_risking_qualified_qty != last_detail_risking_qualified_qty) + { + logServer.deviceLog(this.device_code,"detail_risking_qualified_qty" ,String.valueOf(detail_risking_qualified_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_risking_qualified_qty:" + last_detail_risking_qualified_qty + "->" + detail_risking_qualified_qty); + } + + if(detail_risking_qty != last_detail_risking_qty) + { + logServer.deviceLog(this.device_code,"detail_risking_qty" ,String.valueOf(detail_risking_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_risking_qty:" + last_detail_risking_qty + "->" + detail_risking_qty); + } + + if(detail_strapping_qty != last_detail_strapping_qty) + { + logServer.deviceLog(this.device_code,"detail_strapping_qty" ,String.valueOf(detail_strapping_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_strapping_qty:" + last_detail_strapping_qty + "->" + detail_strapping_qty); + } + + if(detail_strapping_oneqty != last_detail_strapping_oneqty) + { + logServer.deviceLog(this.device_code,"detail_strapping_oneqty" ,String.valueOf(detail_strapping_oneqty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_strapping_oneqty:" + last_detail_strapping_oneqty + "->" + detail_strapping_oneqty); + } + + if(detail_coating_qty != last_detail_coating_qty) + { + logServer.deviceLog(this.device_code,"detail_coating_qty" ,String.valueOf(detail_coating_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_coating_qty:" + last_detail_coating_qty + "->" + detail_coating_qty); + } + + if(labeling_order != last_labeling_order) + { + logServer.deviceLog(this.device_code,"labeling_order" ,String.valueOf(labeling_order)); + logServer.deviceLogToacs(this.device_code,"","","信号labeling_order:" + last_labeling_order + "->" + labeling_order); + } + + if(detail_labeling_qualified_qty != last_detail_labeling_qualified_qty) + { + logServer.deviceLog(this.device_code,"detail_labeling_qualified_qty" ,String.valueOf(detail_labeling_qualified_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_labeling_qualified_qty:" + last_detail_labeling_qualified_qty + "->" + detail_labeling_qualified_qty); + } + + if(detail_labeling_qty != last_detail_labeling_qty) + { + logServer.deviceLog(this.device_code,"detail_labeling_qty" ,String.valueOf(detail_labeling_qty)); + logServer.deviceLogToacs(this.device_code,"","","信号detail_labeling_qty:" + last_detail_labeling_qty + "->" + detail_labeling_qty); + } + try{ if(order >0 && order_detail>0){ update_detail(String.valueOf(order),String.valueOf(order_detail)); @@ -190,6 +313,25 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im last_mode = mode; last_order = order; last_order_detail = order_detail; + last_error = error; + last_move = move; + last_last_order = last_order; + last_ready = ready; + last_pause = pause; + last_clear = clear; + last_order_feeding_qty = order_feeding_qty; + last_detail_feeding_qty = detail_feeding_qty; + last_detail_feeding_qualified_qty = detail_feeding_qualified_qty; + last_detail_lettering_qty = detail_lettering_qty; + last_detail_lettering_qualified_qty = detail_lettering_qualified_qty; + last_detail_risking_qualified_qty = detail_risking_qualified_qty; + last_detail_risking_qty = detail_risking_qty; + last_detail_strapping_qty = detail_strapping_qty; + last_detail_strapping_oneqty = detail_strapping_oneqty; + last_detail_coating_qty = detail_coating_qty; + last_labeling_order = labeling_order; + last_detail_labeling_qualified_qty = detail_labeling_qualified_qty; + last_detail_labeling_qty = detail_labeling_qty; } public synchronized boolean update_detail(String order, String order_detail) throws Exception { @@ -223,7 +365,6 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im dto.setPresent_wraping_number(String.valueOf(detail_coating_qty)); produceshiftorderdetailService.update(dto); - return true; } } @@ -237,10 +378,12 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im this.detail_time= date; ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order),String.valueOf(order_detail)); if(ObjectUtil.isEmpty(dto)){ + logServer.deviceLogToacs(this.device_code,"","","修改工单明细状态失败,order:"+order+",orderdetail:"+order_detail); return false; } if(!StrUtil.equals(dto.getOrder_detail_status(),status)){ dto.setOrder_detail_status("01"); + logServer.deviceLogToacs(this.device_code,"","","修改工单明细状态成功,order:"+order+",orderdetail:"+order_detail); produceshiftorderdetailService.update(dto); } return true; @@ -256,12 +399,14 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im this.detail_time= date; ProduceshiftorderDto dto = produceshiftorderService.findOrderByOrderCodeFromCache(String.valueOf(order)); if(ObjectUtil.isEmpty(dto)){ + logServer.deviceLogToacs(this.device_code,"","","修改工单状态失败,order:"+order); return false; } //02是已下发 if(!StrUtil.equals(dto.getOrder_status(),status) && StrUtil.equals(dto.getOrder_status(),"02") ){ dto.setOrder_status("03"); produceshiftorderService.autoupdate(dto); + logServer.deviceLogToacs(this.device_code,"","","修改工单状态成功,order:"+order); } return true; } @@ -290,7 +435,7 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im String wall_thickness = dto.getWall_thickness(); String length = dto.getLength(); String qty = dto.getQty(); - + logServer.deviceLogToacs(this.device_code,"","","申请工单号成功,order:"+order); writing(ItemProtocol.item_to_order,order); writing(ItemProtocol.item_to_feeding_mouth,feeding_mouth); writing(ItemProtocol.item_to_order_feeding_qty,qty); @@ -304,7 +449,7 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im writing(ItemProtocol.item_to_is_lettering,is_lettering); writing(ItemProtocol.item_to_command,String.valueOf(mode)); - dto.setOrder_status("03"); + dto.setOrder_status("02"); produceshiftorderService.autoupdate(dto); requireSucess = true; @@ -323,13 +468,14 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im String str = dto.getLabeling_message(); //判断是否最后一个客户 boolean last_detail = produceshiftorderdetailService.isLastOrderDetail(String.valueOf(order)); - //下发激光刻字信息 //判断下发刻字成功 if(!send_letter_flag){ send_letter_flag = produceshiftorderdetailService.sendLetteringMess(str); + logServer.deviceLogToacs(this.device_code,"","","下发激光刻字信息结果:"+send_letter_flag); } if(send_letter_flag_back) { + logServer.deviceLogToacs(this.device_code,"","","申请工单明细成功,order:"+order+",orderdetail:"+orderDetail); if(last_detail){ writing(ItemProtocol.item_to_is_last,"1"); } else { @@ -360,6 +506,7 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im Map itemMap = new HashMap(); itemMap.put(to_param, Double.parseDouble(value)); ReadUtil.write(itemMap, server); + logServer.deviceLogToacs(this.device_code,"","","下发信号:"+param+",value:"+value); } diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java index a9f9f8a..06d2066 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java @@ -17,6 +17,7 @@ import org.nl.acs.order.service.LabelingTemplateService; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.ProduceshiftorderdetailService; import org.nl.acs.order.service.dto.LabelingTemplateDto; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto; import org.nl.exception.BadRequestException; import org.nl.utils.SpringContextHolder; @@ -155,9 +156,15 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem break; //工单完成 case 7: + if(!requireSucess && order > 0 && order_detail > 0 ) { + finish_order(String.valueOf(order),String.valueOf(order_detail),"01"); + } break; //工单强制完成 case 8: + if(!requireSucess && order > 0 && order_detail > 0 ) { + finish_order(String.valueOf(order),String.valueOf(order_detail),"02"); + } break; } } @@ -192,6 +199,30 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem } } + public synchronized boolean finish_order(String order, String order_detail,String status) { + Date date = new Date(); + if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out); + return false; + } else { + ProduceshiftorderDto dto = produceshiftorderService.findOrderByOrderCodeFromCache(String.valueOf(order)); + if(ObjectUtil.isEmpty(dto)){ + return false; + } + if(!StrUtil.equals(dto.getOrder_status(),status)){ + if(StrUtil.equals(status,"1")){ + dto.setOrder_status("07"); + } else { + dto.setOrder_status("08"); + } + produceshiftorderService.autoupdate(dto); + } + writing(itemProtocol.item_to_command,String.valueOf(mode)); + requireSucess = true; + return true; + } + } + public synchronized boolean apply_labeling_message(String order, String order_detail,String qty) { Date date = new Date(); if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) { diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java index cc3b436..83d6544 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java @@ -132,13 +132,13 @@ public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver imple case 3: case 4: - //贴标完成 + //刻字完成 if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){ update_detail(String.valueOf(order),String.valueOf(order_detail),"01"); } break; case 5: - //强制贴标完成 + //强制刻字完成 if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) { update_detail(String.valueOf(order),String.valueOf(order_detail),"02"); } diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/LabelingTemplateServiceImpl.java b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/LabelingTemplateServiceImpl.java index ab63fb8..41d95f4 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/LabelingTemplateServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/LabelingTemplateServiceImpl.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.order.service.LabelingTemplateService; +import org.nl.acs.order.service.ProduceshiftorderdetailService; import org.nl.acs.order.service.dto.LabelingTemplateDto; import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto; import org.nl.exception.BadRequestException; @@ -41,8 +42,9 @@ import java.util.*; @Slf4j public class LabelingTemplateServiceImpl implements LabelingTemplateService { + @Autowired - AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); + AcsConfigService acsConfigService; @Override public Map queryAll(Map whereJson, Pageable page){ @@ -193,38 +195,123 @@ public class LabelingTemplateServiceImpl implements LabelingTemplateService { "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 3: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 4: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 5: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 6: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 7: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 8: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 9: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 10: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 11: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 12: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 13: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 14: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 15: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 16: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 17: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 18: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; case 19: + printProcess = Runtime + .getRuntime() + .exec(new String[] { + printurl, "PrinterName=" + printName, + "LabelName="+address, "Text1="+ "111","Text2="+"222"}); break; default: break;