diff --git a/sql/table.sql b/sql/table.sql index 152ee38..825e6e4 100644 --- a/sql/table.sql +++ b/sql/table.sql @@ -22,6 +22,7 @@ CREATE TABLE `order_base_info` ( `outbound_type` varchar(32) DEFAULT NULL COMMENT '出库类型', `packet_type` varchar(64) DEFAULT NULL COMMENT '包装类型', `order_status` INT NOT NULL COMMENT '订单状态', + `business_person` varchar(64) DEFAULT NULL COMMENT '业务员', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', `create_by` varchar(64) NOT NULL COMMENT '创建人', @@ -65,8 +66,11 @@ CREATE TABLE `order_completion_report` ( `id` bigint NOT NULL AUTO_INCREMENT, `order_id` bigint NOT NULL COMMENT '订单id', `idea_source` varchar(64) DEFAULT NULL COMMENT '想法来源', - `manual_preform` varchar(64) DEFAULT NULL COMMENT '手工初型', - `idea_manual_rate` DOUBLE DEFAULT 0 COMMENT '想法和手工比例分配', + `idea_source_rate` DOUBLE DEFAULT 0 COMMENT '想法来源占比', + `manual_preform1` varchar(64) DEFAULT NULL COMMENT '手工初型1', + `manual_preform1_rate` DOUBLE DEFAULT 0 COMMENT '手工初型1占比', + `manual_preform2` varchar(64) DEFAULT NULL COMMENT '手工初型2', + `manual_preform2_rate` DOUBLE DEFAULT 0 COMMENT '手工初型2占比', `order_status` INT NOT NULL COMMENT '订单状态', `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', `create_time` DATETIME NOT NULL COMMENT '创建时间', @@ -200,4 +204,23 @@ CREATE TABLE `order_audit_log` ( `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人', `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户订单审批日志表'; \ No newline at end of file +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户订单审批日志表'; + +DROP TABLE IF EXISTS `system_setting`; +CREATE TABLE `system_setting` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `setting_code` varchar(64) NOT NULL COMMENT '配置code', + `setting_name` varchar(64) not null COMMENT '名称', + `setting_value` varchar(64) not null COMMENT '值', + `setting_type` INT NOT NULL COMMENT '配置类型,0 单个配置项,1:多个配置项', + `relation_code` varchar(64) NOT NULL COMMENT '关联code', + `relation_name` varchar(64) not null COMMENT '名称', + `relation_value` varchar(64) not null COMMENT '值', + `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', + `create_time` DATETIME NOT NULL COMMENT '创建时间', + `create_by` varchar(64) NOT NULL COMMENT '创建人', + `modify_time` DATETIME DEFAULT NULL COMMENT '修改时间', + `modify_by` varchar(64) DEFAULT NULL COMMENT '修改人', + `version` INT DEFAULT NULL COMMENT '版本号--乐观锁预留字段', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置'; \ No newline at end of file diff --git a/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java b/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java index bf43db5..d0437f7 100644 --- a/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java +++ b/src/main/java/com/order/erp/common/utils/OrderFieldUtils.java @@ -67,9 +67,12 @@ public class OrderFieldUtils { public static OrderCompletionReportFieldVO initReportField(OrderLockFieldEnum lockFieldEnum) { String locked = lockFieldEnum.getStatus(); return OrderCompletionReportFieldVO.builder() - .ideaManualRate(locked) + .ideaSourceRate(locked) .ideaSource(locked) - .manualPreform(locked) + .manualPreform1(locked) + .manualPreform1Rate(locked) + .manualPreform2(locked) + .manualPreform2Rate(locked) .orderStatus(locked) .build(); } diff --git a/src/main/java/com/order/erp/config/DataScope.java b/src/main/java/com/order/erp/config/DataScope.java index 903ac5e..8ead808 100644 --- a/src/main/java/com/order/erp/config/DataScope.java +++ b/src/main/java/com/order/erp/config/DataScope.java @@ -1,6 +1,7 @@ package com.order.erp.config; import com.order.erp.common.utils.SecurityUtils; +import com.order.erp.domain.RoleEnum; import com.order.erp.domain.vo.UserVO; import com.order.erp.domain.vo.admin.AdminResultVO; import com.order.erp.service.admin.AdminUserService; @@ -35,6 +36,14 @@ public class DataScope { } /** + * + * @return + */ + public RoleEnum getRole() { + return userService.getRoleBy(SecurityUtils.getUsername()).getData(); + } + + /** * @return */ public String getLoginUserName() { diff --git a/src/main/java/com/order/erp/controller/SystemSettingController.java b/src/main/java/com/order/erp/controller/SystemSettingController.java new file mode 100644 index 0000000..085699d --- /dev/null +++ b/src/main/java/com/order/erp/controller/SystemSettingController.java @@ -0,0 +1,98 @@ +package com.order.erp.controller; + +import com.order.erp.common.constant.ServerResult; +import com.order.erp.common.jsr303.OperateGroup; +import com.order.erp.domain.vo.SystemSettingQueryVO; +import com.order.erp.domain.vo.SystemSettingVO; +import com.order.erp.service.SystemSettingService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 系统配置(SystemSetting)表控制层 + * + * @author makejava + * @since 2023-12-05 13:44:02 + */ +@RestController +@RequestMapping("/order/erp/system_setting") +public class SystemSettingController { + /** + * 服务对象 + */ + @Resource + private SystemSettingService systemSettingService; + + /** + * 分页查询 + * + * @param systemSettingQueryVO 查询条件 + * @return 查询结果 + */ + @PostMapping("/query_list") + public ServerResult queryList(@RequestBody @Validated({OperateGroup.List.class}) SystemSettingQueryVO systemSettingQueryVO) { + return systemSettingService.list(systemSettingQueryVO); + } + + /** + * 分页查询 + * + * @param systemSettingQueryVO 查询条件 + * @return 查询结果 + */ + @PostMapping("/list_by_page") + public ServerResult listByPage(@RequestBody @Validated({OperateGroup.List.class}) SystemSettingQueryVO systemSettingQueryVO) { + return systemSettingService.listByPage(systemSettingQueryVO); + } + + /** + * 通过主键查询单条数据 + * + * @param systemSettingQueryVO 查询条件 + * @return 单条数据 + */ + @PostMapping("/query_by_id") + public ServerResult queryById(@RequestBody SystemSettingQueryVO systemSettingQueryVO) { + return systemSettingService.queryById(systemSettingQueryVO); + } + + /** + * 新增数据 + * + * @param systemSettingVO 数据VO + * @return 新增结果 + */ + @PostMapping("/add") + public ServerResult add(@RequestBody SystemSettingVO systemSettingVO) { + return systemSettingService.add(systemSettingVO); + } + + /** + * 编辑数据 + * + * @param systemSettingVO 数据VO + * @return 编辑结果 + */ + @PostMapping("/edit") + public ServerResult edit(@RequestBody SystemSettingVO systemSettingVO) { + return systemSettingService.edit(systemSettingVO); + } + + /** + * 删除数据 + * + * @param systemSettingQueryVO 查询条件 + * @return 删除是否成功 + */ + @PostMapping("/delete_by_id") + public ServerResult deleteById(@RequestBody SystemSettingQueryVO systemSettingQueryVO) { + return systemSettingService.deleteById(systemSettingQueryVO); + } + +} + diff --git a/src/main/java/com/order/erp/domain/dto/SystemSettingDO.java b/src/main/java/com/order/erp/domain/dto/SystemSettingDO.java new file mode 100644 index 0000000..8bac17d --- /dev/null +++ b/src/main/java/com/order/erp/domain/dto/SystemSettingDO.java @@ -0,0 +1,54 @@ +package com.order.erp.domain.dto; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * 系统配置(SystemSetting)实体类 + * + * @author makejava + * @since 2023-12-05 13:43:58 + */ +@TableName("system_setting") +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class SystemSettingDO extends BaseDO implements Serializable { + + private Long id; + /** + * 配置code + */ + private String settingCode; + /** + * 名称 + */ + private String settingName; + /** + * 值 + */ + private String settingValue; + /** + * 配置类型,0 单个配置项,1:多个配置项 + */ + private Integer settingType; + /** + * 关联code + */ + private String relationCode; + /** + * 名称 + */ + private String relationName; + /** + * 值 + */ + private String relationValue; + +} diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java index 1a66e51..3f34e1e 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderBaseInfoDO.java @@ -100,6 +100,7 @@ public class OrderBaseInfoDO extends BaseDO implements Serializable { * 出库类型 */ private String outboundType; + /** * 包装类型 */ @@ -110,4 +111,8 @@ public class OrderBaseInfoDO extends BaseDO implements Serializable { */ private Integer orderStatus; + /** + * 业务员 + */ + private String businessPerson; } diff --git a/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java b/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java index e7a48c7..9b34a06 100644 --- a/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java +++ b/src/main/java/com/order/erp/domain/dto/order/OrderCompletionReportDO.java @@ -32,14 +32,31 @@ public class OrderCompletionReportDO extends BaseDO implements Serializable { * 想法来源 */ private String ideaSource; + + /** + * 想法来源占比 + */ + private Double ideaSourceRate; + /** - * 手工初型 + * 手工初型1 */ - private String manualPreform; + private String manualPreform1; + + /** + * 手工初型1占比 + */ + private Double manualPreform1Rate; + + /** + * 手工初型2 + */ + private String manualPreform2; + /** - * 想法和手工比例分配 + * 手工初型2占比 */ - private Double ideaManualRate; + private Double manualPreform2Rate; /** * 订单状态:枚举类 OrderStatusEnum diff --git a/src/main/java/com/order/erp/domain/vo/SystemSettingQueryVO.java b/src/main/java/com/order/erp/domain/vo/SystemSettingQueryVO.java new file mode 100644 index 0000000..ac2e36b --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/SystemSettingQueryVO.java @@ -0,0 +1,58 @@ +package com.order.erp.domain.vo; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; +import java.util.List; + +/** + * 系统配置(SystemSetting)实体类 + * + * @author makejava + * @since 2023-12-05 13:44:02 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class SystemSettingQueryVO extends BasePageVO implements Serializable { + + private List<Long> ids; + + + private Long id; + /** + * 配置code + */ + private String settingCode; + /** + * 名称 + */ + private String settingName; + /** + * 值 + */ + private String settingValue; + /** + * 配置类型,0 单个配置项,1:多个配置项 + */ + private Integer settingType; + /** + * 关联code + */ + private String relationCode; + /** + * 名称 + */ + private String relationName; + /** + * 值 + */ + private String relationValue; + + +} + diff --git a/src/main/java/com/order/erp/domain/vo/SystemSettingResultVO.java b/src/main/java/com/order/erp/domain/vo/SystemSettingResultVO.java new file mode 100644 index 0000000..c0dae2d --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/SystemSettingResultVO.java @@ -0,0 +1,51 @@ +package com.order.erp.domain.vo; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * @author makejava + * @since 2023-08-30 17:51:48 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class SystemSettingResultVO implements Serializable { + + private Long id; + /** + * 配置code + */ + private String settingCode; + /** + * 名称 + */ + private String settingName; + /** + * 值 + */ + private String settingValue; + /** + * 配置类型,0 单个配置项,1:多个配置项 + */ + private Integer settingType; + /** + * 关联code + */ + private String relationCode; + /** + * 名称 + */ + private String relationName; + /** + * 值 + */ + private String relationValue; + + +} diff --git a/src/main/java/com/order/erp/domain/vo/SystemSettingVO.java b/src/main/java/com/order/erp/domain/vo/SystemSettingVO.java new file mode 100644 index 0000000..fbbc667 --- /dev/null +++ b/src/main/java/com/order/erp/domain/vo/SystemSettingVO.java @@ -0,0 +1,53 @@ +package com.order.erp.domain.vo; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; + +/** + * 系统配置(SystemSetting)实体类 + * + * @author makejava + * @since 2023-12-05 13:44:01 + */ +@Data +@AllArgsConstructor +@ToString +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +public class SystemSettingVO implements Serializable { + + private Long id; + /** + * 配置code + */ + private String settingCode; + /** + * 名称 + */ + private String settingName; + /** + * 值 + */ + private String settingValue; + /** + * 配置类型,0 单个配置项,1:多个配置项 + */ + private Integer settingType; + /** + * 关联code + */ + private String relationCode; + /** + * 名称 + */ + private String relationName; + /** + * 值 + */ + private String relationValue; + + +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java index 9218183..84ce7fc 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java @@ -140,5 +140,15 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { */ private OrderLockFieldVO fieldVO; + /** + * 创建人 + */ + private String createBy; + + /** + * 业务员 + */ + private String businessPerson; + } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java index 5961df5..a83396f 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoVO.java @@ -108,4 +108,9 @@ public class OrderBaseInfoVO implements Serializable { */ private Integer orderStatus; + /** + * 业务员 + */ + private String businessPerson; + } diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java index dd59ce7..cb2fae6 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java @@ -27,14 +27,31 @@ public class OrderCompletionReportFieldVO implements Serializable { * 想法来源 */ private String ideaSource; + + /** + * 想法来源占比 + */ + private String ideaSourceRate; + /** - * 手工初型 + * 手工初型1 */ - private String manualPreform; + private String manualPreform1; + + /** + * 手工初型1占比 + */ + private String manualPreform1Rate; + + /** + * 手工初型2 + */ + private String manualPreform2; + /** - * 想法和手工比例分配 + * 手工初型2占比 */ - private String ideaManualRate; + private String manualPreform2Rate; /** * 订单状态 diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java index 212cc57..f3cfbdf 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportVO.java @@ -29,14 +29,32 @@ public class OrderCompletionReportVO implements Serializable { * 想法来源 */ private String ideaSource; + + /** + * 想法来源占比 + */ + private Double ideaSourceRate; + + /** + * 手工初型1 + */ + private String manualPreform1; + + /** + * 手工初型1占比 + */ + private Double manualPreform1Rate; + /** - * 手工初型 + * 手工初型2 */ - private String manualPreform; + private String manualPreform2; + /** - * 想法和手工比例分配 + * 手工初型2占比 */ - private Double ideaManualRate; + private Double manualPreform2Rate; + /** * 订单状态:枚举类 OrderStatusEnum diff --git a/src/main/java/com/order/erp/mapper/SystemSettingMapper.java b/src/main/java/com/order/erp/mapper/SystemSettingMapper.java new file mode 100644 index 0000000..16ee67c --- /dev/null +++ b/src/main/java/com/order/erp/mapper/SystemSettingMapper.java @@ -0,0 +1,16 @@ +package com.order.erp.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.order.erp.domain.dto.SystemSettingDO; + +/** + * 系统配置(SystemSetting)表数据库访问层 + * + * @author makejava + * @since 2023-12-05 13:44:03 + */ +public interface SystemSettingMapper extends BaseMapper<SystemSettingDO> { + + +} + diff --git a/src/main/java/com/order/erp/service/SystemSettingService.java b/src/main/java/com/order/erp/service/SystemSettingService.java new file mode 100644 index 0000000..0e02a13 --- /dev/null +++ b/src/main/java/com/order/erp/service/SystemSettingService.java @@ -0,0 +1,64 @@ +package com.order.erp.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.dto.SystemSettingDO; +import com.order.erp.domain.vo.SystemSettingQueryVO; +import com.order.erp.domain.vo.SystemSettingVO; + +/** + * 系统配置(SystemSetting)表服务接口 + * + * @author makejava + * @since 2023-12-05 13:44:03 + */ +public interface SystemSettingService extends IService<SystemSettingDO> { + + /** + * 通过ID查询单条数据 + * + * @param systemSettingQueryVO 主键 + * @return 实例对象 + */ + ServerResult queryById(SystemSettingQueryVO systemSettingQueryVO); + + /** + * 分页查询 + * + * @param systemSettingQueryVO 筛选条件 + * @return 查询结果 + */ + ServerResult list(SystemSettingQueryVO systemSettingQueryVO); + + /** + * + * @param systemSettingQueryVO + * @return + */ + ServerResult listByPage(SystemSettingQueryVO systemSettingQueryVO); + + /** + * 新增数据 + * + * @param systemSettingVO 数据VO + * @return 新增结果 + */ + ServerResult add(SystemSettingVO systemSettingVO); + + /** + * 修改数据 + * + * @param systemSettingVO 数据VO + * @return 编辑结果 + */ + ServerResult edit(SystemSettingVO systemSettingVO); + + /** + * 通过主键删除数据 + * + * @param systemSettingQueryVO 筛选条件 + * @return 是否成功 + */ + ServerResult deleteById(SystemSettingQueryVO systemSettingQueryVO); + +} diff --git a/src/main/java/com/order/erp/service/admin/AdminUserService.java b/src/main/java/com/order/erp/service/admin/AdminUserService.java index f2a4957..38eb2a6 100644 --- a/src/main/java/com/order/erp/service/admin/AdminUserService.java +++ b/src/main/java/com/order/erp/service/admin/AdminUserService.java @@ -2,6 +2,7 @@ package com.order.erp.service.admin; import com.baomidou.mybatisplus.extension.service.IService; import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.RoleEnum; import com.order.erp.domain.dto.admin.AdminUserDO; import com.order.erp.domain.vo.UserVO; import com.order.erp.domain.vo.admin.*; @@ -68,6 +69,13 @@ public interface AdminUserService extends IService<AdminUserDO> { ServerResult<AdminResultVO> isAdmin(String userName); /** + * + * @param userName + * @return + */ + ServerResult<RoleEnum> getRoleBy(String userName); + + /** * 修改密码 * * @param pwdVO diff --git a/src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java b/src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java index ac82356..3c47176 100644 --- a/src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java +++ b/src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java @@ -14,7 +14,6 @@ import com.order.erp.common.constant.ServerResult; import com.order.erp.common.constant.ServerResultCode; import com.order.erp.common.exception.BusinessException; import com.order.erp.common.utils.ImgCaptchaUtils; -import com.order.erp.common.utils.SecurityUtils; import com.order.erp.common.utils.SmsUtils; import com.order.erp.common.utils.TransactionHelper; import com.order.erp.config.DataScope; @@ -255,7 +254,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser @Override public ServerResult<AdminResultVO> isAdmin(String userName) { - UserVO user = findByUserName(SecurityUtils.getUsername()); + UserVO user = findByUserName(userName); if (Objects.isNull(user)) { throw new BusinessException("用户不存在"); } @@ -273,6 +272,36 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser return ServerResult.success(AdminResultVO.builder().isAdmin(result.get()).userVO(user).build()); } + + @Override + public ServerResult<RoleEnum> getRoleBy(String userName) { + UserVO user = findByUserName(userName); + if (Objects.isNull(user)) { + throw new BusinessException("用户不存在"); + } + List<AdminUserRoleDO> userRoleDOList = userRoleService.list(new LambdaQueryWrapper<AdminUserRoleDO>() + .eq(AdminUserRoleDO::getUserId, user.getId())); + if (CollectionUtils.isEmpty(userRoleDOList)) { + throw new BusinessException("用户没有创建角色"); + } + AtomicReference<RoleEnum> result = new AtomicReference<RoleEnum>(RoleEnum.ADMIN); + userRoleDOList.forEach(x -> { + if (RoleEnum.ADMIN.getId().equals(x.getRoleId())) { + result.set(RoleEnum.ADMIN); + } + if (RoleEnum.BUSINESS_USER.getId().equals(x.getRoleId())) { + result.set(RoleEnum.BUSINESS_USER); + } + if (RoleEnum.TRACKER_USER.getId().equals(x.getRoleId())) { + result.set(RoleEnum.TRACKER_USER); + } + if (RoleEnum.INSPECT_USER.getId().equals(x.getRoleId())) { + result.set(RoleEnum.INSPECT_USER); + } + }); + return ServerResult.success(result.get()); + } + /** * 通过主键删除数据 * diff --git a/src/main/java/com/order/erp/service/impl/SystemSettingServiceImpl.java b/src/main/java/com/order/erp/service/impl/SystemSettingServiceImpl.java new file mode 100644 index 0000000..42f0810 --- /dev/null +++ b/src/main/java/com/order/erp/service/impl/SystemSettingServiceImpl.java @@ -0,0 +1,169 @@ +package com.order.erp.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.order.erp.common.constant.Constant; +import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.dto.BaseDO; +import com.order.erp.domain.dto.SystemSettingDO; +import com.order.erp.domain.vo.SystemSettingQueryVO; +import com.order.erp.domain.vo.SystemSettingResultVO; +import com.order.erp.domain.vo.SystemSettingVO; +import com.order.erp.mapper.SystemSettingMapper; +import com.order.erp.service.SystemSettingService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 系统配置(SystemSetting)表服务实现类 + * + * @author makejava + * @since 2023-12-05 13:44:04 + */ +@Slf4j +@Service +public class SystemSettingServiceImpl extends ServiceImpl<SystemSettingMapper, SystemSettingDO> implements SystemSettingService { + + + /** + * 通过ID查询单条数据 + * <p> + * systemSettingQueryVO 主键 + * + * @return 实例对象 + */ + @Override + public ServerResult queryById(SystemSettingQueryVO systemSettingQueryVO) { + if (Objects.isNull(systemSettingQueryVO.getId())) { + return ServerResult.fail("id 不能为空"); + } + SystemSettingDO SystemSettingDo = getById(systemSettingQueryVO.getId()); + if (Objects.isNull(SystemSettingDo)) { + return ServerResult.success(null); + } + return ServerResult.success(BeanUtil.copyProperties(SystemSettingDo, SystemSettingVO.class)); + } + + /** + * 分页查询 + * + * @param queryVO 筛选条件 + * @return 查询结果 + */ + @Override + public ServerResult list(SystemSettingQueryVO queryVO) { + LambdaQueryWrapper<SystemSettingDO> queryWrapper = buildQueryByParam(queryVO); + return ServerResult.success(list(queryWrapper)); + } + + /** + * @param queryVO + * @return + */ + @Override + public ServerResult listByPage(SystemSettingQueryVO queryVO) { + LambdaQueryWrapper<SystemSettingDO> queryWrapper = buildQueryByParam(queryVO); + Page page = new Page<>(queryVO.getPage(), queryVO.getPageSize()); + IPage<SystemSettingDO> iPage = page(page, queryWrapper); + + Page<SystemSettingResultVO> webVOPage = new Page<>(); + List<SystemSettingDO> systemSettingDOS = iPage.getRecords(); + if (CollectionUtils.isNotEmpty(systemSettingDOS)) { + List<SystemSettingResultVO> queryVos = systemSettingDOS.stream().map(x -> { + SystemSettingResultVO resultVO = new SystemSettingResultVO(); + BeanUtils.copyProperties(x, resultVO); + return resultVO; + }).collect(Collectors.toList()); + webVOPage.setRecords(queryVos); + } + BeanUtils.copyProperties(page, webVOPage, "records"); + return ServerResult.success(webVOPage); + } + + /** + * @param queryVO + * @return + */ + private LambdaQueryWrapper<SystemSettingDO> buildQueryByParam(SystemSettingQueryVO queryVO) { + return new LambdaQueryWrapper<SystemSettingDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(StringUtils.isNotBlank(queryVO.getSettingCode()), SystemSettingDO::getSettingCode, queryVO.getSettingCode()) + .eq(Objects.nonNull(queryVO.getSettingType()), SystemSettingDO::getSettingType, queryVO.getSettingType()) + .eq(StringUtils.isNotBlank(queryVO.getRelationCode()), SystemSettingDO::getRelationCode, queryVO.getRelationCode()); + } + + + /** + * 新增数据 + * + * @param systemSettingVO 实例对象 + * @return 实例对象 + */ + @Override + public ServerResult add(SystemSettingVO systemSettingVO) { + //todo 校验 + if (Objects.nonNull(systemSettingVO.getId())) { + systemSettingVO.setId(null); + } + SystemSettingDO systemSettingDo = BeanUtil.copyProperties(systemSettingVO, SystemSettingDO.class); + + save(systemSettingDo); + + return ServerResult.success(); + } + + /** + * 修改数据 + * + * @param systemSettingVO 实例对象 + * @return 实例对象 + */ + @Override + public ServerResult edit(SystemSettingVO systemSettingVO) { + //todo 校验 + if (Objects.isNull(systemSettingVO.getId())) { + return ServerResult.fail("id 不能为空"); + } + SystemSettingDO systemSettingDo = BeanUtil.copyProperties(systemSettingVO, SystemSettingDO.class); + + updateById(systemSettingDo); + + return ServerResult.success(); + } + + /** + * 通过主键删除数据 + * + * @param systemSettingQueryVO 筛选条件 + * @return 是否成功 + */ + @Override + public ServerResult deleteById(SystemSettingQueryVO systemSettingQueryVO) { + List<Long> ids = systemSettingQueryVO.getIds(); + if (CollUtil.isEmpty(ids)) { + return ServerResult.fail("ids 参数不能为空"); + } + List<SystemSettingDO> systemSettingList = listByIds(ids); + if (CollUtil.isEmpty(systemSettingList)) { + return ServerResult.success(); + } + //todo 校验是否可以逻辑删除 + LambdaUpdateWrapper<SystemSettingDO> updateWrapper = new LambdaUpdateWrapper<SystemSettingDO>() + .in(SystemSettingDO::getId, ids) + .set(SystemSettingDO::getEnableFlag, Constant.UNABLE_TWENTY); + update(updateWrapper); + return ServerResult.success(); + } +} diff --git a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java index bd03ad9..76fb013 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java @@ -376,14 +376,27 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getIdeaSource())) { map.put("想法来源", reportInfo.getIdeaSource()); } - if (StringUtils.isNotBlank(reportFields.getManualPreform()) && - OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getManualPreform())) { - map.put("手工初型", reportInfo.getManualPreform()); + if (StringUtils.isNotBlank(reportFields.getIdeaSourceRate()) && + OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getIdeaSourceRate())) { + map.put("想法来源占比", reportInfo.getIdeaSourceRate()); } - if (StringUtils.isNotBlank(reportFields.getIdeaManualRate()) && - OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getIdeaManualRate())) { - map.put("想法和手工比例分配", reportInfo.getIdeaManualRate()); + if (StringUtils.isNotBlank(reportFields.getManualPreform1()) && + OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getManualPreform1())) { + map.put("手工初型1", reportInfo.getManualPreform1()); } + if (StringUtils.isNotBlank(reportFields.getManualPreform1Rate()) && + OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getManualPreform1Rate())) { + map.put("手工初型1占比", reportInfo.getManualPreform1Rate()); + } + if (StringUtils.isNotBlank(reportFields.getManualPreform2()) && + OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getManualPreform2())) { + map.put("手工初型2", reportInfo.getManualPreform2()); + } + if (StringUtils.isNotBlank(reportFields.getManualPreform2Rate()) && + OrderLockFieldEnum.SELECTED.getStatus().equals(reportFields.getManualPreform2Rate())) { + map.put("手工初型2占比", reportInfo.getManualPreform2Rate()); + } + } OrderTrackStageVO trackStageInfo = Objects.nonNull(orderInfoResultVO.getTrackStageInfo()) ? orderInfoResultVO.getTrackStageInfo() : new OrderTrackStageVO(); @@ -585,9 +598,13 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O private OrderCompletionReportFieldVO report2reportField(OrderCompletionReportVO reportVO) { return OrderCompletionReportFieldVO.builder() .orderId(reportVO.getOrderId()) - .ideaManualRate(Objects.nonNull(reportVO.getIdeaManualRate()) ? reportVO.getIdeaManualRate().toString() : null) + .ideaSourceRate(Objects.nonNull(reportVO.getIdeaSourceRate()) ? reportVO.getIdeaSourceRate().toString() : null) .ideaSource(StringUtils.isNotBlank(reportVO.getIdeaSource()) ? reportVO.getIdeaSource() : null) - .manualPreform(StringUtils.isNotBlank(reportVO.getManualPreform()) ? reportVO.getManualPreform() : null).build(); + .manualPreform1(StringUtils.isNotBlank(reportVO.getManualPreform1()) ? reportVO.getManualPreform1() : null) + .manualPreform1Rate(Objects.nonNull(reportVO.getManualPreform1Rate()) ? reportVO.getManualPreform1Rate().toString() : null) + .manualPreform2(StringUtils.isNotBlank(reportVO.getManualPreform2()) ? reportVO.getManualPreform2() : null) + .manualPreform2Rate(Objects.nonNull(reportVO.getManualPreform2Rate()) ? reportVO.getManualPreform2Rate().toString() : null) + .build(); } @@ -862,10 +879,19 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O if (StringUtils.isBlank(reportInfo.getIdeaSource())) { return false; } - if (StringUtils.isBlank(reportInfo.getManualPreform())) { + if (Objects.isNull(reportInfo.getIdeaSourceRate())) { + return false; + } + if (StringUtils.isBlank(reportInfo.getManualPreform1())) { return false; } - if (Objects.isNull(reportInfo.getIdeaManualRate())) { + if (Objects.isNull(reportInfo.getManualPreform1Rate())) { + return false; + } + if (StringUtils.isBlank(reportInfo.getManualPreform2())) { + return false; + } + if (Objects.isNull(reportInfo.getManualPreform2Rate())) { return false; } return true; @@ -1041,6 +1067,15 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O * @return */ private LambdaQueryWrapper<OrderBaseInfoDO> buildQueryByParam(OrderBaseInfoQueryVO queryVO) { + RoleEnum roleEnum = dataScope.getRole(); + // 跟单员 + if (Objects.nonNull(roleEnum) && roleEnum.getId().equals(RoleEnum.TRACKER_USER.getId())) { + queryVO.setCreateBy(dataScope.getLoginUserName()); + } + // 业务员 + if (Objects.nonNull(roleEnum) && roleEnum.getId().equals(RoleEnum.BUSINESS_USER.getId())) { + queryVO.setBusinessPerson(dataScope.getLoginUserName()); + } if (StringUtils.isNotBlank(queryVO.getCommitUserPhone())) { AdminUserDO userDO = userService.getOne(new LambdaQueryWrapper<AdminUserDO>() .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) @@ -1064,7 +1099,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O List<OrderCompletionReportDO> reportDOS = reportService.list(new LambdaQueryWrapper<OrderCompletionReportDO>() .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) .eq(StringUtils.isNotBlank(queryVO.getIdeaSource()), OrderCompletionReportDO::getIdeaSource, queryVO.getIdeaSource()) - .eq(StringUtils.isNotBlank(queryVO.getManualPreform()), OrderCompletionReportDO::getManualPreform, queryVO.getManualPreform())); + .eq(StringUtils.isNotBlank(queryVO.getManualPreform()), OrderCompletionReportDO::getManualPreform1, queryVO.getManualPreform())); if (CollectionUtils.isNotEmpty(reportDOS)) { Set<Long> reportOrderIds = reportDOS.stream().map(OrderCompletionReportDO::getOrderId).collect(Collectors.toSet()); if (CollectionUtils.isNotEmpty(orderIds)) { @@ -1142,6 +1177,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo()) .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment()) .ge(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignStartTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignStartTime()) + .ge(StringUtils.isNotBlank(queryVO.getCreateBy()), OrderBaseInfoDO::getCreateBy, queryVO.getCreateBy()) + .ge(StringUtils.isNotBlank(queryVO.getBusinessPerson()), OrderBaseInfoDO::getBusinessPerson, queryVO.getBusinessPerson()) .le(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignEndTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignEndTime()) .ge(StringUtils.isNotBlank(queryVO.getOrderHodStartTime()), OrderBaseInfoDO::getOrderHodTime, queryVO.getOrderHodStartTime()) .le(StringUtils.isNotBlank(queryVO.getOrderHodEndTime()), OrderBaseInfoDO::getOrderHodTime, queryVO.getOrderHodEndTime()) @@ -1484,6 +1521,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O if (StringUtils.isNotBlank(baseInfoVO.getPacketType())) { baseInfoDO.setPacketType(baseInfoVO.getPacketType()); } + if (StringUtils.isNotBlank(baseInfoVO.getBusinessPerson())) { + baseInfoDO.setBusinessPerson(baseInfoVO.getBusinessPerson()); + } } /** diff --git a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java index 1b822b3..1fea06c 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java @@ -418,9 +418,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp reportService.save(reportDO); } else { reportDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_PASS.getStatus()); - reportDO.setIdeaManualRate(Objects.nonNull(reportFieldVO.getIdeaManualRate()) ? Double.valueOf(reportFieldVO.getIdeaManualRate()) : null); + reportDO.setIdeaSourceRate(Objects.nonNull(reportFieldVO.getIdeaSourceRate()) ? Double.valueOf(reportFieldVO.getIdeaSourceRate()) : null); reportDO.setIdeaSource(reportFieldVO.getIdeaSource()); - reportDO.setManualPreform(reportFieldVO.getManualPreform()); + reportDO.setManualPreform1(reportFieldVO.getManualPreform1()); + reportDO.setManualPreform1Rate(Objects.nonNull(reportFieldVO.getManualPreform1Rate()) ? Double.valueOf(reportFieldVO.getManualPreform1Rate()) : null); + reportDO.setManualPreform2(reportFieldVO.getManualPreform1()); + reportDO.setManualPreform2Rate(Objects.nonNull(reportFieldVO.getManualPreform2Rate()) ? Double.valueOf(reportFieldVO.getManualPreform2Rate()) : null); reportService.updateById(reportDO); } orderBaseInfoDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_PASS.getStatus()); @@ -476,9 +479,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp */ private OrderCompletionReportDO reportField2reportDo(OrderCompletionReportFieldVO reportFieldVO) { return OrderCompletionReportDO.builder() - .ideaManualRate(StringUtils.isNotBlank(reportFieldVO.getIdeaManualRate()) ? Double.valueOf(reportFieldVO.getIdeaManualRate()) : null) + .ideaSourceRate(StringUtils.isNotBlank(reportFieldVO.getIdeaSourceRate()) ? Double.valueOf(reportFieldVO.getIdeaSourceRate()) : null) .ideaSource(reportFieldVO.getIdeaSource()) - .manualPreform(reportFieldVO.getManualPreform()) + .manualPreform1(reportFieldVO.getManualPreform1()) + .manualPreform1Rate(StringUtils.isNotBlank(reportFieldVO.getManualPreform1Rate()) ? Double.valueOf(reportFieldVO.getManualPreform1Rate()) : null) + .manualPreform2(reportFieldVO.getManualPreform2()) + .manualPreform2Rate(StringUtils.isNotBlank(reportFieldVO.getManualPreform2Rate()) ? Double.valueOf(reportFieldVO.getManualPreform2Rate()) : null) .orderId(reportFieldVO.getOrderId()) .build(); }