fix: 手持权限、任务校验

This commit is contained in:
2024-03-07 17:16:28 +08:00
parent f1c17b6599
commit 0ad8c2e8b7
17 changed files with 140 additions and 104 deletions

View File

@@ -32,7 +32,7 @@
OR pp.qzzno = bc.qzz_no2 OR pp.qzzno = bc.qzz_no2
WHERE bc.point_type = #{type} WHERE bc.point_type = #{type}
AND pp.qzz_size = #{size} AND pp.qzz_size = #{size}
AND LEFT(p.resource_name, 2) = #{area} AND LEFT(pp.resource_name, 2) = #{area}
AND bc.is_used = '1' AND bc.is_used = '1'
AND bc.point_status = '3' AND bc.point_status = '3'
AND 0 = (SELECT COUNT(*) AND 0 = (SELECT COUNT(*)

View File

@@ -62,8 +62,10 @@ public interface IBstIvtShafttubeivtService extends IService<BstIvtShafttubeivt>
/** /**
* 获得气胀轴库对应的气涨轴位置 * 获得气胀轴库对应的气涨轴位置
* @param qzzSize * @param qzzSize 气涨轴尺寸
* @param specification 标箔、锂电
* @param location 位置:上半部分还是下半部分
* @return * @return
*/ */
List<BstIvtShafttubeivt> getByQzzSize(String qzzSize); List<BstIvtShafttubeivt> getByQzzSize(String qzzSize, String specification, String location);
} }

View File

@@ -13,5 +13,5 @@ public interface BstIvtShafttubeivtMapper extends BaseMapper<BstIvtShafttubeivt>
List<BstIvtShafttubeivt> getAllShaftPointsByConditions(String type, String location, String have); List<BstIvtShafttubeivt> getAllShaftPointsByConditions(String type, String location, String have);
List<BstIvtShafttubeivt> getByQzzSize(String qzzSize); List<BstIvtShafttubeivt> getByQzzSize(String qzzSize, String specification, String location);
} }

View File

@@ -19,5 +19,6 @@
FROM FROM
`bst_ivt_shafttubeivt` bsf `bst_ivt_shafttubeivt` bsf
WHERE bsf.is_used = '1' AND bsf.qzz_size = #{qzzSize} AND bsf.point_type = '1' WHERE bsf.is_used = '1' AND bsf.qzz_size = #{qzzSize} AND bsf.point_type = '1'
AND bsf.qzz_generation = #{specification} AND bsf.point_location = #{location}
</select> </select>
</mapper> </mapper>

View File

@@ -102,8 +102,8 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl<BstIvtShafttubeiv
} }
@Override @Override
public List<BstIvtShafttubeivt> getByQzzSize(String qzzSize) { public List<BstIvtShafttubeivt> getByQzzSize(String qzzSize, String specification, String location) {
return bstIvtShafttubeivtMapper.getByQzzSize(qzzSize); return bstIvtShafttubeivtMapper.getByQzzSize(qzzSize, specification, location);
} }
} }

View File

@@ -45,7 +45,8 @@ public interface IPdmBiSlittingproductionplanService extends IService<PdmBiSlitt
/** /**
* 获取可用的分切计划 * 获取可用的分切计划
* @param area 区域
* @return / * @return /
*/ */
List<SlitterPlanDistinctDto> getAllCutPlan(String specification); List<SlitterPlanDistinctDto> getAllCutPlan(String area);
} }

View File

@@ -12,5 +12,5 @@ import java.util.List;
**/ **/
public interface PdmBiSlittingproductionplanMapper extends BaseMapper<PdmBiSlittingproductionplan> { public interface PdmBiSlittingproductionplanMapper extends BaseMapper<PdmBiSlittingproductionplan> {
List<SlitterPlanDistinctDto> getAllCutPlan(String specification); List<SlitterPlanDistinctDto> getAllCutPlan(String area);
} }

View File

@@ -64,7 +64,7 @@
AND p.is_paper_ok = '1' AND p.is_paper_ok = '1'
AND p.is_delete = '0' AND p.is_delete = '0'
AND p.manufacture_date = '2024-01-05' AND p.manufacture_date = '2024-01-05'
AND LEFT ( p.resource_name, 2 ) = #{specification} AND LEFT ( p.resource_name, 2 ) = #{area}
AND p.up_or_down IS NOT NULL AND p.up_or_down IS NOT NULL
AND p.left_or_right IS NOT NULL AND p.left_or_right IS NOT NULL
GROUP BY GROUP BY

View File

@@ -76,8 +76,8 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
} }
@Override @Override
public List<SlitterPlanDistinctDto> getAllCutPlan(String specification) { public List<SlitterPlanDistinctDto> getAllCutPlan(String area) {
return pdmBiSlittingproductionplanMapper.getAllCutPlan(specification); return pdmBiSlittingproductionplanMapper.getAllCutPlan(area);
} }
} }

View File

@@ -68,8 +68,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
.next_device_code(task.getPoint_code2()) .next_device_code(task.getPoint_code2())
.start_device_code2(task.getPoint_code3()) .start_device_code2(task.getPoint_code3())
.next_device_code2(task.getPoint_code4()) .next_device_code2(task.getPoint_code4())
.vehicle_code(ObjectUtil.isNotEmpty(task.getVehicle_code()) .vehicle_code(task.getVehicle_code())
? task.getVehicle_code() : task.getVehicle_code2())
.agv_system_type(agv_system_type) .agv_system_type(agv_system_type)
.priority(task.getPriority()) .priority(task.getPriority())
.remark(task.getRemark()) .remark(task.getRemark())
@@ -101,6 +100,8 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
.eq(BstIvtShafttubeivt::getPoint_code, endPoint)); .eq(BstIvtShafttubeivt::getPoint_code, endPoint));
String requestParam = task.getRequest_param(); String requestParam = task.getRequest_param();
JSONObject extGroupData = JSONObject.parseObject(requestParam); JSONObject extGroupData = JSONObject.parseObject(requestParam);
// 需要套轴就要把纸管信息进行维护
if ("1".equals(extGroupData.getString("is_bushing"))) {
// 获取分切计划(最多两个)需要获取子卷的纸管设置到点位上 获取分切计划dto中对应的需要套轴的分切计划 最多两个计划 // 获取分切计划(最多两个)需要获取子卷的纸管设置到点位上 获取分切计划dto中对应的需要套轴的分切计划 最多两个计划
String needPlan = extGroupData.getString("needPlan"); String needPlan = extGroupData.getString("needPlan");
SlitterPlanDistinctDto planDistinctDto = JSONObject.parseObject(needPlan, SlitterPlanDistinctDto.class); SlitterPlanDistinctDto planDistinctDto = JSONObject.parseObject(needPlan, SlitterPlanDistinctDto.class);
@@ -135,14 +136,20 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
endPointObj.setContainer_name2(plan.getContainer_name()); endPointObj.setContainer_name2(plan.getContainer_name());
} }
} }
}
endPointObj.setHave_qzz("1"); endPointObj.setHave_qzz("1");
endPointObj.setQzz_size(extGroupData.getString("qzz_size")); endPointObj.setQzz_size(extGroupData.getString("qzz_size"));
TaskUtils.updateOptMessageByBShaftPoint(endPointObj); TaskUtils.updateOptMessageByBShaftPoint(endPointObj);
shafttubeivtService.updateById(endPointObj); shafttubeivtService.updateById(endPointObj);
// 起点清空 // 起点清空
if (startPoint.equals(startPointObj.getTruss_point_code1())) {
startPointObj.setQzz_no1(""); startPointObj.setQzz_no1("");
} else {
startPointObj.setQzz_no2(""); startPointObj.setQzz_no2("");
}
if (ObjectUtil.isEmpty(startPointObj.getQzz_no1()) && ObjectUtil.isEmpty(startPointObj.getQzz_no2())) {
startPointObj.setPoint_status("1"); startPointObj.setPoint_status("1");
}
TaskUtils.updateOptMessageByBCutPoint(startPointObj); TaskUtils.updateOptMessageByBCutPoint(startPointObj);
bcutpointivtService.updateById(startPointObj); bcutpointivtService.updateById(startPointObj);
@@ -166,8 +173,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task.setPoint_code1(form.getString("point_code1")); task.setPoint_code1(form.getString("point_code1"));
task.setPoint_code2(form.getString("point_code2")); task.setPoint_code2(form.getString("point_code2"));
task.setVehicle_code(form.getString("vehicle_code1")); task.setVehicle_code(form.getString("vehicle_code"));
task.setVehicle_code2(form.getString("vehicle_code2"));
task.setAcs_task_type("6"); task.setAcs_task_type("6");
task.setIs_delete("0"); task.setIs_delete("0");
task.setRequest_param(form.toJSONString()); task.setRequest_param(form.toJSONString());

View File

@@ -61,21 +61,25 @@ public class AutoCallAirShaftTask {
emptyPoints.forEach(empty -> { emptyPoints.forEach(empty -> {
// 标箔1锂电2 // 标箔1锂电2
String specification = empty.getQzz_generation(); String specification = empty.getQzz_generation();
String location;
String area;
if ("1".equals(specification)) { if ("1".equals(specification)) {
location = "0";
if ("0".equals(empty.getPoint_location())) { if ("0".equals(empty.getPoint_location())) {
specification = "B2"; area = "B2";
} else { } else {
specification = "B4"; area = "B4";
} }
} else { } else {
location = "1";
if ("0".equals(empty.getPoint_location())) { if ("0".equals(empty.getPoint_location())) {
specification = "B1"; area = "B1";
} else { } else {
specification = "B3"; area = "B3";
} }
} }
// 2、获取分切计划数据hint: 根据标箔锂电区分区域 // 2、获取分切计划数据hint: 根据标箔锂电区分区域
List<SlitterPlanDistinctDto> plans = slittingproductionplanService.getAllCutPlan(specification); List<SlitterPlanDistinctDto> plans = slittingproductionplanService.getAllCutPlan(area);
if (plans.size() == 0) { if (plans.size() == 0) {
// 如果不需要套轴,就只做拔轴 // 如果不需要套轴,就只做拔轴
makePullShaft(empty); makePullShaft(empty);
@@ -102,10 +106,10 @@ public class AutoCallAirShaftTask {
PdmBiSlittingproductionplan needPlan = needPlans.get(0); PdmBiSlittingproductionplan needPlan = needPlans.get(0);
String qzzSize = needPlan.getQzz_size(); String qzzSize = needPlan.getQzz_size();
// 从套轴对接位获取相同气涨轴大小 // 从套轴对接位获取相同气涨轴大小
List<BstIvtCutpointivt> qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification); List<BstIvtCutpointivt> qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, area);
if (qzzPoint.size() == 0) { if (qzzPoint.size() == 0) {
// 调用ACS滚条气涨轴下来 // 调用ACS滚条气涨轴下来
toAcsOutShaft(qzzSize); toAcsOutShaft(qzzSize, specification, location);
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(empty, needPlans, qzzSize); saveCutPlanMessage(empty, needPlans, qzzSize);
return; return;
@@ -115,7 +119,7 @@ public class AutoCallAirShaftTask {
if (ObjectUtil.isEmpty(startPoint)) { if (ObjectUtil.isEmpty(startPoint)) {
// 如果不存在,则发起信号滚气涨轴 // 如果不存在,则发起信号滚气涨轴
// 调用ACS滚条气涨轴下来 // 调用ACS滚条气涨轴下来
toAcsOutShaft(qzzSize); toAcsOutShaft(qzzSize, specification, location);
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(empty, needPlans, qzzSize); saveCutPlanMessage(empty, needPlans, qzzSize);
return; return;
@@ -152,9 +156,16 @@ public class AutoCallAirShaftTask {
}); });
} }
private void toAcsOutShaft(String qzzSize) { /**
* 获取对应的气胀轴库1
* @param qzzSize 气涨轴尺寸
* @param specification 标箔、锂电
* @param location 位置:上半部分还是下半部分
*/
private void toAcsOutShaft(String qzzSize, String specification, String location) {
// todo: 访问acs判断是否有无气涨轴 // todo: 访问acs判断是否有无气涨轴
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize); // 需要区分上下
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, specification, location);
if (shafttubeivts.size() == 0) { if (shafttubeivts.size() == 0) {
throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴"); throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴");
} }
@@ -214,29 +225,28 @@ public class AutoCallAirShaftTask {
return; return;
} }
BstIvtCutpointivt cutpointivt = notTaskPoints.get(0); BstIvtCutpointivt cutpointivt = notTaskPoints.get(0);
String pointCode1 = ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) ? cutpointivt.getTruss_point_code1() : cutpointivt.getTruss_point_code2();
String qzzNo = ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) ? cutpointivt.getQzz_no1() : cutpointivt.getQzz_no2();
// 获取对应的分切计划
List<PdmBiSlittingproductionplan> list = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.eq(PdmBiSlittingproductionplan::getQzzno, qzzNo)
.eq(PdmBiSlittingproductionplan::getIs_delete, "0"));
if (list.size() == 0) {
log.warn("气涨轴[{}]对应的分切计划不存在!", qzzNo);
throw new BadRequestException("气涨轴[" + qzzNo + "]对应的分切计划不存在!");
}
PdmBiSlittingproductionplan plan = list.get(0);
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("point_code1", ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) param.put("point_code1", pointCode1);
? cutpointivt.getTruss_point_code1() : cutpointivt.getTruss_point_code2());
param.put("point_code2", empty.getPoint_code()); param.put("point_code2", empty.getPoint_code());
param.put("vehicle_code", ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) param.put("vehicle_code", qzzNo);
? cutpointivt.getQzz_no1() : cutpointivt.getQzz_no2()); param.put("qzz_no", qzzNo);
param.put("qzz_no", ObjectUtil.isNotEmpty(cutpointivt.getQzz_no1()) // hint: 当前分切计划的气涨轴尺寸
? cutpointivt.getQzz_no1() : cutpointivt.getQzz_no2()); param.put("qzz_size", plan.getQzz_size());
param.put("task_type", "6"); param.put("task_type", "6");
param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
param.put("is_bushing", "0"); param.put("is_bushing", "0");
trussCallAirShaftTask.createTask(param); trussCallAirShaftTask.createTask(param);
} }
public boolean checkHaveTask(BstIvtCutpointivt p) {
List<String> pointCodes = Stream.of(p.getPoint_code(), p.getTruss_point_code1(), p.getTruss_point_code1()).collect(Collectors.toList());
LambdaQueryWrapper<SchBaseTask> lam = Wrappers.lambdaQuery();
lam.lt(SchBaseTask::getTask_code, "07");
lam.and(la -> la
.in(SchBaseTask::getPoint_code1, pointCodes).or()
.in(SchBaseTask::getPoint_code2, pointCodes));
List<SchBaseTask> list = taskService.list(lam);
return list.size() == 0;
}
} }

View File

@@ -74,6 +74,7 @@ public class AutoSendAirShaftAgvTask {
} }
// 如果两个气涨轴编码则表示一组满了 // 如果两个气涨轴编码则表示一组满了
// 查找分切对接没任务的空位 // 查找分切对接没任务的空位
// todo:枷锁
List<BstIvtCutpointivt> emptyPoint = slitterMapper.getEmptyCutPointNotTask(deviceCut.getSort_seq()); List<BstIvtCutpointivt> emptyPoint = slitterMapper.getEmptyCutPointNotTask(deviceCut.getSort_seq());
if (emptyPoint.size() == 0) { if (emptyPoint.size() == 0) {
log.warn("找不到对应的位置!"); log.warn("找不到对应的位置!");

View File

@@ -10,6 +10,6 @@ public interface SlitterConstant {
/** /**
* 任务区域暂定Test * 任务区域暂定Test
*/ */
String SLITTER_TASK_AREA = "Test"; String SLITTER_TASK_AREA = "B2";
} }

View File

@@ -45,7 +45,7 @@ public class SlitterController {
@PostMapping("/test2") @PostMapping("/test2")
@Log("1111") @Log("1111")
public ResponseEntity<Object> create2(@RequestBody JSONObject entity){ public ResponseEntity<Object> create2(@RequestBody JSONObject entity){
return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.CREATED); return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.OK);
} }
@PostMapping("/test3") @PostMapping("/test3")
@Log("1111") @Log("1111")

View File

@@ -187,11 +187,10 @@ public class SlitterServiceImpl implements SlitterService {
.in(PdmBiSlittingproductionplan::getContainer_name, collect) .in(PdmBiSlittingproductionplan::getContainer_name, collect)
.eq(PdmBiSlittingproductionplan::getIs_delete, "0")); .eq(PdmBiSlittingproductionplan::getIs_delete, "0"));
if (plans.size() == 0) { if (plans.size() == 0) {
throw new BadRequestException("找不到对应的分切计划!"); throw new BadRequestException("找不到[" + collect + "]对应的分切计划!");
} }
// 当前套轴的分切计划 // 当前套轴的分切计划
PdmBiSlittingproductionplan demoPlan = plans.get(0); PdmBiSlittingproductionplan demoPlan = plans.get(0);
String area = demoPlan.getResource_name().substring(0, 2);
// 查找是否有同组的气胀轴位置 // 查找是否有同组的气胀轴位置
BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan);
if (ObjectUtil.isEmpty(cutPoint)) { if (ObjectUtil.isEmpty(cutPoint)) {
@@ -204,13 +203,18 @@ public class SlitterServiceImpl implements SlitterService {
} }
} }
if (ObjectUtil.isEmpty(cutPoint)) { if (ObjectUtil.isEmpty(cutPoint)) {
// 获取一个空位 todo: 枷锁 // 获取一个空位
List<BstIvtCutpointivt> emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "1"); List<BstIvtCutpointivt> emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "1");
if (emptyNotTaskPoint.size() == 0) { if (emptyNotTaskPoint.size() == 0) {
throw new BadRequestException("找不到可用套轴对接位!"); throw new BadRequestException("找不到可用套轴对接位!");
} }
cutPoint = emptyNotTaskPoint.get(0); cutPoint = emptyNotTaskPoint.get(0);
} }
// 枷锁
RLock lockPoint = redissonClient.getLock(cutPoint.getPoint_code());
boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLockPoint) {
// 分切计划设置套轴完成 // 分切计划设置套轴完成
String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr(); String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr();
plans.forEach(plan -> { plans.forEach(plan -> {
@@ -232,6 +236,14 @@ public class SlitterServiceImpl implements SlitterService {
} else { } else {
throw new BadRequestException("系统繁忙,稍后在试"); throw new BadRequestException("系统繁忙,稍后在试");
} }
} finally {
if (tryLockPoint) {
lockPoint.unlock();
}
}
} else {
throw new BadRequestException("系统繁忙,稍后在试");
}
} finally { } finally {
if (tryLock) { if (tryLock) {
lock.unlock(); lock.unlock();
@@ -280,12 +292,13 @@ public class SlitterServiceImpl implements SlitterService {
// 任务参数 // 任务参数
JSONObject taskParam = new JSONObject(); JSONObject taskParam = new JSONObject();
if (timePlans.size() == 0) { if (timePlans.size() == 0) {
// 如果没有下一组分切计划,就只做下卷任务(判断下单/下双) // 如果没有下一组分切计划,就只做下卷任务(判断下单/下双)
// 获取分切对接位没任务的空位置 // 获取分切对接位没任务的空位置
List<BstIvtCutpointivt> emptyPoints = slitterMapper.getEmptyCutPointNotTask(device.getSort_seq()); List<BstIvtCutpointivt> emptyPoints = slitterMapper.getEmptyCutPointNotTask(device.getSort_seq());
if (emptyPoints.size() == 0) { if (emptyPoints.size() == 0) {
throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!");
} }
// todo: 枷锁
BstIvtCutpointivt emptyPoint = emptyPoints.get(0); BstIvtCutpointivt emptyPoint = emptyPoints.get(0);
// 创建任务 // 创建任务
if (currentUpPlan != null && currentDownPlan != null) { if (currentUpPlan != null && currentDownPlan != null) {
@@ -336,7 +349,7 @@ public class SlitterServiceImpl implements SlitterService {
} }
BstIvtCutpointivt newCutPoint = bcutpointivtService.getOne(newCutLam, false); BstIvtCutpointivt newCutPoint = bcutpointivtService.getOne(newCutLam, false);
if (ObjectUtil.isEmpty(newCutPoint)) { if (ObjectUtil.isEmpty(newCutPoint)) {
throw new BadRequestException("分切机【" + device.getExt_code() + "】的下一组分切计划未配送完毕!"); throw new BadRequestException("分切机【" + device.getExt_code() + "】的下一组分切计划未配送完毕!😊");
} }
String binaryExpress = TaskUtils.binaryConvertExpress(currentUpPlan, currentDownPlan, nextUpPlan, nextDownPlan); String binaryExpress = TaskUtils.binaryConvertExpress(currentUpPlan, currentDownPlan, nextUpPlan, nextDownPlan);
switch (binaryExpress) { switch (binaryExpress) {
@@ -391,12 +404,12 @@ public class SlitterServiceImpl implements SlitterService {
plan.setStatus("06"); plan.setStatus("06");
TaskUtils.updateOptMessageBySlitterPlan(plan); TaskUtils.updateOptMessageBySlitterPlan(plan);
}); });
// slittingproductionplanService.updateBatchById(currentPlans);
// 上去的分切计划修改状态03 -> 04 // 上去的分切计划修改状态03 -> 04
nextPlans.forEach(plan -> { nextPlans.forEach(plan -> {
plan.setStatus("04"); plan.setStatus("04");
TaskUtils.updateOptMessageBySlitterPlan(plan); TaskUtils.updateOptMessageBySlitterPlan(plan);
}); });
// hint: 为了减少IO次数将两个数组放在一起批量插入
List<PdmBiSlittingproductionplan> mergedList = new ArrayList<>(); List<PdmBiSlittingproductionplan> mergedList = new ArrayList<>();
mergedList.addAll(currentPlans); mergedList.addAll(currentPlans);
mergedList.addAll(nextPlans); mergedList.addAll(nextPlans);

View File

@@ -97,6 +97,7 @@
max( sys_user.username ) AS username, max( sys_user.username ) AS username,
max( sys_roles_menus.menu_id ) AS menu_id, max( sys_roles_menus.menu_id ) AS menu_id,
max( sys_menu.component ) AS component, max( sys_menu.component ) AS component,
max( sys_menu.title ) AS title,
max( sys_menu.path ) AS path, max( sys_menu.path ) AS path,
max( sys_menu.component_name ) AS component_name max( sys_menu.component_name ) AS component_name
FROM FROM
@@ -123,6 +124,7 @@
sys_menu.title, sys_menu.title,
sys_menu.component, sys_menu.component,
sys_menu.path, sys_menu.path,
sys_menu.title,
sys_menu.component_name, sys_menu.component_name,
sys_menu.menu_sort sys_menu.menu_sort
ORDER BY sys_menu.menu_sort ORDER BY sys_menu.menu_sort

View File

@@ -147,7 +147,7 @@
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')"/> <el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')"/>
<el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')"/> <el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')"/>
<el-table-column prop="qzz_size" label="气涨轴尺寸" :min-width="flexWidth('qzz_size',crud.data,'气涨轴尺寸')"/> <el-table-column prop="qzz_size" label="气涨轴尺寸" :min-width="flexWidth('qzz_size',crud.data,'气涨轴尺寸')"/>
<el-table-column prop="qzz_generation" label="气涨轴代数" :min-width="flexWidth('qzz_generation',crud.data,'气涨轴代数')"/> <el-table-column prop="qzz_generation" label="标箔/锂电" :min-width="flexWidth('qzz_generation',crud.data,'气涨轴代数')"/>
<el-table-column prop="tube_code1" label="纸管1编码" :min-width="flexWidth('tube_code1',crud.data,'纸管1编码')"/> <el-table-column prop="tube_code1" label="纸管1编码" :min-width="flexWidth('tube_code1',crud.data,'纸管1编码')"/>
<el-table-column prop="tube_name1" label="纸管1描述" :min-width="flexWidth('tube_name1',crud.data,'纸管1描述')"/> <el-table-column prop="tube_name1" label="纸管1描述" :min-width="flexWidth('tube_name1',crud.data,'纸管1描述')"/>
<el-table-column prop="tube_code2" label="纸管2编码" :min-width="flexWidth('tube_code2',crud.data,'纸管2编码')"/> <el-table-column prop="tube_code2" label="纸管2编码" :min-width="flexWidth('tube_code2',crud.data,'纸管2编码')"/>