Browse Source

fix: 窑后送料禁止去货架三层、分拣优化、任务请求并发问题、点位解锁功能

master
李永德 1 year ago
parent
commit
0c0421f5ce
  1. 96
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  2. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java
  3. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java
  4. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java
  5. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java
  6. 40
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  7. 10
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java
  8. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java
  9. 19
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  10. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java
  11. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSLTask.java
  12. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java
  13. 166
      lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml
  14. 1
      lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic
  15. 2
      lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
  16. 33
      lms/nladmin-ui/src/views/wms/sch/point/index.vue
  17. 10
      lms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js

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

@ -172,18 +172,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QLTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QLTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@ -206,18 +209,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@ -240,18 +247,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "SKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "SKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@ -274,21 +285,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "MLTask";
RLock lock = redissonClient.getLock(configCode);
int handling = 0; // 无业务:0
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "MLTask";
// 组织参数
param.put("config_code", configCode);
handling = specialHandling(basePoint.getRegion_code(), param);
param.put("special_param", handling);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@ -322,18 +337,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public ApplyTaskResponse applyForceTakeFullVehicle(JSONObject param) {
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QZRKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QZRKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@ -350,18 +367,31 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* @return
* @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
*/
@SneakyThrows
public ApplyTaskResponse applyForceTakeFullVehicleInStorage(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String requestNo = param.getString("requestNo");
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "SLHSTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
return ApplyTaskResponse.responseOk(requestNo);
}
@ -445,30 +475,32 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return ApplyTaskResponse.responseError(requestNo, "载具编码不能为空!");
}
StringBuilder sb = new StringBuilder();
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
GroupBindMaterialStatusEnum.UNBOUND.getValue());
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getOneByVehicleCode(
baseRequest.getVehicle_code(), GroupBindMaterialStatusEnum.UNBOUND.getValue());
String materialId = groupInfo.getMaterial_id();
MdBaseMaterial baseMaterial = materialService.getById(materialId);
BigDecimal materialWeight = ObjectUtil.isNotEmpty(groupInfo.getMaterial_weight())
? groupInfo.getMaterial_weight() : BigDecimal.valueOf(0);
BigDecimal materialQty = ObjectUtil.isNotEmpty(groupInfo.getMaterial_qty())
? BigDecimal.valueOf(groupInfo.getMaterial_qty()) : BigDecimal.valueOf(0);
String singleWeightStr = baseMaterial.getSingle_weight();
BigDecimal singleWeight = BigDecimal.valueOf(Double.parseDouble(singleWeightStr));
BigDecimal multiply = materialWeight.multiply(singleWeight);
BigDecimal multiply = materialQty.multiply(singleWeight);
// 获取工单
PdmBdWorkorder workorder = workorderService.getByCode(groupInfo.getWorkorder_code());
String extData = workorder.getExt_data();
JSONObject object = JSONObject.parseObject(extData);
CusterVo custer = wmsToMesService.getCusterByNo(object.getString("custer_no"));
log.info("包装数据:{}", object);
String custerNo = object.getString("custer_no");
String orderNo = object.getString("order_no");
// 组合
sb.append(baseRequest.getVehicle_code()).append("##")
.append(baseMaterial.getMaterial_code()).append("##")
.append(groupInfo.getMaterial_qty()).append("##")
.append(multiply).append("##")
.append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日")).append("##")
.append(custer.getCUSTER_NAME()).append("##")
.append(workorder.getProduction_order()).append("##")
.append(custerNo).append("##")
.append(orderNo).append("##")
.append(baseMaterial.getMaterial_name()).append("##")
.append(baseMaterial.getMaterial_model());
.append(baseMaterial.getMaterial_model()).append("**");
return ApplyTaskResponse.responseOk(requestNo, sb.toString());
}

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java

@ -2,6 +2,7 @@ package org.nl.wms.ext.mes.autotask;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.system.service.notice.ISysNoticeService;
@ -42,6 +43,9 @@ public class AutoSaveProductionInfo {
mi.setSTOCK_UNIT("块");
mi.setCREATE_TM(DateUtil.now());
mi.setOP_FLAG(GeneralDefinition.NO);
if (ObjectUtil.isEmpty(mi.getBATCHNO())) {
mi.setBATCHNO("-");
}
// 3、批量插入MES数据库
try {
wmsToMesService.saveSemiProductionBatchToMes(mi);

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java

@ -2,6 +2,7 @@ package org.nl.wms.ext.mes.autotask;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.system.service.notice.ISysNoticeService;
@ -41,6 +42,9 @@ public class AutoSaveShelfInformation {
shelfInfo.setCREATE_TM(now);
shelfInfo.setSEND_TM(now);
shelfInfo.setOP_FLAG(GeneralDefinition.NO);
if (ObjectUtil.isEmpty(shelfInfo.getSOURCE_VEHICLE_CODE())) {
shelfInfo.setSOURCE_VEHICLE_CODE("-");
}
// 插入数据
try {
wmsToMesService.saveShelfInfoBatchToMes(shelfInfo);

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java

@ -186,7 +186,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
throw new BadRequestException("该设备已有生产工单,不能重复下发");
}
// 设置开工人
pdmBdWorkorder.setOperator(SecurityUtils.getCurrentNickName());
pdmBdWorkorder.setOperator(ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUser())
? SecurityUtils.getCurrentNickName() : "");
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
// 重装数据回ACS,重新根据id找一遍,省的改动以上代码
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());

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

@ -93,4 +93,12 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @param vehicleType
*/
void unBindingSameVehicleMaterial(String vehicleCode, String vehicleType);
/**
* 包装获取组盘信息
* @param vehicleCode
* @param value
* @return
*/
SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value);
}

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

@ -26,21 +26,23 @@ import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
/**
* @description 服务实现
* @author lyd
* @date 2023-05-16
**/
* @author lyd
* @description 服务实现
* @date 2023-05-16
**/
@Slf4j
@Service
public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseVehiclematerialgroupMapper, SchBaseVehiclematerialgroup> implements ISchBaseVehiclematerialgroupService {
@ -55,7 +57,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
private IMdBaseMaterialService materialService;
@Override
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
return pages;
@ -67,7 +69,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
entity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
@ -107,8 +109,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getMaterial_id, materialId)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@ -118,8 +120,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@ -128,8 +130,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@ -150,4 +152,18 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
this.updateBatchById(list);
}
@Override
public SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value) {
List<String> list = new ArrayList<>();
list.add(GeneralDefinition.STEEL_TRAY);
list.add(GeneralDefinition.MATERIAL_CUP);
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.notIn(SchBaseVehiclematerialgroup::getVehicle_type, list);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
}

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

@ -1,5 +1,6 @@
package org.nl.wms.sch.point.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -15,6 +16,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@ -80,4 +82,12 @@ public class SchBasePointController {
public ResponseEntity<Object> getPointList(@RequestBody(required = false) SchBasePoint region){
return new ResponseEntity<>(schBasePointService.getPointList(region),HttpStatus.OK);
}
@Log("锁定与解锁")
@PostMapping("/changeLock")
@ApiOperation("锁定与解锁")
public ResponseEntity<Object> changeLock(@RequestBody JSONObject points) {
schBasePointService.changeLock(points);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java

@ -56,4 +56,9 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
*/
List<SchBasePoint> getPointList(SchBasePoint region);
/**
* 解锁/上锁
* @param points
*/
void changeLock(JSONObject points);
}

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

@ -31,10 +31,10 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
* @description 服务实现
* @author lyd
* @date 2023-05-15
**/
* @author lyd
* @description 服务实现
* @date 2023-05-15
**/
@Slf4j
@Service
public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, SchBasePoint> implements ISchBasePointService {
@ -46,7 +46,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
private SchBaseRegionMapper regionMapper;
@Override
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page){
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))
? whereJson.get("blurry").toString() : null;
String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code"))
@ -194,4 +194,13 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
.eq(SchBasePoint::getIs_has_workder, true));
}
@Override
public void changeLock(JSONObject points) {
JSONArray data = points.getJSONArray("data");
Boolean lockType = points.getBoolean("lock_type");
List<SchBasePoint> pointList = data.toJavaList(SchBasePoint.class);
pointList.forEach(point -> point.setIng_task_code(lockType ? "" : "-"));
this.updateBatchById(pointList);
}
}

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQLTask.java

@ -120,11 +120,6 @@ public class FJQLTask extends AbstractTask {
// 找起点
String requestParam = task.getRequest_param();
JSONObject extGroupData = JSONObject.parseObject(requestParam);
// 如果工单上的真实数量达到,就不能呼叫满料过来
PdmBdWorkorder workOrder = workorderService.getByCode(extGroupData.getString("workorder_code"));
if (workOrder.getPlan_qty().equals(workOrder.getReal_qty())) {
throw new BadRequestException("工单【" + workOrder.getWorkorder_code() + "】已达数量");
}
extGroupData.put("vehicle_type", task.getVehicle_type());
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
if (ObjectUtil.isEmpty(point)) {

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

@ -161,7 +161,7 @@ public class FJSLTask extends AbstractTask {
throw new BadRequestException("找不到组盘信息");
}
groupObject.setIs_full(false);
groupObject.setMaterial_qty(param.getInteger(param.getString("qty")));
groupObject.setMaterial_qty(param.getInteger("qty"));
groupObject.setExt_data(JSONObject.toJSONString(stackParameters));
TaskUtils.setGroupUpdateByAcs(groupObject);
vehiclematerialgroupService.updateById(groupObject);

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java

@ -162,6 +162,7 @@ public class CYZCTask extends AbstractTask {
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true)
.ne(SchBasePoint::getLayer_num, "3")
.orderByAsc(SchBasePoint::getIn_order_seq);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;

166
lms/nladmin-system/nlsso-server/src/main/resources/config/application-test.yml

@ -1,64 +1,52 @@
server:
port: 8010
port: 8011
#配置数据源
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:ndxy3_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
password: ${DB_PWD:P@ssw0rd}
# 初始连接数
initial-size: 5
# 最小连接数
min-idle: 15
# 最大连接数
max-active: 60
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 60000
# 连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
# 连接在池中最大生存的时间
max-evictable-idle-time-millis: 900000
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
test-while-idle: true
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
test-on-borrow: true
# 是否在归还到池中前进行检验
test-on-return: false
# 检测连接是否有效
validation-query: select 1
# 配置监控统计
webStatFilter:
enabled: true
stat-view-servlet:
enabled: true
# 控制台管理用户名和密码
url-pattern: /druid/*
reset-enable: false
login-username: admin
login-password: 123456
filter:
stat:
enabled: true
# 记录慢SQL
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
dynamic:
primary: mysql
datasource:
mysql:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
# username: ${DB_USER:root}
# password: ${DB_PWD:123456}
url: jdbc:log4jdbc:mysql://${DB_HOST:101.37.151.193}:${DB_PORT:53306}/${DB_NAME:rt_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
password: ${DB_PWD:P@ssW0rd123}
type: com.alibaba.druid.pool.DruidDataSource
oracle:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@172.27.37.66:1521:RTMES
username: ${DB_USER:LMSTELCOM}
password: ${DB_PWD:LMSTELCOM_6463}
type: com.alibaba.druid.pool.DruidDataSource
sqlserver:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://10.93.41.2\WINCC;DatabaseName=马钢_RH
username: ${DB_USER:sa}
password: ${DB_PWD:123}
type: com.alibaba.druid.pool.DruidDataSource
redis:
#数据库索引
database: ${REDIS_DB:15}
host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
#连接超时时间
timeout: 5000
redisson:
config: |
threads: 4
nettyThreads: 4
singleServerConfig:
database: 3
connectionMinimumIdleSize: 8
connectionPoolSize: 8
address: redis://127.0.0.1:6379
idleConnectionTimeout: 10000
timeout: 3000
# 登录相关配置
login:
# 登录缓存
@ -77,47 +65,22 @@ login:
heigth: 36
# 内容长度
length: 2
# 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可
# 字体名称,为空则使用默认字体
font-name:
# 字体大小
font-size: 25
#jwt
jwt:
header: Authorization
# 令牌前缀
token-start-with: Bearer
# 必须使用最少88位的Base64对该令牌进行编码
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
# 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
token-validity-in-seconds: 7200000
# 在线用户key
online-key: online-token-
# 验证码
code-key: code-key-
# token 续期检查时间范围(默认30分钟,单位默认毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
detect: 1800000
# 续期时间范围,默认 1小时,这里单位毫秒
renew: 3600000
# IP 本地解析
ip:
local-parsing: true
#是否允许生成代码,生产环境设置为false
generator:
enabled: false
#如果生产环境要开启swagger,需要配置请求地址
#springfox:
# documentation:
# swagger:
# v2:
# host: # 接口域名或外网ip
enabled: true
#是否开启 swagger-ui
swagger:
enabled: false
enabled: true
# IP 本地解析
ip:
local-parsing: true
# 文件存储路径
file:
@ -135,7 +98,7 @@ file:
avatarMaxSize: 5
logging:
file:
path: /app/jar/logs
path: C:\log\wms
config: classpath:logback-spring.xml
# Sa-Token配置
@ -157,3 +120,36 @@ sa-token:
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
# token 前缀
token-prefix: Bearer
sso:
# Ticket有效期 (单位: 秒),默认五分钟
ticket-timeout: 300
# 所有允许的授权回调地址
allow-url: "*"
# 是否打开单点注销功能
is-slo: true
# ------- SSO-模式三相关配置 (下面的配置在SSO模式三并且 is-slo=true 时打开)
# 是否打开模式三
isHttp: true
# 接口调用秘钥(用于SSO模式三的单点注销功能)
secretkey: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
# ---- 除了以上配置项,你还需要为 Sa-Token 配置http请求处理器(文档有步骤说明)
is-read-cookie: true
is-print: false
# 未登录 StpUtil.getTokenSession() 设置值,获取值 @SaIgnore 得忽略接口
token-session-check-login: false
alone-redis:
# Redis数据库索引(默认为0)
database: 1
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码(默认为空)
password:
# 连接超时时间
timeout: 10s
lucene:
index:
path: D:\lucene\index

1
lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic

@ -1255,3 +1255,4 @@ $
压机产出返给MES的数据
反馈压机产出插入mes数据库失败
插入压机检测失败
包装数据

2
lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue

@ -231,7 +231,7 @@
v-for="item in custerList"
:key="item.custer_NO"
:label="item.custer_NAME"
:value="item.custer_NO"
:value="item.custer_NAME"
>
<span style="float: left">{{ item.custer_NO }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.custer_NAME }}</span>

33
lms/nladmin-ui/src/views/wms/sch/point/index.vue

@ -134,6 +134,30 @@
>
禁用
</el-button>
<el-button
v-if="!crud.query.lock_type"
slot="right"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-circle-check"
:disabled="crud.selections.length === 0"
@click="changeLock(crud.selections)"
>
锁定
</el-button>
<el-button
v-if="crud.query.lock_type"
slot="right"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-circle-close"
:disabled="crud.selections.length === 0"
@click="changeLock(crud.selections)"
>
解锁
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="540px">
@ -505,6 +529,15 @@ export default {
this.crud.query.point_type = null
this.crud.query.point_status = null
this.hand()
},
changeLock(data) {
const param = {}
param.data = data
param.lock_type = this.crud.query.lock_type
crudSchBasePoint.changeLock(param).then(res => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
}
}
}

10
lms/nladmin-ui/src/views/wms/sch/point/schBasePoint.js

@ -40,4 +40,12 @@ export function getPointList(data) {
})
}
export default { add, edit, del, changeUsed, getPointList }
export function changeLock(data) {
return request({
url: 'api/schBasePoint/changeLock',
method: 'post',
data: data
})
}
export default { add, edit, del, changeUsed, getPointList, changeLock }

Loading…
Cancel
Save