### commit message

#### 1. 添加用户常用应用配置功能

新增了用户常用应用配置的CRUD接口和相应的数据库表。实现了用户可以自定义常用菜单和流程的功能,以提高操作便捷性。

#### 2. 优化工厂窑炉表及查询功能

调整了工厂窑炉表的产能字段类型,并优化了相应的查询接口,提高了查询效率和数据的一致性。
This commit is contained in:
aikai 2024-09-05 18:43:46 +08:00
parent f1661ea3b0
commit fb5eca9b3a
37 changed files with 810 additions and 87 deletions

View File

@ -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;
/**
* 子路由
*/

View File

@ -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<Long> createCommonlyUsed(@Valid @RequestBody CommonlyUsedSaveReqVO createReqVO) {
return success(commonlyUsedService.createCommonlyUsed(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新用户常用应用配置")
@PreAuthorize("@ss.hasPermission('system:commonly-used:update')")
public CommonResult<Boolean> 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<Boolean> 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<CommonlyUsedRespVO> 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<CommonlyUsedVO> 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<CommonlyUsedDO> list = commonlyUsedService.getCommonlyUsedPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "用户常用应用配置.xls", "数据", CommonlyUsedRespVO.class,
BeanUtils.toBean(list, CommonlyUsedRespVO.class));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<CommonlyUsedRespVO> commonlyUsedRespVOS;
@Schema(description = "菜单树形列表")
private List<AuthPermissionInfoRespVO.MenuVO> menus;
}

View File

@ -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") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 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;
}

View File

@ -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;
}

View File

@ -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<CommonlyUsedDO> {
default PageResult<CommonlyUsedDO> selectPage(CommonlyUsedPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CommonlyUsedDO>()
.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));
}
}

View File

@ -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<DeptAssetsDO>()
LambdaQueryWrapper<DeptAssetsDO> updateOrDelWrapper = new LambdaQueryWrapper<DeptAssetsDO>()
.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);

View File

@ -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<CommonlyUsedDO> getCommonlyUsedPage(CommonlyUsedPageReqVO pageReqVO);
/**
* 获得用户常用应用配置列表
*
* @return
*/
CommonlyUsedVO getCommonlyUsedList();
}

View File

@ -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<CommonlyUsedDO> getCommonlyUsedPage(CommonlyUsedPageReqVO pageReqVO) {
return commonlyUsedMapper.selectPage(pageReqVO);
}
@Override
public CommonlyUsedVO getCommonlyUsedList() {
Long userId = SecurityFrameworkUtils.getLoginUserId();
CommonlyUsedVO vo = new CommonlyUsedVO();
// -- 搜索我的常用
List<CommonlyUsedDO> list = commonlyUsedMapper.selectList(new LambdaQueryWrapper<CommonlyUsedDO>()
.eq(CommonlyUsedDO::getDeleted, 0).eq(CommonlyUsedDO::getUserId, userId).orderByAsc(CommonlyUsedDO::getSort));
Map<Long, CommonlyUsedDO> map = list.stream().collect(Collectors.toMap(CommonlyUsedDO::getId, a -> a));
List<CommonlyUsedRespVO> commonlyUsedRespVOS = new ArrayList<>();
// -- 获取菜单列表
List<MenuDO> menuList = new ArrayList<>();
Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(getLoginUserId());
if (CollectionUtil.isNotEmpty(roleIds)) {
Set<Long> menuIds = permissionService.getRoleMenuListByRoleId(roleIds);
if (CollectionUtil.isNotEmpty(menuIds)) {
menuList = menuService.getMenuList(menuIds);
menuList.removeIf(menu -> !CommonStatusEnum.ENABLE.getStatus().equals(menu.getStatus()));
}
}
List<String> menuIds = new ArrayList<>();
List<String> processIds = new ArrayList<>();
if (!list.isEmpty()) {
// 区分出菜单和流程
List<CommonlyUsedDO> myProcessList = list.stream().filter(a -> a.getType() == 1).collect(Collectors.toList());
List<CommonlyUsedDO> 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<AuthPermissionInfoRespVO.MenuVO> menus = AuthConvert.INSTANCE.buildMenuTree(menuList);
vo.setMenus(menus);
vo.setCommonlyUsedRespVOS(commonlyUsedRespVOS);
// TODO: 2024/9/5 还差流程的实现
return null;
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.commonlyused.CommonlyUsedMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@ -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("部门名称")

View File

@ -75,8 +75,8 @@ public class FactoryKilnController {
@Operation(summary = "获得工厂窑炉分页")
@PreAuthorize("@ss.hasPermission('smartfactory:factory-kiln:query')")
public CommonResult<PageResult<FactoryKilnRespVO>> getFactoryKilnPage(@Valid FactoryKilnPageReqVO pageReqVO) {
PageResult<FactoryKilnDO> pageResult = factoryKilnService.getFactoryKilnPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, FactoryKilnRespVO.class));
PageResult<FactoryKilnRespVO> 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<FactoryKilnDO> list = factoryKilnService.getFactoryKilnPage(pageReqVO).getList();
List<FactoryKilnRespVO> list = factoryKilnService.getFactoryKilnPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "工厂窑炉.xls", "数据", FactoryKilnRespVO.class,
BeanUtils.toBean(list, FactoryKilnRespVO.class));
list);
}
}

View File

@ -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,7 +24,7 @@ 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)

View File

@ -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,20 +16,22 @@ 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("创建时间")

View File

@ -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;
}

View File

@ -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<PageResult<FactoryPackingLineRespVO>> getFactoryPackingLinePage(@Valid FactoryPackingLinePageReqVO pageReqVO) {
PageResult<FactoryPackingLineDO> pageResult = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, FactoryPackingLineRespVO.class));
PageResult<FactoryPackingLineRespVO> pageResult = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@ -86,10 +84,9 @@ public class FactoryPackingLineController {
public void exportFactoryPackingLineExcel(@Valid FactoryPackingLinePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<FactoryPackingLineDO> list = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO).getList();
List<FactoryPackingLineRespVO> list = factoryPackingLineService.getFactoryPackingLinePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "打包线配置.xls", "数据", FactoryPackingLineRespVO.class,
BeanUtils.toBean(list, FactoryPackingLineRespVO.class));
ExcelUtils.write(response, "打包线配置.xls", "数据", FactoryPackingLineRespVO.class, list);
}
}

View File

@ -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,6 +36,10 @@ 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;

View File

@ -43,6 +43,15 @@ public class FactoryScreenDataController {
return success(provincesDataList);
}
@GetMapping("/v2/getStaffData")
@Operation(summary = "大屏员工信息数据")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志
@PermitAll
public CommonResult<StaffDataRespVO> getStaffDataV2(@RequestParam(required = false) Long factoryId) {
StaffDataRespVO staffDataRespVO = screenDataService.getStaffDataV2(factoryId);
return success(staffDataRespVO);
}
@GetMapping("/getStaffData")
@Operation(summary = "大屏员工信息数据")
@OperateLog(enable = false) // 避免 Post 请求被记录操作日志

View File

@ -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;
}

View File

@ -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<FactoryKilnDO> {
.orderByDesc(FactoryKilnDO::getId));
}
/**
* 分页
*
* @param vo
* @param page
* @return
*/
IPage<FactoryKilnRespVO> getFactoryKilnPage(@Param("vo") FactoryKilnPageReqVO vo, @Param("page") Page<Object> page);
}

View File

@ -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<FactoryPackingLine
.orderByDesc(FactoryPackingLineDO::getId));
}
/**
* 分页列表
*
* @param vo
* @param page
* @return
*/
IPage<FactoryPackingLineRespVO> getFactoryPackingLinePage(@Param("vo") FactoryPackingLinePageReqVO vo, @Param("page") Page<Object> page);
}

View File

@ -37,4 +37,11 @@ public interface StaffMapper extends BaseMapperX<StaffDO> {
* @return
*/
List<StaffDO> getStaffData(@Param("factoryId") Long factoryId);
/**
* 获取员工信息
* @param factoryId
* @return
*/
List<StaffDO> getStaffDataV2(@Param("factoryId") Long factoryId);
}

View File

@ -50,6 +50,6 @@ public interface FactoryKilnService {
* @param pageReqVO 分页查询
* @return 工厂窑炉分页
*/
PageResult<FactoryKilnDO> getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO);
PageResult<FactoryKilnRespVO> getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO);
}

View File

@ -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<FactoryKilnDO> getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO) {
return factoryKilnMapper.selectPage(pageReqVO);
public PageResult<FactoryKilnRespVO> getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO) {
IPage<FactoryKilnRespVO> pageResult = factoryKilnMapper.getFactoryKilnPage(pageReqVO,MyBatisUtils.buildPage(pageReqVO));
return new PageResult<>(pageResult.getRecords(), pageResult.getTotal());
}
}

View File

@ -50,6 +50,6 @@ public interface FactoryPackingLineService {
* @param pageReqVO 分页查询
* @return 打包线配置分页
*/
PageResult<FactoryPackingLineDO> getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO);
PageResult<FactoryPackingLineRespVO> getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO);
}

View File

@ -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<FactoryPackingLineDO> getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO) {
return factoryPackingLineMapper.selectPage(pageReqVO);
public PageResult<FactoryPackingLineRespVO> getFactoryPackingLinePage(FactoryPackingLinePageReqVO pageReqVO) {
IPage<FactoryPackingLineRespVO> pageResult = factoryPackingLineMapper.getFactoryPackingLinePage(pageReqVO, MyBatisUtils.buildPage(pageReqVO));
return new PageResult<>(pageResult.getRecords(), pageResult.getTotal());
}
}

View File

@ -122,4 +122,11 @@ public interface ScreenDataService {
* @return
*/
ObtainFactoryInboundAndOutboundStatusVO getObtainFactoryInboundAndOutboundStatus(Long factoryId);
/**
* 查询员工数据
* @param factoryId
* @return
*/
StaffDataRespVO getStaffDataV2(Long factoryId);
}

View File

@ -420,4 +420,9 @@ public class ScreenDataServiceImpl implements ScreenDataService {
return vo;
}
@Override
public StaffDataRespVO getStaffDataV2(Long factoryId) {
return staffService.getStaffDataV2(factoryId);
}
}

View File

@ -66,4 +66,11 @@ public interface StaffService {
* @return
*/
Integer getCount();
/**
* 查询工厂员工信息
* @param factoryId
* @return
*/
StaffDataRespVO getStaffDataV2(Long factoryId);
}

View File

@ -75,4 +75,15 @@ public class StaffServiceImpl implements StaffService {
return Math.toIntExact(staffMapper.selectCount(new LambdaQueryWrapperX<StaffDO>().eq(StaffDO::getStatus, 1)));
}
@Override
public StaffDataRespVO getStaffDataV2(Long factoryId) {
StaffDataRespVO vo = new StaffDataRespVO();
List<StaffDO> 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;
}
}

View File

@ -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
<where>
b.deleted = 0 AND b.stock > 0
<if test="vo.assetsNo != null and vo.assetsNo != ''">
and a.assets_no = #{vo.assetsNo}
</if>
<if test="vo.factoryId != null">
and c.factory_id = #{vo.factoryId}
</if>
<if test="vo.useType != null">
and c.use_type = #{vo.useType}
</if>
<if test="vo.name != null and vo.name != ''">
and c.name like concat('%', #{vo.name}, '%')
</if>
<if test="vo.modelNo != null and vo.modelNo != ''">
and c.model_no like concat('%', #{vo.modelNo}, '%')
</if>
<if test="vo.manufacturer != null and vo.manufacturer != ''">
and c.manufacturer like concat('%', #{vo.manufacturer}, '%')
</if>
<if test="vo.licensePlate != null and vo.licensePlate != ''">
and c.license_plate like concat('%', #{vo.licensePlate}, '%')
</if>
<if test="vo.typeIds != null and vo.typeIds.size() > 0">
and a.type_id in
<foreach collection="vo.typeIds" open="(" item="typeId" separator="," close=")">

View File

@ -9,4 +9,22 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getFactoryKilnPage"
resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnRespVO">
select
a.*,
b.name as factoryName
from sf_factory_kiln as a
left join sf_factory_info as b on a.factory_id = b.id
<where>
a.deleted = 0
<if test="vo.factoryId != null">
and a.factory_id = #{vo.factoryId}
</if>
<if test="vo.name != null and vo.name != ''">
and a.name like concat('%', #{vo.name}, '%')
</if>
</where>
order by a.capacity desc
</select>
</mapper>

View File

@ -9,4 +9,28 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getFactoryPackingLinePage"
resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorypackingline.vo.FactoryPackingLineRespVO">
select a.*,
b.name as factoryName,
c.name as kilnName
from sf_factory_packing_line as a
left join sf_factory_info as b on a.factory_id = b.id
left join sf_factory_kiln as c on a.kiln_id = c.id
<where>
a.deleted = 0
<if test="vo.factoryId != null">
and a.factory_id = #{vo.factoryId}
</if>
<if test="vo.kilnId != null">
and a.kiln_id = #{vo.kilnId}
</if>
<if test="vo.type != null">
and a.type = #{vo.type}
</if>
<if test="vo.name != null and vo.name != ''">
and a.name like concat('%', #{vo.name}, '%')
</if>
</where>
</select>
</mapper>

View File

@ -25,4 +25,31 @@
</if>
</where>
</select>
<select id="getStaffDataV2" resultType="cn.iocoder.yudao.module.smartfactory.dal.dataobject.staff.StaffDO">
SELECT
a.id as id,
a.id as staffNo,
a.nickname as nickName,
a.age as age,
a.sex as sex,
ext.work_type as workType,
b.factory_id as factoryId,
a.idcard as idCard,
a.status as status,
d.label as postName
FROM
system_users AS a
LEFT JOIN system_users_ext AS ext ON a.id = ext.user_id
LEFT JOIN system_dept AS b ON a.dept_id = b.id
LEFT JOIN sf_factory_info AS c ON b.factory_id = c.id
left join system_dict_data as d on ext.work_type = d.value
<where>
a.user_type = 2
and a.deleted = 0
and d.dict_type = 'user_work_type'
<if test="factoryId != null">
and b.factory_id = #{factoryId}
</if>
</where>
</select>
</mapper>