添加材料使用部位,大屏

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
- group: 21.招标模块
packages-to-scan: org.dromara.tender
- group: 22.大屏模块
packages-to-scan: org.dromara.bigscreen
# knife4j的增强配置不需要增强可以不配
knife4j:
enable: true

View File

@ -1,10 +1,19 @@
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.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 资金大屏
*
* @author lilemy
* @date 2025-08-21 14:28
*/
@ -12,4 +21,16 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/money/big/screen")
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;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 项目级大屏
*
* @author lilemy
* @date 2025-08-21 14:27
*/
@ -24,4 +36,34 @@ public class ProjectBigScreenController {
// @PathVariable Long 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;
import org.dromara.project.domain.vo.project.BusProjectGisVo;
import java.util.List;
/**
* @author lilemy
* @date 2025-08-21 14:29
*/
public interface MoneyBigScreenService {
/**
* 获取项目位置信息
*
* @return 项目位置信息
*/
List<BusProjectGisVo> getProjectGis();
}

View File

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

View File

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

View File

@ -16,11 +16,6 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
@Serial
private static final long serialVersionUID = 5563677643070664671L;
/**
* 主键id
*/
private Long id;
/**
* 材料id
*/
@ -46,16 +41,6 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
*/
private Long number;
/**
* 出/入库操作时间
*/
private Date outPutTime;
/**
* 剩余库存数量(记录最后一次操作留下的库存数)
*/
private Long residue;
/**
* 操作人(入库人、领料人)
*/
@ -77,8 +62,8 @@ public class MatMaterialsInventoryQueryReq implements Serializable {
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 usePart;
/**
* 处理方式
*/

View File

@ -102,6 +102,12 @@ public class MatMaterialsInventoryVo implements Serializable {
@ExcelProperty(value = "交接单位")
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.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.dromara.cailiaoshebei.domain.BusMaterialbatchdemandplan;
import org.dromara.cailiaoshebei.service.IBusPurchaseDocService;
import org.dromara.common.core.constant.HttpStatus;
import org.dromara.common.core.exception.ServiceException;
@ -257,8 +256,8 @@ public class MatMaterialReceiveServiceImpl extends ServiceImpl<MatMaterialReceiv
materialReceiveItem.setReceiveId(materialReceive.getId());
materialReceiveItem.setProjectId(materialReceive.getProjectId());
//生成缺货采购单
if(item.getShortageQuantity().compareTo(BigDecimal.ZERO) > 0){
map.put(item.getPlanId(),item.getShortageQuantity());
if (item.getShortageQuantity().compareTo(BigDecimal.ZERO) > 0) {
map.put(item.getPlanId(), item.getShortageQuantity());
}
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)) {
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.materials.domain.MatMaterials;
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.MatMaterialsInventoryQueryReq;
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.mapper.MatMaterialsInventoryMapper;
import org.dromara.materials.service.IMatMaterialsInventoryService;
@ -124,6 +124,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
materialsInventory.setResidue(req.getNumber());
}
}
// 填充默认值
materialsInventory.setOutPutTime(new Date());
// 操作数据库
boolean save = this.save(materialsInventory);
if (!save) {
@ -150,6 +152,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
if (oldBusMaterialsInventory == null) {
throw new ServiceException("修改材料出/入库失败,数据不存在", HttpStatus.NOT_FOUND);
}
// 填充默认值
materialsInventory.setOutPutTime(new Date());
// 操作数据库
return this.updateById(materialsInventory);
}
@ -246,19 +250,16 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
return lqw;
}
// 从对象中取值
Long id = req.getId();
Long materialsId = req.getMaterialsId();
String materialsName = req.getMaterialsName();
Long projectId = req.getProjectId();
String outPut = req.getOutPut();
Long number = req.getNumber();
Date outPutTime = req.getOutPutTime();
Long residue = req.getResidue();
String operator = req.getOperator();
String disposition = req.getDisposition();
String recipient = req.getRecipient();
String shipper = req.getShipper();
String remark = req.getRemark();
String usePart = req.getUsePart();
// 联表查询
if (StringUtils.isNotBlank(materialsName)) {
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(remark), MatMaterialsInventory::getRemark, remark);
lqw.like(StringUtils.isNotBlank(usePart), MatMaterialsInventory::getUsePart, usePart);
lqw.like(StringUtils.isNotBlank(disposition), MatMaterialsInventory::getDisposition, disposition);
lqw.like(StringUtils.isNotBlank(recipient), MatMaterialsInventory::getRecipient, recipient);
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(materialsId), MatMaterialsInventory::getMaterialsId, materialsId);
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.orderByDesc(MatMaterialsInventory::getCreateTime);
@ -315,8 +313,8 @@ public class MatMaterialsInventoryServiceImpl extends ServiceImpl<MatMaterialsIn
String materialsName = null;
int quantityCount = 0;
if (materialsIdBusMaterialsMap.containsKey(materialsId)) {
materialsName = materialsIdBusMaterialsMap.get(materialsId).get(0).getMaterialsName();
quantityCount = Integer.parseInt(materialsIdBusMaterialsMap.get(materialsId).get(0).getQuantityCount());
materialsName = materialsIdBusMaterialsMap.get(materialsId).getFirst().getMaterialsName();
quantityCount = Integer.parseInt(materialsIdBusMaterialsMap.get(materialsId).getFirst().getQuantityCount());
}
materialsInventoryVo.setMaterialsName(materialsName);
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);
/**
* 根据项目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);
/**
* 获取项目新闻存储列表视图对象
*
* @param projectNewsList 项目新闻存储列表对象
* @return 项目新闻存储列表视图对象
*/
List<BusProjectNewsVo> getVoList(List<BusProjectNews> projectNewsList);
}

View File

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

View File

@ -105,6 +105,20 @@ public class BusProjectNewsServiceImpl extends ServiceImpl<BusProjectNewsMapper,
}).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;
}
/**
* 获取项目新闻存储列表视图对象
*
* @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 项目地址信息列表
*/
@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();
}
/**
* 根据天气图标获取天气类别
*