添加材料使用部位,大屏

This commit is contained in:
lcj
2025-08-22 09:11:33 +08:00
parent 86945b9122
commit cf5d71d528
32 changed files with 356 additions and 688 deletions

View File

@ -265,6 +265,8 @@ springdoc:
packages-to-scan: org.dromara.ctr packages-to-scan: org.dromara.ctr
- group: 21.招标模块 - group: 21.招标模块
packages-to-scan: org.dromara.tender packages-to-scan: org.dromara.tender
- group: 22.大屏模块
packages-to-scan: org.dromara.bigscreen
# knife4j的增强配置不需要增强可以不配 # knife4j的增强配置不需要增强可以不配
knife4j: knife4j:
enable: true enable: true

View File

@ -1,10 +1,19 @@
package org.dromara.bigscreen.controller; package org.dromara.bigscreen.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.annotation.Resource;
import org.dromara.bigscreen.service.MoneyBigScreenService;
import org.dromara.common.core.domain.R;
import org.dromara.project.domain.vo.project.BusProjectGisVo;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 资金大屏
*
* @author lilemy * @author lilemy
* @date 2025-08-21 14:28 * @date 2025-08-21 14:28
*/ */
@ -12,4 +21,16 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/money/big/screen") @RequestMapping("/money/big/screen")
public class MoneyBigScreenController { public class MoneyBigScreenController {
@Resource
private MoneyBigScreenService moneyBigScreenService;
/**
* 查询项目位置列表
*/
@SaCheckPermission("money:bigScreen:projectGis")
@RequestMapping("/project/gis")
public R<List<BusProjectGisVo>> getProjectGis() {
return R.ok(moneyBigScreenService.getProjectGis());
}
} }

View File

@ -1,12 +1,24 @@
package org.dromara.bigscreen.controller; package org.dromara.bigscreen.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
import org.dromara.bigscreen.service.ProjectBigScreenService; import org.dromara.bigscreen.service.ProjectBigScreenService;
import org.dromara.common.core.domain.R;
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
import org.dromara.project.domain.vo.project.BusProjectWeatherVo;
import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 项目级大屏
*
* @author lilemy * @author lilemy
* @date 2025-08-21 14:27 * @date 2025-08-21 14:27
*/ */
@ -24,4 +36,34 @@ public class ProjectBigScreenController {
// @PathVariable Long id) { // @PathVariable Long id) {
// return R.ok(busBiddingPlanAnnexService.queryById(id)); // return R.ok(busBiddingPlanAnnexService.queryById(id));
// } // }
/**
* 查询项目天气
*/
@SaCheckPermission("project:bigScreen:weather")
@GetMapping("/weather/{projectId}")
public R<List<BusProjectWeatherVo>> getProjectWeather(@NotNull(message = "主键不能为空")
@PathVariable Long projectId) {
return R.ok(projectBigScreenService.getProjectWeather(projectId));
}
/**
* 查询项目安全天数
*/
@SaCheckPermission("project:bigScreen:safetyDay")
@GetMapping("/safetyDay/{projectId}")
public R<BusProjectSafetyDayVo> getProjectSafetyDay(@NotNull(message = "主键不能为空")
@PathVariable Long projectId) {
return R.ok(projectBigScreenService.getProjectSafetyDay(projectId));
}
/**
* 查询项目公告
*/
@SaCheckPermission("project:bigScreen:news")
@GetMapping("/news/{projectId}")
public R<List<BusProjectNewsVo>> getProjectNews(@NotNull(message = "主键不能为空")
@PathVariable Long projectId) {
return R.ok(projectBigScreenService.getProjectNews(projectId));
}
} }

View File

@ -1,8 +1,20 @@
package org.dromara.bigscreen.service; package org.dromara.bigscreen.service;
import org.dromara.project.domain.vo.project.BusProjectGisVo;
import java.util.List;
/** /**
* @author lilemy * @author lilemy
* @date 2025-08-21 14:29 * @date 2025-08-21 14:29
*/ */
public interface MoneyBigScreenService { public interface MoneyBigScreenService {
/**
* 获取项目位置信息
*
* @return 项目位置信息
*/
List<BusProjectGisVo> getProjectGis();
} }

View File

@ -1,8 +1,38 @@
package org.dromara.bigscreen.service; package org.dromara.bigscreen.service;
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
import org.dromara.project.domain.vo.project.BusProjectWeatherVo;
import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo;
import java.util.List;
/** /**
* @author lilemy * @author lilemy
* @date 2025-08-21 14:28 * @date 2025-08-21 14:28
*/ */
public interface ProjectBigScreenService { public interface ProjectBigScreenService {
/**
* 获取项目天气
*
* @param projectId 项目id
* @return 项目天气
*/
List<BusProjectWeatherVo> getProjectWeather(Long projectId);
/**
* 获取项目安全天数
*
* @param projectId 项目id
* @return 项目安全天数
*/
BusProjectSafetyDayVo getProjectSafetyDay(Long projectId);
/**
* 获取项目新闻
*
* @param projectId 项目id
* @return 项目新闻
*/
List<BusProjectNewsVo> getProjectNews(Long projectId);
} }

View File

@ -1,12 +1,30 @@
package org.dromara.bigscreen.service.impl; package org.dromara.bigscreen.service.impl;
import jakarta.annotation.Resource;
import org.dromara.bigscreen.service.MoneyBigScreenService; import org.dromara.bigscreen.service.MoneyBigScreenService;
import org.dromara.project.domain.vo.project.BusProjectGisVo;
import org.dromara.project.service.IBusProjectService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author lilemy * @author lilemy
* @date 2025-08-21 14:29 * @date 2025-08-21 14:29
*/ */
@Service @Service
public class MoneyBigScreenServiceImpl implements MoneyBigScreenService { public class MoneyBigScreenServiceImpl implements MoneyBigScreenService {
@Resource
private IBusProjectService projectService;
/**
* 获取项目位置信息
*
* @return 项目位置信息
*/
@Override
public List<BusProjectGisVo> getProjectGis() {
return projectService.getGisList();
}
} }

View File

@ -1,12 +1,77 @@
package org.dromara.bigscreen.service.impl; package org.dromara.bigscreen.service.impl;
import jakarta.annotation.Resource;
import org.dromara.bigscreen.service.ProjectBigScreenService; import org.dromara.bigscreen.service.ProjectBigScreenService;
import org.dromara.common.core.constant.HttpStatus;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.project.domain.BusProject;
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
import org.dromara.project.domain.vo.project.BusProjectWeatherVo;
import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo;
import org.dromara.project.service.IBusProjectNewsService;
import org.dromara.project.service.IBusProjectService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author lilemy * @author lilemy
* @date 2025-08-21 14:29 * @date 2025-08-21 14:29
*/ */
@Service @Service
public class ProjectBigScreenServiceImpl implements ProjectBigScreenService { public class ProjectBigScreenServiceImpl implements ProjectBigScreenService {
@Resource
private IBusProjectService projectService;
@Resource
private IBusProjectNewsService projectNewsService;
/**
* 获取项目天气
*
* @param projectId 项目id
* @return 项目天气
*/
@Override
public List<BusProjectWeatherVo> getProjectWeather(Long projectId) {
checkProject(projectId);
return projectService.getWeather(projectId);
}
/**
* 获取项目安全天数
*
* @param projectId 项目id
* @return 项目安全天数
*/
@Override
public BusProjectSafetyDayVo getProjectSafetyDay(Long projectId) {
checkProject(projectId);
return projectService.getSafetyDay(projectId);
}
/**
* 获取项目新闻
*
* @param projectId 项目id
* @return 项目新闻
*/
@Override
public List<BusProjectNewsVo> getProjectNews(Long projectId) {
checkProject(projectId);
return projectNewsService.queryListByProject(projectId);
}
/**
* 检查项目是否存在
*
* @param projectId 项目id
*/
private void checkProject(Long projectId) {
BusProject project = projectService.getById(projectId);
if (project == null) {
throw new ServiceException("项目不存在", HttpStatus.NOT_FOUND);
}
}
} }

View File

@ -1,40 +0,0 @@
package org.dromara.cory.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.dynamic.datasource.annotation.DS;
import lombok.RequiredArgsConstructor;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.cory.domain.bo.BusContactnoticeBo;
import org.dromara.cory.domain.bo.SysProjectListReq;
import org.dromara.cory.domain.vo.BusContactnoticeVo;
import org.dromara.cory.domain.vo.SysProjectVo;
import org.dromara.cory.service.IOtherDateSourceService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:21
* @Version 1.0
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cory/otherDateSource")
@DS("slave")
public class OtherDateSource {
private final IOtherDateSourceService otherDateSourceService;
/**
* 获取项目列表
*/
@GetMapping("/list")
public TableDataInfo<SysProjectVo> list(SysProjectListReq bo, PageQuery pageQuery) {
return otherDateSourceService.list(bo, pageQuery);
}
}

View File

@ -1,115 +0,0 @@
package org.dromara.cory.domain;
import com.baomidou.mybatisplus.annotation.*;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.*;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import java.io.Serializable;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:27
* @Version 1.0
*/
@Data
@TableName("sys_project") // 替换为实际表名
public class SysProject implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
@Length(max = 64, message = "项目名称长度不能超过64个字符")
private String projectName;
@Length(max = 64, message = "项目简称长度不能超过64个字符")
private String shortName;
private Long pId;
@Pattern(regexp = "[01]", message = "状态值必须为0或1")
private String status;
@Length(max = 255, message = "项目图片URL长度不能超过255个字符")
private String picUrl;
@Length(max = 20, message = "经度长度不能超过20个字符")
private String lng;
@Length(max = 20, message = "纬度长度不能超过20个字符")
private String lat;
@Length(max = 500, message = "备注长度不能超过500个字符")
private String remark;
@Length(max = 20, message = "项目类型长度不能超过20个字符")
private String type;
@Pattern(regexp = "[12]", message = "项目类型值必须为1或2")
private String isType;
@Length(max = 20, message = "展示颜色长度不能超过20个字符")
private String colourRgb;
@Length(max = 64, message = "创建者长度不能超过64个字符")
private String createBy;
@Length(max = 64, message = "更新者长度不能超过64个字符")
private String updateBy;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
private Date deletedAt;
@Deprecated
@Length(max = 255, message = "项目ID长度不能超过255个字符")
private String projectId;
@Length(max = 8192, message = "视角参数长度不能超过8192个字符")
private String view;
@Length(max = 255, message = "项目地址长度不能超过255个字符")
private String projectSite;
@Length(max = 50, message = "负责人长度不能超过50个字符")
private String principal;
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "负责人电话格式不正确")
private String principalPhone;
@Length(max = 64, message = "小程序薪资负责人长度不能超过64个字符")
private String principalXz;
@Length(max = 64, message = "实际容量长度不能超过64个字符")
private String actual;
@Length(max = 64, message = "计划容量长度不能超过64个字符")
private String plan;
@Length(max = 64, message = "开工时间长度不能超过64个字符")
private String onStreamTime;
@Pattern(regexp = "^\\d{2}:\\d{2},\\d{2}:\\d{2}$", message = "打卡范围格式不正确应为HH:MM,HH:MM")
private String punchRange;
@Min(value = 0, message = "设计总量不能小于0")
private Integer designTotal;
@Length(max = 255, message = "安全协议书长度不能超过255个字符")
private String securityAgreement;
@Min(value = 0, message = "排序字段不能小于0")
private Long sort;
@Pattern(regexp = "[12]", message = "显示隐藏值必须为1或2")
private String showHidden;
}

View File

@ -1,62 +0,0 @@
package org.dromara.cory.domain;
import com.baomidou.mybatisplus.annotation.*;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:27
* @Version 1.0
*/
@Data
@TableName("sys_project_team_squad")
public class SysProjectTeamSquad implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
@NotNull(message = "班组ID不能为空")
private Long teamId;
private Date meetingDate;
@Length(max = 255, message = "宣讲人ID长度不能超过255个字符")
private String compereId;
private String participantId;
@Length(max = 65535, message = "班会内容长度不能超过65535个字符")
private String content;
@Length(max = 65535, message = "班会图片长度不能超过65535个字符")
private String picture;
@Length(max = 50, message = "创建人长度不能超过50个字符")
private String createBy;
@Length(max = 50, message = "更新人长度不能超过50个字符")
private String updateBy;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
private Date deletedAt;
@Length(max = 255, message = "班组名称长度不能超过255个字符")
private String teamName;
@Length(max = 255, message = "劳务公司名称长度不能超过255个字符")
private String labourserviceName;
private Long projectId;
}

View File

@ -1,27 +0,0 @@
package org.dromara.cory.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.cory.domain.BusContactnotice;
import org.dromara.cory.domain.SysProject;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:42
* @Version 1.0
*/
@Data
public class SysProjectListReq implements Serializable {
@Length(max = 64, message = "项目名称长度不能超过64个字符")
private String projectName;
@Length(max = 64, message = "项目简称长度不能超过64个字符")
private String shortName;
}

View File

@ -1,121 +0,0 @@
package org.dromara.cory.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.dromara.cory.domain.SysProject;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:35
* @Version 1.0
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysProject.class)
public class SysProjectTeamSquadVo implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
@Length(max = 64, message = "项目名称长度不能超过64个字符")
private String projectName;
@Length(max = 64, message = "项目简称长度不能超过64个字符")
private String shortName;
private Long pId;
@Pattern(regexp = "[01]", message = "状态值必须为0或1")
private String status;
@Length(max = 255, message = "项目图片URL长度不能超过255个字符")
private String picUrl;
@Length(max = 20, message = "经度长度不能超过20个字符")
private String lng;
@Length(max = 20, message = "纬度长度不能超过20个字符")
private String lat;
@Length(max = 500, message = "备注长度不能超过500个字符")
private String remark;
@Length(max = 20, message = "项目类型长度不能超过20个字符")
private String type;
@Pattern(regexp = "[12]", message = "项目类型值必须为1或2")
private String isType;
@Length(max = 20, message = "展示颜色长度不能超过20个字符")
private String colourRgb;
@Length(max = 64, message = "创建者长度不能超过64个字符")
private String createBy;
@Length(max = 64, message = "更新者长度不能超过64个字符")
private String updateBy;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
private Date deletedAt;
@Deprecated
@Length(max = 255, message = "项目ID长度不能超过255个字符")
private String projectId;
@Length(max = 8192, message = "视角参数长度不能超过8192个字符")
private String view;
@Length(max = 255, message = "项目地址长度不能超过255个字符")
private String projectSite;
@Length(max = 50, message = "负责人长度不能超过50个字符")
private String principal;
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "负责人电话格式不正确")
private String principalPhone;
@Length(max = 64, message = "小程序薪资负责人长度不能超过64个字符")
private String principalXz;
@Length(max = 64, message = "实际容量长度不能超过64个字符")
private String actual;
@Length(max = 64, message = "计划容量长度不能超过64个字符")
private String plan;
@Length(max = 64, message = "开工时间长度不能超过64个字符")
private String onStreamTime;
@Pattern(regexp = "^\\d{2}:\\d{2},\\d{2}:\\d{2}$", message = "打卡范围格式不正确应为HH:MM,HH:MM")
private String punchRange;
@Min(value = 0, message = "设计总量不能小于0")
private Integer designTotal;
@Length(max = 255, message = "安全协议书长度不能超过255个字符")
private String securityAgreement;
@Min(value = 0, message = "排序字段不能小于0")
private Long sort;
@Pattern(regexp = "[12]", message = "显示隐藏值必须为1或2")
private String showHidden;
}

View File

@ -1,122 +0,0 @@
package org.dromara.cory.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.dromara.cory.domain.BusContactnotice;
import org.dromara.cory.domain.SysProject;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:35
* @Version 1.0
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysProject.class)
public class SysProjectVo implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
@Length(max = 64, message = "项目名称长度不能超过64个字符")
private String projectName;
@Length(max = 64, message = "项目简称长度不能超过64个字符")
private String shortName;
private Long pId;
@Pattern(regexp = "[01]", message = "状态值必须为0或1")
private String status;
@Length(max = 255, message = "项目图片URL长度不能超过255个字符")
private String picUrl;
@Length(max = 20, message = "经度长度不能超过20个字符")
private String lng;
@Length(max = 20, message = "纬度长度不能超过20个字符")
private String lat;
@Length(max = 500, message = "备注长度不能超过500个字符")
private String remark;
@Length(max = 20, message = "项目类型长度不能超过20个字符")
private String type;
@Pattern(regexp = "[12]", message = "项目类型值必须为1或2")
private String isType;
@Length(max = 20, message = "展示颜色长度不能超过20个字符")
private String colourRgb;
@Length(max = 64, message = "创建者长度不能超过64个字符")
private String createBy;
@Length(max = 64, message = "更新者长度不能超过64个字符")
private String updateBy;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
private Date deletedAt;
@Deprecated
@Length(max = 255, message = "项目ID长度不能超过255个字符")
private String projectId;
@Length(max = 8192, message = "视角参数长度不能超过8192个字符")
private String view;
@Length(max = 255, message = "项目地址长度不能超过255个字符")
private String projectSite;
@Length(max = 50, message = "负责人长度不能超过50个字符")
private String principal;
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "负责人电话格式不正确")
private String principalPhone;
@Length(max = 64, message = "小程序薪资负责人长度不能超过64个字符")
private String principalXz;
@Length(max = 64, message = "实际容量长度不能超过64个字符")
private String actual;
@Length(max = 64, message = "计划容量长度不能超过64个字符")
private String plan;
@Length(max = 64, message = "开工时间长度不能超过64个字符")
private String onStreamTime;
@Pattern(regexp = "^\\d{2}:\\d{2},\\d{2}:\\d{2}$", message = "打卡范围格式不正确应为HH:MM,HH:MM")
private String punchRange;
@Min(value = 0, message = "设计总量不能小于0")
private Integer designTotal;
@Length(max = 255, message = "安全协议书长度不能超过255个字符")
private String securityAgreement;
@Min(value = 0, message = "排序字段不能小于0")
private Long sort;
@Pattern(regexp = "[12]", message = "显示隐藏值必须为1或2")
private String showHidden;
}

View File

@ -1,16 +0,0 @@
package org.dromara.cory.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.cory.domain.BusContactnotice;
import org.dromara.cory.domain.SysProject;
import org.dromara.cory.domain.vo.BusContactnoticeVo;
import org.dromara.cory.domain.vo.SysProjectVo;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:25
* @Version 1.0
*/
public interface OtherDateSourceMapper extends BaseMapperPlus<SysProject, SysProjectVo> {
}

View File

@ -1,15 +0,0 @@
package org.dromara.cory.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.cory.domain.SysProject;
import org.dromara.cory.domain.SysProjectTeamSquad;
import org.dromara.cory.domain.vo.SysProjectVo;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:25
* @Version 1.0
*/
public interface ShiftMeetingMapper extends BaseMapperPlus<SysProjectTeamSquad, SysProjectVo> {
}

View File

@ -1,18 +0,0 @@
package org.dromara.cory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.cory.domain.SysProject;
import org.dromara.cory.domain.bo.SysProjectListReq;
import org.dromara.cory.domain.vo.SysProjectVo;
import java.util.List;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:26
* @Version 1.0
*/public interface IOtherDateSourceService extends IService<SysProject> {
TableDataInfo<SysProjectVo> list(SysProjectListReq bo, PageQuery pageQuery);
}

View File

@ -1,11 +0,0 @@
package org.dromara.cory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.cory.domain.SysProjectTeamSquad;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:26
* @Version 1.0
*/public interface IShiftMeetingService extends IService<SysProjectTeamSquad> {
}

View File

@ -1,42 +0,0 @@
package org.dromara.cory.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.cory.domain.BusContactnotice;
import org.dromara.cory.domain.SysProject;
import org.dromara.cory.domain.bo.SysProjectListReq;
import org.dromara.cory.domain.vo.BusContactnoticeVo;
import org.dromara.cory.domain.vo.SysProjectVo;
import org.dromara.cory.mapper.OtherDateSourceMapper;
import org.dromara.cory.service.IBusContactnoticeService;
import org.dromara.cory.service.IOtherDateSourceService;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Service;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:25
* @Version 1.0
*/
@Slf4j
@RequiredArgsConstructor
@Service
@DS("slave")
public class OtherDateSourceServiceImpl extends ServiceImpl<OtherDateSourceMapper, SysProject> implements IOtherDateSourceService {
@Override
public TableDataInfo<SysProjectVo> list(SysProjectListReq req, PageQuery pageQuery) {
LambdaQueryWrapper<SysProject> lqw = new LambdaQueryWrapper<>();
lqw.like(SysProject::getProjectName,req.getProjectName());
lqw.like(SysProject::getShortName,req.getShortName());
IPage<SysProjectVo> sysProjectVoIPage = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(sysProjectVoIPage);
}
}

View File

@ -1,35 +0,0 @@
package org.dromara.cory.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.cory.domain.SysProject;
import org.dromara.cory.domain.SysProjectTeamSquad;
import org.dromara.cory.domain.bo.SysProjectListReq;
import org.dromara.cory.domain.vo.SysProjectVo;
import org.dromara.cory.mapper.OtherDateSourceMapper;
import org.dromara.cory.mapper.ShiftMeetingMapper;
import org.dromara.cory.service.IOtherDateSourceService;
import org.dromara.cory.service.IShiftMeetingService;
import org.springframework.stereotype.Service;
import java.util.Collection;
/**
* @Author 铁憨憨
* @Date 2025/7/29 9:25
* @Version 1.0
*/
@Slf4j
@RequiredArgsConstructor
@Service
@DS("slave")
public class ShiftMeetingServiceImpl extends ServiceImpl<ShiftMeetingMapper, SysProjectTeamSquad> implements IShiftMeetingService {
}

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esotericsoftware.kryo.serializers.DefaultSerializers;
import io.micrometer.common.util.StringUtils; import io.micrometer.common.util.StringUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -19,10 +18,8 @@ import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.design.domain.DesDrawing;
import org.dromara.design.domain.DesVolumeCatalog; import org.dromara.design.domain.DesVolumeCatalog;
import org.dromara.design.domain.DesVolumeFile; import org.dromara.design.domain.DesVolumeFile;
import org.dromara.design.domain.DesVolumeFileViewer;
import org.dromara.design.domain.bo.DesVolumeFileBo; import org.dromara.design.domain.bo.DesVolumeFileBo;
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq; import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo; import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo;
@ -32,7 +29,6 @@ import org.dromara.design.mapper.DesVolumeFileMapper;
import org.dromara.design.service.IDesDrawingService; import org.dromara.design.service.IDesDrawingService;
import org.dromara.design.service.IDesVolumeCatalogService; import org.dromara.design.service.IDesVolumeCatalogService;
import org.dromara.design.service.IDesVolumeFileService; import org.dromara.design.service.IDesVolumeFileService;
import org.dromara.design.service.IDesVolumeFileViewerService;
import org.dromara.project.domain.BusProject; import org.dromara.project.domain.BusProject;
import org.dromara.project.service.IBusProjectService; import org.dromara.project.service.IBusProjectService;
import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.domain.vo.SysOssVo;
@ -65,11 +61,12 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
private IDesVolumeCatalogService volumeCatalogService; private IDesVolumeCatalogService volumeCatalogService;
@Resource @Resource
private IBusProjectService projectService; private IBusProjectService projectService;
@Lazy @Lazy
@Resource @Resource
private IDesDrawingService self; private IDesDrawingService self;
/** /**
* 分页查询卷册文件列表 * 分页查询卷册文件列表
* *
@ -116,7 +113,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
DesVolumeFile desVolumeFile = getById(id); DesVolumeFile desVolumeFile = getById(id);
DesVolumeCatalog desVolumeCatalog = volumeCatalogService.getById(desVolumeFile.getVolumeCatalogId()); DesVolumeCatalog desVolumeCatalog = volumeCatalogService.getById(desVolumeFile.getVolumeCatalogId());
DesVolumeFileCodeVo desVolumeFileCodeVo = BeanUtil.copyProperties(desVolumeCatalog, DesVolumeFileCodeVo.class); DesVolumeFileCodeVo desVolumeFileCodeVo = BeanUtil.copyProperties(desVolumeCatalog, DesVolumeFileCodeVo.class);
BusProject byId = projectService.getById(desVolumeCatalog.getProjectId()); BusProject byId = projectService.getById(desVolumeCatalog.getProjectId());
desVolumeFileCodeVo.setProjectName(byId.getProjectName()); desVolumeFileCodeVo.setProjectName(byId.getProjectName());
@ -130,17 +127,17 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
DesVolumeFile first = existingFiles.getFirst(); DesVolumeFile first = existingFiles.getFirst();
if("4".equals(desVolumeFile.getType())){ if ("4".equals(desVolumeFile.getType())) {
SysOssVo ossVo = ossService.getById(first.getFileId()); SysOssVo ossVo = ossService.getById(first.getFileId());
desVolumeFileCodeVo.setFileUrl(ossVo.getUrl()); desVolumeFileCodeVo.setFileUrl(ossVo.getUrl());
} }
if("1".equals(desVolumeFile.getType()) ){ if ("1".equals(desVolumeFile.getType())) {
if(!first.getId().equals(id)){ if (!first.getId().equals(id)) {
desVolumeFileCodeVo.setIsLatest(false); desVolumeFileCodeVo.setIsLatest(false);
SysOssVo ossVo = ossService.getById(first.getFileId()); SysOssVo ossVo = ossService.getById(first.getFileId());
desVolumeFileCodeVo.setFileUrl(ossVo.getUrl()); desVolumeFileCodeVo.setFileUrl(ossVo.getUrl());
}else{ } else {
desVolumeFileCodeVo.setIsLatest(true); desVolumeFileCodeVo.setIsLatest(true);
} }
@ -206,7 +203,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
return true; return true;
} }
private void validUpload(DesVolumeFileCreateReq req){ private void validUpload(DesVolumeFileCreateReq req) {
// 蓝图文件 // 蓝图文件
if (CollectionUtil.isNotEmpty(req.getFileIds())) { if (CollectionUtil.isNotEmpty(req.getFileIds())) {
List<DesVolumeFile> existingFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>() List<DesVolumeFile> existingFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>()
@ -225,7 +222,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
.orderByDesc(DesVolumeFile::getVersion)); .orderByDesc(DesVolumeFile::getVersion));
if (!existingFiles.isEmpty()) { if (!existingFiles.isEmpty()) {
DesVolumeFile first = existingFiles.getFirst(); DesVolumeFile first = existingFiles.getFirst();
if(!BusinessStatusEnum.FINISH.getStatus().equals(first.getAuditStatus())){ if (!BusinessStatusEnum.FINISH.getStatus().equals(first.getAuditStatus())) {
throw new ServiceException("文件尚未审核完成,请勿重复上传"); throw new ServiceException("文件尚未审核完成,请勿重复上传");
} }
} }
@ -237,10 +234,10 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
/** /**
* 处理文件上传 * 处理文件上传
* *
* @param req 请求参数 * @param req 请求参数
* @param fileIds 文件ID列表 * @param fileIds 文件ID列表
* @param type 文件类型 * @param type 文件类型
* @param desVolumeFiles 文件集合 * @param desVolumeFiles 文件集合
*/ */
private void processFiles(DesVolumeFileCreateReq req, List<Long> fileIds, String type, List<DesVolumeFile> desVolumeFiles) { private void processFiles(DesVolumeFileCreateReq req, List<Long> fileIds, String type, List<DesVolumeFile> desVolumeFiles) {
// 用于记录同一批次中已处理的文件名及对应的版本号 // 用于记录同一批次中已处理的文件名及对应的版本号
@ -350,9 +347,6 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
} }
/** /**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1' * 正常使用只需#processEvent.flowCode=='leave1'
@ -371,7 +365,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
} }
desVolumeFile.setAuditStatus(processEvent.getStatus()); desVolumeFile.setAuditStatus(processEvent.getStatus());
//如果完成,以前的图纸类型变为作废图纸,状态改为作废 暂定 //如果完成,以前的图纸类型变为作废图纸,状态改为作废 暂定
if (processEvent.getStatus().equals("finish")){ if (processEvent.getStatus().equals("finish")) {
// this.lambdaUpdate().set(DesVolumeFile::getStatus, "2") // this.lambdaUpdate().set(DesVolumeFile::getStatus, "2")
// .set(DesVolumeFile::getType, "4") // .set(DesVolumeFile::getType, "4")
// .eq(DesVolumeFile::getVolumeCatalogId, desVolumeFile.getVolumeCatalogId()) // .eq(DesVolumeFile::getVolumeCatalogId, desVolumeFile.getVolumeCatalogId())
@ -379,7 +373,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
// .ne(DesVolumeFile::getId, desVolumeFile.getId()) // .ne(DesVolumeFile::getId, desVolumeFile.getId())
// .update(); // .update();
//异步处理二维码 //异步处理二维码
self.addQRCodeToPDF(desVolumeFile.getId(),false) self.addQRCodeToPDF(desVolumeFile.getId(), false)
.thenAccept(result -> log.info("图纸[{}-{} ]添加二维码成功", desVolumeFile.getFileName(), desVolumeFile.getId())) .thenAccept(result -> log.info("图纸[{}-{} ]添加二维码成功", desVolumeFile.getFileName(), desVolumeFile.getId()))
.exceptionally(ex -> { .exceptionally(ex -> {
log.error("图纸[{}-{}]添加二维码失败", desVolumeFile.getFileName(), desVolumeFile.getId(), ex); log.error("图纸[{}-{}]添加二维码失败", desVolumeFile.getFileName(), desVolumeFile.getId(), ex);
@ -417,7 +411,6 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
} }
/** /**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1' * 正常使用只需#processEvent.flowCode=='leave1'
@ -435,9 +428,9 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
return; return;
} }
desVolumeFile.setAuditStatus(processEvent.getStatus()); desVolumeFile.setAuditStatus(processEvent.getStatus());
if (processEvent.getStatus().equals("finish")){ if (processEvent.getStatus().equals("finish")) {
//异步处理二维码 //异步处理二维码
self.addQRCodeToPDF(desVolumeFile.getId(),false) self.addQRCodeToPDF(desVolumeFile.getId(), false)
.thenAccept(result -> log.info("图纸[{}-{} ]添加二维码成功", desVolumeFile.getFileName(), desVolumeFile.getId())) .thenAccept(result -> log.info("图纸[{}-{} ]添加二维码成功", desVolumeFile.getFileName(), desVolumeFile.getId()))
.exceptionally(ex -> { .exceptionally(ex -> {
log.error("图纸[{}-{}]添加二维码失败", desVolumeFile.getFileName(), desVolumeFile.getId(), ex); log.error("图纸[{}-{}]添加二维码失败", desVolumeFile.getFileName(), desVolumeFile.getId(), ex);
@ -475,10 +468,4 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
} }
} }

View File

@ -74,6 +74,11 @@ public class MatMaterialsInventory extends BaseEntity {
*/ */
private String disposition; private String disposition;
/**
* 使用部位
*/
private String usePart;
/** /**
* 交接单位(班组) * 交接单位(班组)
*/ */

View File

@ -61,6 +61,11 @@ public class MatMaterialsInventoryCreateReq implements Serializable {
*/ */
private String recipient; private String recipient;
/**
* 使用部位
*/
private String usePart;
/** /**
* 领用人 * 领用人
*/ */

View File

@ -16,11 +16,6 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 5563677643070664671L; private static final long serialVersionUID = 5563677643070664671L;
/**
* 主键id
*/
private Long id;
/** /**
* 材料id * 材料id
*/ */
@ -46,16 +41,6 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
*/ */
private Long number; private Long number;
/**
* 出/入库操作时间
*/
private Date outPutTime;
/**
* 剩余库存数量(记录最后一次操作留下的库存数)
*/
private Long residue;
/** /**
* 操作人(入库人、领料人) * 操作人(入库人、领料人)
*/ */
@ -77,8 +62,8 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
private String shipper; private String shipper;
/** /**
* 备注 * 使用部位
*/ */
private String remark; private String usePart;
} }

View File

@ -46,6 +46,11 @@ public class MatMaterialsInventoryUpdateReq implements Serializable {
*/ */
private String path; private String path;
/**
* 使用部位
*/
private String usePart;
/** /**
* 处理方式 * 处理方式
*/ */

View File

@ -102,6 +102,12 @@ public class MatMaterialsInventoryVo implements Serializable {
@ExcelProperty(value = "交接单位") @ExcelProperty(value = "交接单位")
private String recipient; private String recipient;
/**
* 使用部位
*/
@ExcelProperty(value = "使用部位")
private String usePart;
/** /**
* 领用人 * 领用人
*/ */

View File

@ -10,7 +10,6 @@ import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.cailiaoshebei.domain.BusMaterialbatchdemandplan;
import org.dromara.cailiaoshebei.service.IBusPurchaseDocService; import org.dromara.cailiaoshebei.service.IBusPurchaseDocService;
import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.constant.HttpStatus;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
@ -257,8 +256,8 @@ public class MatMaterialReceiveServiceImpl extends ServiceImpl<MatMaterialReceiv
materialReceiveItem.setReceiveId(materialReceive.getId()); materialReceiveItem.setReceiveId(materialReceive.getId());
materialReceiveItem.setProjectId(materialReceive.getProjectId()); materialReceiveItem.setProjectId(materialReceive.getProjectId());
//生成缺货采购单 //生成缺货采购单
if(item.getShortageQuantity().compareTo(BigDecimal.ZERO) > 0){ if (item.getShortageQuantity().compareTo(BigDecimal.ZERO) > 0) {
map.put(item.getPlanId(),item.getShortageQuantity()); map.put(item.getPlanId(), item.getShortageQuantity());
} }
materialReceiveItemList.add(materialReceiveItem); materialReceiveItemList.add(materialReceiveItem);
} }
@ -275,8 +274,6 @@ public class MatMaterialReceiveServiceImpl extends ServiceImpl<MatMaterialReceiv
} }
/** /**
* 修改物料接收单 * 修改物料接收单
* *
@ -491,7 +488,7 @@ public class MatMaterialReceiveServiceImpl extends ServiceImpl<MatMaterialReceiv
} }
if (StringUtils.isNotBlank(certCountFileId)) { if (StringUtils.isNotBlank(certCountFileId)) {
int size = Arrays.stream(certCountFileId.split(",")).map(Long::parseLong).toList().size(); int size = Arrays.stream(certCountFileId.split(",")).map(Long::parseLong).toList().size();
materialReceive.setLicenseCount(size); materialReceive.setCertCount(size);
} }
} }

View File

@ -15,10 +15,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.materials.domain.MatMaterials; import org.dromara.materials.domain.MatMaterials;
import org.dromara.materials.domain.MatMaterialsInventory; import org.dromara.materials.domain.MatMaterialsInventory;
import org.dromara.materials.domain.enums.MatMaterialsInventoryOutPutEnum;
import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryCreateReq; import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryCreateReq;
import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryQueryReq; import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryQueryReq;
import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryUpdateReq; import org.dromara.materials.domain.dto.materialsinventory.MatMaterialsInventoryUpdateReq;
import org.dromara.materials.domain.enums.MatMaterialsInventoryOutPutEnum;
import org.dromara.materials.domain.vo.materialsinventory.MatMaterialsInventoryVo; import org.dromara.materials.domain.vo.materialsinventory.MatMaterialsInventoryVo;
import org.dromara.materials.mapper.MatMaterialsInventoryMapper; import org.dromara.materials.mapper.MatMaterialsInventoryMapper;
import org.dromara.materials.service.IMatMaterialsInventoryService; import org.dromara.materials.service.IMatMaterialsInventoryService;
@ -124,6 +124,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
materialsInventory.setResidue(req.getNumber()); materialsInventory.setResidue(req.getNumber());
} }
} }
// 填充默认值
materialsInventory.setOutPutTime(new Date());
// 操作数据库 // 操作数据库
boolean save = this.save(materialsInventory); boolean save = this.save(materialsInventory);
if (!save) { if (!save) {
@ -150,6 +152,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
if (oldBusMaterialsInventory == null) { if (oldBusMaterialsInventory == null) {
throw new ServiceException("修改材料出/入库失败,数据不存在", HttpStatus.NOT_FOUND); throw new ServiceException("修改材料出/入库失败,数据不存在", HttpStatus.NOT_FOUND);
} }
// 填充默认值
materialsInventory.setOutPutTime(new Date());
// 操作数据库 // 操作数据库
return this.updateById(materialsInventory); return this.updateById(materialsInventory);
} }
@ -246,19 +250,16 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
return lqw; return lqw;
} }
// 从对象中取值 // 从对象中取值
Long id = req.getId();
Long materialsId = req.getMaterialsId(); Long materialsId = req.getMaterialsId();
String materialsName = req.getMaterialsName(); String materialsName = req.getMaterialsName();
Long projectId = req.getProjectId(); Long projectId = req.getProjectId();
String outPut = req.getOutPut(); String outPut = req.getOutPut();
Long number = req.getNumber(); Long number = req.getNumber();
Date outPutTime = req.getOutPutTime();
Long residue = req.getResidue();
String operator = req.getOperator(); String operator = req.getOperator();
String disposition = req.getDisposition(); String disposition = req.getDisposition();
String recipient = req.getRecipient(); String recipient = req.getRecipient();
String shipper = req.getShipper(); String shipper = req.getShipper();
String remark = req.getRemark(); String usePart = req.getUsePart();
// 联表查询 // 联表查询
if (StringUtils.isNotBlank(materialsName)) { if (StringUtils.isNotBlank(materialsName)) {
LambdaQueryWrapper<MatMaterials> materialsQueryWrapper = Wrappers.lambdaQuery(MatMaterials.class) LambdaQueryWrapper<MatMaterials> materialsQueryWrapper = Wrappers.lambdaQuery(MatMaterials.class)
@ -269,17 +270,14 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
} }
// 模糊查询 // 模糊查询
lqw.like(StringUtils.isNotBlank(operator), MatMaterialsInventory::getOperator, operator); lqw.like(StringUtils.isNotBlank(operator), MatMaterialsInventory::getOperator, operator);
lqw.like(StringUtils.isNotBlank(remark), MatMaterialsInventory::getRemark, remark); lqw.like(StringUtils.isNotBlank(usePart), MatMaterialsInventory::getUsePart, usePart);
lqw.like(StringUtils.isNotBlank(disposition), MatMaterialsInventory::getDisposition, disposition); lqw.like(StringUtils.isNotBlank(disposition), MatMaterialsInventory::getDisposition, disposition);
lqw.like(StringUtils.isNotBlank(recipient), MatMaterialsInventory::getRecipient, recipient); lqw.like(StringUtils.isNotBlank(recipient), MatMaterialsInventory::getRecipient, recipient);
lqw.like(StringUtils.isNotBlank(shipper), MatMaterialsInventory::getShipper, shipper); lqw.like(StringUtils.isNotBlank(shipper), MatMaterialsInventory::getShipper, shipper);
// 精确查询 // 精确查询
lqw.eq(ObjectUtils.isNotEmpty(id), MatMaterialsInventory::getId, id);
lqw.eq(ObjectUtils.isNotEmpty(projectId), MatMaterialsInventory::getProjectId, projectId); lqw.eq(ObjectUtils.isNotEmpty(projectId), MatMaterialsInventory::getProjectId, projectId);
lqw.eq(ObjectUtils.isNotEmpty(materialsId), MatMaterialsInventory::getMaterialsId, materialsId); lqw.eq(ObjectUtils.isNotEmpty(materialsId), MatMaterialsInventory::getMaterialsId, materialsId);
lqw.eq(ObjectUtils.isNotEmpty(number), MatMaterialsInventory::getNumber, number); lqw.eq(ObjectUtils.isNotEmpty(number), MatMaterialsInventory::getNumber, number);
lqw.eq(ObjectUtils.isNotEmpty(outPutTime), MatMaterialsInventory::getOutPutTime, outPutTime);
lqw.eq(ObjectUtils.isNotEmpty(residue), MatMaterialsInventory::getResidue, residue);
lqw.eq(ObjectUtils.isNotEmpty(outPut), MatMaterialsInventory::getOutPut, outPut); lqw.eq(ObjectUtils.isNotEmpty(outPut), MatMaterialsInventory::getOutPut, outPut);
// 排序 // 排序
lqw.orderByDesc(MatMaterialsInventory::getCreateTime); lqw.orderByDesc(MatMaterialsInventory::getCreateTime);
@ -315,8 +313,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
String materialsName = null; String materialsName = null;
int quantityCount = 0; int quantityCount = 0;
if (materialsIdBusMaterialsMap.containsKey(materialsId)) { if (materialsIdBusMaterialsMap.containsKey(materialsId)) {
materialsName = materialsIdBusMaterialsMap.get(materialsId).get(0).getMaterialsName(); materialsName = materialsIdBusMaterialsMap.get(materialsId).getFirst().getMaterialsName();
quantityCount = Integer.parseInt(materialsIdBusMaterialsMap.get(materialsId).get(0).getQuantityCount()); quantityCount = Integer.parseInt(materialsIdBusMaterialsMap.get(materialsId).getFirst().getQuantityCount());
} }
materialsInventoryVo.setMaterialsName(materialsName); materialsInventoryVo.setMaterialsName(materialsName);
materialsInventoryVo.setQuantityCount(quantityCount); materialsInventoryVo.setQuantityCount(quantityCount);

View File

@ -0,0 +1,47 @@
package org.dromara.project.domain.vo.project;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author lilemy
* @date 2025-08-21 19:14
*/
@Data
public class BusProjectGisVo implements Serializable {
@Serial
private static final long serialVersionUID = 7607042758858059082L;
/**
* id
*/
private Long id;
/**
* 项目名称
*/
private String projectName;
/**
* 项目简称
*/
private String shortName;
/**
* 经度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 项目地址
*/
private String projectSite;
}

View File

@ -57,6 +57,14 @@ public interface IBusProjectNewsService extends IService<BusProjectNews> {
*/ */
List<BusProjectNewsGisVo> queryGisList(BusProjectNewsGisReq req); List<BusProjectNewsGisVo> queryGisList(BusProjectNewsGisReq req);
/**
* 根据项目id查询项目新闻列表
*
* @param projectId 项目id
* @return 项目新闻列表
*/
List<BusProjectNewsVo> queryListByProject(Long projectId);
/** /**
* 新增项目新闻 * 新增项目新闻
* *
@ -106,4 +114,12 @@ public interface IBusProjectNewsService extends IService<BusProjectNews> {
*/ */
Page<BusProjectNewsVo> getVoPage(Page<BusProjectNews> projectNewsPage); Page<BusProjectNewsVo> getVoPage(Page<BusProjectNews> projectNewsPage);
/**
* 获取项目新闻存储列表视图对象
*
* @param projectNewsList 项目新闻存储列表对象
* @return 项目新闻存储列表视图对象
*/
List<BusProjectNewsVo> getVoList(List<BusProjectNews> projectNewsList);
} }

View File

@ -180,4 +180,11 @@ public interface IBusProjectService extends IService<BusProject> {
* @return 安全天数 * @return 安全天数
*/ */
BusProjectSafetyDayVo getSafetyDay(Long id); BusProjectSafetyDayVo getSafetyDay(Long id);
/**
* 获取项目地址信息
*
* @return 项目地址信息列表
*/
List<BusProjectGisVo> getGisList();
} }

View File

@ -105,6 +105,20 @@ public class BusProjectNewsServiceImpl extends ServiceImpl<BusProjectNewsMapper,
}).toList(); }).toList();
} }
/**
* 根据项目id查询项目新闻列表
*
* @param projectId 项目id
* @return 项目新闻列表
*/
@Override
public List<BusProjectNewsVo> queryListByProject(Long projectId) {
List<BusProjectNews> list = this.lambdaQuery()
.eq(BusProjectNews::getProjectId, projectId)
.list();
return this.getVoList(list);
}
/** /**
* 新增项目新闻 * 新增项目新闻
* *
@ -240,4 +254,15 @@ public class BusProjectNewsServiceImpl extends ServiceImpl<BusProjectNewsMapper,
return projectNewsVoPage; return projectNewsVoPage;
} }
/**
* 获取项目新闻存储列表视图对象
*
* @param projectNewsList 项目新闻存储列表对象
* @return 项目新闻存储列表视图对象
*/
@Override
public List<BusProjectNewsVo> getVoList(List<BusProjectNews> projectNewsList) {
return projectNewsList.stream().map(this::getVo).toList();
}
} }

View File

@ -886,6 +886,25 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
return safetyDayVo; return safetyDayVo;
} }
/**
* 获取项目地址信息
*
* @return 项目地址信息列表
*/
@Override
public List<BusProjectGisVo> getGisList() {
// 查询所有的顶级项目
List<BusProject> projects = this.lambdaQuery()
.eq(BusProject::getPId, BusProjectConstant.PARENT_ID)
.eq(BusProject::getStatus, "0")
.list();
return projects.stream().map(project -> {
BusProjectGisVo vo = new BusProjectGisVo();
BeanUtils.copyProperties(project, vo);
return vo;
}).toList();
}
/** /**
* 根据天气图标获取天气类别 * 根据天气图标获取天气类别
* *