1.调整添加货位逻辑

master
x_z 2 years ago
parent df4d51cbba
commit 0eb427119c

@ -87,4 +87,20 @@ public interface InvSpaceDao extends BaseMapperPlus<InvSpace, InvSpace, InvSpace
* @return
*/
List<InvSpace> selectByInvCode(@Param("invStorageCode") String invStorageCode, @Param("invWarehouseCode") String invWarehouseCode, @Param("invSpaceCode") String invSpaceCode);
/**
*
*
* @param invSpace
* @return
*/
List<InvSpace> selectExistByName(InvSpace invSpace);
/**
*
*
* @param invCode
* @return
*/
String getMaxSpaceCode(@Param("invCode") String invCode);
}

@ -93,4 +93,9 @@ public class SupCertRemindMsgResponse {
*/
private String certName;
/**
*
*/
private int remindCount;
}

@ -14,6 +14,7 @@ import com.glxp.api.req.auth.FilterInvSpaceRequest;
import com.glxp.api.res.auth.InvSpaceResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.util.IdUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -26,7 +27,7 @@ import java.util.List;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao,InvSpace> implements InvSpaceService {
public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao, InvSpace> implements InvSpaceService {
@Resource
private InvSpaceDao invSpaceDao;
@ -54,6 +55,14 @@ public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao,InvSpace> imple
if (!"success".equals(result)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, result);
}
//获取当前仓库下的最大货位编码
String maxSpaceCode = invSpaceDao.getMaxSpaceCode(invSpace.getInvWarehouseCode());
if (StrUtil.isBlank(maxSpaceCode)) {
maxSpaceCode = "0000";
}
String spaceCode = IdUtil.getSpaceCode(maxSpaceCode);
invSpace.setCode(spaceCode);
Date date = new Date();
AuthAdmin user = customerService.getUserBean();
invSpace.setCreateTime(date);
@ -72,8 +81,8 @@ public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao,InvSpace> imple
*/
private static BaseResponse verifySpaceParams(InvSpace invSpace) {
//校验参数
if (StrUtil.isBlank(invSpace.getCode()) || StrUtil.isBlank(invSpace.getName())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "货位名称和货位号不能为空!");
if (StrUtil.isBlank(invSpace.getName())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "货位名称不能为空!");
}
if (StrUtil.isBlank(invSpace.getInvStorageCode()) || StrUtil.isBlank(invSpace.getInvWarehouseCode())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "请指定所属仓库和分库!");
@ -143,22 +152,8 @@ public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao,InvSpace> imple
* @return
*/
public String verifyExist(InvSpace invSpace) {
//先检查货位号是否重复
List<InvSpace> invSpaces = invSpaceDao.selectByInvCode(invSpace.getInvStorageCode(), invSpace.getInvWarehouseCode(), invSpace.getCode());
if (CollUtil.isNotEmpty(invSpaces)) {
//判断ID是否为空如果为空表示数据为新增货位是重复添加-
if (null == invSpace.getId()) {
return "货位信息已存在";
}
//此分库下货位号重复判断ID是否与当前货位相同
for (InvSpace space : invSpaces) {
if (!space.getId().equals(invSpace.getId())) {
return "货位信息已存在";
}
}
}
List<InvSpace> list = invSpaceDao.selectExist(invSpace);
//判断此货位名称是否重复
List<InvSpace> list = invSpaceDao.selectExistByName(invSpace);
if (CollUtil.isNotEmpty(list)) {
if (null == invSpace.getId()) {
return "货位信息已存在";

@ -33,4 +33,15 @@ public class IdUtil {
return String.valueOf(code);
}
/**
* +14
*
* @param maxSpaceCode
* @return
*/
public static String getSpaceCode(String maxSpaceCode) {
Long l = Long.parseLong(maxSpaceCode) + 1L;
return String.format("%04d", l);
}
}

@ -382,4 +382,30 @@
</if>
</where>
</select>
<select id="selectExistByName" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from auth_space
<where>
<if test="invStorageCode != null and invStorageCode != ''">
AND invStorageCode = #{invStorageCode}
</if>
<if test="invWarehouseCode != null and invWarehouseCode != ''">
AND invWarehouseCode = #{invWarehouseCode}
</if>
<if test="name != null and name != ''">
AND name = #{name}
</if>
</where>
</select>
<select id="getMaxSpaceCode" resultType="java.lang.String">
select max(code) from auth_space
<where>
<if test="invCode != null and invCode != ''">
and invWarehouseCode = #{invCode}
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save