|
|
|
@ -6,6 +6,7 @@ import cn.hutool.json.JSONString;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import com.foreverwin.mesnac.common.constant.Constants;
|
|
|
|
|
import com.foreverwin.mesnac.common.dto.LabelPrintDto;
|
|
|
|
|
import com.foreverwin.mesnac.common.model.PrintLog;
|
|
|
|
@ -60,52 +61,38 @@ public class PrintLogServiceImpl extends ServiceImpl<PrintLogMapper, PrintLog> i
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void labelPrint(String site, String user, List<PrintLog> printList) {
|
|
|
|
|
List<LabelPrintDto> labelPrintDtoList = new ArrayList<>();
|
|
|
|
|
StringBuffer stringBuffer = new StringBuffer("");
|
|
|
|
|
// 获取printParam,并拼接为json格式字符串
|
|
|
|
|
StringBuffer stringBuffer = new StringBuffer("[");
|
|
|
|
|
for (PrintLog printLog : printList) {
|
|
|
|
|
LabelPrintDto labelPrintDto = new LabelPrintDto();
|
|
|
|
|
// 打印机名称、打印模板
|
|
|
|
|
labelPrintDto.setPrinter(printLog.getPrintName());
|
|
|
|
|
labelPrintDto.setPrintTemplate(printLog.getPrintTemplate());
|
|
|
|
|
// {"ITEM":"500100010001","INVENTORY":"500100010001*20210721","ITEM_DESC":"测试物料","SUPPLIER":"BA002"}
|
|
|
|
|
// 打印参数:物料编号、物料描述、供应商、批次号
|
|
|
|
|
String printParam = printLog.getPrintParam();
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(printParam);
|
|
|
|
|
String item = jsonObject.getString("ITEM");
|
|
|
|
|
String item_desc = jsonObject.getString("ITEM_DESC");
|
|
|
|
|
String supplier = jsonObject.getString("SUPPLIER");
|
|
|
|
|
String inventory = jsonObject.getString("INVENTORY");
|
|
|
|
|
labelPrintDto.setItem(item);
|
|
|
|
|
labelPrintDto.setItemDescription(item_desc);
|
|
|
|
|
labelPrintDto.setSupplier(supplier);
|
|
|
|
|
labelPrintDto.setBatch(inventory);
|
|
|
|
|
/*
|
|
|
|
|
labelPrintDto.setItem(printLog.getItem());
|
|
|
|
|
labelPrintDto.setItemDescription(printLog.getItemDescription());*/
|
|
|
|
|
labelPrintDtoList.add(labelPrintDto);
|
|
|
|
|
stringBuffer.append(printParam).append(",");
|
|
|
|
|
stringBuffer.append(printParam.replace("[","").replace("]","")).append(",");
|
|
|
|
|
}
|
|
|
|
|
String jsonList = JSON.toJSONString(labelPrintDtoList);
|
|
|
|
|
String post = HttpUtil.post(printServer, JSON.toJSONString(labelPrintDtoList), 30000);
|
|
|
|
|
StringBuffer append = stringBuffer.deleteCharAt(stringBuffer.length() - 1).append("]");
|
|
|
|
|
List<LabelPrintDto> list= JSONArray.parseArray(append.toString(), LabelPrintDto.class);
|
|
|
|
|
// 打印机、打印模板
|
|
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
list.get(i).setPrinter(printList.get(i).getPrintName());
|
|
|
|
|
list.get(i).setPrintTemplate(printList.get(i).getPrintTemplate());
|
|
|
|
|
}
|
|
|
|
|
String post = HttpUtil.post(printServer, JSON.toJSONString(list), 60000);
|
|
|
|
|
/**
|
|
|
|
|
* {"msg":"打印成功","code":0}
|
|
|
|
|
* {"msg":"打印失败","code":500}
|
|
|
|
|
* 根据返回值,更新打印机信息-printName及打印是否成功信息isPrint
|
|
|
|
|
*/
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(post);
|
|
|
|
|
String code = jsonObject.getString("code");
|
|
|
|
|
if (code == null){
|
|
|
|
|
|
|
|
|
|
Integer code = jsonObject.getInteger("code");
|
|
|
|
|
String msg = jsonObject.getString("msg");
|
|
|
|
|
if (code == 500){
|
|
|
|
|
throw BusinessException.build(msg);
|
|
|
|
|
}
|
|
|
|
|
// 更新打印记录:是否已打印、使用的打印机、打印次数
|
|
|
|
|
List<PrintLog> printLogList = new ArrayList<>();
|
|
|
|
|
if (post.indexOf("500") != -1){
|
|
|
|
|
throw BusinessException.build("打印失败!");
|
|
|
|
|
}
|
|
|
|
|
for (PrintLog printLog : printList) {
|
|
|
|
|
PrintLog printLogOne = new PrintLog();
|
|
|
|
|
printLogOne.setHandle(printLog.getHandle());
|
|
|
|
|
printLogOne.setIsPrint("true");
|
|
|
|
|
// 更新日志
|
|
|
|
|
printLogOne.setPrintNum(printLog.getPrintNum()+1);
|
|
|
|
|
if (printLog.getCategory().equals(Constants.PRINT_TYPE_INV)){
|
|
|
|
|
printLogOne.setPrintName(printLog.getPrintName());
|
|
|
|
|
}
|
|
|
|
|