diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java index ad466154..c3f85f2f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.controller.admin.auth.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; @@ -86,6 +87,8 @@ public class AuthPermissionInfoRespVO { @Schema(description = "是否总是显示", example = "false") private Boolean alwaysShow; + @Schema(description = "是否已选择 (用于常用菜单赛选 true 已选 false 未选)", example = "false") + private Boolean selectedFlag; /** * 子路由 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/CommonlyUsedController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/CommonlyUsedController.java new file mode 100644 index 00000000..cc34f47c --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/CommonlyUsedController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.commonlyused; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.commonlyused.CommonlyUsedDO; +import cn.iocoder.yudao.module.system.service.commonlyused.CommonlyUsedService; + +@Tag(name = "管理后台 - 用户常用应用配置") +@RestController +@RequestMapping("/system/commonly-used") +@Validated +public class CommonlyUsedController { + + @Resource + private CommonlyUsedService commonlyUsedService; + + @PostMapping("/create") + @Operation(summary = "创建用户常用应用配置") + @PreAuthorize("@ss.hasPermission('system:commonly-used:create')") + public CommonResult createCommonlyUsed(@Valid @RequestBody CommonlyUsedSaveReqVO createReqVO) { + return success(commonlyUsedService.createCommonlyUsed(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新用户常用应用配置") + @PreAuthorize("@ss.hasPermission('system:commonly-used:update')") + public CommonResult updateCommonlyUsed(@Valid @RequestBody CommonlyUsedSaveReqVO updateReqVO) { + commonlyUsedService.updateCommonlyUsed(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除用户常用应用配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:commonly-used:delete')") + public CommonResult deleteCommonlyUsed(@RequestParam("id") Long id) { + commonlyUsedService.deleteCommonlyUsed(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得用户常用应用配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:commonly-used:query')") + public CommonResult getCommonlyUsed(@RequestParam("id") Long id) { + CommonlyUsedDO commonlyUsed = commonlyUsedService.getCommonlyUsed(id); + return success(BeanUtils.toBean(commonlyUsed, CommonlyUsedRespVO.class)); + } + + @GetMapping("/list") + @Operation(summary = "获得用户常用应用配置列表") + @PreAuthorize("@ss.hasPermission('system:commonly-used:query')") + public CommonResult getCommonlyUsedList() { + CommonlyUsedVO vo = commonlyUsedService.getCommonlyUsedList(); + return success(vo); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出用户常用应用配置 Excel") + @PreAuthorize("@ss.hasPermission('system:commonly-used:export')") + @OperateLog(type = EXPORT) + public void exportCommonlyUsedExcel(@Valid CommonlyUsedPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = commonlyUsedService.getCommonlyUsedPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "用户常用应用配置.xls", "数据", CommonlyUsedRespVO.class, + BeanUtils.toBean(list, CommonlyUsedRespVO.class)); + } + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedPageReqVO.java new file mode 100644 index 00000000..8a0513c1 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 用户常用应用配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CommonlyUsedPageReqVO extends PageParam { + + @Schema(description = "用户id", example = "2072") + private Long userId; + + @Schema(description = "类型 1流程 2菜单", example = "1") + private Integer type; + + @Schema(description = "路由地址") + private String routing; + + @Schema(description = "菜单id或流程id 根据具体类型来", example = "11898") + private String objectId; + + @Schema(description = "排序(从小到大)") + private Integer sort; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedRespVO.java new file mode 100644 index 00000000..8845db61 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedRespVO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 用户常用应用配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class CommonlyUsedRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18873") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "用户id", example = "2072") + @ExcelProperty("用户id") + private Long userId; + + @Schema(description = "类型 1流程 2菜单", example = "1") + @ExcelProperty("类型 1流程 2菜单") + private Integer type; + + @Schema(description = "路由地址") + @ExcelProperty("路由地址") + private String routing; + + @Schema(description = "菜单id或流程id 根据具体类型来", example = "11898") + @ExcelProperty("菜单id或流程id 根据具体类型来") + private String objectId; + + @Schema(description = "排序(从小到大)") + @ExcelProperty("排序(从小到大)") + private Integer sort; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "名称") + @ExcelProperty("名称") + private String name; + + @Schema(description = "图标") + @ExcelProperty("图标") + private String img; + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedSaveReqVO.java new file mode 100644 index 00000000..f891fb41 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedSaveReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 用户常用应用配置新增/修改 Request VO") +@Data +public class CommonlyUsedSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18873") + private Long id; + + @Schema(description = "用户id", example = "2072") + private Long userId; + + @Schema(description = "类型 1流程 2菜单", example = "1") + private Integer type; + + @Schema(description = "路由地址") + private String routing; + + @Schema(description = "菜单id或流程id 根据具体类型来", example = "11898") + private String objectId; + + @Schema(description = "排序(从小到大)") + private Integer sort; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedVO.java new file mode 100644 index 00000000..507c7965 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/commonlyused/vo/CommonlyUsedVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo; + +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class CommonlyUsedVO { + + @Schema(description = "用户常用应用配置") + private List commonlyUsedRespVOS; + + @Schema(description = "菜单树形列表") + private List menus; + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/commonlyused/CommonlyUsedDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/commonlyused/CommonlyUsedDO.java new file mode 100644 index 00000000..ff514fa2 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/commonlyused/CommonlyUsedDO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.commonlyused; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 用户常用应用配置 DO + * + * @author 艾楷 + */ +@TableName("system_commonly_used") +@KeySequence("system_commonly_used_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CommonlyUsedDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 用户id + */ + private Long userId; + /** + * 类型 1流程 2菜单 + */ + private Integer type; + /** + * 路由地址 + */ + private String routing; + /** + * 菜单id或流程id 根据具体类型来 + */ + private String objectId; + /** + * 排序(从小到大) + */ + private Integer sort; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java index 90d58332..f4dca737 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -103,5 +104,10 @@ public class MenuDO extends BaseDO { * 如果为 false 时,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 */ private Boolean alwaysShow; + /** + * 是否已选择 (用于常用菜单赛选 true 已选 false 未选) + */ + @TableField(exist = false) + private Boolean selectedFlag; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/commonlyused/CommonlyUsedMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/commonlyused/CommonlyUsedMapper.java new file mode 100644 index 00000000..c11d2761 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/commonlyused/CommonlyUsedMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.dal.mysql.commonlyused; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.commonlyused.CommonlyUsedDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.*; + +/** + * 用户常用应用配置 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface CommonlyUsedMapper extends BaseMapperX { + + default PageResult selectPage(CommonlyUsedPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(CommonlyUsedDO::getUserId, reqVO.getUserId()) + .eqIfPresent(CommonlyUsedDO::getType, reqVO.getType()) + .eqIfPresent(CommonlyUsedDO::getRouting, reqVO.getRouting()) + .eqIfPresent(CommonlyUsedDO::getObjectId, reqVO.getObjectId()) + .eqIfPresent(CommonlyUsedDO::getSort, reqVO.getSort()) + .betweenIfPresent(CommonlyUsedDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(CommonlyUsedDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java index 03498a57..430f1aa0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java @@ -89,7 +89,7 @@ public class DeptAssetsInOutStockServiceImpl implements DeptAssetsInOutStockServ if (CollectionUtil.isNotEmpty(list)) { for (DeptAssetsInOutStockSaveReqVO vo : list) { DeptAssetsInOutStockDO deptAssetsInOutStock = new DeptAssetsInOutStockDO(); - deptAssetsInOutStock.setOutDeptId(outDeptId == -1 ? null : outDeptId); + deptAssetsInOutStock.setOutDeptId(outDeptId); deptAssetsInOutStock.setInDeptId(vo.getInDeptId()); deptAssetsInOutStock.setNum(vo.getNum()); deptAssetsInOutStock.setInOutNo(IdWorker.get32UUID()); @@ -131,7 +131,7 @@ public class DeptAssetsInOutStockServiceImpl implements DeptAssetsInOutStockServ updateAssetsList.add(assetsDO); } else { DeptAssetsDO deptAssetsDO = deptAssetsDOMap.get(outDeptId + "_" + dto.getAssetsId()); - if (dto.getType() == 0 && (deptAssetsDO.getStock() - outNum <= 0)) { + if (deptAssetsDO.getStock() - outNum <= 0) { deptAssetDeptIdDelIds.add(outDeptId); deptAssetAssetsIdDelIds.add(dto.getAssetsId()); } else { @@ -184,9 +184,11 @@ public class DeptAssetsInOutStockServiceImpl implements DeptAssetsInOutStockServ } } if (!deptAssetDeptIdDelIds.isEmpty() && !deptAssetAssetsIdDelIds.isEmpty()) { - deptAssetsMapper.update(new DeptAssetsDO().setStock(0), new LambdaQueryWrapper() + LambdaQueryWrapper updateOrDelWrapper = new LambdaQueryWrapper() .in(DeptAssetsDO::getDeptId, deptAssetDeptIdDelIds) - .in(DeptAssetsDO::getAssetsId, deptAssetAssetsIdDelIds)); + .in(DeptAssetsDO::getAssetsId, deptAssetAssetsIdDelIds); + deptAssetsMapper.update(new DeptAssetsDO().setStock(0), updateOrDelWrapper); + deptAssetsMapper.delete(updateOrDelWrapper); } if (!updateDeptAssetsList.isEmpty() || !editDeptAssetsList.isEmpty()) { updateDeptAssetsList.addAll(editDeptAssetsList); @@ -320,4 +322,4 @@ public class DeptAssetsInOutStockServiceImpl implements DeptAssetsInOutStockServ } return inOutStockGroupByAssetsIdVOS; } -} \ No newline at end of file +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedService.java new file mode 100644 index 00000000..2dc171af --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedService.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.service.commonlyused; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedRespVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedVO; +import cn.iocoder.yudao.module.system.dal.dataobject.commonlyused.CommonlyUsedDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 用户常用应用配置 Service 接口 + * + * @author 艾楷 + */ +public interface CommonlyUsedService { + + /** + * 创建用户常用应用配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createCommonlyUsed(@Valid CommonlyUsedSaveReqVO createReqVO); + + /** + * 更新用户常用应用配置 + * + * @param updateReqVO 更新信息 + */ + void updateCommonlyUsed(@Valid CommonlyUsedSaveReqVO updateReqVO); + + /** + * 删除用户常用应用配置 + * + * @param id 编号 + */ + void deleteCommonlyUsed(Long id); + + /** + * 获得用户常用应用配置 + * + * @param id 编号 + * @return 用户常用应用配置 + */ + CommonlyUsedDO getCommonlyUsed(Long id); + + /** + * 获得用户常用应用配置分页 + * + * @param pageReqVO 分页查询 + * @return 用户常用应用配置分页 + */ + PageResult getCommonlyUsedPage(CommonlyUsedPageReqVO pageReqVO); + + /** + * 获得用户常用应用配置列表 + * + * @return + */ + CommonlyUsedVO getCommonlyUsedList(); +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedServiceImpl.java new file mode 100644 index 00000000..1ee17365 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/commonlyused/CommonlyUsedServiceImpl.java @@ -0,0 +1,136 @@ +package cn.iocoder.yudao.module.system.service.commonlyused; + +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedRespVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.commonlyused.vo.CommonlyUsedVO; +import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.commonlyused.CommonlyUsedDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.mysql.commonlyused.CommonlyUsedMapper; +import cn.iocoder.yudao.module.system.service.permission.MenuService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * 用户常用应用配置 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class CommonlyUsedServiceImpl implements CommonlyUsedService { + + @Resource + private CommonlyUsedMapper commonlyUsedMapper; + @Resource + private PermissionService permissionService; + @Resource + private MenuService menuService; + + @Override + public Long createCommonlyUsed(CommonlyUsedSaveReqVO createReqVO) { + // 插入 + CommonlyUsedDO commonlyUsed = BeanUtils.toBean(createReqVO, CommonlyUsedDO.class); + commonlyUsedMapper.insert(commonlyUsed); + // 返回 + return commonlyUsed.getId(); + } + + @Override + public void updateCommonlyUsed(CommonlyUsedSaveReqVO updateReqVO) { + // 更新 + CommonlyUsedDO updateObj = BeanUtils.toBean(updateReqVO, CommonlyUsedDO.class); + commonlyUsedMapper.updateById(updateObj); + } + + @Override + public void deleteCommonlyUsed(Long id) { + // 删除 + commonlyUsedMapper.deleteById(id); + } + + + @Override + public CommonlyUsedDO getCommonlyUsed(Long id) { + return commonlyUsedMapper.selectById(id); + } + + @Override + public PageResult getCommonlyUsedPage(CommonlyUsedPageReqVO pageReqVO) { + + return commonlyUsedMapper.selectPage(pageReqVO); + } + + @Override + public CommonlyUsedVO getCommonlyUsedList() { + Long userId = SecurityFrameworkUtils.getLoginUserId(); + CommonlyUsedVO vo = new CommonlyUsedVO(); + // -- 搜索我的常用 + List list = commonlyUsedMapper.selectList(new LambdaQueryWrapper() + .eq(CommonlyUsedDO::getDeleted, 0).eq(CommonlyUsedDO::getUserId, userId).orderByAsc(CommonlyUsedDO::getSort)); + Map map = list.stream().collect(Collectors.toMap(CommonlyUsedDO::getId, a -> a)); + List commonlyUsedRespVOS = new ArrayList<>(); + // -- 获取菜单列表 + List menuList = new ArrayList<>(); + Set roleIds = permissionService.getUserRoleIdListByUserId(getLoginUserId()); + if (CollectionUtil.isNotEmpty(roleIds)) { + Set menuIds = permissionService.getRoleMenuListByRoleId(roleIds); + if (CollectionUtil.isNotEmpty(menuIds)) { + menuList = menuService.getMenuList(menuIds); + menuList.removeIf(menu -> !CommonStatusEnum.ENABLE.getStatus().equals(menu.getStatus())); + } + } + List menuIds = new ArrayList<>(); + List processIds = new ArrayList<>(); + if (!list.isEmpty()) { + // 区分出菜单和流程 + List myProcessList = list.stream().filter(a -> a.getType() == 1).collect(Collectors.toList()); + List myMenuList = list.stream().filter(a -> a.getType() == 2).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(myProcessList)) { + processIds = myProcessList.stream().map(CommonlyUsedDO::getObjectId).collect(Collectors.toList()); + } + if (CollectionUtil.isNotEmpty(myMenuList)) { + menuIds = myMenuList.stream().map(CommonlyUsedDO::getObjectId).collect(Collectors.toList()); + } + // -- 将菜单列表转树形 + } + for (MenuDO menuDO : menuList) { + menuDO.setSelectedFlag(false); + if (menuIds.contains(String.valueOf(menuDO.getId()))) { + menuDO.setSelectedFlag(true); + CommonlyUsedRespVO commonlyUsedRespVO = BeanUtils.toBean(menuDO, CommonlyUsedRespVO.class); + commonlyUsedRespVO.setImg(menuDO.getIcon()); + commonlyUsedRespVO.setName(menuDO.getName()); + commonlyUsedRespVOS.add(commonlyUsedRespVO); + } + } + // -- 获取流程列表 + + + List menus = AuthConvert.INSTANCE.buildMenuTree(menuList); + vo.setMenus(menus); + vo.setCommonlyUsedRespVOS(commonlyUsedRespVOS); + + // TODO: 2024/9/5 还差流程的实现 + return null; + } + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/commonlyused/CommonlyUsedMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/commonlyused/CommonlyUsedMapper.xml new file mode 100644 index 00000000..8dc64de7 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/commonlyused/CommonlyUsedMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryforklift/vo/FactoryForkliftRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryforklift/vo/FactoryForkliftRespVO.java index c1147b95..d571f011 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryforklift/vo/FactoryForkliftRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryforklift/vo/FactoryForkliftRespVO.java @@ -34,9 +34,9 @@ public class FactoryForkliftRespVO { @ExcelProperty("叉车id") private Long forkliftId; // -// @Schema(description = "部门id", example = "23631") -// @ExcelProperty("部门id") -// private Long deptId; + @Schema(description = "部门id", example = "23631") + @ExcelProperty("部门id") + private Long deptId; // // @Schema(description = "部门名称", example = "23631") // @ExcelProperty("部门名称") diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/FactoryKilnController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/FactoryKilnController.java index b9565927..e4c5b1ad 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/FactoryKilnController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/FactoryKilnController.java @@ -75,8 +75,8 @@ public class FactoryKilnController { @Operation(summary = "获得工厂窑炉分页") @PreAuthorize("@ss.hasPermission('smartfactory:factory-kiln:query')") public CommonResult> getFactoryKilnPage(@Valid FactoryKilnPageReqVO pageReqVO) { - PageResult pageResult = factoryKilnService.getFactoryKilnPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, FactoryKilnRespVO.class)); + PageResult pageResult = factoryKilnService.getFactoryKilnPage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") @@ -86,10 +86,10 @@ public class FactoryKilnController { public void exportFactoryKilnExcel(@Valid FactoryKilnPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = factoryKilnService.getFactoryKilnPage(pageReqVO).getList(); + List list = factoryKilnService.getFactoryKilnPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "工厂窑炉.xls", "数据", FactoryKilnRespVO.class, - BeanUtils.toBean(list, FactoryKilnRespVO.class)); + list); } -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnPageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnPageReqVO.java index 2b3c917e..7ece6118 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnPageReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnPageReqVO.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -22,10 +24,10 @@ public class FactoryKilnPageReqVO extends PageParam { private String name; @Schema(description = "产能") - private Integer capacity; + private BigDecimal capacity; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnRespVO.java index c5d88e2f..24722e82 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnRespVO.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; @@ -14,23 +16,25 @@ import com.alibaba.excel.annotation.*; public class FactoryKilnRespVO { @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1055") - @ExcelProperty("主键id") private Long id; @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25583") - @ExcelProperty("工厂id") private Long factoryId; + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "25583") + @ExcelProperty("工厂名称") + private String factoryName; + @Schema(description = "名称", example = "赵六") @ExcelProperty("名称") private String name; @Schema(description = "产能") @ExcelProperty("产能") - private Integer capacity; + private BigDecimal capacity; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnSaveReqVO.java index ee7014a9..27ec72d5 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnSaveReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorykiln/vo/FactoryKilnSaveReqVO.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import javax.validation.constraints.*; import java.util.*; @@ -21,6 +23,6 @@ public class FactoryKilnSaveReqVO { private String name; @Schema(description = "产能") - private Integer capacity; + private BigDecimal capacity; -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/FactoryPackingLineController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/FactoryPackingLineController.java index c6d4bfc6..453f57c2 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/FactoryPackingLineController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/FactoryPackingLineController.java @@ -1,33 +1,31 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.*; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLinePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineSaveReqVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorypackingline.FactoryPackingLineDO; import cn.iocoder.yudao.module.smartfactory.service.factorypackingline.FactoryPackingLineService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 打包线配置") @RestController @@ -75,8 +73,8 @@ public class FactoryPackingLineController { @Operation(summary = "获得打包线配置分页") @PreAuthorize("@ss.hasPermission('smartfactory:factory-packing-line:query')") public CommonResult> getFactoryPackingLinePage(@Valid FactoryPackingLinePageReqVO pageReqVO) { - PageResult pageResult = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, FactoryPackingLineRespVO.class)); + PageResult pageResult = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") @@ -84,12 +82,11 @@ public class FactoryPackingLineController { @PreAuthorize("@ss.hasPermission('smartfactory:factory-packing-line:export')") @OperateLog(type = EXPORT) public void exportFactoryPackingLineExcel(@Valid FactoryPackingLinePageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO).getList(); + List list = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "打包线配置.xls", "数据", FactoryPackingLineRespVO.class, - BeanUtils.toBean(list, FactoryPackingLineRespVO.class)); + ExcelUtils.write(response, "打包线配置.xls", "数据", FactoryPackingLineRespVO.class, list); } -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/vo/FactoryPackingLineRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/vo/FactoryPackingLineRespVO.java index 4a97405d..b1a16bad 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/vo/FactoryPackingLineRespVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factorypackingline/vo/FactoryPackingLineRespVO.java @@ -1,12 +1,11 @@ package cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + import java.time.LocalDateTime; -import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 打包线配置 Response VO") @Data @@ -21,6 +20,10 @@ public class FactoryPackingLineRespVO { @ExcelProperty("工厂id") private Long factoryId; + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "24676") + @ExcelProperty("工厂名称") + private String factoryName; + @Schema(description = "打包线名称", example = "王五") @ExcelProperty("打包线名称") private String name; @@ -33,8 +36,12 @@ public class FactoryPackingLineRespVO { @ExcelProperty("窑炉id") private Long kilnId; + @Schema(description = "窑炉名称", example = "15240") + @ExcelProperty("窑炉名称") + private String kilnName; + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") private LocalDateTime createTime; -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/screendata/factory/FactoryScreenDataController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/screendata/factory/FactoryScreenDataController.java index ad771491..64ff170e 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/screendata/factory/FactoryScreenDataController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/screendata/factory/FactoryScreenDataController.java @@ -43,6 +43,15 @@ public class FactoryScreenDataController { return success(provincesDataList); } + @GetMapping("/v2/getStaffData") + @Operation(summary = "大屏员工信息数据") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + @PermitAll + public CommonResult getStaffDataV2(@RequestParam(required = false) Long factoryId) { + StaffDataRespVO staffDataRespVO = screenDataService.getStaffDataV2(factoryId); + return success(staffDataRespVO); + } + @GetMapping("/getStaffData") @Operation(summary = "大屏员工信息数据") @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 @@ -184,4 +193,4 @@ public class FactoryScreenDataController { return success(sfFactoryInfo); } -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factorykiln/FactoryKilnDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factorykiln/FactoryKilnDO.java index c3df945d..c9a7610b 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factorykiln/FactoryKilnDO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factorykiln/FactoryKilnDO.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorykiln; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -38,6 +40,6 @@ public class FactoryKilnDO extends BaseDO { /** * 产能 */ - private Integer capacity; + private BigDecimal capacity; -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorykiln/FactoryKilnMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorykiln/FactoryKilnMapper.java index 1468ed84..1a8ce0cf 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorykiln/FactoryKilnMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorykiln/FactoryKilnMapper.java @@ -1,13 +1,15 @@ package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorykiln; -import java.util.*; - import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnRespVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorykiln.FactoryKilnDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.*; +import org.apache.ibatis.annotations.Param; /** * 工厂窑炉 Mapper @@ -26,4 +28,12 @@ public interface FactoryKilnMapper extends BaseMapperX { .orderByDesc(FactoryKilnDO::getId)); } -} \ No newline at end of file + /** + * 分页 + * + * @param vo + * @param page + * @return + */ + IPage getFactoryKilnPage(@Param("vo") FactoryKilnPageReqVO vo, @Param("page") Page page); +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorypackingline/FactoryPackingLineMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorypackingline/FactoryPackingLineMapper.java index 65f28189..39eece24 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorypackingline/FactoryPackingLineMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorypackingline/FactoryPackingLineMapper.java @@ -1,13 +1,15 @@ package cn.iocoder.yudao.module.smartfactory.dal.mysql.factorypackingline; -import java.util.*; - import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLinePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineRespVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorypackingline.FactoryPackingLineDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.*; +import org.apache.ibatis.annotations.Param; /** * 打包线配置 Mapper @@ -27,4 +29,12 @@ public interface FactoryPackingLineMapper extends BaseMapperX getFactoryPackingLinePage(@Param("vo") FactoryPackingLinePageReqVO vo, @Param("page") Page page); +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/staff/StaffMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/staff/StaffMapper.java index 3a21e2a2..1cb1fb5e 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/staff/StaffMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/staff/StaffMapper.java @@ -37,4 +37,11 @@ public interface StaffMapper extends BaseMapperX { * @return */ List getStaffData(@Param("factoryId") Long factoryId); -} \ No newline at end of file + + /** + * 获取员工信息 + * @param factoryId + * @return + */ + List getStaffDataV2(@Param("factoryId") Long factoryId); +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnService.java index b2f9279f..06dcb495 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnService.java @@ -50,6 +50,6 @@ public interface FactoryKilnService { * @param pageReqVO 分页查询 * @return 工厂窑炉分页 */ - PageResult getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO); + PageResult getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO); -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnServiceImpl.java index 1813d5ca..1741ac67 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorykiln/FactoryKilnServiceImpl.java @@ -1,11 +1,15 @@ package cn.iocoder.yudao.module.smartfactory.service.factorykiln; +import cn.hutool.core.util.ArrayUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnPageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnSaveReqVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorykiln.FactoryKilnDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorykiln.FactoryKilnMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -51,8 +55,9 @@ public class FactoryKilnServiceImpl implements FactoryKilnService { } @Override - public PageResult getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO) { - return factoryKilnMapper.selectPage(pageReqVO); + public PageResult getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO) { + IPage pageResult = factoryKilnMapper.getFactoryKilnPage(pageReqVO,MyBatisUtils.buildPage(pageReqVO)); + return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineService.java index 4fba8daf..fad4c86c 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineService.java @@ -50,6 +50,6 @@ public interface FactoryPackingLineService { * @param pageReqVO 分页查询 * @return 打包线配置分页 */ - PageResult getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO); + PageResult getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO); -} \ No newline at end of file +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineServiceImpl.java index ff8ff044..9e968bf8 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorypackingline/FactoryPackingLineServiceImpl.java @@ -2,10 +2,14 @@ package cn.iocoder.yudao.module.smartfactory.service.factorypackingline; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLinePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineSaveReqVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorypackingline.FactoryPackingLineDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.factorypackingline.FactoryPackingLineMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -51,8 +55,10 @@ public class FactoryPackingLineServiceImpl implements FactoryPackingLineService } @Override - public PageResult getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO) { - return factoryPackingLineMapper.selectPage(pageReqVO); + public PageResult getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO) { + IPage pageResult = factoryPackingLineMapper.getFactoryPackingLinePage(pageReqVO, MyBatisUtils.buildPage(pageReqVO)); + return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); + } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataService.java index 8d682285..2b41d6cf 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataService.java @@ -122,4 +122,11 @@ public interface ScreenDataService { * @return */ ObtainFactoryInboundAndOutboundStatusVO getObtainFactoryInboundAndOutboundStatus(Long factoryId); -} \ No newline at end of file + + /** + * 查询员工数据 + * @param factoryId + * @return + */ + StaffDataRespVO getStaffDataV2(Long factoryId); +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataServiceImpl.java index 00bd7e32..c70f5dea 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/screendata/ScreenDataServiceImpl.java @@ -420,4 +420,9 @@ public class ScreenDataServiceImpl implements ScreenDataService { return vo; } + + @Override + public StaffDataRespVO getStaffDataV2(Long factoryId) { + return staffService.getStaffDataV2(factoryId); + } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java index 3f68441f..47074973 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffService.java @@ -66,4 +66,11 @@ public interface StaffService { * @return */ Integer getCount(); -} \ No newline at end of file + + /** + * 查询工厂员工信息 + * @param factoryId + * @return + */ + StaffDataRespVO getStaffDataV2(Long factoryId); +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java index 2f4ebbc9..4ddf7bff 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/staff/StaffServiceImpl.java @@ -75,4 +75,15 @@ public class StaffServiceImpl implements StaffService { return Math.toIntExact(staffMapper.selectCount(new LambdaQueryWrapperX().eq(StaffDO::getStatus, 1))); } -} \ No newline at end of file + @Override + public StaffDataRespVO getStaffDataV2(Long factoryId) { + StaffDataRespVO vo = new StaffDataRespVO(); + List dos = staffMapper.getStaffDataV2(factoryId); + vo.setTotal(dos.size()); + vo.setMaleTotal((int) dos.stream().filter(a -> a.getSex() == 0).count()); + vo.setFemaleTotal((int) dos.stream().filter(a -> a.getSex() == 1).count()); + vo.setStaffInfos(dos); + return vo; + } + +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryforklift/FactoryForkliftMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryforklift/FactoryForkliftMapper.xml index 19fb319d..d1b658ec 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryforklift/FactoryForkliftMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryforklift/FactoryForkliftMapper.xml @@ -13,14 +13,39 @@ resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factoryforklift.vo.FactoryForkliftRespVO"> select a.id, a.assets_no as assetsNo, - d.name as name, + d.id AS factoryId, + d.name as factoryName, c.id as forkliftId, + b.dept_id as deptId, c.* from zc_assets as a - left join zc_dept_assets as b on a.id = b.assets_id - left join sf_factory_forklift as c on a.assets_no = c.assets_no - left join sf_factory_info as d on c.factory_id = d.id + LEFT JOIN zc_dept_assets AS b ON a.id = b.assets_id + LEFT JOIN system_dept AS dept ON dept.id = b.dept_id + LEFT JOIN sf_factory_forklift AS c ON a.assets_no = c.assets_no + LEFT JOIN sf_factory_info AS d ON dept.factory_id = d.id + b.deleted = 0 AND b.stock > 0 + + and a.assets_no = #{vo.assetsNo} + + + and c.factory_id = #{vo.factoryId} + + + and c.use_type = #{vo.useType} + + + and c.name like concat('%', #{vo.name}, '%') + + + and c.model_no like concat('%', #{vo.modelNo}, '%') + + + and c.manufacturer like concat('%', #{vo.manufacturer}, '%') + + + and c.license_plate like concat('%', #{vo.licensePlate}, '%') + and a.type_id in diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorykiln/FactoryKilnMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorykiln/FactoryKilnMapper.xml index 25a43041..6c5feaa5 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorykiln/FactoryKilnMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorykiln/FactoryKilnMapper.xml @@ -9,4 +9,22 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - \ No newline at end of file + + diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorypackingline/FactoryPackingLineMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorypackingline/FactoryPackingLineMapper.xml index e1eefed0..7ee5d722 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorypackingline/FactoryPackingLineMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorypackingline/FactoryPackingLineMapper.xml @@ -9,4 +9,28 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - \ No newline at end of file + + diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/staff/StaffMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/staff/StaffMapper.xml index fab63085..8020e892 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/staff/StaffMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/staff/StaffMapper.xml @@ -25,4 +25,31 @@ - \ No newline at end of file + +