工序名校验修改

This commit is contained in:
lym
2024-06-17 18:11:42 +08:00
parent 724bb7e9e0
commit 6d7b76894e
7 changed files with 90 additions and 12 deletions
@@ -108,8 +108,8 @@ public class OrderController {
@PutMapping("/restore")
@Operation(summary = "还原")
@Parameter(name = "orderId", description = "生产单id", required = true, example = "1")
@PreAuthorize("@ss.hasPermission('executor:order:restore')")
public CommonResult<Boolean> restoreOrder(@Valid @RequestBody Long orderId) {
@PreAuthorize("@ss.hasPermission('executor:order:update')")
public CommonResult<Boolean> restoreOrder(@RequestParam("orderId") Long orderId) {
orderService.restoreOrder(orderId);
return success(true);
}
@@ -56,7 +56,7 @@ public interface OrderService {
*
* @param orderId 编号组
*/
void restoreOrder(@Valid Long orderId);
void restoreOrder(Long orderId);
/**
* 获得生产单表 order_{N}
@@ -141,8 +141,7 @@ public class OrderServiceImpl implements OrderService {
validatePhoneNumber(createReqVO.getPhoneNumber());
//验证自定义单号是否存在,业务员、拆单员是否存在
validateOrderImportForCreateOrUpdate(createReqVO.getCustomOrderNo(), createReqVO.getSalesman(), createReqVO.getSplitter());
validateCustomOrderNoExists(createReqVO.getCustomOrderNo());
LocalDateTime time = getAfterDate(createReqVO.getDeliveryDate());
createReqVO.setDeliveryDate(time);
// 插入
@@ -161,8 +160,7 @@ public class OrderServiceImpl implements OrderService {
validatePhoneNumber(updateReqVO.getPhoneNumber());
//验证自定义单号是否存在,业务员、拆单员是否存在
validateOrderImportForCreateOrUpdate(updateReqVO.getCustomOrderNo(), updateReqVO.getSalesman(), updateReqVO.getSplitter());
validateCustomOrderNoExists(updateReqVO.getCustomOrderNo(), updateReqVO.getId());
// 更新
OrderDO updateObj = BeanUtils.toBean(updateReqVO, OrderDO.class);
orderMapper.updateById(updateObj);
@@ -421,6 +419,20 @@ public class OrderServiceImpl implements OrderService {
}
// 验证自定义单号是否存在
private void validateCustomOrderNoExists(String customOrderNo, Long orderId) {
if (customOrderNo != null) {
if (!customOrderNo.isEmpty()) {
if (orderMapper.selectCount(new LambdaQueryWrapper<OrderDO>()
.ne(OrderDO::getId, orderId)
.eq(OrderDO::getCustomOrderNo, customOrderNo)
.eq(OrderDO::getDeleted, false)
.eq(OrderDO::getOrganId, OrganContextHolder.getOrganId())) > 0) {
throw exception(CUSTOM_ORDER_EXISTS);
}
}
}
}
private void validateCustomOrderNoExists(String customOrderNo) {
if (customOrderNo != null) {
if (!customOrderNo.isEmpty()) {
@@ -467,11 +479,11 @@ public class OrderServiceImpl implements OrderService {
}
}
private void validateOrderImportForCreateOrUpdate(String customOrderNo, String salesman, String splitter) {
private void validateOrderImportForCreateOrUpdate(String customOrderNo, String salesman, String splitter, Long orderId) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId();
DataPermissionUtils.executeIgnore(() -> {
validateCustomOrderNoExists(customOrderNo);
validateCustomOrderNoExists(customOrderNo, orderId);
validateSalesmanOrderNoExists(salesman, organId);
validateSplitterOrderNoExists(splitter, organId);
});
@@ -6,7 +6,7 @@
<select id="selectPlatesDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO">
SELECT i.order_id, p.id, p.plate_no, g.material, p.name, p.area, p.seal_left, p.seal_down,
p.seal_right, p.seal_up, p.texture, p.is_special_shaped, p.is_sculpt, p.unregular_point_count, p.front_hole_count,
p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness
p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness,gp.name
FROM order_item i
RIGHT JOIN `order_plate` p ON i.plate_id = p.id
LEFT JOIN `order_goods` g ON g.id = p.goods_id
@@ -182,10 +182,12 @@ public interface ErrorCodeConstants {
ErrorCode PROCESS_IS_ENABLED = new ErrorCode(1_002_027_001, "工序已在工序组中启用,禁止关闭或删除");
ErrorCode PROCESS_ID_IS_NULL = new ErrorCode(1_002_027_002, "工序ID填写错误不存在");
ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_027_003, "工序状态以已禁用");
ErrorCode PROCESS_NAME_EXISTS = new ErrorCode(1_002_027_004, "工序名称已存在");
//=========== 工序组信息 1-002-029-000 ============
ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_010, "工序组不存在");
ErrorCode PROCESS_GROUP_USED = new ErrorCode(1_002_029_011, "工序组已使用,禁止删除 ");
ErrorCode PROCESS_GROUP_NAME_EXISTS = new ErrorCode(1_002_029_012, "工序名称已存在");
// ========== 机台 1-002-029-000 ==========
ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在");
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.service.process;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.executor.api.orderProcess.OrderProcessApi;
@@ -10,6 +11,7 @@ import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessGroupS
import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessListSaveReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessRespVO;
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
@@ -54,6 +56,8 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
@Override
public Long createProcessGroup(ProcessGroupSaveReqVO createReqVO) {
// 校验名称存在
validateProcessGroupNameUnique(createReqVO.getName());
// 插入
ProcessGroupDO processGroup = BeanUtils.toBean(createReqVO, ProcessGroupDO.class);
processGroup.setItems(checkProcessGroupExists(createReqVO.getItems()));
@@ -65,10 +69,39 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
return processGroup.getId();
}
private void validateProcessGroupNameUnique(String name) {
if (name != null) {
if (!name.isEmpty()) {
if (processGroupMapper.selectCount(new LambdaQueryWrapper<ProcessGroupDO>()
.eq(ProcessGroupDO::getName, name)
.eq(ProcessGroupDO::getDeleted, false)
.eq(ProcessGroupDO::getOrganId, OrganContextHolder.getOrganId())) > 0) {
throw exception(PROCESS_GROUP_NAME_EXISTS);
}
}
}
}
private void validateProcessGroupNameUnique(String name,Long id) {
if (name != null) {
if (!name.isEmpty()) {
if (processGroupMapper.selectCount(new LambdaQueryWrapper<ProcessGroupDO>()
.ne(ProcessGroupDO::getId, id)
.eq(ProcessGroupDO::getName, name)
.eq(ProcessGroupDO::getDeleted, false)
.eq(ProcessGroupDO::getOrganId, OrganContextHolder.getOrganId())) > 0) {
throw exception(PROCESS_GROUP_NAME_EXISTS);
}
}
}
}
@Override
public void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO) {
// 校验存在
validateProcessGroupExists(updateReqVO.getId());
// 名称存在
validateProcessGroupNameUnique(updateReqVO.getName(),updateReqVO.getId());
// 更新
ProcessGroupDO updateObj = BeanUtils.toBean(updateReqVO, ProcessGroupDO.class);
updateObj.setItems(checkProcessGroupExists(updateReqVO.getItems()));
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.service.process;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
@@ -28,6 +29,7 @@ import java.util.Objects;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.CUSTOM_ORDER_EXISTS;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@@ -55,10 +57,10 @@ public class ProcessServiceImpl implements ProcessService {
@Override
@Transactional(rollbackFor = Exception.class)
public Long createProcess(ProcessUserSaveReqVO createReqVO) {
// 用户组织Id
// Long organId = OrganContextHolder.getOrganId();
// 插入
ProcessDO process = BeanUtils.toBean(createReqVO, ProcessDO.class);
// 名称相同判断
validateNameNoExists(process.getName());
processMapper.insert(process);
if (createReqVO.getUsers() != "" && createReqVO.getUsers() != null) {
Long processID = process.getId();
@@ -83,6 +85,32 @@ public class ProcessServiceImpl implements ProcessService {
return process.getId();
}
private void validateNameNoExists(String name) {
if (name != null) {
if (!name.isEmpty()) {
if (processMapper.selectCount(new LambdaQueryWrapper<ProcessDO>()
.eq(ProcessDO::getName, name)
.eq(ProcessDO::getDeleted, false)
.eq(ProcessDO::getOrganId, OrganContextHolder.getOrganId())) > 0) {
throw exception(PROCESS_NAME_EXISTS);
}
}
}
}
private void validateNameNoExists(String name,Long id) {
if (name != null) {
if (!name.isEmpty()) {
if (processMapper.selectCount(new LambdaQueryWrapper<ProcessDO>()
.ne(ProcessDO::getId, id)
.eq(ProcessDO::getName, name)
.eq(ProcessDO::getDeleted, false)
.eq(ProcessDO::getOrganId, OrganContextHolder.getOrganId())) > 0) {
throw exception(PROCESS_NAME_EXISTS);
}
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateProcess(ProcessUserSaveReqVO updateReqVO) {
@@ -94,6 +122,9 @@ public class ProcessServiceImpl implements ProcessService {
}
}
// 校验名称存在
validateNameNoExists(updateReqVO.getName(),updateReqVO.getId());
ProcessDO updateProcess = BeanUtils.toBean(updateReqVO, ProcessDO.class);
processUserService.deleteProcessUserByProcess(updateReqVO.getId());