Browse Source

fix: 问题修复,添加打印,托盘显示等功能

master
yanps 2 months ago
parent
commit
7d9bbd9b4c
  1. 24
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java
  2. 127
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  3. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java
  4. 14
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java
  5. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java
  6. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java
  7. 27
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java
  8. 20
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java
  9. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java
  10. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java
  11. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java
  12. 38
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml
  13. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  14. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml
  15. 11
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  16. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java
  17. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
  18. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java
  19. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java
  20. 68
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java
  21. 10
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java
  22. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java
  23. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java
  24. 102
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PrintUtil.java
  25. 1
      lms/nladmin-ui/src/views/wms/produceScreen/index.vue
  26. 126
      lms/nladmin-ui/src/views/wms/sch/group/index.vue

24
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java

@ -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

127
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java

@ -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)) {

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java

@ -103,4 +103,9 @@ public class ConnectorDto {
private String priority;
private String create_name;
/**
* 托盘物料图片
*/
private String png_palletpath;
}

14
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java

@ -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);
}
/**

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java

@ -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);
}
}

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java

@ -113,4 +113,11 @@ public interface HandheldService {
* @return
*/
List<JSONObject> selectPointByRegion(String regionCode);
/**
* 根据当前点位的托盘号查询物料信息
* @param pointCode
* @return
*/
JSONObject selectMaterialAndJpg(String pointCode);
}

27
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java

@ -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;
}
}

20
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java

@ -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);
});
}

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java

@ -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);
/**
* 根据载具号查找物料信息

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java

@ -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;

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java

@ -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);

38
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml

@ -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>

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java

@ -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)

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml

@ -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>

11
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java

@ -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;
}

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java

@ -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;

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java

@ -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";
// 完成/取消
/**
* 任务完成

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java

@ -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());

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java

@ -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;

68
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingSMTTask.java

@ -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);

10
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java

@ -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);
}
}

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java

@ -92,4 +92,10 @@ public interface IBmVehicleInfoService extends IService<BmVehicleInfo> {
JSONObject getVehicle(String code);
void excelImport(MultipartFile file, HttpServletRequest request);
/**
* 获取在列表中的载具信息
* @return
*/
List<BmVehicleInfo> getVehicles();
}

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java

@ -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));
}
}

102
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PrintUtil.java

@ -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;
}

1
lms/nladmin-ui/src/views/wms/produceScreen/index.vue

@ -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

126
lms/nladmin-ui/src/views/wms/sch/group/index.vue

@ -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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</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'
})
//
},

Loading…
Cancel
Save