add:载具zpl打印

This commit is contained in:
zhaoyf
2026-07-08 10:45:29 +08:00
parent 0768a1c059
commit 8dd3726f68
5 changed files with 86 additions and 23 deletions

View File

@@ -127,17 +127,46 @@ public class ZplUtil {
} }
public static String generateVehicleLabel(VehicleLabelDto dto) { public static String generateVehicleLabel(VehicleLabelDto dto) {
StringBuilder zpl = new StringBuilder(); String zpl = "^XA\n" +
zpl.append("^XA\n"); "~TA000\n" +
zpl.append("^CI28\n"); "~JSN\n" +
zpl.append("^PW609\n"); "^LT0\n" +
zpl.append("^LL406\n"); "^MNW\n" +
zpl.append("^FO30,30^A0N,28,28^FD").append(escape(dto.getCode())).append("^FS\n"); "^MTT\n" +
zpl.append("^FO30,70^A0N,24,24^FD").append(escape(dto.getFactory())).append("^FS\n"); "^PON\n" +
zpl.append("^FO30,115^A0N,32,32^FD").append(escape(dto.getName())).append("^FS\n"); "^PMN\n" +
zpl.append("^FO350,20^BQN,2,5^FDQA,").append("#").append(escape(dto.getWorkshop())).append("^FS\n"); "^LH0,0\n" +
zpl.append("^XZ"); "^JMA\n" +
return zpl.toString(); "^PR6,6\n" +
"~SD10\n" +
"^JUS\n" +
"^LRN\n" +
"^CI27\n" +
"^PA0,1,1,0\n" +
"^XZ\n" +
"^XA\n" +
"^MMT\n" +
"^PW609\n" +
"^LL406\n" +
"^LS0\n" +
"^FO24,363^GB562,0,4^FS\n" +
"^FO21,54^GB562,0,4^FS\n" +
"^FO230,14^GFA,329,544,16,:Z64:eJyd0TuOwyAQBuBBI8VVdi+wCtdIGvtKKVMgJ5KLvZalFLkGiMLlIq20YBl5MhiEUm0RaPgE/MMD4I12AcBpzGMJcFbQDOy2uA+Hxk6huiVColgticSr9xrApv1f2SJcUj4vS96JO0UxbL6lzcJTlLqHMk/jsiqp1RFaufnmvJJbvizn8ZHrB+i77A+v0DioPvxd0bJVV883WKOrO/ZEDmLxaVX4ww7ZOHMemVfHZOHavH72PS7GYTaOC+fxPGr2lUgnL+Sax7rVcrNWzS+5z+9sHTCiJSfFmp88YBCD4bRYzJ0vdITzO5/5f3sCiQWikw==:C454\n" +
"^FO102,76^GFA,417,592,16,:Z64:eJyd0TFOAzEQBdC/cuEGxRdAzBXSkQKtr8IRUibSwvogKLkGVTAnyBHWERJtLKVxFCvDzCZQIoGrfePx2LMD/H2ZNEETrig+GGY0RXGrTuJg8gyQOE4+677h2rDEic/ZJILlsxrEm8cfZ5Lz7VTz3a6CcKeejT4UtHaFnrlqPvUZrVvBX936hAexObTQ/M5HPG3FH5uoRl/R7zeSf7lfYpl5dFG7zIn3b8EGXzSfo98d9xxdd3n/mez7kTlRvx7PJ5oY3fc8JHEiZnP8tJF4iPLGIg7LdB9vOvo2lswRHb2ozXo+2vP2FRGwQ6e9ab2CvJD/4dEnqVd9bYr0v5Y6o/tqio+eXFyK0Z2qyxQ7tnKfNn2oFF2YswkLqFN5hg1odT5unNoUJmCmX5N/TP/39QW3n9yf:64B3\n" +
"^FT82,170^A0N,31,28^FH\\^CI28^FD"+dto.getCode()+"^FS^CI27\n" +
"^FO19,224^GFA,301,336,12,:Z64:eJx9kD2OwjAQRseyhEu3KbLkCtkuhWGulBMQcg4uQoNkRLHNHoDSKMU2q1WkFFjCZPhc0MFO9TR6+uaH6HVpT6b35IBOn6KRsHCBCse3ZGS0h7FLrrpF0wdz8CxJn85w9Gq/nMDfYDTBnQicJ8/oK6FOktn57EsAs5xzjkQ4DKcP1sVyStWAWWFNtRvTR54b6nXZpIYFc7PZupbvEbHIrySqywimDVnwfVZbIsH6BFN9eXXFOQUPYqaohxnm589sj9Ee82Lqb8PUMiUcrH7Lhmqi4s1v/qsHtwmNMw==:30AA\n" +
"^FT139,251^A0N,37,28^FH\\^CI28^FD"+dto.getType()+"^FS^CI27\n" +
"^FO19,199^GB306,0,4^FS\n" +
"^FO321,58^GB0,308,4^FS\n" +
"^FT346,343^BQN,2,10\n" +
"^FH\\^FDLA,"+dto.getCode()+"^FS\n" +
"^FO133,199^GB0,167,4^FS\n" +
"^FO21,282^GB300,0,4^FS\n" +
"^FO24,309^GFA,237,336,12,:Z64:eJyF0DEOwjAMBVBHHbrRlaFKrtCxEo1yFY4QiSVM9GjhBFwhnKCRWDJYMnYqKAMID9bTVxLLAfheKnEb3jaEHYwAXiUvJjRULKGGqRpt7R2AVrNN4eXE1k1hm2ve8ofkZvHiS9xyFy0VswSxmT+8nin1TH2z2xtxdlHuavY5NzG41fckvmHPc2NqqRwIJ85hbJ2YN3EyMZwy+uqeHfEIsKsrN3H48TF/6gluuWYJ:47AC\n" +
"^FO189,309^GFA,269,336,12,:Z64:eJx90LENAjEMAEBHKWhe+pYC2SswgMWvRJkCwQJIrEMRCZiAFZ6KNlRxEb2xnxZwEZ0Sx04M8Dt2vmA9I5fZa6wTcTMP2lBbr5OZtA2aF+4tiB1l4EIqZqy5czco7qk/wk7MVNvB8wVeVzOZk/RaLAcRPibzBkAkvEa3F5fwGLFaaysyW+2uhNkHzdRSGCW6mXKKY4kP6Z5s+4t7iTd7MA8X6U/FuuOecRCKbt63FScOV/tkWiXgtPxMoPszne/xBtzogN4=:56C3\n" +
"^PQ1,0,1,Y\n" +
"^XZ\n";
return zpl;
} }
private static String escape(String s) { private static String escape(String s) {

View File

@@ -5,7 +5,6 @@ import lombok.Data;
@Data @Data
public class VehicleLabelDto { public class VehicleLabelDto {
private String code; private String code;
private String name; private String type;
private String factory; private String factory;
private String workshop;
} }

View File

@@ -16,10 +16,12 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.IdUtil; import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.ZplUtil;
import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
import org.nl.wms.basedata_manage.service.dto.VehicleLabelDto;
import org.nl.wms.system_manage.service.dict.ISysDictService; import org.nl.wms.system_manage.service.dict.ISysDictService;
import org.nl.wms.system_manage.service.dict.dao.Dict; import org.nl.wms.system_manage.service.dict.dao.Dict;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -157,7 +159,12 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
public void printLabel(Set<String> ids) { public void printLabel(Set<String> ids) {
List<MdPbStoragevehicleinfo> mdPbStoragevehicleinfos = mdPbStoragevehicleinfoMapper.selectBatchIds(ids); List<MdPbStoragevehicleinfo> mdPbStoragevehicleinfos = mdPbStoragevehicleinfoMapper.selectBatchIds(ids);
for (MdPbStoragevehicleinfo info : mdPbStoragevehicleinfos) { for (MdPbStoragevehicleinfo info : mdPbStoragevehicleinfos) {
VehicleLabelDto vehicleLabelDto = new VehicleLabelDto();
vehicleLabelDto.setCode(info.getStoragevehicle_code());
vehicleLabelDto.setType(info.getStoragevehicle_type());
vehicleLabelDto.setFactory("诺力五期");
String s = ZplUtil.generateVehicleLabel(vehicleLabelDto);
ZplUtil.print(s);
} }
} }

View File

@@ -52,7 +52,7 @@
type="success" type="success"
icon="el-icon-printer" icon="el-icon-printer"
size="mini" size="mini"
@click="printView" @click="handlePrint"
> >
打印 打印
</el-button> </el-button>
@@ -438,6 +438,26 @@ export default {
} }
this.printVisible = true this.printVisible = true
}, },
handlePrint() {
const _selectData = this.$refs.table.selection
if (!_selectData || _selectData.length < 1) {
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
return
}
const codes = _selectData.map(item => item.storagevehicle_code).join('\n')
const ids = _selectData.map(item => item.storagevehicle_id)
this.$confirm(`确认打印以下载具编码?\n${codes}`, '打印确认', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
crudStoragevehicleinfo.printLabel(ids).then(res=>{
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
this.crud.toQuery()
}).catch(() => {})
},
printClose() { printClose() {
this.printVisible = false this.printVisible = false
this.printForm = { this.printForm = {

View File

@@ -39,4 +39,12 @@ export function getVehicle(code) {
}) })
} }
export default { add, edit, del, changeActive, getVehicle } export function printLabel(ids){
return request({
url: '/api/storagevehicleinfo/printLabel',
method: 'post',
data: ids
})
}
export default { add, edit, del, changeActive, getVehicle, printLabel }