Merge remote-tracking branch 'origin/main'

This commit is contained in:
gaoqr
2024-06-17 18:48:06 +08:00
7 changed files with 90 additions and 12 deletions
@@ -108,8 +108,8 @@ public class OrderController {
@PutMapping("/restore") @PutMapping("/restore")
@Operation(summary = "还原") @Operation(summary = "还原")
@Parameter(name = "orderId", description = "生产单id", required = true, example = "1") @Parameter(name = "orderId", description = "生产单id", required = true, example = "1")
@PreAuthorize("@ss.hasPermission('executor:order:restore')") @PreAuthorize("@ss.hasPermission('executor:order:update')")
public CommonResult<Boolean> restoreOrder(@Valid @RequestBody Long orderId) { public CommonResult<Boolean> restoreOrder(@RequestParam("orderId") Long orderId) {
orderService.restoreOrder(orderId); orderService.restoreOrder(orderId);
return success(true); return success(true);
} }
@@ -56,7 +56,7 @@ public interface OrderService {
* *
* @param orderId 编号组 * @param orderId 编号组
*/ */
void restoreOrder(@Valid Long orderId); void restoreOrder(Long orderId);
/** /**
* 获得生产单表 order_{N} * 获得生产单表 order_{N}
@@ -141,8 +141,7 @@ public class OrderServiceImpl implements OrderService {
validatePhoneNumber(createReqVO.getPhoneNumber()); validatePhoneNumber(createReqVO.getPhoneNumber());
//验证自定义单号是否存在,业务员、拆单员是否存在 //验证自定义单号是否存在,业务员、拆单员是否存在
validateOrderImportForCreateOrUpdate(createReqVO.getCustomOrderNo(), createReqVO.getSalesman(), createReqVO.getSplitter()); validateCustomOrderNoExists(createReqVO.getCustomOrderNo());
LocalDateTime time = getAfterDate(createReqVO.getDeliveryDate()); LocalDateTime time = getAfterDate(createReqVO.getDeliveryDate());
createReqVO.setDeliveryDate(time); createReqVO.setDeliveryDate(time);
// 插入 // 插入
@@ -161,8 +160,7 @@ public class OrderServiceImpl implements OrderService {
validatePhoneNumber(updateReqVO.getPhoneNumber()); validatePhoneNumber(updateReqVO.getPhoneNumber());
//验证自定义单号是否存在,业务员、拆单员是否存在 //验证自定义单号是否存在,业务员、拆单员是否存在
validateOrderImportForCreateOrUpdate(updateReqVO.getCustomOrderNo(), updateReqVO.getSalesman(), updateReqVO.getSplitter()); validateCustomOrderNoExists(updateReqVO.getCustomOrderNo(), updateReqVO.getId());
// 更新 // 更新
OrderDO updateObj = BeanUtils.toBean(updateReqVO, OrderDO.class); OrderDO updateObj = BeanUtils.toBean(updateReqVO, OrderDO.class);
orderMapper.updateById(updateObj); 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) { private void validateCustomOrderNoExists(String customOrderNo) {
if (customOrderNo != null) { if (customOrderNo != null) {
if (!customOrderNo.isEmpty()) { 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(); Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId();
DataPermissionUtils.executeIgnore(() -> { DataPermissionUtils.executeIgnore(() -> {
validateCustomOrderNoExists(customOrderNo); validateCustomOrderNoExists(customOrderNo, orderId);
validateSalesmanOrderNoExists(salesman, organId); validateSalesmanOrderNoExists(salesman, organId);
validateSplitterOrderNoExists(splitter, organId); validateSplitterOrderNoExists(splitter, organId);
}); });
@@ -6,7 +6,7 @@
<select id="selectPlatesDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO"> <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, 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.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 FROM order_item i
RIGHT JOIN `order_plate` p ON i.plate_id = p.id RIGHT JOIN `order_plate` p ON i.plate_id = p.id
LEFT JOIN `order_goods` g ON g.id = p.goods_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_IS_ENABLED = new ErrorCode(1_002_027_001, "工序已在工序组中启用,禁止关闭或删除");
ErrorCode PROCESS_ID_IS_NULL = new ErrorCode(1_002_027_002, "工序ID填写错误不存在"); ErrorCode PROCESS_ID_IS_NULL = new ErrorCode(1_002_027_002, "工序ID填写错误不存在");
ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_027_003, "工序状态以已禁用"); ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_027_003, "工序状态以已禁用");
ErrorCode PROCESS_NAME_EXISTS = new ErrorCode(1_002_027_004, "工序名称已存在");
//=========== 工序组信息 1-002-029-000 ============ //=========== 工序组信息 1-002-029-000 ============
ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_010, "工序组不存在"); ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_010, "工序组不存在");
ErrorCode PROCESS_GROUP_USED = new ErrorCode(1_002_029_011, "工序组已使用,禁止删除 "); 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 ========== // ========== 机台 1-002-029-000 ==========
ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(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; 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.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.executor.api.orderProcess.OrderProcessApi; 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.group.ProcessListSaveReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessRespVO; 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.organ.OrganizationDO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper; import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -54,6 +56,8 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
@Override @Override
public Long createProcessGroup(ProcessGroupSaveReqVO createReqVO) { public Long createProcessGroup(ProcessGroupSaveReqVO createReqVO) {
// 校验名称存在
validateProcessGroupNameUnique(createReqVO.getName());
// 插入 // 插入
ProcessGroupDO processGroup = BeanUtils.toBean(createReqVO, ProcessGroupDO.class); ProcessGroupDO processGroup = BeanUtils.toBean(createReqVO, ProcessGroupDO.class);
processGroup.setItems(checkProcessGroupExists(createReqVO.getItems())); processGroup.setItems(checkProcessGroupExists(createReqVO.getItems()));
@@ -65,10 +69,39 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
return processGroup.getId(); 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 @Override
public void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO) { public void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO) {
// 校验存在 // 校验存在
validateProcessGroupExists(updateReqVO.getId()); validateProcessGroupExists(updateReqVO.getId());
// 名称存在
validateProcessGroupNameUnique(updateReqVO.getName(),updateReqVO.getId());
// 更新 // 更新
ProcessGroupDO updateObj = BeanUtils.toBean(updateReqVO, ProcessGroupDO.class); ProcessGroupDO updateObj = BeanUtils.toBean(updateReqVO, ProcessGroupDO.class);
updateObj.setItems(checkProcessGroupExists(updateReqVO.getItems())); updateObj.setItems(checkProcessGroupExists(updateReqVO.getItems()));
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.service.process; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; 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.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.*; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@@ -55,10 +57,10 @@ public class ProcessServiceImpl implements ProcessService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long createProcess(ProcessUserSaveReqVO createReqVO) { public Long createProcess(ProcessUserSaveReqVO createReqVO) {
// 用户组织Id
// Long organId = OrganContextHolder.getOrganId();
// 插入 // 插入
ProcessDO process = BeanUtils.toBean(createReqVO, ProcessDO.class); ProcessDO process = BeanUtils.toBean(createReqVO, ProcessDO.class);
// 名称相同判断
validateNameNoExists(process.getName());
processMapper.insert(process); processMapper.insert(process);
if (createReqVO.getUsers() != "" && createReqVO.getUsers() != null) { if (createReqVO.getUsers() != "" && createReqVO.getUsers() != null) {
Long processID = process.getId(); Long processID = process.getId();
@@ -83,6 +85,32 @@ public class ProcessServiceImpl implements ProcessService {
return process.getId(); 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 @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateProcess(ProcessUserSaveReqVO updateReqVO) { 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); ProcessDO updateProcess = BeanUtils.toBean(updateReqVO, ProcessDO.class);
processUserService.deleteProcessUserByProcess(updateReqVO.getId()); processUserService.deleteProcessUserByProcess(updateReqVO.getId());