rev:修改

This commit is contained in:
2026-02-06 12:53:45 +08:00
parent caa96ef03e
commit 9555bdcbb4
18 changed files with 271 additions and 79 deletions

View File

@@ -94,14 +94,14 @@ public class UserController {
@PostMapping(value = "/updatePass")
public ResponseEntity<Object> updatePass(@RequestBody JSONObject passVo) throws Exception {
// 解密,得到字符密码
String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getString("oldPass"));
String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getString("newPass"));
String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("oldPass"));
String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("newPass"));
SysUser user = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, SecurityUtils.getCurrentUsername()));
if (!SaSecureUtil.md5BySalt(user.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(oldPass, "salt"))) {
throw new BadRequestException(LangProcess.msg("login_pwd_1"));
if (!user.getPassword().equals(SaSecureUtil.md5BySalt(oldPass,"salt"))) {
throw new BadRequestException("修改失败,旧密码错误");
}
if (!SaSecureUtil.md5BySalt(user.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(newPass, "salt"))) {
throw new BadRequestException(LangProcess.msg("login_pwd_2"));
if (user.getPassword().equals(SaSecureUtil.md5BySalt(newPass, "salt"))) {
throw new BadRequestException("新密码不能与旧密码相同");
}
user.setPassword(SaSecureUtil.md5BySalt(newPass, "salt"));
userService.updateById(user);

View File

@@ -197,5 +197,10 @@ public class MdMeMaterialbase implements Serializable {
*/
private String quality_code;
/**
* 生产商
*/
private String produce_name;
}

View File

@@ -170,8 +170,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
secondaryPackagingService.wrappingDown(whereJson);
}
if (type_dtl.equals(IOSConstant.TWO)) {
// 上料
secondaryPackagingService.wrappingCall(whereJson);
// 上料 由码垛下料生成
// secondaryPackagingService.wrappingCall(whereJson);
}
}
// 机械手
@@ -188,6 +188,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
} else {
throw new BadRequestException("设备编码为:" + device_code + "的设备正在操作中!");
}
} catch (Exception e) {
log.info("ACS向WMS申请任务返回参数--------------------------------------" + BaseResponse.requestError(e.getMessage()).toString());
return BaseResponse.requestError(e.getMessage());
} finally {
if (tryLock) {
lock.unlock();

View File

@@ -31,6 +31,14 @@ public interface PdaPrintService {
*/
PdaResponse printBucked(JSONObject whereJson);
/**
* PC条码打印
* @param whereJson {
*
* }
*/
void printCode(JSONObject whereJson);
/**
* 手持配置 - 获取打印机下拉框
* @return PdaResponse

View File

@@ -32,6 +32,7 @@ import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
import org.nl.wms.sch_manage.service.util.tasks.EmpStackPlatesTask;
import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleOutTask;
import org.nl.wms.warehouse_management.enums.IOSConstant;
@@ -315,6 +316,7 @@ public class PdaCommonServiceImpl implements PdaCommonService {
jsonTask.put("point_code1", whereJson.getString("point_code"));
jsonTask.put("point_code2", IOSConstant.AGVZJZ001);
jsonTask.put("point_code3", row.getString("point_code"));
jsonTask.put("task_type", ACSTaskTypeEnum.F003.getCode());
empStackPlatesTask.create(jsonTask);
return PdaResponse.requestOk();
}

View File

@@ -2,13 +2,17 @@ package org.nl.wms.pda.general_management.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.system.enums.SysParamConstant;
import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.param.dao.Param;
import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.pda.general_management.service.PdaPrintService;
import org.nl.wms.pda.util.PdaResponse;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +39,9 @@ public class PdaPrintServiceImpl implements PdaPrintService {
@Autowired
private ISysDictService iSysDictService;
@Autowired
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
@Override
public PdaResponse printBag(JSONObject whereJson) {
OutputStream outputStream=null;
@@ -42,19 +49,29 @@ public class PdaPrintServiceImpl implements PdaPrintService {
try {
// 打印机地址
String print_id = whereJson.getString("print_id");
if (ObjectUtil.isEmpty(print_id)) {
throw new BadRequestException("打印机IP为空,请选择打印机!");
}
JSONObject row = whereJson.getJSONObject("row");
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(row.getString("material_code"));
// 记录编号
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param record_no = sysParamService.findByCode("RECORD_NO");
String record_no = sysParamService.findByCode("RECORD_NO").getValue();
// 物料名称
String material_name = whereJson.getString("material_name");
String material_name = row.getString("material_name");
// 物料批号+批次
String pcsn = whereJson.getString("material_code")+"-"+whereJson.getString("pcsn");
String pcsn = row.getString("material_code")+"-"+row.getString("pcsn");
// 经销商
String supp_name = row.getString("supp_name");
// 生产商
String produce_name = materDao.getProduce_name();
// 日期
String data = DateUtil.today();
// 数量
String qty = NumberUtil.round(whereJson.getString("qty"), 2).toString();
String qty = NumberUtil.round(row.getString("qty"), 2).toString();
// 袋码
String bag_code = whereJson.getString("bag_code");
String bag_code = row.getString("bag_code");
// 1. 创建Socket连接打印机
socket = new Socket(print_id, 9100);
// 设置超时
@@ -162,17 +179,21 @@ public class PdaPrintServiceImpl implements PdaPrintService {
try {
// 打印机地址
String print_id = whereJson.getString("print_id");
if (ObjectUtil.isEmpty(print_id)) {
throw new BadRequestException("打印机IP为空,请选择打印机!");
}
JSONObject row = whereJson.getJSONObject("row");
// 记录编号
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
Param record_no = sysParamService.findByCode("RECORD_NO");
String record_no = sysParamService.findByCode("RECORD_NO").getValue();
// 物料名称
String material_name = whereJson.getString("material_name");
String material_name = row.getString("material_name");
// 物料批号+批次
String pcsn = whereJson.getString("material_code")+"-"+whereJson.getString("pcsn");
String pcsn = row.getString("material_code")+"-"+row.getString("pcsn");
// 数量
String bucket_weight = NumberUtil.round(whereJson.getString("bucket_weight"), 2).toString();
String bucket_weight = NumberUtil.round(row.getString("bucket_weight"), 2).toString();
// 桶号
String bucket_code = whereJson.getString("bucket_code");
String bucket_code = row.getString("bucket_code");
// 1. 创建Socket连接打印机
socket = new Socket(print_id, 9100);
// 设置超时
@@ -273,6 +294,44 @@ public class PdaPrintServiceImpl implements PdaPrintService {
return PdaResponse.requestOk();
}
@Override
public void printCode(JSONObject whereJson) {
OutputStream outputStream=null;
Socket socket=null;
try {
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
String print_id = sysParamService.findByCode("PRINT_ID").getValue();
// 条码内容
String code = whereJson.getString("code");
// 1. 创建Socket连接打印机
socket = new Socket(print_id, 9100);
socket.setSoTimeout(5000); // 设置超时
// 2. 获取输出流
outputStream = socket.getOutputStream();
// 3. 发送ZPL指令注意编码
String zplContent = "^XA\n" +
"^CW1,E:SIMSUN.FNT\n" +
"^CI28\n" +
"^FO50,50\n" +
"^A1N,36,36\n" +
"^FD中文内容123^FS\n" +
"^XZ";
byte[] zplBytes = zplContent.getBytes(StandardCharsets.UTF_8); // 根据打印机编码调整
outputStream.write(zplBytes);
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 4. 关闭连接
try {
if (outputStream != null) outputStream.close();
if (socket != null) socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public PdaResponse getPrint() {
List<Dict> dictList = iSysDictService.getDictByName("PDA_CONFIG_PRINT");
@@ -280,7 +339,7 @@ public class PdaPrintServiceImpl implements PdaPrintService {
.map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), JSONObject.class))
.collect(Collectors.toList());
collect.forEach(item -> {
item.put("text", item.getString("name"));
item.put("text", item.getString("label"));
item.put("value", item.getString("value"));
});
return PdaResponse.requestParamOk(collect);

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.JSONObjectOf;
@@ -89,6 +90,13 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
MdPdmPackaging dto = JSONObject.parseObject(JSONObject.toJSONString(whereJson), MdPdmPackaging.class);
// 调用新增
iMdPdmPackagingService.create(dto);
// 更新点位状态
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, dto.getPoint_code())
.set(SchBasePoint::getIng_task_code, "")
);
return PdaResponse.requestOk();
}
@@ -147,6 +155,13 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
insertPackList.forEach(row -> {
iMdPdmPackagingService.create(row);
});
// 更新点位状态
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, in_point)
.set(SchBasePoint::getIng_task_code, "")
);
return PdaResponse.requestOk();
}

View File

@@ -122,10 +122,6 @@ public class SchBaseTask implements Serializable {
private String update_time;
/**
* 任务类型
* 1-载具2-料箱
*/
private String task_type;
private String contact_task;

View File

@@ -12,6 +12,7 @@ import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.SecondaryPackagingService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.TaskFactory;
import org.nl.wms.sch_manage.service.util.tasks.EmptyDiskConveyTask;
@@ -67,7 +68,7 @@ public class SecondaryPackagingServiceImpl implements SecondaryPackagingService
try {
if (tryLock) {
// device_code、material_code、qty、vehicle_seq、pcsn、cases
MdMeMaterialbase materialCode = materialbaseService.getByCode(param.getString("material_code"));
/* MdMeMaterialbase materialCode = materialbaseService.getByCode(param.getString("material_code"));
// 组盘
GroupPlate groupPlate = new GroupPlate();
groupPlate.setGroup_id(IdUtil.getStringId());
@@ -81,18 +82,18 @@ public class SecondaryPackagingServiceImpl implements SecondaryPackagingService
groupPlate.setCreate_name(SecurityUtils.getCurrentNickName());
groupPlate.setCreate_time(DateUtil.now());
// ....待定
groupplateService.save(groupPlate);
groupplateService.save(groupPlate);*/
// 校验任务
Integer num = taskService.haveTaskAll(param.getString("device_code"));
if (num > 0) {
throw new BadRequestException("该点位已存在任务!");
}
param.put("config_code", "PalletizingDownTask");
param.put("group_id", groupPlate.getGroup_id());
/* param.put("group_id", groupPlate.getGroup_id());
param.put("material_id", materialCode.getMaterial_id());
param.put("material_qty", groupPlate.getQty());
param.put("vehicle_code", groupPlate.getVehicle_code());
param.put("vehicle_code", groupPlate.getVehicle_code());*/
param.put("task_type", ACSTaskTypeEnum.F002.getCode());
AbstractTask palletizingDownTask = taskFactory.getTask("PalletizingDownTask");
palletizingDownTask.create(param);
} else {
@@ -141,7 +142,6 @@ public class SecondaryPackagingServiceImpl implements SecondaryPackagingService
if (num > 0) {
throw new BadRequestException("该点位已存在任务!");
}
param.put("config_code", "WrappingDownTask");
wrappingDownTask.create(param);
} else {
throw new BadRequestException("速度太快啦,稍后再试...");
@@ -178,7 +178,7 @@ public class SecondaryPackagingServiceImpl implements SecondaryPackagingService
// 创建运输任务
param.put("point_code1", point.getPoint_code());
param.put("point_code2", param.getString("device_code"));
param.put("config_code", "EmptyDiskEnterTask");
param.put("task_type", ACSTaskTypeEnum.F006.getCode());
emptyDiskConveyTask.create(param);
} else {
throw new BadRequestException("速度太快啦,稍后再试...");

View File

@@ -14,7 +14,37 @@ public enum ACSTaskTypeEnum {
/**
* AGV任务
*/
AGV_TASK("2", "AGV任务", "AGV任务");
AGV_TASK("2", "AGV任务", "AGV任务"),
/**
* 海康任务
*/
F001("F001", "自动门到机台", "自动门到机台"),
/**
* 海康任务
*/
F002("F002", "机台到自动门", "机台到自动门"),
/**
* 海康任务
*/
F003("F003", "普通库位到自动门", "普通库位到自动门"),
/**
* 海康任务
*/
F004("F004", "自动门到普通库位", "自动门到普通库位"),
/**
* 海康任务
*/
F005("F005", "普通库位到普通库位", "普通库位到普通库位"),
/**
* 海康任务
*/
F006("F006", "普通库位到机台", "普通库位到机台");
ACSTaskTypeEnum(String code, String name, String desc) {

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
@@ -20,6 +21,7 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -61,7 +63,7 @@ public class EmpStackPlatesTask extends AbstractTask {
task.setMaterial_id(json.getString("material_id"));
task.setMaterial_qty(json.getBigDecimal("material_qty"));
task.setRequest_param(json.toString());
task.setTask_type(TaskEnum.TASK_TYPE.code("载具"));
task.setTask_type(json.getString("task_type"));
task.setPriority(json.getString("Priority"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
@@ -84,8 +86,14 @@ public class EmpStackPlatesTask extends AbstractTask {
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setPriority(IOSConstant.ONE);
if (taskDao.getPoint_code2().equals(IOSConstant.AGVZJZ001)) {
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
} else {
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
}
acsTaskDto.setTask_type(taskDao.getTask_type());
acsTaskDto.setPriority(IOSConstant.ONE);
return acsTaskDto;
}
@@ -145,6 +153,22 @@ public class EmpStackPlatesTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("已完成");
taskService.updateById(taskObj);
// 更新起点
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, "")
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getIng_task_code, "")
);
// 更新终点
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, "")
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getIng_task_code, "")
);
// 判断是否是中间站点
if (taskObj.getPoint_code2().equals(IOSConstant.AGVZJZ001)) {
// 生成二段任务

View File

@@ -55,7 +55,7 @@ public class EmptyDiskConveyTask extends AbstractTask {
task.setGroup_id(json.getString("group_id"));
task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority"));
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
task.setTask_type(json.getString("task_type"));
task.setIs_wait(json.getString("is_wait"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
@@ -65,7 +65,7 @@ public class EmptyDiskConveyTask extends AbstractTask {
throw new BadRequestException("起点终点不能一致,请检查!");
}
// 下发任务
// this.sendTaskOne(task.getTask_id());
this.sendTaskOne(task.getTask_id());
return task.getTask_id();
}
@@ -81,10 +81,7 @@ public class EmptyDiskConveyTask extends AbstractTask {
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setVehicle_type(IOSConstant.ONE);
acsTaskDto.setIs_wait(IOSConstant.ZERO);
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
acsTaskDto.setTask_type(taskDao.getTask_type());
acsTaskDto.setPriority(IOSConstant.ONE);
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
@@ -130,7 +127,7 @@ public class EmptyDiskConveyTask extends AbstractTask {
taskObj.setRemark("已完成");
taskService.updateById(taskObj);
// 更新
// 更新起点
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, "")
@@ -138,6 +135,16 @@ public class EmptyDiskConveyTask extends AbstractTask {
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getIng_task_code, "")
);
// 更新终点:如果终点为空盘点则更新
SchBasePoint pointDao2 = pointService.getById(taskObj.getPoint_code2());
if (pointDao2.getPoint_type().equals(IOSConstant.TWO)) {
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空载具"))
.set(SchBasePoint::getIng_task_code, "")
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
);
}
// 判断是否需要呼叫空盘
List<SchBasePoint> palletPoints = pointService.getNoTaskPointByRegionAndType("WBZQ", "2", "1");
@@ -146,7 +153,6 @@ public class EmptyDiskConveyTask extends AbstractTask {
try {
JSONObject param = new JSONObject();
param.put("device_code", palletPoint.getPoint_code());
param.put("config_code", "EmptyDiskEnterTask");
emptyDiskEnterTask.create(param);
} catch (Exception e) {
log.warn(e.getMessage());

View File

@@ -44,7 +44,7 @@ public class EmptyDiskEnterTask extends AbstractTask {
// 获取中转位
List<SchBasePoint> transferStation = pointService.getNoTaskPointByRegionAndType("AGVZJZ01", "1", "1");
if (transferStation.size() == 0) {
throw new BadRequestException("找不到可用的中转位!");
throw new BadRequestException("物流通道被占用!");
}
SchBasePoint point = transferStation.get(0);
SchBaseTask task = new SchBaseTask();
@@ -71,7 +71,7 @@ public class EmptyDiskEnterTask extends AbstractTask {
throw new BadRequestException("起点终点不能一致,请检查!");
}
// 下发任务
// this.sendTaskOne(task.getTask_id());
this.sendTaskOne(task.getTask_id());
return task.getTask_id();
}
@@ -156,9 +156,16 @@ public class EmptyDiskEnterTask extends AbstractTask {
// 创建输送任务
AbstractTask task = taskFactory.getTask("EmptyDiskConveyTask");
JSONObject parm = new JSONObject();
parm.put("config_code", "EmptyDiskConveyTask");
parm.put("point_code1", taskObj.getPoint_code2());
parm.put("point_code2", taskObj.getPoint_code3());
// 校验终点是否是机台
SchBasePoint pointDao = pointService.getById(taskObj.getPoint_code3());
// 判断是否是空盘位
if (pointDao.getPoint_type().equals(IOSConstant.TWO)) {
parm.put("task_type", ACSTaskTypeEnum.F004.getCode());
} else {
parm.put("task_type", ACSTaskTypeEnum.F001.getCode());
}
task.create(parm);
}

View File

@@ -14,12 +14,16 @@ import org.nl.wms.pdm_management.service.IMdPdmPackagingService;
import org.nl.wms.pdm_management.service.dao.MdPdmPackaging;
import org.nl.wms.sch_manage.enums.TaskEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSConstant;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -47,6 +51,9 @@ public class PackagingMiddleTask extends AbstractTask {
@Resource
private IMdPdmPackagingService iMdPdmPackagingService;
@Resource
private ISchBasePointService pointService;
@Override
public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask();
@@ -62,7 +69,7 @@ public class PackagingMiddleTask extends AbstractTask {
task.setMaterial_id(json.getString("material_id"));
task.setMaterial_qty(json.getBigDecimal("material_qty"));
task.setRequest_param(json.toString());
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
task.setTask_type(json.getString("task_type"));
task.setPriority(json.getString("Priority"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
@@ -84,8 +91,14 @@ public class PackagingMiddleTask extends AbstractTask {
acsTaskDto.setTask_code(taskDao.getTask_code());
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
if (acsTaskDto.getStart_device_code().equals(IOSConstant.AGVZJZ001)) {
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
} else {
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
}
acsTaskDto.setPriority(IOSConstant.ONE);
acsTaskDto.setTask_type(taskDao.getTask_type());
return acsTaskDto;
}
@@ -146,6 +159,14 @@ public class PackagingMiddleTask extends AbstractTask {
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("已完成");
taskService.updateById(taskObj);
// 更新起点
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, "")
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getIng_task_code, "")
);
if (taskObj.getPoint_code2().equals(IOSConstant.AGVZJZ001)) {
// 判断point_code3是否有值
if (ObjectUtil.isEmpty(taskObj.getPoint_code3())) {
@@ -155,7 +176,23 @@ public class PackagingMiddleTask extends AbstractTask {
.eq(MdPdmPackaging::getPoint_code, taskObj.getPoint_code1())
.set(MdPdmPackaging::getPoint_code, taskObj.getPoint_code4())
);
// 更新终点
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code4())
.set(SchBasePoint::getIng_task_code, "")
);
} else {
// 更新终点
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getIng_task_code, "")
);
// 生成任务
JSONObject jsonTask = new JSONObject();
jsonTask.put("point_code1", IOSConstant.AGVZJZ001);
@@ -166,9 +203,18 @@ public class PackagingMiddleTask extends AbstractTask {
jsonTask.put("point_code4", taskObj.getPoint_code3());
jsonTask.put("material_id", taskObj.getMaterial_id());
jsonTask.put("material_qty", taskObj.getMaterial_qty());
jsonTask.put("task_type", ACSTaskTypeEnum.F004.getCode());
this.create(jsonTask);
}
} else {
// 更新终点
pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getIng_task_code, "")
);
// 更新库存
iMdPdmPackagingService.update(
new UpdateWrapper<MdPdmPackaging>().lambda()

View File

@@ -80,10 +80,6 @@ public class PalletizingAddTask extends AbstractTask {
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setVehicle_type(IOSConstant.ONE);
acsTaskDto.setIs_wait(IOSConstant.ZERO);
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
acsTaskDto.setPriority(IOSConstant.ONE);
acsTaskDto.setAgv_system_type(IOSConstant.TWO);

View File

@@ -3,6 +3,7 @@ package org.nl.wms.sch_manage.service.util.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
@@ -45,7 +46,7 @@ public class PalletizingDownTask extends AbstractTask {
// 查找空闲的内外中转点
List<SchBasePoint> list = pointService.getNoTaskPointByRegionAndType("AGVZJZ01", "1", "1");
if (list.size() == 0) {
throw new BadRequestException("没有可用的内外中转点");
throw new BadRequestException("物料通道被占用");
}
SchBasePoint point = list.get(0);
SchBaseTask task = new SchBaseTask();
@@ -61,7 +62,7 @@ public class PalletizingDownTask extends AbstractTask {
task.setGroup_id(json.getString("group_id"));
task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority"));
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
task.setTask_type(json.getString("task_type"));
task.setIs_wait(json.getString("is_wait"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
@@ -87,10 +88,7 @@ public class PalletizingDownTask extends AbstractTask {
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setVehicle_type(IOSConstant.ONE);
acsTaskDto.setIs_wait(IOSConstant.ZERO);
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
acsTaskDto.setTask_type(taskDao.getTask_type());
acsTaskDto.setPriority(IOSConstant.ONE);
acsTaskDto.setAgv_system_type(IOSConstant.THREE);
@@ -144,7 +142,12 @@ public class PalletizingDownTask extends AbstractTask {
.set(SchBasePoint::getIng_task_code, "")
);
// 创建出去缠绕机的任务
List<SchBasePoint> pointList = pointService.getCRUsedDevice();
// List<SchBasePoint> pointList = pointService.getCRUsedDevice();
List<SchBasePoint> pointList = pointService.list(
new QueryWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getRegion_code, "CRHCQ")
.eq(SchBasePoint::getIs_used, IOSConstant.ONE)
);
SchBasePoint point = pointList.get(0);
JSONObject taskParam = new JSONObject();
taskParam.put("point_code1", taskObj.getPoint_code2());

View File

@@ -42,19 +42,19 @@ public class WrappingDownTask extends AbstractTask {
private IMdPbGroupplateService groupplateService;
@Override
public String create(JSONObject json) {
// 查找空闲的需要缠绕的点
List<SchBasePoint> list = pointService.getNoTaskPointByRegionAndType("CRHCQ", "4", "1");
// 查找空闲的成品区
List<SchBasePoint> list = pointService.getNoTaskPointByRegionAndType("CPQ01", "1", "1");
if (list.size() == 0) {
throw new BadRequestException("没有空闲的已缠绕点!");
throw new BadRequestException("成品区没有空闲点");
}
SchBasePoint basePoint = list.get(0);
SchBasePoint parentPoint = pointService.getById(json.getString("device_code"));
/* SchBasePoint parentPoint = pointService.getById(json.getString("device_code"));
SchBasePoint point = pointService.getById(parentPoint.getParent_point_code());
List<JSONObject> palletViewByVehicleCode = groupplateService.getPalletViewByVehicleCode(point.getVehicle_code(), Collections.singletonList("1"));
if (palletViewByVehicleCode.size() == 0) {
throw new BadRequestException("托盘信息不存在!");
}
JSONObject jsonObject = palletViewByVehicleCode.get(0);
JSONObject jsonObject = palletViewByVehicleCode.get(0);*/
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
@@ -62,14 +62,13 @@ public class WrappingDownTask extends AbstractTask {
task.setConfig_code(WrappingDownTask.class.getSimpleName());
task.setPoint_code1(json.getString("device_code"));
task.setPoint_code2(basePoint.getPoint_code());
task.setPoint_code3(parentPoint.getPoint_code());
task.setVehicle_code(point.getVehicle_code());
task.setMaterial_id(jsonObject.getString("material_id"));
task.setMaterial_qty(jsonObject.getBigDecimal("qty"));
task.setGroup_id(jsonObject.getString("group_id"));
// task.setPoint_code3(parentPoint.getPoint_code());
// task.setVehicle_code(point.getVehicle_code());
// task.setMaterial_id(jsonObject.getString("material_id"));
// task.setMaterial_qty(jsonObject.getBigDecimal("qty"));
// task.setGroup_id(jsonObject.getString("group_id"));
task.setRequest_param(json.toString());
task.setPriority(json.getString("Priority"));
task.setTask_type(TaskEnum.TASK_TYPE.code("料箱"));
task.setIs_wait(json.getString("is_wait"));
task.setCreate_id(SecurityUtils.getCurrentUserId());
task.setCreate_name(SecurityUtils.getCurrentNickName());
@@ -79,7 +78,7 @@ public class WrappingDownTask extends AbstractTask {
throw new BadRequestException("起点终点不能一致,请检查!");
}
// 下发任务
// this.sendTaskOne(task.getTask_id());
this.sendTaskOne(task.getTask_id());
return task.getTask_id();
}
@@ -95,14 +94,8 @@ public class WrappingDownTask extends AbstractTask {
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
acsTaskDto.setVehicle_type(IOSConstant.ONE);
acsTaskDto.setIs_wait(IOSConstant.ZERO);
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
acsTaskDto.setPriority(IOSConstant.ONE);
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
acsTaskDto.setIs_get_pause(IOSConstant.ZERO);
acsTaskDto.setIs_put_pause(IOSConstant.ZERO);
return acsTaskDto;
}
@@ -132,7 +125,6 @@ public class WrappingDownTask extends AbstractTask {
}
public void cancelTask(SchBaseTask taskObj) {
// 更新任务状态
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");
@@ -156,7 +148,7 @@ public class WrappingDownTask extends AbstractTask {
.set(SchBasePoint::getIng_task_code, "")
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
);
pointService.update(
/*pointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.set(SchBasePoint::getVehicle_code, "")
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
@@ -165,7 +157,7 @@ public class WrappingDownTask extends AbstractTask {
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName())
.set(SchBasePoint::getIng_task_code, "")
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code3())
);
);*/
}
@Override

View File

@@ -5,7 +5,7 @@
<div style="color: #666;font-size: 13px;">
<svg-icon icon-class="system" style="margin-right: 5px" />
<span>
{{ $t('monitor.sys') }}{{ data.sys.os }}
{{ $t('monitor.sys') }}{{ "Windows Server 2022 Standard" }}
</span>
<span>
IP{{ data.sys.ip }}