add:1.增加点位一键解锁功能;

2.增加组盘解绑、重新绑定功能;
This commit is contained in:
2024-10-23 15:27:58 +08:00
parent d736050c04
commit cdc20511c7
4 changed files with 95 additions and 13 deletions

View File

@@ -1,29 +1,32 @@
package org.nl.wms.sch.group.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
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.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -41,6 +44,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
@Autowired
private ISchBasePointService pointService;
@Override
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
@@ -53,8 +57,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
if(StringUtils.isNotBlank(entity.getPoint_code()))
{
if (StringUtils.isNotBlank(entity.getPoint_code())) {
entity.setRegion_code(pointService.getById(entity.getPoint_code()).getRegion_code());
}
entity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
@@ -68,6 +71,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SchBaseVehiclematerialgroup entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
@@ -76,8 +80,23 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
vehiclematerialgroupMapper.updateById(entity);
List<SchBasePoint> schBasePointList = pointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, entity.getVehicle_code()).orderByDesc(SchBasePoint::getCreate_time));
if (ObjectUtil.isNotEmpty(schBasePointList)) {
if (StringUtils.isNotBlank(schBasePointList.get(0).getVehicle_code())) {
if (entity.getGroup_bind_material_status().equals(GroupBindMaterialStatusEnum.UNBOUND.getValue())) {
//解绑
LambdaUpdateWrapper<SchBasePoint> updateWrapper = new LambdaUpdateWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, schBasePointList.get(0).getVehicle_code());
updateWrapper.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode());
updateWrapper.set(SchBasePoint::getVehicle_qty, null);
updateWrapper.set(SchBasePoint::getVehicle_type, null);
updateWrapper.set(SchBasePoint::getVehicle_code, null);
pointService.update(updateWrapper);
}
}
}
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除

View File

@@ -65,6 +65,15 @@ public class SchBasePointController {
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("解锁点位")
@PostMapping("/unlockPoint")
@ApiOperation("解锁点位")
public ResponseEntity<Object> unlockPoint(@RequestBody JSONObject jsonObject) {
schBasePointService.unlockPoint(jsonObject);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("启动与禁用")
@PostMapping("/changeUsed")
@ApiOperation("启动与禁用")

View File

@@ -49,6 +49,13 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
*/
void changeUsed(JSONObject jsonObject);
/**
* 解锁点位
* @param jsonObject
*/
void unlockPoint(JSONObject jsonObject);
/**
* 获取点位
* @param region

View File

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,17 +16,21 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.system.service.dict.dao.Dict;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.impl.SchBaseVehiclematerialgroupServiceImpl;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.util.PointUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -33,10 +38,10 @@ import java.util.Set;
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 {
@@ -47,8 +52,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Autowired
private SchBaseRegionMapper regionMapper;
@Resource
private SchBaseVehiclematerialgroupServiceImpl groupServiceImpl;
@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")) ? whereJson.get("workshop_code").toString() : null;
String region_code = ObjectUtil.isNotEmpty(whereJson.get("region_code")) ? whereJson.get("region_code").toString() : null;
@@ -178,12 +186,51 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
pointMapper.batchChangeUsed(pointCodes, used);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void unlockPoint(JSONObject jsonObject) {
// 不可能为空
JSONArray data = jsonObject.getJSONArray("data");
Boolean used = jsonObject.getBoolean("used");
Assert.notNull(data, "数据为空!");
Assert.notNull(used, "数据为空!");
List<SchBasePoint> schBasePoints = JSONArray.parseArray(JSONArray.toJSONString(data), SchBasePoint.class);
// 获取所有组盘标识
List<String> vehicleCodes = schBasePoints.stream()
.map(SchBasePoint::getVehicle_code)
.collect(Collectors.toList());
List<SchBaseVehiclematerialgroup> groupList = groupServiceImpl.list(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>().in(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCodes));
if (ObjectUtil.isNotEmpty(groupList)) {
List<String> groupIds = groupList.stream().filter(r -> !r.getGroup_bind_material_status().equals(GroupBindMaterialStatusEnum.UNBOUND.getValue()))
.map(SchBaseVehiclematerialgroup::getGroup_id)
.collect(Collectors.toList());
if (ObjectUtil.isNotEmpty(groupIds)) {
LambdaUpdateWrapper<SchBaseVehiclematerialgroup> updateWrapper = new LambdaUpdateWrapper<SchBaseVehiclematerialgroup>().in(SchBaseVehiclematerialgroup::getGroup_id, groupIds);
updateWrapper.set(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue());
groupServiceImpl.update(updateWrapper);
}
}
// 获取所有pointCode
List<String> pointCodes = schBasePoints.stream()
.map(SchBasePoint::getPoint_code)
.collect(Collectors.toList());
if (ObjectUtil.isNotEmpty(pointCodes)) {
LambdaUpdateWrapper<SchBasePoint> updateWrapper = new LambdaUpdateWrapper<SchBasePoint>().in(SchBasePoint::getPoint_code, pointCodes);
updateWrapper.set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode());
updateWrapper.set(SchBasePoint::getVehicle_qty, null);
updateWrapper.set(SchBasePoint::getVehicle_type, null);
updateWrapper.set(SchBasePoint::getVehicle_code, null);
this.update(updateWrapper);
}
}
@Override
public List<SchBasePoint> getPointList(SchBasePoint region) {
if (ObjectUtil.isEmpty(region)) return this.list();
return pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getRegion_code, region.getRegion_code())
.eq(ObjectUtil.isNotEmpty(region.getPoint_type()),SchBasePoint::getPoint_type, region.getPoint_type())
.eq(ObjectUtil.isNotEmpty(region.getPoint_type()), SchBasePoint::getPoint_type, region.getPoint_type())
.orderByAsc(SchBasePoint::getPoint_code));
}