rev:手持更新
This commit is contained in:
@@ -116,7 +116,6 @@ public class BsrealStorattrServiceImpl extends ServiceImpl<BsrealStorattrMapper,
|
||||
dto.setUpdate_time(now);
|
||||
dto.setCreate_time(now);
|
||||
|
||||
//TODO
|
||||
dto.setSyscompanyid(9L);
|
||||
dto.setSysdeptid(9L);
|
||||
dto.setSysownerid(9L);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.ext.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.ext.service.AcsToWmsService;
|
||||
@@ -30,8 +31,15 @@ public class AcsToWmsController {
|
||||
@PostMapping("/status")
|
||||
@Log(value = "ACS给WMS反馈任务状态")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> receiveTaskStatusAcs(@RequestBody String string) {
|
||||
return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK);
|
||||
public ResponseEntity<Object> receiveTaskStatusAcs(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/resultCar")
|
||||
@Log(value = "ACS给WMS反馈车号")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> resultCar(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.resultCar(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,4 +21,14 @@ public class EXTConstant {
|
||||
* ACS下发任务接口地址
|
||||
*/
|
||||
public final static String SEND_TASK_ACS_API = "api/wms/task";
|
||||
|
||||
/**
|
||||
* ACS下发 取放货确认
|
||||
*/
|
||||
public final static String CONFIRM_AGV_ACS_API = "api/wms/confirmAgv";
|
||||
|
||||
/**
|
||||
* ACS下发 获取称重信息
|
||||
*/
|
||||
public final static String GET_WEIGH_ACS_API = "api/wms/getWeigh";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package org.nl.wms.ext.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.ext.util.BaseResponse;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -16,8 +19,20 @@ public interface AcsToWmsService {
|
||||
* ACS客户端--->WMS服务端
|
||||
* ACS向WMS反馈任务状态
|
||||
*
|
||||
* @param string ACS反馈的任务数组
|
||||
* @return Map<String, Object>
|
||||
* @param whereJson ACS反馈的任务数组
|
||||
* @return BaseResponse
|
||||
*/
|
||||
Map<String, Object> receiveTaskStatusAcs(String string);
|
||||
BaseResponse receiveTaskStatusAcs(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* ACS客户端--->WMS服务端
|
||||
* ACS给WMS反馈车号
|
||||
* @param whereJson {
|
||||
* task_id: 任务标识
|
||||
* task_code: 任务编码
|
||||
* car_no: 车号
|
||||
* }
|
||||
* @return BaseResponse
|
||||
*/
|
||||
BaseResponse resultCar(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -30,4 +30,14 @@ public interface WmsToAcsService {
|
||||
* @return AcsResponse
|
||||
*/
|
||||
AcsResponse getWeighAcs(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 确认取放货
|
||||
* @param whereJson {
|
||||
* task_type: 1-取货确认 2- 放货确认
|
||||
* task_code: 任务号
|
||||
* }
|
||||
* @return AcsResponse
|
||||
*/
|
||||
AcsResponse confirmAgv(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package org.nl.wms.ext.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext.enums.ResultAcsStatus;
|
||||
import org.nl.wms.ext.service.AcsToWmsService;
|
||||
import org.nl.wms.ext.util.BaseResponse;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
@@ -15,11 +16,9 @@ import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
@@ -55,52 +54,77 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
public Map<String, Object> receiveTaskStatusAcs(String string) {
|
||||
log.info("acs向lms反馈任务状态,请求参数:--------------------------------------" + string);
|
||||
JSONArray array = JSONArray.parseArray(string);
|
||||
//返回处理失败的任务
|
||||
JSONArray errArr = new JSONArray();
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
JSONObject row = array.getJSONObject(i);
|
||||
String task_id = row.getString("task_id");
|
||||
RLock lock = redissonClient.getLock(task_id);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
SchBaseTask taskObj = iSchBaseTaskService.getById(task_id);
|
||||
// acs反馈的任务类型
|
||||
String acs_task_status = row.getString("task_status");
|
||||
TaskStatus status;
|
||||
if (ResultAcsStatus.EXECUTING.getCode().equals(acs_task_status)) {
|
||||
// 执行中
|
||||
status = TaskStatus.EXECUTING;
|
||||
} else if (ResultAcsStatus.FINISHED.getCode().equals(acs_task_status)) {
|
||||
// 完成
|
||||
status = TaskStatus.FINISHED;
|
||||
iSchBaseTaskService.updateById(taskObj);
|
||||
} else {
|
||||
// 取消
|
||||
status = TaskStatus.CANCELED;
|
||||
}
|
||||
// 根据配置编码执行相关配置内的方法
|
||||
AbstractTask task = taskFactory.getTask(taskObj.getConfig_code());
|
||||
task.updateTaskStatus(taskObj.getTask_code(),status);
|
||||
public BaseResponse receiveTaskStatusAcs(JSONObject whereJson) {
|
||||
log.info("acs向lms反馈任务状态,请求参数:--------------------------------------" + whereJson.toString());
|
||||
// 任务标识
|
||||
String task_id = whereJson.getString("task_id");
|
||||
// acs反馈的任务类型
|
||||
String acs_task_status = whereJson.getString("task_status");
|
||||
|
||||
RLock lock = redissonClient.getLock(task_id);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
|
||||
try {
|
||||
if (tryLock) {
|
||||
SchBaseTask taskObj = iSchBaseTaskService.getById(task_id);
|
||||
|
||||
TaskStatus status;
|
||||
if (ResultAcsStatus.EXECUTING.getCode().equals(acs_task_status)) {
|
||||
// 执行中
|
||||
status = TaskStatus.EXECUTING;
|
||||
// 更新车号
|
||||
} else if (ResultAcsStatus.FINISHED.getCode().equals(acs_task_status)) {
|
||||
// 完成
|
||||
status = TaskStatus.FINISHED;
|
||||
} else {
|
||||
throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
// 取消
|
||||
status = TaskStatus.CANCELED;
|
||||
}
|
||||
// 根据配置编码执行相关配置内的方法
|
||||
AbstractTask task = taskFactory.getTask(taskObj.getConfig_code());
|
||||
task.updateTaskStatus(taskObj.getTask_code(), status);
|
||||
|
||||
} else {
|
||||
throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "任务状态反馈成功!");
|
||||
result.put("data", new JSONObject());
|
||||
result.put("errArr", errArr);
|
||||
log.info("acs向lms反馈任务状态,返回参数:--------------------------------------" + result.toString());
|
||||
return result;
|
||||
|
||||
log.info("acs向lms反馈任务状态,返回参数:--------------------------------------" + BaseResponse.responseOk().toString());
|
||||
return BaseResponse.responseOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
public BaseResponse resultCar(JSONObject whereJson) {
|
||||
log.info("acs向lms反馈任务车号,请求参数:--------------------------------------" + whereJson.toString());
|
||||
// 任务标识
|
||||
String task_id = whereJson.getString("task_id");
|
||||
// 车号
|
||||
String car_no = whereJson.getString("car_no");
|
||||
if (ObjectUtil.isEmpty(car_no)) {
|
||||
throw new BadRequestException("车号不能为空!");
|
||||
}
|
||||
|
||||
RLock lock = redissonClient.getLock(task_id);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
SchBaseTask taskObj = iSchBaseTaskService.getById(task_id);
|
||||
taskObj.setCar_no(car_no);
|
||||
iSchBaseTaskService.updateById(taskObj);
|
||||
} else {
|
||||
throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
return BaseResponse.responseOk();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
|
||||
@Override
|
||||
public AcsResponse getWeighAcs(JSONObject whereJson) {
|
||||
return null;
|
||||
return AcsUtil.notifyAcs(EXTConstant.GET_WEIGH_ACS_API, whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AcsResponse confirmAgv(JSONObject whereJson) {
|
||||
return AcsUtil.notifyAcs(EXTConstant.CONFIRM_AGV_ACS_API, whereJson);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,4 +80,51 @@ public class AcsUtil {
|
||||
return resultAcs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用acs
|
||||
* @param api acs地址
|
||||
* @param param 下发参数
|
||||
* @return AcsResponse
|
||||
*/
|
||||
public static AcsResponse notifyAcs(String api, JSONObject param) {
|
||||
log.info("下发acs接口"+api+"的输入参数为:-------------------" + param.toString());
|
||||
|
||||
// 返回参数
|
||||
AcsResponse resultAcs;
|
||||
// 系统参数类
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
//判断是否连接ACS系统
|
||||
Param isConnectAcs = sysParamService.findByCode(SysParamConstant.IS_CONNECT_ACS);
|
||||
if (ObjectUtil.isEmpty(isConnectAcs)) {
|
||||
return AcsResponse.requestError("系统参数表中:" + SysParamConstant.IS_CONNECT_ACS + "不存在");
|
||||
}
|
||||
if (isConnectAcs.getValue().equals(IOSConstant.IS_DELETE_NO)) {
|
||||
return AcsResponse.requestOkMessage("下发成功,未连接ACS系统!");
|
||||
}
|
||||
|
||||
//ACS地址
|
||||
Param acsUrlParam = sysParamService.findByCode(SysParamConstant.ACS_URL);
|
||||
if (ObjectUtil.isEmpty(acsUrlParam)) {
|
||||
return AcsResponse.requestError("系统参数表中:" + SysParamConstant.ACS_URL + "不存在");
|
||||
}
|
||||
|
||||
String url = acsUrlParam.getValue() + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.execute().body();
|
||||
// 格式转换
|
||||
JSONObject result = JSONObject.parseObject(resultMsg);
|
||||
resultAcs = JSONObject.toJavaObject(result, AcsResponse.class);
|
||||
|
||||
log.info("下发ACS任务的输出参数为:-------------------" + resultMsg);
|
||||
} catch (Exception e) {
|
||||
//网络不通
|
||||
String msg = e.getMessage();
|
||||
log.error("连接失败:{}", msg);
|
||||
return AcsResponse.requestError("网络不通,操作失败!");
|
||||
}
|
||||
return resultAcs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -56,9 +56,8 @@ public class BaseResponse implements Serializable {
|
||||
return response;
|
||||
}
|
||||
|
||||
public static BaseResponse responseOk(String requestNo) {
|
||||
public static BaseResponse responseOk() {
|
||||
BaseResponse response = new BaseResponse();
|
||||
response.setRequestNo(requestNo);
|
||||
response.setStatus(HttpStatus.HTTP_OK);
|
||||
response.setMessage("请求成功");
|
||||
response.setResponseDate(DateUtil.now());
|
||||
@@ -84,9 +83,8 @@ public class BaseResponse implements Serializable {
|
||||
return response;
|
||||
}
|
||||
|
||||
public static BaseResponse responseError(String requestNo, String message) {
|
||||
public static BaseResponse responseError(String message) {
|
||||
BaseResponse response = new BaseResponse();
|
||||
response.setRequestNo(requestNo);
|
||||
response.setStatus(HttpStatus.HTTP_BAD_REQUEST);
|
||||
response.setMessage(message);
|
||||
response.setResponseDate(DateUtil.now());
|
||||
|
||||
@@ -78,7 +78,7 @@ public class PdaInGroupBoxServiceImpl implements PdaInGroupBoxService {
|
||||
// 物料编码
|
||||
String mater_code = split[0];
|
||||
// 烘干次数
|
||||
String bake_num = split[10];
|
||||
String bake_num = split[7];
|
||||
// 校验物料
|
||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(groupDao.getMaterial_id());
|
||||
if (!materDao.getMaterial_code().equals(mater_code)) {
|
||||
|
||||
@@ -101,10 +101,15 @@ public class PdmBomCallMaterialDtlServiceImpl extends ServiceImpl<PdmBomCallMate
|
||||
throw new BadRequestException("请维护当前载具重量【" + pointDao.getVehicle_code() + "】");
|
||||
}
|
||||
|
||||
// TODO 调用ACS接口获取称重信息
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(new JSONObject());
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 调用ACS接口获取称重信息
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("device_code", pointDao.getPoint_code());
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(jsonParam);
|
||||
if (weighAcs.getStatus() != 200) {
|
||||
throw new BadRequestException(weighAcs.getMessage());
|
||||
}
|
||||
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 称重重量
|
||||
double weigh_qty = NumberUtil.round(jsonResult.getDoubleValue("weigh_qty"), 2).doubleValue();
|
||||
// 扣除载具重量
|
||||
|
||||
@@ -14,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.ext.service.WmsToAcsService;
|
||||
import org.nl.wms.ext.service.util.AcsResponse;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
@@ -48,6 +50,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
@Autowired
|
||||
private SchBaseRegionMapper regionMapper;
|
||||
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBasePoint> queryAll(SchBasePointQuery whereJson, PageQuery page) {
|
||||
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
@@ -204,19 +209,42 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
@Transactional
|
||||
public void getConfirm(JSONObject whereJson) {
|
||||
SchBasePoint pointDao = this.getById(whereJson.getString("point_code"));
|
||||
if (ObjectUtil.isEmpty(pointDao.getIng_task_code())) {
|
||||
throw new BadRequestException("当前站点没有任务【"+pointDao.getPoint_code()+"】");
|
||||
}
|
||||
|
||||
// 通知ACS可以离开
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("task_type", IOSConstant.ONE);
|
||||
jsonParam.put("task_code", pointDao.getIng_task_code());
|
||||
AcsResponse acsResponse = wmsToAcsService.confirmAgv(jsonParam);
|
||||
if (acsResponse.getStatus() != 200) {
|
||||
throw new BadRequestException(acsResponse.getMessage());
|
||||
}
|
||||
|
||||
// 清空点位信息
|
||||
pointDao.setVehicle_code("");
|
||||
pointDao.setPoint_status(IOSEnum.POINT_STATUS.code("空位"));
|
||||
pointDao.setIng_task_code("");
|
||||
this.updateById(pointDao);
|
||||
// TODO 通知ACS可以离开
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void putConfirm(JSONObject whereJson) {
|
||||
SchBasePoint pointDao = this.getById(whereJson.getString("point_code"));
|
||||
// TODO 通知ACS可以离开
|
||||
if (ObjectUtil.isEmpty(pointDao.getIng_task_code())) {
|
||||
throw new BadRequestException("当前站点没有任务【"+pointDao.getPoint_code()+"】");
|
||||
}
|
||||
|
||||
// 通知ACS可以离开
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("task_type", IOSConstant.TWO);
|
||||
jsonParam.put("task_code", pointDao.getIng_task_code());
|
||||
AcsResponse acsResponse = wmsToAcsService.confirmAgv(jsonParam);
|
||||
if (acsResponse.getStatus() != 200) {
|
||||
throw new BadRequestException(acsResponse.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,10 +25,14 @@
|
||||
late.*,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
mater.material_spec
|
||||
mater.material_spec,
|
||||
mater.material_model,
|
||||
mater.quality_time AS quality_time_day,
|
||||
supp.supp_name
|
||||
FROM
|
||||
md_pb_groupplate late
|
||||
INNER JOIN md_me_materialbase mater ON mater.material_id = late.material_id
|
||||
INNER JOIN md_cs_supplierbase supp ON supp.supp_code = late.supp_code
|
||||
<where>
|
||||
1 = 1
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
|
||||
@@ -138,10 +138,15 @@ public class SelectOutServiceImpl extends ServiceImpl<IOStorInvDtlMapper, IOStor
|
||||
throw new BadRequestException("请维护当前载具重量【" + pointDao.getVehicle_code() + "】");
|
||||
}
|
||||
|
||||
// TODO 调用ACS接口获取称重信息
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(new JSONObject());
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 调用ACS接口获取称重信息
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("device_code", pointDao.getPoint_code());
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(jsonParam);
|
||||
if (weighAcs.getStatus() != 200) {
|
||||
throw new BadRequestException(weighAcs.getMessage());
|
||||
}
|
||||
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 称重重量
|
||||
double weigh_qty = NumberUtil.round(jsonResult.getDoubleValue("weigh_qty"), 2).doubleValue();
|
||||
// 扣除载具重量
|
||||
|
||||
@@ -185,10 +185,15 @@ public class StIvtCombinedBoxServiceImpl extends ServiceImpl<StIvtCombinedBoxMap
|
||||
throw new BadRequestException("请维护当前载具重量【" + pointDao.getVehicle_code() + "】");
|
||||
}
|
||||
|
||||
// TODO 调用ACS接口获取称重信息
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(new JSONObject());
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 调用ACS接口获取称重信息
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("device_code", pointDao.getPoint_code());
|
||||
AcsResponse weighAcs = wmsToAcsService.getWeighAcs(jsonParam);
|
||||
if (weighAcs.getStatus() != 200) {
|
||||
throw new BadRequestException(weighAcs.getMessage());
|
||||
}
|
||||
|
||||
JSONObject jsonResult = weighAcs.getResultData();
|
||||
// 称重重量
|
||||
double weigh_qty = NumberUtil.round(jsonResult.getDoubleValue("weigh_qty"), 2).doubleValue();
|
||||
// 扣除载具重量
|
||||
|
||||
@@ -403,13 +403,27 @@ export default {
|
||||
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
|
||||
// 打印纸张大小设置https://www.it610.com/article/2094844.html
|
||||
LODOP.PRINT_INIT('')
|
||||
LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '')
|
||||
LODOP.ADD_PRINT_RECT('1mm', '3mm', '74mm', '54mm', 0, 1)
|
||||
LODOP.SET_PRINT_STYLE('FontSize', 9)
|
||||
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '80mm', '')
|
||||
LODOP.ADD_PRINT_RECT('1mm', '3mm', '94mm', '74mm', 0, 1)
|
||||
LODOP.SET_PRINT_STYLE('FontSize', 11)
|
||||
LODOP.SET_PRINT_STYLE('Bold', 1)
|
||||
LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '60mm', '20mm', 'QRCode', row.material_name)
|
||||
LODOP.ADD_PRINT_TEXT('35mm', '15mm', '80mm', '15mm', '备件名称:' + row.material_name + '')
|
||||
LODOP.ADD_PRINT_TEXT('45mm', '15mm', '80mm', '15mm', '型号:' + row.material_spec + '')
|
||||
LODOP.ADD_PRINT_BARCODE('5mm', '5mm', '40mm', '40mm', 'QRCode', row.material_code + '##' + row.material_name + '##' +
|
||||
row.material_spec + '##' + row.material_model + '##' + row.quality_time_day + '##' + row.produce_time + '##' +
|
||||
row.supp_name + '##' + row.bake_num + '##' + row.supp_code + '##' + row.pcsn + '##' + row.execution_stand
|
||||
)
|
||||
LODOP.ADD_PRINT_TEXT('7mm', '48mm', '80mm', '15mm', '物料编码:' + row.material_code + '')
|
||||
LODOP.ADD_PRINT_TEXT('16mm', '48mm', '80mm', '15mm', '物料名称:' + row.material_name + '')
|
||||
LODOP.ADD_PRINT_TEXT('25mm', '48mm', '80mm', '15mm', '规格:' + row.material_spec + '')
|
||||
LODOP.ADD_PRINT_TEXT('34mm', '48mm', '80mm', '15mm', '型号:' + row.material_model + '')
|
||||
LODOP.ADD_PRINT_TEXT('43mm', '48mm', '80mm', '15mm', '有效期(天):' + row.quality_time_day + '')
|
||||
LODOP.ADD_PRINT_TEXT('52mm', '48mm', '80mm', '15mm', '生产日期:' + row.produce_time + '')
|
||||
LODOP.ADD_PRINT_TEXT('61mm', '48mm', '80mm', '15mm', '供应商名称:' + row.supp_name + '')
|
||||
|
||||
LODOP.ADD_PRINT_TEXT('43mm', '5mm', '80mm', '15mm', '烘干次数:' + row.bake_num + '')
|
||||
LODOP.ADD_PRINT_TEXT('52mm', '5mm', '80mm', '15mm', '供应商编码:' + row.supp_code + '')
|
||||
LODOP.ADD_PRINT_TEXT('61mm', '5mm', '80mm', '15mm', '批号:' + row.pcsn + '')
|
||||
LODOP.ADD_PRINT_TEXT('69mm', '5mm', '80mm', '15mm', '执行标准:' + row.execution_stand + '')
|
||||
|
||||
// LODOP.PRINT()// 打印
|
||||
LODOP.PREVIEW()// 预览
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user