fix: 窑后送料禁止去货架三层、分拣优化、任务请求并发问题、点位解锁功能
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,4 +56,9 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
*/
|
||||
List<SchBasePoint> getPointList(SchBasePoint region);
|
||||
|
||||
/**
|
||||
* 解锁/上锁
|
||||
* @param points
|
||||
*/
|
||||
void changeLock(JSONObject points);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,48 +65,23 @@ 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
|
||||
#是否允许生成代码,生产环境设置为false
|
||||
generator:
|
||||
enabled: true
|
||||
|
||||
#是否开启 swagger-ui
|
||||
swagger:
|
||||
enabled: true
|
||||
|
||||
# IP 本地解析
|
||||
ip:
|
||||
local-parsing: true
|
||||
|
||||
#是否允许生成代码,生产环境设置为false
|
||||
generator:
|
||||
enabled: false
|
||||
|
||||
#如果生产环境要开启swagger,需要配置请求地址
|
||||
#springfox:
|
||||
# documentation:
|
||||
# swagger:
|
||||
# v2:
|
||||
# host: # 接口域名或外网ip
|
||||
|
||||
#是否开启 swagger-ui
|
||||
swagger:
|
||||
enabled: false
|
||||
|
||||
# 文件存储路径
|
||||
file:
|
||||
mac:
|
||||
@@ -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
|
||||
|
||||
@@ -1255,3 +1255,4 @@ $
|
||||
压机产出返给MES的数据
|
||||
反馈压机产出插入mes数据库失败
|
||||
插入压机检测失败
|
||||
包装数据
|
||||
|
||||
Reference in New Issue
Block a user