add:1.增加点位一键解锁功能;
2.增加组盘解绑、重新绑定功能;
This commit is contained in:
@@ -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) {
|
||||
// 真删除
|
||||
|
||||
@@ -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("启动与禁用")
|
||||
|
||||
@@ -49,6 +49,13 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
*/
|
||||
void changeUsed(JSONObject jsonObject);
|
||||
|
||||
/**
|
||||
* 解锁点位
|
||||
* @param jsonObject
|
||||
*/
|
||||
void unlockPoint(JSONObject jsonObject);
|
||||
|
||||
|
||||
/**
|
||||
* 获取点位
|
||||
* @param region
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user