rev 更新工单和打印机驱动
This commit is contained in:
@@ -49,7 +49,18 @@
|
||||
<artifactId>tlog-all-spring-boot-starter</artifactId>
|
||||
<version>1.5.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
<version>3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.freemarker</groupId>
|
||||
<artifactId>freemarker</artifactId>
|
||||
<version>2.3.32</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- 控制台高亮-->
|
||||
<dependency>
|
||||
<groupId>org.fusesource.jansi</groupId>
|
||||
@@ -69,6 +80,23 @@
|
||||
<artifactId>ojdbc5</artifactId>
|
||||
<version>11.2.0.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.magese</groupId>
|
||||
<artifactId>ik-analyzer</artifactId>
|
||||
<version>${lucene.version}</version>
|
||||
</dependency>
|
||||
<!-- 获取系统信息 -->
|
||||
<dependency>
|
||||
<groupId>com.github.oshi</groupId>
|
||||
<artifactId>oshi-core</artifactId>
|
||||
<version>5.0.1</version>
|
||||
</dependency>
|
||||
<!-- Java图形验证码 -->
|
||||
<dependency>
|
||||
<groupId>com.github.whvcse</groupId>
|
||||
<artifactId>easy-captcha</artifactId>
|
||||
<version>1.6.2</version>
|
||||
</dependency>
|
||||
<!-- dynamic-datasource -->
|
||||
<!-- https://onew.me/logback/2018/09/17/logback_win.html-->
|
||||
<dependency>
|
||||
|
||||
@@ -153,8 +153,8 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
status = this.itemProtocol.getStatus();
|
||||
error = this.itemProtocol.getError();
|
||||
move = this.itemProtocol.getMove();
|
||||
weight=this.itemProtocol.getWeight();
|
||||
if(mode != last_mode){
|
||||
weight = this.itemProtocol.getWeight();
|
||||
if (mode != last_mode) {
|
||||
requireSucess = false;
|
||||
}
|
||||
} catch (Exception var17) {
|
||||
@@ -179,8 +179,114 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
|
||||
if (mode == 8 && move == 1 && !requireSucess) {
|
||||
//TODO:将贴标信息下发,并反馈200
|
||||
JSONObject template= ticketsMapper.template();
|
||||
JSONObject template = ticketsMapper.template();
|
||||
String jsonString = template.toString();
|
||||
Tickets tickets = ticketsMapper.ticket();
|
||||
//客户
|
||||
String customer = tickets.getCustomer();
|
||||
//纸箱装瓶数量
|
||||
String carton_qty = tickets.getCarton_qty();
|
||||
//计划数量
|
||||
String planned_quantity = tickets.getPlanned_quantity();
|
||||
//晶科每罐重量
|
||||
String bottle_weight=null;
|
||||
Integer bottle_weight1=0;
|
||||
//当前纸箱完成数量
|
||||
String fcarton_number = tickets.getFcarton_number();
|
||||
Integer fcarton_number1 = Integer.parseInt(fcarton_number);
|
||||
Integer planned_quantity1 = Integer.parseInt(planned_quantity);
|
||||
Integer carton_qty1=Integer.parseInt(carton_qty);
|
||||
// Float carton_qty1 = Float.parseFloat(carton_qty);
|
||||
//总纸箱数
|
||||
Integer sum_carton1 = (planned_quantity1+carton_qty1-1)/carton_qty1;
|
||||
//总纸箱数(Integer)
|
||||
//纸箱号
|
||||
String carton_number = tickets.getCarton_number();
|
||||
//瓶盖号
|
||||
String bottle_number = tickets.getBottle_number();
|
||||
//物料条码(瓶盖数据去掉后四位)
|
||||
String material_number = null;
|
||||
//纸箱前18位
|
||||
String first_number = null;
|
||||
//纸箱后2位
|
||||
String last_number = null;
|
||||
String zx1= "";
|
||||
String zx2= "";
|
||||
Integer last_number1 = 0;
|
||||
//当前箱数
|
||||
Integer real_carton = fcarton_number1;
|
||||
if (customer.contains("晶科")) {
|
||||
bottle_weight=tickets.getBottle_weight();
|
||||
//
|
||||
String last_number5="";
|
||||
bottle_weight1=Integer.parseInt(bottle_weight);
|
||||
//物料条码(瓶盖数据去掉后四位)
|
||||
material_number = bottle_number.substring(0, 19);
|
||||
first_number = carton_number.substring(0, 18);
|
||||
zx1=carton_number.substring(18, 20);
|
||||
zx2=carton_number.substring(20, 31);
|
||||
last_number = carton_number.substring(31, 33);
|
||||
last_number1 = Integer.parseInt(last_number);
|
||||
last_number1 = last_number1 - fcarton_number1;
|
||||
log.info("当前纸箱尾数{}",last_number1);
|
||||
if (last_number1 > 9) {
|
||||
last_number5 = String.valueOf(last_number1);
|
||||
} else {
|
||||
last_number5 = "0" + String.valueOf(last_number1);
|
||||
}
|
||||
last_number=last_number5;
|
||||
}
|
||||
//晶澳纸箱数据
|
||||
String janumber = "";
|
||||
if (customer.contains("晶澳")) {
|
||||
//纸箱前16位
|
||||
first_number = carton_number.substring(0, 16);
|
||||
//纸箱后3位
|
||||
last_number = carton_number.substring(16, 19);
|
||||
if (fcarton_number1 == 0) {
|
||||
Integer sum_number = sum_carton1 * carton_qty1;
|
||||
Integer last1_number1 = carton_qty1 - (sum_number - planned_quantity1);
|
||||
|
||||
// Integer last1_number1 = Integer.valueOf(String.valueOf(last1_number));
|
||||
for (Integer i = 0; i < last1_number1; i++) {
|
||||
Integer last_number2 = 0;
|
||||
last_number2 = Integer.parseInt(last_number);
|
||||
String last_number3 = String.valueOf(last_number2);
|
||||
if (last_number2 > 100) {
|
||||
last_number2 = (last_number2 - carton_qty1*1) + i+2;
|
||||
last_number3 = String.valueOf(last_number2);
|
||||
last_number3 = last_number3 + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
} else if (last_number2 > 10) {
|
||||
last_number2 = (last_number2 - carton_qty1*1) + i+2;
|
||||
last_number3 = last_number3 + "0" + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
} else if (last_number2 > 0) {
|
||||
last_number2 = (last_number2 - carton_qty1*1) + i+2;
|
||||
last_number3 = last_number3 + "00" + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (Integer i = 0; i < carton_qty1; i++) {
|
||||
Integer last_number2 = Integer.parseInt(last_number);
|
||||
last_number2=(sum_carton1-real_carton-1)*10+i+1;
|
||||
String last_number3 = String.valueOf(last_number2);
|
||||
if (last_number2 > 100) {
|
||||
last_number3 = last_number3 + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
}else if (last_number2 > 10) {
|
||||
last_number3 = last_number3 + "0" + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
} else if (last_number2 > 0) {
|
||||
last_number3 = last_number3 + "00" + String.valueOf(last_number2) + ",2;";
|
||||
janumber=janumber+first_number+last_number3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// String sum_carton1=String.valueOf(sum_carton);
|
||||
// String real_carton1=String.valueOf(real_carton);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 解析外部 JSON 字符串,获取 "template" 字段的值
|
||||
JsonNode rootNode = objectMapper.readTree(jsonString);
|
||||
@@ -197,29 +303,74 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
for (int i = 0; i < printElements.size(); i++) {
|
||||
JSONObject printElement = printElements.getJSONObject(i);
|
||||
JSONObject options = printElement.getJSONObject("options");
|
||||
if(options.containsKey("testData")){
|
||||
if(options.get("testData").equals("date")){
|
||||
if (options.containsKey("testData")) {
|
||||
if (options.get("testData").equals("date")) {
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
options.put("title","日期: "+currentDate);
|
||||
printElement.put("options",options);
|
||||
options.put("title", "日期: " + currentDate);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if(options.get("testData").equals("weight")){
|
||||
options.put("title","重量: "+weight+"kg");
|
||||
printElement.put("options",options);
|
||||
if (options.get("testData").equals("weight")) {
|
||||
options.put("title", "重量: " + weight + "kg");
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if(options.get("testData").equals("time")){
|
||||
if (options.get("testData").equals("number")) {
|
||||
real_carton=real_carton+1;
|
||||
options.put("title", sum_carton1 + "——" + real_carton);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if (options.get("testData").equals("纸箱号")) {
|
||||
log.info("纸箱号{}{}", first_number, last_number);
|
||||
String number="";
|
||||
if(fcarton_number1==0){
|
||||
number = first_number + zx1+zx2+last_number;
|
||||
}else{
|
||||
number = first_number +bottle_weight1*carton_qty1 +zx2+last_number;
|
||||
}
|
||||
options.put("title", number);
|
||||
options.put("testData", number);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if (options.get("testData").equals("晶澳纸箱号")) {
|
||||
log.info("晶澳纸箱号{}{}",janumber);
|
||||
String number = janumber;
|
||||
options.put("testData", number);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if (options.get("testData").equals("物料号")) {
|
||||
log.info("物料号{}", material_number);
|
||||
options.put("title", material_number);
|
||||
options.put("testData", material_number);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
if (options.get("testData").equals("time")) {
|
||||
LocalTime currentTime = LocalTime.now();
|
||||
options.put("title","时间: "+ currentTime.getHour() + ":" + currentTime.getMinute() + ":" + currentTime.getSecond());
|
||||
printElement.put("options",options);
|
||||
String minute="";
|
||||
String second="";
|
||||
if(currentTime.getMinute()<10){
|
||||
minute="0"+currentTime.getMinute();
|
||||
}else{
|
||||
minute=String.valueOf(currentTime.getMinute());
|
||||
}
|
||||
if(currentTime.getSecond()<10){
|
||||
second="0"+currentTime.getSecond();
|
||||
}else{
|
||||
second=String.valueOf(currentTime.getSecond());
|
||||
}
|
||||
options.put("title", "时间: " + currentTime.getHour() + ":" + minute + ":" + second);
|
||||
printElement.put("options", options);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
jsonObject.put("type", 2);
|
||||
requireSucess=true;
|
||||
requireSucess = true;
|
||||
log.info("纸箱打印数据: " + jsonObject.toString());
|
||||
SendPrintSocket.sendPrint(jsonObject.toString());
|
||||
Integer fcarton_number2 = fcarton_number1 + 1;
|
||||
String fcarton_number3 = String.valueOf(fcarton_number2);
|
||||
tickets.setFcarton_number(fcarton_number3);
|
||||
ticketsMapper.updateById(tickets);
|
||||
SendPrintSocket.sendPrint(jsonObject.toString());
|
||||
Map map = new HashMap();
|
||||
map.put("to_command", 200);
|
||||
this.writing(map);
|
||||
@@ -228,70 +379,98 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
|
||||
}
|
||||
if (mode == 7 && move == 1 && !requireSucess) {
|
||||
//TODO:将贴标信息下发,并反馈200
|
||||
JSONObject template= ticketsMapper.template1();
|
||||
Tickets tickets=ticketsMapper.ticket();
|
||||
String bottle_number=tickets.getBottle_number();
|
||||
String fbottle_number=tickets.getFbottle_number();
|
||||
Integer fbottle_number1=Integer.parseInt(fbottle_number);
|
||||
String psletters = bottle_number.substring(0,18);
|
||||
String psdigits = bottle_number.substring(18,23);
|
||||
Integer psdigits1=Integer.parseInt(psdigits)-fbottle_number1;
|
||||
String jsonString = template.toString();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 解析外部 JSON 字符串,获取 "template" 字段的值
|
||||
JsonNode rootNode = objectMapper.readTree(jsonString);
|
||||
String templateJson = rootNode.get("template").asText();
|
||||
// 解析嵌套的 "template" 字符串为 JSON 对象
|
||||
JsonNode templateNode = objectMapper.readTree(templateJson);
|
||||
// 输出 panels 数据
|
||||
JSONObject jsonObject = JSONObject.parseObject(templateNode.toString());
|
||||
// 获取 panels 数组
|
||||
JSONArray panels = jsonObject.getJSONArray("panels");
|
||||
JSONObject panel = panels.getJSONObject(0);
|
||||
// 获取 printElements 数组
|
||||
JSONArray printElements = panel.getJSONArray("printElements");
|
||||
for (int i = 0; i < printElements.size(); i++) {
|
||||
JSONObject printElement = printElements.getJSONObject(i);
|
||||
JSONObject options = printElement.getJSONObject("options");
|
||||
if(options.containsKey("testData")){
|
||||
if(options.get("title").equals("二维码")){
|
||||
String number1=psletters+psdigits1;
|
||||
options.put("testData",number1);
|
||||
printElement.put("options",options);
|
||||
}
|
||||
else if(options.get("testData").equals("瓶号")){
|
||||
String number1=psletters+psdigits1;
|
||||
options.put("title",number1);
|
||||
printElement.put("options",options);
|
||||
}
|
||||
}else{
|
||||
continue;
|
||||
JSONObject template = ticketsMapper.template1();
|
||||
Tickets tickets = ticketsMapper.ticket();
|
||||
String customer = tickets.getCustomer();
|
||||
String bottle_number = tickets.getBottle_number();
|
||||
String fbottle_number = tickets.getFbottle_number();
|
||||
Integer fbottle_number1 = Integer.parseInt(fbottle_number);
|
||||
String plan_qty=tickets.getPlanned_quantity();
|
||||
Integer plan_qty1=Integer.parseInt(plan_qty);
|
||||
String psletters = null;
|
||||
String psdigits = null;
|
||||
Integer psdigits1 = 0;
|
||||
if (customer.contains("晶科")) {
|
||||
psletters = bottle_number.substring(0, 18);
|
||||
psdigits = bottle_number.substring(18, 23);
|
||||
psdigits1 = Integer.parseInt(psdigits) - fbottle_number1;
|
||||
|
||||
}
|
||||
if (customer.contains("晶澳")) {
|
||||
psletters = bottle_number.substring(0, bottle_number.length()-5);
|
||||
psdigits = bottle_number.substring(bottle_number.length()-5, bottle_number.length()-2);
|
||||
if (Integer.parseInt(psdigits) >= 100) {
|
||||
psdigits1 = Integer.parseInt(psdigits) - fbottle_number1-plan_qty1;
|
||||
psdigits = String.valueOf(psdigits1);
|
||||
} else if (Integer.parseInt(psdigits) >= 10) {
|
||||
psdigits1 = Integer.parseInt(psdigits) - fbottle_number1-plan_qty1;
|
||||
psdigits = "0" + String.valueOf(psdigits1);
|
||||
} else if (Integer.parseInt(psdigits) >= 0) {
|
||||
psdigits1 = Integer.parseInt(psdigits) - fbottle_number1-plan_qty1;
|
||||
psdigits = "00" + String.valueOf(psdigits1);
|
||||
}
|
||||
}
|
||||
jsonObject.put("type", 1);
|
||||
requireSucess=true;
|
||||
fbottle_number1=fbottle_number1+1;
|
||||
String fbottle_number2=String.valueOf(fbottle_number1);
|
||||
// 输出 panels 数据
|
||||
SendPrintSocket.sendPrint(jsonObject.toString());
|
||||
log.info("瓶盖打印数据: " + jsonObject.toString());
|
||||
tickets.setFbottle_number(fbottle_number2);
|
||||
ticketsMapper.updateById(tickets);
|
||||
Map map = new HashMap();
|
||||
map.put("to_command", 200);
|
||||
map.put("to_message","");
|
||||
this.writing(map);
|
||||
} else {
|
||||
message = "无请求";
|
||||
String jsonString = template.toString();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 解析外部 JSON 字符串,获取 "template" 字段的值
|
||||
JsonNode rootNode = objectMapper.readTree(jsonString);
|
||||
String templateJson = rootNode.get("template").asText();
|
||||
// 解析嵌套的 "template" 字符串为 JSON 对象
|
||||
JsonNode templateNode = objectMapper.readTree(templateJson);
|
||||
// 输出 panels 数据
|
||||
JSONObject jsonObject = JSONObject.parseObject(templateNode.toString());
|
||||
// 获取 panels 数组
|
||||
JSONArray panels = jsonObject.getJSONArray("panels");
|
||||
JSONObject panel = panels.getJSONObject(0);
|
||||
// 获取 printElements 数组
|
||||
JSONArray printElements = panel.getJSONArray("printElements");
|
||||
for (int i = 0; i < printElements.size(); i++) {
|
||||
JSONObject printElement = printElements.getJSONObject(i);
|
||||
JSONObject options = printElement.getJSONObject("options");
|
||||
if (options.containsKey("testData")) {
|
||||
if (options.get("title").equals("晶科二维码")) {
|
||||
String number1 = psletters + psdigits1;
|
||||
options.put("testData", number1);
|
||||
options.put("title", "");
|
||||
printElement.put("options", options);
|
||||
} else if (options.get("testData").equals("瓶号")) {
|
||||
String number1 = psletters + psdigits1;
|
||||
options.put("title", number1);
|
||||
printElement.put("options", options);
|
||||
} else if (options.get("testData").equals("晶澳瓶号")) {
|
||||
String number1 = psletters + psdigits;
|
||||
options.put("testData", number1 + ",2");
|
||||
printElement.put("options", options);
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
jsonObject.put("type", 1);
|
||||
requireSucess = true;
|
||||
// 输出 panels 数据
|
||||
SendPrintSocket.sendPrint(jsonObject.toString());
|
||||
log.info("瓶盖打印数据: " + jsonObject.toString());
|
||||
fbottle_number1 = fbottle_number1 + 1;
|
||||
String fbottle_number2 = String.valueOf(fbottle_number1);
|
||||
tickets.setFbottle_number(fbottle_number2);
|
||||
ticketsMapper.updateById(tickets);
|
||||
Map map = new HashMap();
|
||||
map.put("to_command", 200);
|
||||
map.put("to_message", "");
|
||||
this.writing(map);
|
||||
} else {
|
||||
message = "无请求";
|
||||
}
|
||||
}
|
||||
|
||||
last_mode = mode;
|
||||
last_error = error;
|
||||
last_move = move;
|
||||
last_task = task;
|
||||
last_weight = weight;
|
||||
}
|
||||
|
||||
last_mode = mode;
|
||||
last_error = error;
|
||||
last_move = move;
|
||||
last_task = task;
|
||||
last_weight = weight;
|
||||
}
|
||||
|
||||
|
||||
public boolean exe_error() {
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.nl.common.mnt.websocket;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.websocket.*;
|
||||
@@ -100,6 +101,9 @@ public class SendPrintSocket {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
// else {
|
||||
// throw new BadRequestException("当前打印系统未连接");
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -49,6 +49,10 @@ public class Tickets {
|
||||
* 计划数量
|
||||
*/
|
||||
private String planned_quantity;
|
||||
/**
|
||||
* 晶科每罐重量
|
||||
*/
|
||||
private String bottle_weight;
|
||||
/**
|
||||
* 计划开始时间
|
||||
*/
|
||||
|
||||
@@ -50,4 +50,6 @@ public class TicketsDto {
|
||||
private String fbatch_number;
|
||||
|
||||
private String fcarton_number;
|
||||
|
||||
private String bottle_weight;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
|
||||
.eq("is_delete","1");
|
||||
wrapper.gt(ObjectUtil.isNotEmpty(param.get("start_time")),"start_time",param.get("start_time"))
|
||||
.le(ObjectUtil.isNotEmpty(param.get("end_time")),"end_time",param.get("end_time"));
|
||||
wrapper.orderByAsc("create_time");
|
||||
wrapper.orderByDesc("create_time");
|
||||
Page<Tickets> page1 = this.page(new Page<>(page.getPage() + 1, page.getSize()), wrapper);
|
||||
return page1;
|
||||
}
|
||||
@@ -100,6 +100,14 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
|
||||
String small_model=(String)param.get("small_model");
|
||||
String bottle_board=(String)param.get("bottle_board");
|
||||
String carton_board=(String)param.get("carton_board");
|
||||
if(customer.contains("晶科")){
|
||||
if(bottle_number.length()!=23){
|
||||
throw new BadRequestException("瓶盖号不对");
|
||||
}
|
||||
if(carton_number.length()!=33){
|
||||
throw new BadRequestException("纸箱号不对");
|
||||
}
|
||||
}
|
||||
Tickets tickets = BeanUtil.copyProperties(param, Tickets.class);
|
||||
// DateTime parse = DateUtil.parse(tickets.getStart_time());
|
||||
// DateTime startTime = parse.setTimeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Shanghai")));
|
||||
@@ -116,33 +124,26 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
|
||||
tickets.setFbottle_number("0");
|
||||
tickets.setFcarton_number("0");
|
||||
ticketsMapper.insert(tickets);
|
||||
// if(StrUtil.isNotBlank(device_code)){
|
||||
// Device device = deviceAppService.findDeviceByCode(device_code);
|
||||
// if(ObjectUtil.isEmpty(device))throw new BadRequestException("请在系统参数中添加设备");
|
||||
// if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver){
|
||||
// PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver();
|
||||
// Map<String, Object> map = new LinkedHashMap<>();
|
||||
// map.put("to_order_No", ticket_id);
|
||||
// map.put("to_command",100);
|
||||
// primary.writing(map);
|
||||
// log.info("工单下发成功工单号{}",ticket_id);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void submits(Tickets entity) {
|
||||
Tickets tickets=ticketsMapper.selectById(entity.getTicket_id());
|
||||
Tickets tickets1=ticketsMapper.ticket();
|
||||
if(entity.getTicket_status().equals("1")){
|
||||
throw new BadRequestException("当前工单已经下发");
|
||||
}
|
||||
if(tickets1!=null){
|
||||
throw new BadRequestException("当前已经有正在生产的工单请先结束在下发");
|
||||
}
|
||||
Device device = deviceAppService.findDeviceByCode("ZPLC");
|
||||
if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver) {
|
||||
PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_order_No", entity.getTicket_id());
|
||||
map.put("to_ice",entity.getIs_ice());
|
||||
if(StrUtil.isBlank(entity.getBottle_number())){
|
||||
map.put("to_qty",entity.getPlanned_quantity());
|
||||
if(StrUtil.isBlank(entity.getBottle_board())){
|
||||
map.put("is_printbottle",0);
|
||||
}else{
|
||||
map.put("is_printbottle",1);
|
||||
@@ -161,6 +162,15 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
|
||||
if(!entity.getTicket_status().equals("1")){
|
||||
throw new BadRequestException("当前工单状态不是已开工");
|
||||
}
|
||||
Device device = deviceAppService.findDeviceByCode("ZPLC");
|
||||
if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver) {
|
||||
PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_order_No",0);
|
||||
map.put("to_command",101);
|
||||
primary.writing(map);
|
||||
log.info("工单完成");
|
||||
}
|
||||
Tickets tickets=ticketsMapper.selectById(entity.getTicket_id());
|
||||
tickets.setTicket_status("2");
|
||||
tickets.setActual_end_time(DateUtil.now());
|
||||
|
||||
@@ -84,17 +84,50 @@
|
||||
<el-form-item label="计划数量" prop="planned_quantity">
|
||||
<el-input v-model="form.planned_quantity" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="瓶身号" prop="bottle_number">
|
||||
<el-form-item label="瓶盖号" prop="bottle_number">
|
||||
<el-input v-model="form.bottle_number" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="纸箱号" prop="carton_number">
|
||||
<el-input v-model="form.carton_number" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="瓶身关联标签模板" prop="bottle_board">
|
||||
<el-input v-model="form.bottle_board" style="width: 370px;" @change="isDisabled=false" />
|
||||
<el-form-item label="晶科每罐重量kg(选填)" prop="bottle_weight">
|
||||
<el-input v-model="form.bottle_weight" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="瓶盖关联标签模板" prop="bottle_board">
|
||||
<el-select
|
||||
v-model="form.bottle_board"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 370px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in templateList"
|
||||
:key="item.template_name"
|
||||
:label="item.template_name"
|
||||
:value="item.template_name"
|
||||
>
|
||||
<span style="float: left">{{ item.template_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.bottle_board }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="纸箱关联标签模板" prop="carton_board">
|
||||
<el-input v-model="form.carton_board" style="width: 370px;" @change="isDisabled=false" />
|
||||
<el-select
|
||||
v-model="form.carton_board"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 370px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in templateList1"
|
||||
:key="item.template_name"
|
||||
:label="item.template_name"
|
||||
:value="item.template_name"
|
||||
>
|
||||
<span style="float: left">{{ item.template_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.carton_board }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="纸箱装瓶数量" prop="carton_qty">
|
||||
<el-input v-model="form.carton_qty" style="width: 370px;" @change="isDisabled=false" />
|
||||
@@ -137,13 +170,13 @@
|
||||
<el-form-item label="计划数量" prop="planned_quantity">
|
||||
<el-input v-model="form.planned_quantity" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="瓶身号" prop="bottle_number">
|
||||
<el-form-item label="瓶盖号" prop="bottle_number">
|
||||
<el-input v-model="form.bottle_number" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="纸箱号" prop="carton_number">
|
||||
<el-input v-model="form.carton_number" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="瓶身关联标签模板" prop="bottle_board">
|
||||
<el-form-item label="瓶盖关联标签模板" prop="bottle_board">
|
||||
<el-input v-model="form.bottle_board" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="纸箱关联标签模板" prop="carton_board">
|
||||
@@ -175,9 +208,9 @@
|
||||
<el-table-column prop="production_materials" label="实发型号" :min-width="flexWidth('production_materials',crud.data,'实发型号')" />
|
||||
<el-table-column prop="large_model" label="大型号" :min-width="flexWidth('large_model',crud.data,'大型号')" />
|
||||
<el-table-column prop="small_model" label="小型号" :min-width="flexWidth('small_model',crud.data,'小型号')" />
|
||||
<el-table-column prop="bottle_number" label="瓶身号" :min-width="flexWidth('bottle_number',crud.data,'瓶身号')" />
|
||||
<el-table-column prop="bottle_number" label="瓶盖号" :min-width="flexWidth('bottle_number',crud.data,'瓶盖号')" />
|
||||
<el-table-column prop="carton_number" label="纸箱号" :min-width="flexWidth('carton_number',crud.data,'纸箱号')" />
|
||||
<el-table-column prop="bottle_board" label="瓶身关联标签模板" :min-width="flexWidth('bottle_board',crud.data,'瓶身关联标签模板')" />
|
||||
<el-table-column prop="bottle_board" label="瓶盖关联标签模板" :min-width="flexWidth('bottle_board',crud.data,'瓶盖关联标签模板')" />
|
||||
<el-table-column prop="carton_board" label="纸箱关联标签模板" :min-width="flexWidth('carton_board',crud.data,'纸箱关联标签模板')" />
|
||||
<el-table-column prop="carton_qty" label="纸箱装瓶数量" :min-width="flexWidth('carton_qty',crud.data,'纸箱装瓶数量')" />
|
||||
<el-table-column prop="ticket_status" label="状态" width="80px">
|
||||
@@ -235,6 +268,7 @@ import deviceCrud from '@/api/acs/device/device'
|
||||
import routeCurd from '@/api/acs/route/routePlan'
|
||||
import { getDicts } from '@/views/system/dict/dict'
|
||||
import MaterialDialog from '@/views/acs/order/MaterialDialog.vue'
|
||||
import template from '@/api/acs/order/template'
|
||||
export default {
|
||||
name: 'Tickets',
|
||||
components: { MaterialDialog,pagination, crudOperation, rrOperation },
|
||||
@@ -261,6 +295,7 @@ export default {
|
||||
materialList: [],
|
||||
statusList: [],
|
||||
routeList: [],
|
||||
|
||||
flag: 1,
|
||||
materialDialog: false,
|
||||
fullscreenLoading: false,
|
||||
@@ -276,6 +311,8 @@ export default {
|
||||
toYList: [],
|
||||
toZList: [],
|
||||
operate: [],
|
||||
templateList: [],
|
||||
templateList1: [],
|
||||
start_flag: false,
|
||||
end_flag: false,
|
||||
permission: {
|
||||
@@ -291,11 +328,14 @@ export default {
|
||||
form: {
|
||||
ticket_id: null,
|
||||
batch_number: null,
|
||||
bottle_weight: null,
|
||||
device_code: null,
|
||||
production_orders: null,
|
||||
production_materials: null,
|
||||
planned_quantity: null,
|
||||
bottle_number: null,
|
||||
templateList: [],
|
||||
templateList1: [],
|
||||
carton_number: null,
|
||||
carton_form: null,
|
||||
carton_qty: null,
|
||||
@@ -312,6 +352,7 @@ export default {
|
||||
form1: {
|
||||
ticket_id: null,
|
||||
batch_number: null,
|
||||
bottle_weight: null,
|
||||
device_code: null,
|
||||
production_orders: null,
|
||||
production_materials: null,
|
||||
@@ -382,6 +423,12 @@ export default {
|
||||
deviceCrud.selectDeviceList().then(data => {
|
||||
this.deviceList = data
|
||||
})
|
||||
template.getTemplateList().then(data => {
|
||||
this.templateList = data
|
||||
})
|
||||
template.getTemplateList1().then(data => {
|
||||
this.templateList1 = data
|
||||
})
|
||||
routeCurd.selectList().then(data => {
|
||||
this.routeList = data
|
||||
})
|
||||
@@ -403,6 +450,17 @@ export default {
|
||||
updateIsIce1() {
|
||||
this.form1.weight_ok = this.concatenatedValue1
|
||||
},
|
||||
// getTemplateList() {
|
||||
// console.log("111");
|
||||
// template.getTemplateList().then(data => {
|
||||
// this.templateList = data
|
||||
// })
|
||||
// },
|
||||
// getTemplateList1() {
|
||||
// template.getTemplateList1().then(data => {
|
||||
// this.templateList1 = data
|
||||
// })
|
||||
// },
|
||||
getMaterial(flag) {
|
||||
this.materialDialog = true
|
||||
this.flag = flag
|
||||
@@ -431,9 +489,10 @@ export default {
|
||||
this.form.production_materials=row.production_materials
|
||||
this.form.large_model=row.large_model
|
||||
this.form.small_model=row.small_model
|
||||
this.form.planned_quantity=row.weight
|
||||
this.form.planned_quantity=row.sum_qty
|
||||
this.form.bottle_number=row.bottle_number
|
||||
this.form.carton_number=row.carton_number
|
||||
this.form.carton_qty=row.carton_qty
|
||||
}
|
||||
},
|
||||
handleDateTimeChange() {
|
||||
@@ -513,6 +572,7 @@ export default {
|
||||
ticket_id: null,
|
||||
device_code: null,
|
||||
batch_number: null,
|
||||
bottle_weight: null,
|
||||
production_orders: null,
|
||||
production_materials: null,
|
||||
planned_quantity: null,
|
||||
@@ -527,6 +587,8 @@ export default {
|
||||
customer: null,
|
||||
is_ice: null,
|
||||
is_labeling: null,
|
||||
templateList: [],
|
||||
templateList1: [],
|
||||
weight_ok: null,
|
||||
ticket_status: null
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
v-model="templateId"
|
||||
filterable
|
||||
placeholder="请选择瓶盖模板"
|
||||
style="width: 150px;"
|
||||
style="width: 250px;"
|
||||
@change="getTemplateById"
|
||||
>
|
||||
<el-option
|
||||
@@ -50,11 +50,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
<el-select
|
||||
v-model="templateId"
|
||||
v-model="templateId1"
|
||||
filterable
|
||||
placeholder="请选择纸箱模板"
|
||||
style="width: 150px;"
|
||||
@change="getTemplateById"
|
||||
style="width: 250px;"
|
||||
@change="getTemplateById1"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in templateList1"
|
||||
@@ -286,6 +286,7 @@ export default {
|
||||
templateList1: [],
|
||||
ticketId: null,
|
||||
templateId: null,
|
||||
templateId1: null,
|
||||
templateLoading: false,
|
||||
curPaper: {
|
||||
type: 'A4',
|
||||
@@ -366,7 +367,7 @@ export default {
|
||||
duration: 0
|
||||
})
|
||||
}
|
||||
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/sendPrint/' + uuidv1()
|
||||
const wsUri = window.g.dev.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/sendPrint/' + uuidv1()
|
||||
this.websock = new WebSocket(wsUri)
|
||||
this.websock.onmessage = this.webSocketOnMessage
|
||||
},
|
||||
@@ -460,6 +461,17 @@ if (typeValue === 2){
|
||||
})
|
||||
// }
|
||||
},
|
||||
getTemplateById1() {
|
||||
// if (hiprintTemplate) {
|
||||
template.see(this.templateId1).then(res => {
|
||||
try {
|
||||
this.hiprintTemplate.update(JSON.parse(res.template))
|
||||
} catch (e) {
|
||||
this.$message.error(`更新失败: ${e}`)
|
||||
}
|
||||
})
|
||||
// }
|
||||
},
|
||||
|
||||
otherPaper() {
|
||||
this.hiprintTemplate.setPaper(this.paperWidth, this.paperHeight)
|
||||
|
||||
Reference in New Issue
Block a user