fix: 问题修复,添加打印,托盘显示等功能
This commit is contained in:
@@ -373,10 +373,8 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(String[] ids) throws SQLException {
|
||||
for (String line_uuid : ids) {
|
||||
this.removeById(line_uuid);
|
||||
}
|
||||
reload();
|
||||
routeLineMapper.deleteBatchIds(Arrays.asList(ids));
|
||||
//reload();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -427,14 +425,14 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
||||
List<RouteLine> routeLineList= new LambdaQueryChainWrapper<>(routeLineMapper)
|
||||
.eq(RouteLine::getRoute_plan_id,route_plan_id)
|
||||
.list();
|
||||
JSONArray route = JSONArray.parseArray(JSON.toJSONString(routeLineList));
|
||||
Map n[][] = new HashMap[size][size];
|
||||
//建二维数组
|
||||
for (int i = 0; i < route.size(); i++) {
|
||||
JSONObject jo = (JSONObject) route.get(i);
|
||||
String start = jo.getString("device_code");
|
||||
String end = jo.getString("next_device_code");
|
||||
if (ObjectUtil.isEmpty(map.get(start)) || ObjectUtil.isEmpty(map.get(end))) {//如果路由中的设备号在设备列表中找不到就跳过
|
||||
for (int i = 0; i < routeLineList.size(); i++) {
|
||||
RouteLine routeLine = routeLineList.get(i);
|
||||
String start = routeLine.getDevice_code();
|
||||
String end = routeLine.getNext_device_code();
|
||||
if (ObjectUtil.isEmpty(map.get(start)) || ObjectUtil.isEmpty(map.get(end))) {
|
||||
//如果路由中的设备号在设备列表中找不到就跳过
|
||||
continue;
|
||||
}
|
||||
Integer s = Integer.valueOf(map.get(start));
|
||||
@@ -442,10 +440,10 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
||||
HashMap<String, String> smap = new HashMap<>();
|
||||
smap.put("device_code", start);
|
||||
smap.put("next_device_code", end);
|
||||
smap.put("type", jo.getString("type"));
|
||||
smap.put("type", routeLine.getType());
|
||||
smap.put("path", start + "->" + end);
|
||||
smap.put("weights", jo.getString("weights"));
|
||||
smap.put("route_plan_id", jo.getString("route_plan_id"));
|
||||
smap.put("weights", routeLine.getWeights());
|
||||
smap.put("route_plan_id", routeLine.getRoute_plan_id());
|
||||
n[s][e] = smap;
|
||||
}
|
||||
//对数组使用Floyd(弗洛伊德)算法,求出任意两个设备之间的最短距离,不通则为null
|
||||
|
||||
@@ -108,6 +108,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISysParamService sysParamService;
|
||||
|
||||
private long lastTime;
|
||||
|
||||
private long milliseconds = 3000;
|
||||
|
||||
/**
|
||||
* 初始化反射方法
|
||||
*/
|
||||
@@ -504,75 +508,74 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
*/
|
||||
private void requestPickup(SchBaseTask schBaseTask, String status, String is_connector) {
|
||||
if ("1".equals(is_connector)) {
|
||||
//反馈connector申请取货
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
json.put("status", status);
|
||||
json.put("device_code", schBaseTask.getPoint_code1());
|
||||
json.put("task_code", schBaseTask.getTask_code());
|
||||
if (schBaseTask.getPoint_code1().endsWith("1")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("1", "2");
|
||||
SchBaseTask schBaseTask1 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask1)) {
|
||||
schBaseTask1.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask1);
|
||||
}
|
||||
} else if (schBaseTask.getPoint_code1().endsWith("3")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("3", "4");
|
||||
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask2)) {
|
||||
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask2);
|
||||
}
|
||||
} else if (schBaseTask.getPoint_code1().endsWith("5")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("5", "6");
|
||||
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask2)) {
|
||||
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask2);
|
||||
}
|
||||
}
|
||||
boolean flag = true;
|
||||
String jobName = null;
|
||||
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, schBaseTask.getVehicle_code()));
|
||||
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json);
|
||||
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) {
|
||||
JSONArray objects = JSONObject.parseArray(acsResponse.getData());
|
||||
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class);
|
||||
for (ConnectorDto connectorDto : connectorDtos) {
|
||||
if (schBaseTask.getVehicle_code().equals(connectorDto.getVehicle_code())) {
|
||||
//TODO:载具号不同
|
||||
long time = System.currentTimeMillis();
|
||||
if (time - lastTime > milliseconds) {
|
||||
lastTime = System.currentTimeMillis();
|
||||
//反馈connector申请取货
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
json.put("status", status);
|
||||
json.put("device_code", schBaseTask.getPoint_code1());
|
||||
json.put("task_code", schBaseTask.getTask_code());
|
||||
if (schBaseTask.getPoint_code1().endsWith("1")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("1", "2");
|
||||
SchBaseTask schBaseTask1 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask1)) {
|
||||
schBaseTask1.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask1);
|
||||
}
|
||||
MdBaseMaterial mdBaseMaterial = iMdBaseMaterialService.getOne(Wrappers.lambdaQuery(MdBaseMaterial.class)
|
||||
.eq(MdBaseMaterial::getMaterial_code, connectorDto.getProductID()));
|
||||
if (ObjectUtil.isEmpty(mdBaseMaterial)) {
|
||||
//TODO:物料不存在
|
||||
} else if (schBaseTask.getPoint_code1().endsWith("3")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("3", "4");
|
||||
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask2)) {
|
||||
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask2);
|
||||
}
|
||||
connectorDto.setCreate_name("Connector");
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto);
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
if ("Y".equals(connectorDto.getFinished())) {
|
||||
jobName = connectorDto.getJobname();
|
||||
} else if (schBaseTask.getPoint_code1().endsWith("5")) {
|
||||
String replace = schBaseTask.getPoint_code1().replace("5", "6");
|
||||
SchBaseTask schBaseTask2 = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code1, replace)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.TIMEOUT.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask2)) {
|
||||
schBaseTask2.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.update(schBaseTask2);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotEmpty(jobName)) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("cJobName", jobName);
|
||||
try {
|
||||
sortingService.applyFinishJobName(jsonObject);
|
||||
} catch (Exception e) {
|
||||
log.info("wms反馈sorting->JobName完成,失败{}", e.getMessage());
|
||||
boolean flag = true;
|
||||
String jobName = null;
|
||||
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, schBaseTask.getVehicle_code()));
|
||||
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json);
|
||||
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) {
|
||||
JSONArray objects = JSONObject.parseArray(acsResponse.getData());
|
||||
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class);
|
||||
for (ConnectorDto connectorDto : connectorDtos) {
|
||||
connectorDto.setCreate_name("Connector");
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto);
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
if ("Y".equals(connectorDto.getFinished())) {
|
||||
jobName = connectorDto.getJobname();
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotEmpty(jobName)) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("cJobName", jobName);
|
||||
try {
|
||||
sortingService.applyFinishJobName(jsonObject);
|
||||
} catch (Exception e) {
|
||||
log.info("wms反馈sorting->JobName完成,失败{}", e.getMessage());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new BadRequestException("LMS向Connector请求取货");
|
||||
}
|
||||
} else {
|
||||
throw new BadRequestException("LMS向Connector请求取货");
|
||||
log.info("请求connector取货间隔小于3秒,忽略");
|
||||
throw new BadRequestException("请求connector取货间隔小于3秒,忽略");
|
||||
}
|
||||
}
|
||||
if ("2".equals(is_connector)) {
|
||||
|
||||
@@ -103,4 +103,9 @@ public class ConnectorDto {
|
||||
private String priority;
|
||||
|
||||
private String create_name;
|
||||
|
||||
/**
|
||||
* 托盘物料图片
|
||||
*/
|
||||
private String png_palletpath;
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ public class FabController {
|
||||
if (CollUtil.isEmpty(deviceCodes) && StrUtil.isEmpty(sendVehicleVo.getVehicle_code())) {
|
||||
throw new BadRequestException("请输入设备号或载具号!");
|
||||
}
|
||||
List<String> list = null;
|
||||
List<Map> list = null;
|
||||
if (StrUtil.isNotEmpty(sendVehicleVo.getVehicle_code())) {
|
||||
deviceCodes = new ArrayList<>();
|
||||
deviceCodes.add(sendVehicleVo.getVehicle_code());
|
||||
@@ -318,17 +318,21 @@ public class FabController {
|
||||
);
|
||||
list = iSchBaseVehiclematerialgroupService.selectOrdersByVehicleCode(vehicleCodes);
|
||||
}
|
||||
HashSet<String> keys = new HashSet<>();
|
||||
HashSet<Map> keys = new HashSet<>();
|
||||
list.stream().forEach(item -> {
|
||||
keys.add(item);
|
||||
keys.add(MapOf.of("order_code", item.get("order_code"), "material_id", item.get("material_id")));
|
||||
});
|
||||
List<JSONObject> jsonObjectList = new ArrayList<>();
|
||||
keys.stream().forEach(item -> {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("order_code", item);
|
||||
jsonObject.put("order_code", item.get("order_code"));
|
||||
jsonObject.put("material_id", item.get("material_id"));
|
||||
jsonObjectList.add(jsonObject);
|
||||
});
|
||||
return new ResponseEntity(jsonObjectList, HttpStatus.OK);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("material", jsonObjectList);
|
||||
jsonObject.put("path", CollUtil.isNotEmpty(list) ? list.get(0).get("vehicle_path") : "");
|
||||
return new ResponseEntity(jsonObject, HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -144,8 +144,13 @@ public class HandheldController {
|
||||
@GetMapping("/createPointInPointTask")
|
||||
@Log("创建点对点任务")
|
||||
public ResponseEntity<Object> createPointTask(String regionCode) {
|
||||
return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode),HttpStatus.OK);
|
||||
return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/selectMaterialAndJpg")
|
||||
@Log("查询托盘物料信息")
|
||||
public ResponseEntity<Object> selectMaterialAndJpg(String pointCode) {
|
||||
return new ResponseEntity<>(handheldService.selectMaterialAndJpg(pointCode), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -113,4 +113,11 @@ public interface HandheldService {
|
||||
* @return
|
||||
*/
|
||||
List<JSONObject> selectPointByRegion(String regionCode);
|
||||
|
||||
/**
|
||||
* 根据当前点位的托盘号查询物料信息
|
||||
* @param pointCode
|
||||
* @return
|
||||
*/
|
||||
JSONObject selectMaterialAndJpg(String pointCode);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.common.enums.region.RegionEnum;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.RedisUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.MapOf;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
@@ -334,7 +335,7 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
jo.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
||||
jo.put("vehicle_code", vehicle_code);
|
||||
param.put("region_code", region_code);
|
||||
param.put("materials",materials);
|
||||
param.put("materials", materials);
|
||||
jo.put("ext_data", param);
|
||||
iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class)
|
||||
.eq(SchBasePoint::getPoint_code, device_code)
|
||||
@@ -639,5 +640,29 @@ public class HandheldServiceImpl implements HandheldService {
|
||||
return iSchBasePointService.selectPointByRegion(regionCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject selectMaterialAndJpg(String pointCode) {
|
||||
if (StrUtil.isEmpty(pointCode)) {
|
||||
throw new BadRequestException("当前点位不能为空!");
|
||||
}
|
||||
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
|
||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||
throw new BadRequestException("当前点位不存在!");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(schBasePoint.getVehicle_code())) {
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(schBasePoint.getVehicle_code());
|
||||
List<Map> maps = iSchBaseVehiclematerialgroupService.selectOrdersByVehicleCode(list);
|
||||
HashSet<Map> keys = new HashSet<>();
|
||||
maps.stream().forEach(item -> {
|
||||
keys.add(MapOf.of("material_id", item.get("material_id"),"material_path", item.get("material_path")));
|
||||
});
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("vehiclePath",maps.get(0).get("vehicle_path"));
|
||||
json.put("materialList",keys);
|
||||
return json;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@ import org.nl.common.enums.region.RegionEnum;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.IdUtil;
|
||||
import org.nl.config.MapOf;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.ext.connector.service.dto.ConnectorDto;
|
||||
import org.nl.wms.ext.sorting.enums.SortingEnum;
|
||||
import org.nl.wms.ext.sorting.service.SortingService;
|
||||
@@ -26,12 +29,14 @@ import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.task.ConnectorUtil;
|
||||
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCMTTask;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCNTTask;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSMTTask;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSNTTask;
|
||||
import org.nl.wms.util.PrintUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -57,8 +62,9 @@ public class SortingServiceImpl implements SortingService {
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService;
|
||||
|
||||
private static final DateTimeFormatter ISO_8601_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
|
||||
@Autowired
|
||||
private SysParamServiceImpl sysParamService;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -69,9 +75,10 @@ public class SortingServiceImpl implements SortingService {
|
||||
Assert.noNullElements(new Object[]{jsonObject, jsonObject.getString("pointCode"), jsonObject.getString("vehicle_code")
|
||||
, jsonObject.getString("task_type"), jsonObject.getString("is_empty")}, "请求参数不能为空");
|
||||
JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail"));
|
||||
String png_palletpath = jsonObject.getString("png_palletpath");
|
||||
if (StrUtil.isNotEmpty(jsonObject.getString("is_rawdata")) && "1".equals(jsonObject.getString("is_rawdata"))) {
|
||||
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(jsonArray, ConnectorDto.class);
|
||||
createMaterial(connectorDtos, jsonObject.getString("vehicle_code"));
|
||||
createMaterial(connectorDtos, jsonObject.getString("vehicle_code"), png_palletpath);
|
||||
} else {
|
||||
//任务号
|
||||
String task_code = jsonObject.getString("task_code");
|
||||
@@ -206,13 +213,20 @@ public class SortingServiceImpl implements SortingService {
|
||||
}
|
||||
}
|
||||
|
||||
private void createMaterial(List<ConnectorDto> connectorDtos, String vehicleCode) {
|
||||
private void createMaterial(List<ConnectorDto> connectorDtos, String vehicleCode, String png_palletpath) {
|
||||
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode));
|
||||
Param sortingFilePath = sysParamService.findByCode(GeneralDefinition.SORTING_FILE_PATH);
|
||||
connectorDtos.forEach(connectorDto -> {
|
||||
connectorDto.setID(null);
|
||||
String dueDate = connectorDto.getDueDate();
|
||||
if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) {
|
||||
dueDate = parseDate(dueDate);
|
||||
}
|
||||
connectorDto.setDue_date(dueDate);
|
||||
connectorDto.setCreate_name("Sorting");
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto);
|
||||
schBaseVehiclematerialgroup.setVehicle_path(PrintUtil.imageToByteAndWriteToFile(png_palletpath, sortingFilePath.getValue()));
|
||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
|
||||
* 根据载具号查找订单号
|
||||
* @param vehicle_code
|
||||
*/
|
||||
List<String> selectOrdersByVehicleCode(List<String> vehicle_code);
|
||||
List<Map> selectOrdersByVehicleCode(List<String> vehicle_code);
|
||||
|
||||
/**
|
||||
* 根据载具号查找物料信息
|
||||
|
||||
@@ -162,6 +162,9 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
||||
@ApiModelProperty(value = "物料图片路径")
|
||||
private String material_path;
|
||||
|
||||
@ApiModelProperty(value = "托盘图片路径")
|
||||
private String vehicle_path;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String materialFile;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVeh
|
||||
|
||||
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
|
||||
|
||||
List<String> selectOrders(@Param("list") List<String> vehicleCodes);
|
||||
List<Map> selectOrders(@Param("list") List<String> vehicleCodes);
|
||||
|
||||
List<Map> selectMaterialByVehicleCode(String vehicle_code);
|
||||
|
||||
|
||||
@@ -50,14 +50,7 @@
|
||||
</if>
|
||||
AND vg.group_bind_material_status = '2'
|
||||
</select>
|
||||
<select id="selectOrders" resultType="java.lang.String" parameterType="java.util.List">
|
||||
SELECT sbv.order_code
|
||||
FROM sch_base_vehiclematerialgroup sbv
|
||||
WHERE sbv.vehicle_code IN
|
||||
<foreach item="code" collection="list" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="selectMaterialByVehicleCode" resultType="java.util.Map" parameterType="java.lang.String">
|
||||
SELECT
|
||||
sbv.order_code,
|
||||
@@ -88,11 +81,15 @@
|
||||
<if test="query.job_name != null">
|
||||
AND vg.job_name like CONCAT('%', #{query.job_name}, '%')
|
||||
</if>
|
||||
<if test="query.region_code != null and query.region_code != 1">
|
||||
AND vg.region_code = #{query.region_code}
|
||||
</if>
|
||||
<if test="query.region_code == 1">
|
||||
AND vg.region_code is null
|
||||
<if test="query.region_code != null">
|
||||
<choose>
|
||||
<when test="query.region_code.equals('111-100')">
|
||||
AND vg.region_code is null
|
||||
</when>
|
||||
<otherwise>
|
||||
AND vg.region_code = #{query.region_code}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="query.order_code != null">
|
||||
AND vg.order_code like CONCAT('%', #{query.order_code}, '%')
|
||||
@@ -115,7 +112,20 @@
|
||||
<select id="selectDueDateByVehicleCode" resultType="java.lang.String">
|
||||
SELECT sbv.due_date
|
||||
FROM sch_base_vehiclematerialgroup sbv
|
||||
WHERE sbv.material_id = #{sendVehicle.material_code} AND sbv.order_code = #{sendVehicle.order_code} limit 1
|
||||
WHERE sbv.material_id = #{sendVehicle.material_code}
|
||||
AND sbv.order_code = #{sendVehicle.order_code} limit 1
|
||||
</select>
|
||||
<select id="selectOrders" resultType="java.util.Map">
|
||||
SELECT
|
||||
sbv.order_code,
|
||||
sbv.material_id,
|
||||
sbv.vehicle_path,
|
||||
sbv.material_path
|
||||
FROM sch_base_vehiclematerialgroup sbv
|
||||
WHERE sbv.vehicle_code IN
|
||||
<foreach item="code" collection="list" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -25,6 +25,8 @@ import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||
import org.nl.wms.database.vehicle.service.IMdBaseVehicleService;
|
||||
import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle;
|
||||
import org.nl.wms.ext.fab.service.dto.CallMaterVo;
|
||||
import org.nl.wms.ext.fab.service.dto.SendVehicleVo;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
@@ -74,6 +76,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
private PcOperationCMTask pcOperationCMTask;
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
@Autowired
|
||||
private IMdBaseVehicleService iMdBaseVehicleService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
|
||||
@@ -127,6 +131,13 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
|
||||
@Override
|
||||
public void update(SchBaseVehiclematerialgroup entity) {
|
||||
if (StrUtil.isNotEmpty(entity.getVehicle_code())) {
|
||||
MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.getOne(Wrappers.lambdaQuery(MdBaseVehicle.class)
|
||||
.eq(MdBaseVehicle::getVehicle_code, entity.getVehicle_code()));
|
||||
if (ObjectUtil.isEmpty(mdBaseVehicle)) {
|
||||
throw new BadRequestException("托盘号不存在");
|
||||
}
|
||||
}
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
@@ -170,7 +181,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectOrdersByVehicleCode(List<String> vehicle_code) {
|
||||
public List<Map> selectOrdersByVehicleCode(List<String> vehicle_code) {
|
||||
return vehiclematerialgroupMapper.selectOrders(vehicle_code);
|
||||
}
|
||||
|
||||
@@ -186,6 +197,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
orderList.put("due_date", order_code.get(0).getDue_date());
|
||||
orderList.put("priority", order_code.get(0).getPriority());
|
||||
orderList.put("material_code", order_code.get(0).getMaterial_id());
|
||||
orderList.put("vehicle_path", order_code.get(0).getVehicle_path());
|
||||
}
|
||||
});
|
||||
maps = maps.stream().sorted(Comparator.comparingLong(order -> {
|
||||
@@ -253,7 +265,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
e.printStackTrace();
|
||||
}
|
||||
String url = localhost.getHostAddress() + ":" + 8083 + "/api/file/selectFile";
|
||||
log.info("查询物料路径:{}",url);
|
||||
log.info("查询物料路径:{}", url);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("path", one.getMaterial_path());
|
||||
return HttpRequest.post(url)
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
select point_code, point_name, point_status
|
||||
from sch_base_point
|
||||
where region_code = #{regionCode}
|
||||
and point_type is null
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -567,12 +568,20 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
List<JSONObject> jsonObjectList = pointMapper.selectPointByRegion(regionCode);
|
||||
jsonObjectList.stream().forEach(jsonObject -> {
|
||||
if (ObjectUtil.isNotEmpty(jsonObject.get("point_status"))) {
|
||||
if (jsonObject.get("point_status").equals(GoodsEnum.EMPTY_PALLETS.getValue()) || jsonObject.get("point_status").equals(GoodsEnum.IN_STOCK.getValue())) {
|
||||
if (jsonObject.get("point_status").equals(GoodsEnum.IN_STOCK.getValue())) {
|
||||
jsonObject.put("point_status", "1");
|
||||
}
|
||||
} else {
|
||||
jsonObject.put("point_status", "0");
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(jsonObject.get("point_code"))) {
|
||||
SchBaseTask point_code = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||
.eq(SchBaseTask::getPoint_code2, jsonObject.get("point_code"))
|
||||
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(point_code)) {
|
||||
jsonObject.put("point_status", "2");
|
||||
}
|
||||
}
|
||||
});
|
||||
return jsonObjectList;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mysql.cj.util.TimeUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.csv.CSVFormat;
|
||||
import org.apache.commons.csv.CSVPrinter;
|
||||
|
||||
@@ -145,6 +145,10 @@ public class GeneralDefinition {
|
||||
* Sorting路径
|
||||
*/
|
||||
public static final String SORTING_URL = "sorting_url";
|
||||
/**
|
||||
* Sorting文件存放路径
|
||||
*/
|
||||
public static final String SORTING_FILE_PATH = "sorting_file_path";
|
||||
/**
|
||||
* wms路径
|
||||
*/
|
||||
@@ -157,6 +161,7 @@ public class GeneralDefinition {
|
||||
* MES路径
|
||||
*/
|
||||
public static final String MES_URL = "mes_url";
|
||||
public static final String LOCALHOST_POST = "localhost_post";
|
||||
// 完成/取消
|
||||
/**
|
||||
* 任务完成
|
||||
|
||||
@@ -51,7 +51,7 @@ public class AcsUtil {
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
log.error("连接失败:{}", msg);
|
||||
log.error(" :{}", msg);
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
|
||||
@@ -172,7 +172,7 @@ public class ConnectorUtil {
|
||||
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto));
|
||||
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
||||
schBaseVehiclematerialgroup.setDue_date(connectorDto.getDue_date());
|
||||
schBaseVehiclematerialgroup.setDue_date(connectorDto.getDueDate());
|
||||
schBaseVehiclematerialgroup.setPriority(connectorDto.getPriority());
|
||||
schBaseVehiclematerialgroup.setCreate_name(connectorDto.getCreate_name());
|
||||
return schBaseVehiclematerialgroup;
|
||||
|
||||
@@ -15,6 +15,8 @@ import org.nl.common.enums.GoodsEnum;
|
||||
import org.nl.common.enums.region.RegionEnum;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.system.service.notice.ISysNoticeService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||
@@ -30,6 +32,7 @@ import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.PrintUtil;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -66,6 +69,8 @@ public class SortingSMTTask extends AbstractTask {
|
||||
private ISchBasePointService schBasePointService;
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
|
||||
@Autowired
|
||||
private SysParamServiceImpl sysParamService;
|
||||
|
||||
@Override
|
||||
protected void create() throws BadRequestException {
|
||||
@@ -97,32 +102,7 @@ public class SortingSMTTask extends AbstractTask {
|
||||
continue;
|
||||
}
|
||||
jsonObject.put("vehicle_type", schBasePoint.getCan_vehicle_type());
|
||||
schBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, task.getVehicle_code()));
|
||||
for (Object o : pallet_detail) {
|
||||
JSONObject jO = (JSONObject) JSONObject.toJSON(o);
|
||||
String workorder = jO.getString("ProductionOrder");
|
||||
String ProductID = jO.getString("ProductID");
|
||||
Integer qty = jO.getInteger("Currentqty");
|
||||
String Jobname = jO.getString("Jobname");
|
||||
String dueDate = jO.getString("DueDate");
|
||||
String region_code = jO.getString("NextOperation");
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||
schBaseVehiclematerialgroup.setVehicle_code(task.getVehicle_code());
|
||||
schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code());
|
||||
schBaseVehiclematerialgroup.setMaterial_id(ProductID);
|
||||
schBaseVehiclematerialgroup.setMaterial_qty(qty);
|
||||
schBaseVehiclematerialgroup.setRegion_code(region_code);
|
||||
schBaseVehiclematerialgroup.setOrder_code(workorder);
|
||||
schBaseVehiclematerialgroup.setJob_name(Jobname);
|
||||
if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) {
|
||||
dueDate = parseDate(dueDate);
|
||||
}
|
||||
schBaseVehiclematerialgroup.setDue_date(dueDate);
|
||||
schBaseVehiclematerialgroup.setCreate_name("Sorting");
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO));
|
||||
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
}
|
||||
|
||||
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code2(schBasePoint.getPoint_code());
|
||||
@@ -133,6 +113,37 @@ public class SortingSMTTask extends AbstractTask {
|
||||
}
|
||||
}
|
||||
|
||||
private void createVehicle(SchBaseTask task, JSONArray pallet_detail, SchBasePoint schBasePoint, String png_palletpath) {
|
||||
schBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, task.getVehicle_code()));
|
||||
Param sortingFilePath = sysParamService.findByCode(GeneralDefinition.SORTING_FILE_PATH);
|
||||
for (Object o : pallet_detail) {
|
||||
JSONObject jO = (JSONObject) JSONObject.toJSON(o);
|
||||
String workorder = jO.getString("ProductionOrder");
|
||||
String ProductID = jO.getString("ProductID");
|
||||
Integer qty = jO.getInteger("Currentqty");
|
||||
String Jobname = jO.getString("Jobname");
|
||||
String dueDate = jO.getString("DueDate");
|
||||
String region_code = jO.getString("NextOperation");
|
||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||
schBaseVehiclematerialgroup.setVehicle_code(task.getVehicle_code());
|
||||
schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code());
|
||||
schBaseVehiclematerialgroup.setMaterial_id(ProductID);
|
||||
schBaseVehiclematerialgroup.setMaterial_qty(qty);
|
||||
schBaseVehiclematerialgroup.setRegion_code(region_code);
|
||||
schBaseVehiclematerialgroup.setOrder_code(workorder);
|
||||
schBaseVehiclematerialgroup.setJob_name(Jobname);
|
||||
schBaseVehiclematerialgroup.setVehicle_path(PrintUtil.imageToByteAndWriteToFile(png_palletpath, sortingFilePath.getValue()));
|
||||
if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) {
|
||||
dueDate = parseDate(dueDate);
|
||||
}
|
||||
schBaseVehiclematerialgroup.setDue_date(dueDate);
|
||||
schBaseVehiclematerialgroup.setCreate_name("Sorting");
|
||||
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO));
|
||||
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isValidISO8601(String dateString) {
|
||||
try {
|
||||
ZonedDateTime.parse(dateString, ISO_8601_FORMATTER);
|
||||
@@ -206,6 +217,11 @@ public class SortingSMTTask extends AbstractTask {
|
||||
.set(SchBasePoint::getPoint_status, GoodsEnum.IN_STOCK.getValue())
|
||||
);
|
||||
}
|
||||
String requestParam = taskObj.getRequest_param();
|
||||
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||
JSONArray pallet_detail = jsonObject.getJSONArray("pallet_detail");
|
||||
String png_palletpath = jsonObject.getString("png_palletpath");
|
||||
createVehicle(taskObj, pallet_detail, schBasePoint, png_palletpath);
|
||||
// 任务完成
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -97,5 +98,14 @@ public class BmVehicleInfoController {
|
||||
vehicleInfoService.excelImport(file, request);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getVehicle")
|
||||
@Log("获取载具号列表")
|
||||
public ResponseEntity<Object> getVehicles() {
|
||||
List<BmVehicleInfo> json = vehicleInfoService.getVehicles();
|
||||
return new ResponseEntity<>(json, HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -92,4 +92,10 @@ public interface IBmVehicleInfoService extends IService<BmVehicleInfo> {
|
||||
JSONObject getVehicle(String code);
|
||||
|
||||
void excelImport(MultipartFile file, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 获取在列表中的载具信息
|
||||
* @return
|
||||
*/
|
||||
List<BmVehicleInfo> getVehicles();
|
||||
}
|
||||
|
||||
@@ -209,4 +209,9 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl<BmVehicleInfoMapper, B
|
||||
this.save(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BmVehicleInfo> getVehicles() {
|
||||
return baseMapper.selectList(Wrappers.lambdaQuery(BmVehicleInfo.class));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package org.nl.wms.util;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
@@ -12,12 +14,18 @@ import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||
import com.spire.doc.Document;
|
||||
import com.spire.ms.Printing.PrinterSettings;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
@@ -73,73 +81,41 @@ public class PrintUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
//加载Word文档
|
||||
Document document = new Document();
|
||||
// document.loadFromFile("D:\\znxj\\downloadPath\\中.docx");
|
||||
document.loadFromFile("C:\\Users\\LENOVO\\Desktop\\1.docx");
|
||||
//创建PrinterSettings对象
|
||||
PrinterSettings printerSettings = new PrinterSettings();
|
||||
//指定物理打印机名称
|
||||
printerSettings.setPrinterName("NPI269576");
|
||||
//设置打印份数
|
||||
printerSettings.setCopies((short) 1);
|
||||
//设置打印范围
|
||||
printerSettings.setFromPage(2);
|
||||
printerSettings.setToPage(4);
|
||||
// 设置打印的起始页和结束页为文档的第一页和最后一页
|
||||
printerSettings.setFromPage(1);
|
||||
printerSettings.setToPage(document.getPageCount());
|
||||
//应用打印设置
|
||||
document.getPrintDocument().setPrinterSettings(printerSettings);
|
||||
//执行打印
|
||||
document.getPrintDocument().print();
|
||||
|
||||
/*XWPFTemplate template = null;
|
||||
ByteArrayOutputStream wordOut = new ByteArrayOutputStream(1024);
|
||||
public static String imageToByteAndWriteToFile(String imageUrl, String outputFilePath) {
|
||||
if (StrUtil.isEmpty(imageUrl)) {
|
||||
return null;
|
||||
}
|
||||
File file = new File(outputFilePath);
|
||||
if (!file.exists()){
|
||||
return null;
|
||||
}
|
||||
String fileName = imageUrl.replaceAll(".*/", "");
|
||||
try {
|
||||
File file = new File("C:\\Users\\LENOVO\\Desktop\\2.docx");
|
||||
FileInputStream fileInputStream = new FileInputStream(file);
|
||||
//设置占位符:
|
||||
Configure config = Configure.builder()
|
||||
.buildGramer("${", "}") //设置模板中的占位符${}, 默认是{{}}
|
||||
.setValidErrorHandler(new Configure.AbortHandler()) //若模板中占位符与填充属性不对应,则报错;
|
||||
.bind("list", new HackLoopTableRenderPolicy()) //设置模板中表格的参数属性
|
||||
.build();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("vehicleCode","G001");
|
||||
List<JSONObject> jsonObjectList = new ArrayList<>();
|
||||
JSONObject jsonObject1 = new JSONObject();
|
||||
jsonObject1.put("orderCode","23451y4967");
|
||||
jsonObject1.put("number","328458732");
|
||||
jsonObject1.put("qty","22");
|
||||
jsonObject1.put("next","111-11");
|
||||
jsonObject1.put("dueDate","2023-12-12 04:00:00");
|
||||
jsonObject1.put("index","1");
|
||||
JSONObject jsonObject2 = new JSONObject();
|
||||
jsonObject2.put("orderCode","23451y496");
|
||||
jsonObject2.put("number","32845873");
|
||||
jsonObject2.put("qty","23");
|
||||
jsonObject2.put("next","111-12");
|
||||
jsonObject2.put("dueDate","2023-12-12 05:00:00");
|
||||
jsonObject2.put("index","2");
|
||||
jsonObjectList.add(jsonObject1);
|
||||
jsonObjectList.add(jsonObject2);
|
||||
jsonObject.put("list",jsonObjectList);
|
||||
//填充文本域:
|
||||
template = XWPFTemplate.compile(fileInputStream, config).render(jsonObject);
|
||||
// template.write(wordOut);
|
||||
template.writeToFile("C:\\Users\\LENOVO\\Desktop\\1.docx");
|
||||
}catch (RenderException | IOException ex){
|
||||
throw ex;
|
||||
} finally {
|
||||
try {
|
||||
if (template != null){
|
||||
template.close();
|
||||
URL url = new URL(imageUrl);
|
||||
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
|
||||
httpURLConnection.setRequestMethod("GET");
|
||||
|
||||
try (InputStream inputStream = httpURLConnection.getInputStream();
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(outputFilePath + "/" + fileName)) {
|
||||
|
||||
byte[] buffer = new byte[1024];
|
||||
int bytesRead;
|
||||
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
||||
fileOutputStream.write(buffer, 0, bytesRead);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
} finally {
|
||||
httpURLConnection.disconnect();
|
||||
}
|
||||
}*/
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||
Param localHostPost = sysParamService.findByCode(GeneralDefinition.LOCALHOST_POST);
|
||||
if(ObjectUtil.isEmpty(localHostPost)){
|
||||
throw new BadRequestException("图片ip端口号未填写");
|
||||
}
|
||||
return localHostPost.getValue() + "/" + fileName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -380,6 +380,7 @@ export default {
|
||||
})
|
||||
} else if (type === 'PALLET') {
|
||||
crudProduceScreen.selectMaterialAndJpg(this.popData.device_code).then(res => {
|
||||
this.imgSrc = res.vehiclePath
|
||||
this.popList = [...res.materialList]
|
||||
})
|
||||
this.show = true
|
||||
|
||||
@@ -49,23 +49,6 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="绑定状态">
|
||||
<el-select
|
||||
v-model="query.group_bind_material_status"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="绑定状态"
|
||||
class="filter-item"
|
||||
@change="hand"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.group_bind_material_status"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="jobName">
|
||||
<el-input
|
||||
v-model="query.job_name"
|
||||
@@ -104,12 +87,6 @@
|
||||
<el-form-item label="载具编码">
|
||||
<el-input v-model="form.vehicle_code" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="子载具编码">
|
||||
<el-input v-model="form.child_vehicle_code" style="width: 240px;" />
|
||||
</el-form-item>-->
|
||||
<!-- <el-form-item v-if="false" label="来源载具">
|
||||
<el-input v-model="form.source_vehicle_code" style="width: 240px;" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="入库时间">
|
||||
<el-date-picker
|
||||
v-model="form.create_time"
|
||||
@@ -119,47 +96,6 @@
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="点位编码">
|
||||
<el-select
|
||||
v-model="form.theLocation"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 240px;"
|
||||
@change="setPointName"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in pointList"
|
||||
:key="item.point_code"
|
||||
:label="item.point_code"
|
||||
:value="item.point_code"
|
||||
>
|
||||
<span style="float: left">{{ item.point_name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.point_code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input v-model="form.point_code" style="width: 240px;" />-->
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="点位名称">
|
||||
<el-input v-model="form.point_name" style="width: 240px;" disabled />
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="是否满托">
|
||||
<el-radio-group v-model="form.is_full" style="width: 240px">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="批次">
|
||||
<el-input v-model="form.pcsn" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="静置时间(分钟)">
|
||||
<el-input-number
|
||||
v-model.number="form.standing_time"
|
||||
:min="1"
|
||||
:max="999"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="物料数量">
|
||||
<el-input-number
|
||||
v-model.number="form.material_qty"
|
||||
@@ -167,65 +103,13 @@
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="物料重量">
|
||||
<el-input-number
|
||||
v-model.number="form.material_weight"
|
||||
:min="0"
|
||||
style="width: 240px;"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="订单编码">
|
||||
<el-input v-model="form.order_code" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="物料来源">
|
||||
<el-radio-group v-model="choose" size="mini" style="width: 240px;">
|
||||
<el-radio-button label="物料" />
|
||||
<el-radio-button label="工单" />
|
||||
</el-radio-group>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="form.material_id" clearable style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="物料名称">
|
||||
<el-input v-model="form.material_name" clearable style="width: 240px;" @clear="clearMaterial" @focus="getMaterial" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="form.material_code" disabled style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料规格">
|
||||
<el-input v-model="form.material_spec" disabled style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="组盘次数">
|
||||
<el-input v-model="form.group_number" style="width: 240px;" />
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="任务编码">
|
||||
<el-input v-model="form.task_code" style="width: 240px;" />
|
||||
</el-form-item> -->
|
||||
<!--<el-form-item label="车间编码">
|
||||
<el-input v-model="form.workshop_code" style="width: 240px;" />
|
||||
</el-form-item>-->
|
||||
<!-- <el-form-item label="组盘状态">
|
||||
<el-select
|
||||
v-model="form.group_status"
|
||||
size="mini"
|
||||
placeholder="点位状态"
|
||||
class="filter-item"
|
||||
style="width: 240px;"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.group_status"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!--<el-form-item label="是否首个流程任务">
|
||||
<el-input v-model="form.is_first_flow_task" style="width: 240px;" />
|
||||
</el-form-item>-->
|
||||
<el-form-item label="工艺编码">
|
||||
<!-- <el-input v-model="form.region_code" style="width: 240px;" /> -->
|
||||
<el-select
|
||||
v-model="form.region_code"
|
||||
clearable
|
||||
@@ -251,12 +135,6 @@
|
||||
placeholder="选择日期时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="上一任务">
|
||||
<el-input v-model="form.before_task_code" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="下一任务">
|
||||
<el-input v-model="form.next_task_code" style="width: 240px;" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<label slot="label">备 注:</label>
|
||||
<el-input v-model.trim="form.remark" style="width: 480px;" rows="2" type="textarea" :disabled="crud.status.view > 0" />
|
||||
@@ -438,7 +316,7 @@ export default {
|
||||
idField: 'group_id',
|
||||
sort: 'vehicle_code,desc',
|
||||
optShow: {
|
||||
add: false,
|
||||
add: true,
|
||||
edit: true,
|
||||
del: true,
|
||||
download: false,
|
||||
@@ -487,7 +365,7 @@ export default {
|
||||
this.dialogVisible1 = true
|
||||
crudSchBaseVehiclematerialgroup.selectMaterialFile(groupId).then(res => {
|
||||
console.log(res.data)
|
||||
this.materialFile = res
|
||||
this.materialFile = 'http://localhost:8081/1.jpg'
|
||||
})
|
||||
// 在这里处理点击逻辑,例如弹出图片、显示详情等
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user