hhw
dongdingding 1 month ago
commit 26f6599831

@ -0,0 +1,44 @@
package com.ruoyi.docking.controller;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.docking.service.ProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* (Project)
*
* @author makejava
* @since 2025-03-25 14:47:53
*/
@Api(tags = "项目(对接数据)")
@RestController
@RequestMapping("/gysl/project")
public class ProjectController extends BaseController {
// /**
// * 服务对象
// */
// @Resource
// private ProjectService projectService;
//
// /**
// * 查询所有数据
// * @return 所有数据
// */
// @ApiOperation("查询所有数据")
// @GetMapping("/list")
// @DataSource(value = DataSourceType.SLAVE)
// public AjaxResult selectAll() {
// return success(projectService.list());
// }
}

@ -0,0 +1,122 @@
package com.ruoyi.docking.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.docking.service.ProjectProgressService;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.List;
/**
* (ProjectProgress)
*
* @author makejava
* @since 2025-03-25 14:49:04
*/
@Api(tags = "项目月度进度(对接数据)")
@RestController
@RequestMapping("/gysl/projectProgress")
public class ProjectProgressController extends BaseController {
/**
*
*/
@Resource
private ProjectProgressService projectProgressService;
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
@ApiOperation(value = "分页查询所有数据", response = ProjectProgress.class)
@GetMapping("/page")
public AjaxResult selectAll(Page<ProjectProgress> page, @Valid ZwIdPageReq zwIdPageReq) {
return success(projectProgressService.page(page, zwIdPageReq));
}
/**
*
*
* @param projectMonthInfo
* @return
*/
@ApiOperation("新增数据")
@PostMapping("/add")
public AjaxResult insert(@RequestBody ProjectProgress projectMonthInfo) {
return success(projectProgressService.save(projectMonthInfo));
}
// /**
// * 测试
// */
// @GetMapping("/test")
// @ApiOperation(value = "测试", response = ProjectProgress.class)
// public AjaxResult test() {
// return success(projectProgressService.djList());
// }
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据", response = ProjectProgress.class)
public AjaxResult selectOne(@PathVariable Serializable id) {
return success(projectProgressService.getById(id));
}
/**
*
*
* @param projectProgress
* @return
*/
@ApiOperation("修改数据")
@PutMapping("/edit")
public AjaxResult update(@RequestBody ProjectProgress projectProgress) {
return success(projectProgressService.updateById(projectProgress));
}
/**
*
*
* @param idList
* @return
*/
@ApiOperation("删除数据")
@DeleteMapping("/delete")
public AjaxResult delete(@RequestParam("idList") List<Long> idList) {
return success(projectProgressService.removeByIds(idList));
}
/**
*
*/
@ApiOperation(value = "根据条件导出月度进展详情")
@PostMapping(value = "/export")
public void export(HttpServletResponse response, ZwIdPageReq zwIdPageReq) throws Exception {
List<ProjectProgress> filteredList = projectProgressService.page(zwIdPageReq);
ExcelUtil<ProjectProgress> util = new ExcelUtil<>(ProjectProgress.class);
util.exportExcel(response, filteredList, "月度进展详情");
}
}

@ -0,0 +1,312 @@
package com.ruoyi.docking.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* (Project)
*
* @author makejava
* @since 2025-03-25 15:12:38
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project")
@ApiModel(value="项目",description = "对接数据")
public class Project {
@ApiModelProperty(value ="项目ID" )
private Integer projectId;
@ApiModelProperty(value ="项目名称" )
private String projectName;
@ApiModelProperty(value ="单位代码" )
private String companyId;
@ApiModelProperty(value ="单位名称" )
private String companyName;
@ApiModelProperty(value ="成立日期" )
private String companyTime;
@ApiModelProperty(value ="代建单位代码" )
private String agentCompanyId;
@ApiModelProperty(value ="代建单位名称" )
private String agentCompanyName;
@ApiModelProperty(value ="企业联系人姓名" )
private String contactName;
@ApiModelProperty(value ="企业联系人电话" )
private String contactPhone;
@ApiModelProperty(value ="项目申报类型" )
private String projectType;
@ApiModelProperty(value ="部门ID" )
private String organizationId;
@ApiModelProperty(value ="二级部门ID" )
private String subOrganizationId;
@ApiModelProperty(value ="招商部门ID" )
private String zsOrganizationId;
@ApiModelProperty(value ="一级项目类型" )
private String typeId;
@ApiModelProperty(value ="二级项目类型" )
private String secondTypeId;
@ApiModelProperty(value ="三级项目类型" )
private String thirdTypeId;
@ApiModelProperty(value ="实事项目一级分类" )
private String ssTypeId;
@ApiModelProperty(value ="版块区域" )
private String areaId;
@ApiModelProperty(value ="地点" )
private String address;
@ApiModelProperty(value ="纬度" )
private String lat;
@ApiModelProperty(value ="经度" )
private String lng;
@ApiModelProperty(value ="实际开工时间" )
private String actualStartTime;
@ApiModelProperty(value ="实际竣工时间" )
private String actualEndTime;
@ApiModelProperty(value ="竣工验收情况" )
private String jgysStatus;
@ApiModelProperty(value ="投产投用情况" )
private String tctyStatus;
@ApiModelProperty(value ="投产投用时间" )
private String operationTime;
@ApiModelProperty(value ="投资类别" )
private String investmentType;
@ApiModelProperty(value ="投资主体" )
private String investmentEntity;
@ApiModelProperty(value ="投资主体性质" )
private String investmentEntityType;
@ApiModelProperty(value ="形象图片" )
private String thumbnail;
@ApiModelProperty(value ="备注" )
private String remark;
@ApiModelProperty(value ="状态" )
private String status;
@ApiModelProperty(value ="审核阶段" )
private Integer reviewStep;
@ApiModelProperty(value ="0无需审核,review_step=31项目2计划/结转" )
private Integer reviewObject;
@ApiModelProperty(value ="审核结果" )
private Integer reviewResult;
@ApiModelProperty(value ="项目形象进度" )
private String progressContent;
@ApiModelProperty(value ="项目进度更新时间" )
private Integer progressUpdateAt;
@ApiModelProperty(value ="外部项目ID" )
private String extProjectId;
@ApiModelProperty(value ="省投资项目ID" )
private String stzProjectId;
@ApiModelProperty(value ="施工许可项目编码" )
private String sgxkProjectId;
@ApiModelProperty(value ="用地规划项目编码" )
private Integer ydghProjectId;
@ApiModelProperty(value ="工程规划项目编码" )
private Integer gcghProjectId;
@ApiModelProperty(value ="环评项目编码" )
private Integer hpProjectId;
@ApiModelProperty(value ="生成系统项目编码" )
private String genProjectId;
@ApiModelProperty(value ="地块编号" )
private String landId;
@ApiModelProperty(value ="云平台重点项目编码" )
private String zdxmProjectId;
@ApiModelProperty(value ="应报尽报项目编码" )
private String ybjbProjectId;
@ApiModelProperty(value ="落地时间" )
private String landingTime;
@ApiModelProperty(value ="是否落地" )
private Integer landing;
@ApiModelProperty(value ="维度ID" )
private String dimensionIds;
@ApiModelProperty(value ="指挥部ID" )
private String headquarterIds;
@ApiModelProperty(value ="竣工验收备案id" )
private Integer jgysbaId;
@ApiModelProperty(value ="能评id" )
private Integer npId;
@ApiModelProperty(value ="消防验收id" )
private Integer xfysId;
@ApiModelProperty(value ="是否为无效项目" )
private Integer isDisabled;
@ApiModelProperty(value ="是否列入统计" )
private Integer isStats;
@ApiModelProperty(value ="是否为草稿" )
private Integer isDraft;
@ApiModelProperty(value ="创建时间" )
private Integer createdAt;
@ApiModelProperty(value ="更新时间" )
private Integer updatedAt;
@ApiModelProperty(value ="创建用户" )
private String createdBy;
@ApiModelProperty(value ="删除标记" )
private Integer isDeleted;
@ApiModelProperty(value ="宗地号" )
private String landNo;
@ApiModelProperty(value ="宗地用途" )
private String landUsage;
@ApiModelProperty(value ="宗地面积" )
private String landArea;
@ApiModelProperty(value ="宗地位置" )
private String landAddress;
@ApiModelProperty(value ="宗地约定开工时间" )
private String landStartDate;
@ApiModelProperty(value ="宗地号约定竣工时间" )
private String landEndDate;
@ApiModelProperty(value ="宗地权利人名称" )
private String landObligeeName;
@ApiModelProperty(value ="宗地批准时间" )
private String landApproveTime;
@ApiModelProperty(value ="首页项目巡礼是否展示" )
private Integer homeDisplay;
@ApiModelProperty(value ="是否分期0-否1-是" )
private Integer installment;
@ApiModelProperty(value ="项目期数" )
private Integer installmentNum;
}

@ -0,0 +1,128 @@
package com.ruoyi.docking.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* (ProjectProgress)
*
* @author makejava
* @since 2025-03-25 15:06:33
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_progress")
@ApiModel(value="项目月度进度",description = "对接数据")
public class ProjectProgress {
@TableId(type = IdType.AUTO)
@ApiModelProperty(value ="项目进度ID" )
private Integer progressId;
@ApiModelProperty(value ="项目ID" )
private Integer projectId;
@ApiModelProperty(value ="月份" )
private String month;
@ApiModelProperty(value ="状态" )
private String status;
@ApiModelProperty(value ="本月完成投资" )
private Float monthDoneAmount;
@ApiModelProperty(value ="本年完成投资" )
private Float doneAmount;
@ApiModelProperty(value ="项目累计完成投资" )
private Float totalDoneAmount;
@ApiModelProperty(value ="项目形象进度" )
private String progressContent;
@ApiModelProperty(value ="项目进度图片" )
private String progressImages;
@ApiModelProperty(value ="预计开工时间" )
private String startTime;
@ApiModelProperty(value ="预计竣工时间" )
private String endTime;
@ApiModelProperty(value ="当年度财务支出(开票)数" )
private Float financialExpense;
@ApiModelProperty(value ="创建用户" )
private String createdBy;
@ApiModelProperty(value ="创建时间" )
private Integer createdAt;
@ApiModelProperty(value ="年度" )
private String year;
@ApiModelProperty(value ="实际开工时间" )
private String actualStartTime;
@ApiModelProperty(value ="预计投产投用时间" )
private String operationTime;
@ApiModelProperty(value ="实际投产投用时间" )
private String actualOperationTime;
@ApiModelProperty(value ="投产投用情况0否1部分2全部" )
private String tctyStatus;
@ApiModelProperty(value ="预计年产值" )
private Float planRevenue;
@ApiModelProperty(value ="竣工验收情况1部分2全部" )
private String jgysStatus;
@ApiModelProperty(value ="预计投产后税收" )
private Float planTax;
@ApiModelProperty(value ="当年产值" )
private Float currentRevenue;
@ApiModelProperty(value ="当年税收" )
private Float currentTax;
@ApiModelProperty(value ="下一年产值" )
private Float nextRevenue;
@ApiModelProperty(value ="下一年税收" )
private Float nextTax;
}

@ -0,0 +1,15 @@
package com.ruoyi.docking.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.docking.entity.Project;
/**
* (Project)访
*
* @author makejava
* @since 2025-03-25 14:47:57
*/
public interface ProjectMapper extends BaseMapper<Project> {
}

@ -1,20 +1,21 @@
package com.ruoyi.gysl.mapper;
package com.ruoyi.docking.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.gysl.entity.ProjectMonthInfo;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* (ProjectMonthInfo)访
* (ProjectProgress)访
*
* @author makejava
* @since 2025-03-19 10:49:03
* @since 2025-03-25 14:49:04
*/
public interface ProjectMonthInfoMapper extends BaseMapper<ProjectMonthInfo> {
public interface ProjectProgressMapper extends BaseMapper<ProjectProgress> {
/**
*
@ -23,8 +24,7 @@ public interface ProjectMonthInfoMapper extends BaseMapper<ProjectMonthInfo> {
* @param zwIdPageReq
* @return
*/
Page<ProjectMonthInfo> page(Page<ProjectMonthInfo> page,@Param("req") ZwIdPageReq zwIdPageReq);
List<ProjectMonthInfo> page(@Param("req") ZwIdPageReq zwIdPageReq);
Page<ProjectProgress> page(Page<ProjectProgress> page,@Param("req") ZwIdPageReq zwIdPageReq);
List<ProjectProgress> page( @Param("req") ZwIdPageReq zwIdPageReq);
}

@ -0,0 +1,35 @@
package com.ruoyi.docking.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import javax.validation.Valid;
import java.util.List;
/**
* (ProjectProgress)
*
* @author makejava
* @since 2025-03-25 14:49:04
*/
public interface ProjectProgressService extends IService<ProjectProgress> {
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
Page<ProjectProgress> page(Page<ProjectProgress> page, ZwIdPageReq zwIdPageReq);
List<ProjectProgress> page( ZwIdPageReq zwIdPageReq);
/**
*
*/
List<ProjectProgress> djList();
}

@ -0,0 +1,22 @@
package com.ruoyi.docking.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.docking.entity.Project;
import java.util.List;
/**
* (Project)
*
* @author makejava
* @since 2025-03-25 14:47:59
*/
public interface ProjectService extends IService<Project> {
/**
*
*/
List<Project> djList();
}

@ -0,0 +1,63 @@
package com.ruoyi.docking.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.docking.mapper.ProjectProgressMapper;
import com.ruoyi.docking.service.ProjectProgressService;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
/**
* (ProjectProgress)
*
* @author makejava
* @since 2025-03-25 14:49:04
*/
@Service("projectProgressService")
public class ProjectProgressServiceImpl extends ServiceImpl<ProjectProgressMapper, ProjectProgress> implements ProjectProgressService {
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
@Override
public Page<ProjectProgress> page(Page<ProjectProgress> page, ZwIdPageReq zwIdPageReq) {
return baseMapper.page(page, zwIdPageReq);
}
@Override
public List<ProjectProgress> page(ZwIdPageReq zwIdPageReq) {
return baseMapper.page(zwIdPageReq);
}
/**
*
*/
@DataSource(value = DataSourceType.SLAVE)
@Override
public List<ProjectProgress> djList() {
//获取当前时间的上一个月的秒级时间戳
// 获取当前时间(带时区)
ZonedDateTime now = ZonedDateTime.now(ZoneId.systemDefault());
// 计算上个月同一时间(自动处理跨月边界)
ZonedDateTime lastMonth = now.minusMonths(1);
// 上个月的时间转换为秒级时间戳
long timestamp = lastMonth.toEpochSecond();
// 当前的时间转换为秒级时间戳
long nowTime = now.toEpochSecond();
return lambdaQuery().ge(ProjectProgress::getCreatedAt, timestamp)
.lt(ProjectProgress::getCreatedAt, nowTime).list();
}
}

@ -0,0 +1,45 @@
package com.ruoyi.docking.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.docking.mapper.ProjectMapper;
import com.ruoyi.docking.entity.Project;
import com.ruoyi.docking.service.ProjectService;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
/**
* (Project)
*
* @author makejava
* @since 2025-03-25 14:47:59
*/
@Service("projectService")
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
/**
*
*/
@DataSource(value = DataSourceType.SLAVE)
@Override
public List<Project> djList() {
//获取当前时间的上一个月的秒级时间戳
// 获取当前时间(带时区)
ZonedDateTime now = ZonedDateTime.now(ZoneId.systemDefault());
// 计算上个月同一时间(自动处理跨月边界)
ZonedDateTime lastMonth = now.minusMonths(1);
// 上个月的时间转换为秒级时间戳
long timestamp = lastMonth.toEpochSecond();
// 当前的时间转换为秒级时间戳
long nowTime = now.toEpochSecond();
return lambdaQuery().ge(Project::getCreatedAt, timestamp)
.lt(Project::getCreatedAt, nowTime).list();
}
}

@ -63,6 +63,12 @@ public class BasicInformationController extends BaseController {
@Resource
private MxService mxService;
/**
*
*/
@Resource
private NoticeService noticeService;
/**
*
*/
@ -103,6 +109,10 @@ public class BasicInformationController extends BaseController {
@ApiOperation(value = "企业端提交填报")
@PostMapping("/fill")
public AjaxResult fill(@RequestBody AuditRequest req) {
BasicInformation byId = basicInformationService.getById(req.getBasicInformation().getId());
if (byId.getStatus() != 1) {
throw new ServiceException("暂不能提交!");
}
return success(basicInformationService.audit(req, 2));
}
@ -113,6 +123,10 @@ public class BasicInformationController extends BaseController {
@ApiOperation(value = "政务端审核")
@PostMapping("/audit")
public AjaxResult audit(@RequestBody AuditRequest req) {
BasicInformation byId = basicInformationService.getById(req.getBasicInformation().getId());
if (byId.getStatus() == 1) {
throw new ServiceException("请等待企业填报!");
}
return success(basicInformationService.audit(req, 3));
}
@ -188,6 +202,13 @@ public class BasicInformationController extends BaseController {
projectOtherInfo.setZdname(y);
saveOther.add(projectOtherInfo);
});
//新增消息
Notice notice = new Notice();
notice.setType(2);
notice.setTyshxydm(x.getTyshxydm());
notice.setXmId(x.getId());
notice.setContent("关于" + x.getName() + "项目,待填报的通知");
noticeService.save(notice);
});
successMsg.append("导入成功");
}

@ -4,16 +4,13 @@ package com.ruoyi.gysl.controller;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.gysl.entity.BasicInformation;
import com.ruoyi.gysl.entity.BuildingInformation;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import com.ruoyi.gysl.service.BasicInformationService;
import com.ruoyi.gysl.service.BuildingInformationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -21,7 +18,6 @@ import javax.annotation.Resource;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
/**
* (BuildingInformation)
@ -58,13 +54,26 @@ public class BuildingInformationController extends BaseController {
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据",response = BuildingInformation.class )
public AjaxResult selectOne(@PathVariable Serializable id) {
BuildingInformation byId = buildingInformationService.getById(id);
basicInformationService.testXmId(byId.getXmId());
return success(byId);
}
/**
*
*
* @param buildingInformation
* @return
*/
@PreAuthorize("@ss.hasAnyRoles('company')")
@PostMapping("/add")
@ApiOperation("新增数据")
public AjaxResult insert(@RequestBody BuildingInformation buildingInformation) {
@ -78,7 +87,6 @@ public class BuildingInformationController extends BaseController {
* @param buildingInformation
* @return
*/
@PreAuthorize("@ss.hasAnyRoles('company')")
@PostMapping("/edit")
@ApiOperation("修改数据")
public AjaxResult update(@RequestBody BuildingInformation buildingInformation) {

@ -23,7 +23,7 @@ import java.util.List;
@Api(tags = "模型管理")
@RestController
@RequestMapping("/gysl/mx")
@PreAuthorize("@ss.hasAnyRoles('admin,common')")
public class MxController extends BaseController {

@ -9,7 +9,6 @@ import com.ruoyi.gysl.service.BasicInformationService;
import com.ruoyi.gysl.service.ProjectLegendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -63,6 +62,20 @@ public class ProjectLegendController extends BaseController {
return success(projectLegendService.save(projectLegend));
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据",response = ProjectLegend.class )
public AjaxResult selectOne(@PathVariable Serializable id) {
ProjectLegend byId = projectLegendService.getById(id);
basicInformationService.testXmId(byId.getXmId());
return success(byId);
}
/**
*
*

@ -1,106 +0,0 @@
package com.ruoyi.gysl.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.gysl.entity.ProjectMonthInfo;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import com.ruoyi.gysl.service.BasicInformationService;
import com.ruoyi.gysl.service.ProjectMonthInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
/**
* (ProjectMonthInfo)
*
* @author makejava
* @since 2025-03-19 10:49:03
*/
@Api(tags = "月度进展详情")
@RestController
@RequestMapping("/gysl/projectMonthInfo")
public class ProjectMonthInfoController extends BaseController {
/**
*
*/
@Resource
private ProjectMonthInfoService projectMonthInfoService;
/**
*
*/
@Resource
private BasicInformationService basicInformationService;
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
@ApiOperation("分页查询所有数据")
@GetMapping("/page")
public AjaxResult selectAll(Page<ProjectMonthInfo> page,@Valid ZwIdPageReq zwIdPageReq) {
return success(projectMonthInfoService.page(page, zwIdPageReq));
}
/**
*
*
* @param projectMonthInfo
* @return
*/
@ApiOperation("新增数据")
@PostMapping("/add")
public AjaxResult insert(@RequestBody ProjectMonthInfo projectMonthInfo) {
basicInformationService.testXmId(projectMonthInfo.getXmId());
return success(projectMonthInfoService.save(projectMonthInfo));
}
/**
*
*
* @param projectMonthInfo
* @return
*/
@ApiOperation("修改数据")
@PutMapping("/edit")
public AjaxResult update(@RequestBody ProjectMonthInfo projectMonthInfo) {
basicInformationService.testXmId(projectMonthInfo.getXmId());
return success(projectMonthInfoService.updateById(projectMonthInfo));
}
/**
*
*
* @param idList
* @return
*/
@ApiOperation("删除数据")
@DeleteMapping("/delete")
public AjaxResult delete(@RequestParam("idList") List<Long> idList) {
return success(projectMonthInfoService.removeByIds(idList));
}
/**
*
*/
@ApiOperation(value = "根据条件导出月度进展详情")
@PostMapping(value = "/export")
public void export(HttpServletResponse response, ZwIdPageReq zwIdPageReq) throws Exception {
List<ProjectMonthInfo> filteredList = projectMonthInfoService.page(zwIdPageReq);
ExcelUtil<ProjectMonthInfo> util = new ExcelUtil<>(ProjectMonthInfo.class);
util.exportExcel(response, filteredList, "企业名录数据");
}
}

@ -50,7 +50,19 @@ public class ProjectRemarkController extends BaseController {
return success(projectRemarkService.list(projectRemark));
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据",response = ProjectRemark.class )
public AjaxResult selectOne(@PathVariable Serializable id) {
ProjectRemark byId = projectRemarkService.getById(id);
basicInformationService.testXmId(byId.getXmId());
return success(byId);
}
/**
*
*

@ -23,7 +23,7 @@ import javax.annotation.Resource;
@Api(tags = "企业统计")
@RestController
@RequestMapping("/gysl/qyStats")
@PreAuthorize("@ss.hasAnyRoles('company')")
//@PreAuthorize("@ss.hasAnyRoles('company')")
public class QyStatsController extends BaseController {
@Resource
@ -55,5 +55,14 @@ public class QyStatsController extends BaseController {
public AjaxResult qyNotice() {
return success(qyStatsService.qyNotice(SecurityUtils.getUsername()));
}
/**
*
*/
@ApiOperation("企业消息通知数量")
@GetMapping("/qyNoticeCount")
public AjaxResult qyNoticeCount() {
return success(qyStatsService.qyNoticeCount(SecurityUtils.getUsername()));
}
}

@ -51,6 +51,19 @@ public class XmxlController extends BaseController {
return success(xmxlService.list(zwIdPageReq));
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "通过主键查询单条数据",response = Xmxl.class )
public AjaxResult selectOne(@PathVariable Serializable id) {
Xmxl byId = xmxlService.getById(id);
basicInformationService.testXmId(byId.getXmId());
return success(byId);
}
/**
*

@ -79,5 +79,15 @@ public class ZwStatsController extends BaseController {
public AjaxResult zwNotice() {
return success(zwStatsService.zwNotice());
}
/**
*
*/
@ApiOperation("政务消息通知数量")
@GetMapping("/zwNoticeCount")
public AjaxResult zwNoticeCount() {
return success(zwStatsService.zwNoticeCount());
}
}

@ -32,13 +32,13 @@ public class BasicInformation extends BaseModel {
private Long id;
@Excel(name = "统一社会信用代码", sort = 2)
@Excel(name = "统一社会信用代码", sort = 2,required = true)
@ApiModelProperty("统一社会信用代码")
private String tyshxydm;
@NotBlank
@Excel(name = "项目名称", sort = 2)
@Excel(name = "项目名称", sort = 2,required = true)
@ApiModelProperty("项目名称")
private String name;

@ -47,6 +47,6 @@ public class Notice implements Serializable {
private LocalDateTime createTime;
@ApiModelProperty(value = "项目id")
private Long zwId;
private Long xmId;
}

@ -1,52 +0,0 @@
package com.ruoyi.gysl.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.gysl.entity.baseModel.BaseModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* (ProjectMonthInfo)
*
* @author makejava
* @since 2025-03-19 10:49:03
*/
@TableName("project_month_info")
@Data
public class ProjectMonthInfo extends BaseModel implements Serializable {
@TableField("id")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("项目id")
private Long xmId;
@ApiModelProperty("进度月份")
private String progressMonth;
@ApiModelProperty("状态")
private Integer state;
@ApiModelProperty("当月完成投资")
private String investMonth;
@ApiModelProperty("累计完成投资")
private String investTotal;
@ApiModelProperty("截至目前累计建成面积(平方米)")
private Integer finishArea;
@ApiModelProperty("贷款额度(万元)")
private Integer loans;
@ApiModelProperty("项目进展详情")
private String projectInfo;
}

@ -13,7 +13,7 @@ import javax.validation.constraints.NotNull;
@Data
public class ZwIdPageReq {
@NotNull
@NotNull(message = "项目id不能为空!")
@ApiModelProperty("项目id")
private Long xmId;
}

@ -29,5 +29,10 @@ public interface QyStatsMapper {
*
*/
List<Notice> qyNotice(@Param("username") String username);
/**
*
*/
int qyNoticeCount(String username);
}

@ -32,5 +32,10 @@ public interface ZwStatsMapper {
*
*/
List<Notice> zwNotice();
/**
*
*/
int zwNoticeCount();
}

@ -1,5 +1,9 @@
package com.ruoyi.gysl.regular;
import com.ruoyi.docking.entity.Project;
import com.ruoyi.docking.entity.ProjectProgress;
import com.ruoyi.docking.service.ProjectProgressService;
import com.ruoyi.docking.service.ProjectService;
import com.ruoyi.gysl.entity.Notice;
import com.ruoyi.gysl.service.NoticeService;
import org.springframework.context.annotation.Configuration;
@ -8,6 +12,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.List;
/**
*
@ -21,6 +26,12 @@ public class NoticeTiming {
@Resource
private NoticeService noticeService;
@Resource
private ProjectProgressService projectProgressService;
@Resource
private ProjectService projectService;
/**
*
*/
@ -35,4 +46,19 @@ public class NoticeTiming {
"项目进展未填写");
noticeService.save(notice);
}
/**
* 12
*/
@Scheduled(cron = "0 0 2 1 * ?") // 每月1号 2:00:00 执行
private void changeProgress() {
List<ProjectProgress> pList = projectProgressService.djList();
//修改该progressId为空
pList.forEach(x-> x.setProgressId(null));
//批量新增
projectProgressService.saveBatch(pList);
List<Project> pjList = projectService.djList();
projectService.saveBatch(pjList);
}
}

@ -1,29 +0,0 @@
package com.ruoyi.gysl.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.gysl.entity.ProjectMonthInfo;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import java.util.List;
/**
* (ProjectMonthInfo)
*
* @author makejava
* @since 2025-03-19 10:49:03
*/
public interface ProjectMonthInfoService extends IService<ProjectMonthInfo> {
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
Page<ProjectMonthInfo> page(Page<ProjectMonthInfo> page, ZwIdPageReq zwIdPageReq);
List<ProjectMonthInfo> page(ZwIdPageReq zwIdPageReq);
}

@ -30,5 +30,10 @@ public interface QyStatsService {
*
*/
List<Notice> qyNotice(String username);
/**
*
*/
int qyNoticeCount(String username);
}

@ -34,5 +34,10 @@ public interface ZwStatsService {
*
*/
List<Notice> zwNotice();
/**
*
*/
int zwNoticeCount();
}

@ -74,12 +74,16 @@ public class BasicInformationServiceImpl extends ServiceImpl<BasicInformationMap
*/
@Resource
private ProjectRemarkService projectRemarkService;
/**
*
*
*/
@Resource
private ProjectMonthInfoService projectMonthInfoService;
private NoticeService noticeService;
/**
*
*/
// @Resource
// private ProjectMonthInfoService projectMonthInfoService;
/**
*
@ -283,6 +287,21 @@ public class BasicInformationServiceImpl extends ServiceImpl<BasicInformationMap
.eq(ProjectOtherInfo::getXmId, req.getBasicInformation().getId())
.remove();
otherInfoService.saveBatch(req.getProjectOtherInfos());
Notice one = noticeService.lambdaQuery().eq(Notice::getXmId, req.getBasicInformation().getId()).one();
if(status == 2){
//修改消息
one.setType(1);
one.setContent("关于"+req.getBasicInformation().getId()+"项目,待审核的通知");
noticeService.updateById(one);
}
if(status == 3){
//修改消息
one.setType(2);
one.setContent("关于"+req.getBasicInformation().getId()+"项目,审核通过的通知");
noticeService.updateById(one);
}
return req.getBasicInformation().getId();
}
@ -347,9 +366,9 @@ public class BasicInformationServiceImpl extends ServiceImpl<BasicInformationMap
.eq(WysmxInformation::getXmId,x)
.remove();
//删除月度进展信息
projectMonthInfoService.lambdaUpdate()
.eq(ProjectMonthInfo::getXmId,x)
.remove();
// projectMonthInfoService.lambdaUpdate()
// .eq(ProjectMonthInfo::getXmId,x)
// .remove();
//删除企业入驻信息
qyrzInformationService.lambdaUpdate()
.eq(QyrzInformation::getXmId,x)

@ -1,42 +0,0 @@
package com.ruoyi.gysl.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.gysl.entity.request.ZwIdPageReq;
import com.ruoyi.gysl.mapper.ProjectMonthInfoMapper;
import com.ruoyi.gysl.entity.ProjectMonthInfo;
import com.ruoyi.gysl.service.ProjectMonthInfoService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* (ProjectMonthInfo)
*
* @author makejava
* @since 2025-03-19 10:49:03
*/
@Service("projectMonthInfoService")
public class ProjectMonthInfoServiceImpl extends ServiceImpl<ProjectMonthInfoMapper, ProjectMonthInfo> implements ProjectMonthInfoService {
/**
*
*
* @param page
* @param zwIdPageReq
* @return
*/
@Override
public Page<ProjectMonthInfo> page(Page<ProjectMonthInfo> page, ZwIdPageReq zwIdPageReq) {
return baseMapper.page(page,zwIdPageReq);
}
/**
*
*/
@Override
public List<ProjectMonthInfo> page(ZwIdPageReq zwIdPageReq) {
return baseMapper.page(zwIdPageReq);
}
}

@ -49,4 +49,12 @@ public class QyStatsServiceImpl implements QyStatsService {
return qyStatsMapper.qyNotice(username);
}
/**
*
*/
@Override
public int qyNoticeCount(String username) {
return qyStatsMapper.qyNoticeCount(username);
}
}

@ -52,4 +52,12 @@ public class ZwStatsServiceImpl implements ZwStatsService {
public List<Notice> zwNotice() {
return zwStatsMapper.zwNotice();
}
/**
*
*/
@Override
public int zwNoticeCount() {
return zwStatsMapper.zwNoticeCount();
}
}

@ -0,0 +1,61 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://39.101.188.84:3307/gysl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: Admin123@
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:mysql://172.25.227.3:3306/sip_data_gdzc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: gyslgl
password: ryw!@63@w%4
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true

@ -0,0 +1,99 @@
<?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="com.ruoyi.docking.dao.ProjectMapper">
<resultMap type="com.ruoyi.docking.entity.Project" id="ProjectMap">
<result property="projectId" column="project_id" jdbcType="INTEGER"/>
<result property="projectName" column="project_name" jdbcType="VARCHAR"/>
<result property="companyId" column="company_id" jdbcType="VARCHAR"/>
<result property="companyName" column="company_name" jdbcType="VARCHAR"/>
<result property="companyTime" column="company_time" jdbcType="VARCHAR"/>
<result property="agentCompanyId" column="agent_company_id" jdbcType="VARCHAR"/>
<result property="agentCompanyName" column="agent_company_name" jdbcType="VARCHAR"/>
<result property="contactName" column="contact_name" jdbcType="VARCHAR"/>
<result property="contactPhone" column="contact_phone" jdbcType="VARCHAR"/>
<result property="projectType" column="project_type" jdbcType="VARCHAR"/>
<result property="organizationId" column="organization_id" jdbcType="VARCHAR"/>
<result property="subOrganizationId" column="sub_organization_id" jdbcType="VARCHAR"/>
<result property="zsOrganizationId" column="zs_organization_id" jdbcType="VARCHAR"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="secondTypeId" column="second_type_id" jdbcType="VARCHAR"/>
<result property="thirdTypeId" column="third_type_id" jdbcType="VARCHAR"/>
<result property="ssTypeId" column="ss_type_id" jdbcType="VARCHAR"/>
<result property="areaId" column="area_id" jdbcType="VARCHAR"/>
<result property="address" column="address" jdbcType="VARCHAR"/>
<result property="lat" column="lat" jdbcType="VARCHAR"/>
<result property="lng" column="lng" jdbcType="VARCHAR"/>
<result property="actualStartTime" column="actual_start_time" jdbcType="VARCHAR"/>
<result property="actualEndTime" column="actual_end_time" jdbcType="VARCHAR"/>
<result property="jgysStatus" column="jgys_status" jdbcType="VARCHAR"/>
<result property="tctyStatus" column="tcty_status" jdbcType="VARCHAR"/>
<result property="operationTime" column="operation_time" jdbcType="VARCHAR"/>
<result property="investmentType" column="investment_type" jdbcType="VARCHAR"/>
<result property="investmentEntity" column="investment_entity" jdbcType="VARCHAR"/>
<result property="investmentEntityType" column="investment_entity_type" jdbcType="VARCHAR"/>
<result property="thumbnail" column="thumbnail" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
<result property="reviewStep" column="review_step" jdbcType="INTEGER"/>
<result property="reviewObject" column="review_object" jdbcType="INTEGER"/>
<result property="reviewResult" column="review_result" jdbcType="INTEGER"/>
<result property="progressContent" column="progress_content" jdbcType="VARCHAR"/>
<result property="progressUpdateAt" column="progress_update_at" jdbcType="INTEGER"/>
<result property="extProjectId" column="ext_project_id" jdbcType="VARCHAR"/>
<result property="stzProjectId" column="stz_project_id" jdbcType="VARCHAR"/>
<result property="sgxkProjectId" column="sgxk_project_id" jdbcType="VARCHAR"/>
<result property="ydghProjectId" column="ydgh_project_id" jdbcType="INTEGER"/>
<result property="gcghProjectId" column="gcgh_project_id" jdbcType="INTEGER"/>
<result property="hpProjectId" column="hp_project_id" jdbcType="INTEGER"/>
<result property="genProjectId" column="gen_project_id" jdbcType="VARCHAR"/>
<result property="landId" column="land_id" jdbcType="VARCHAR"/>
<result property="zdxmProjectId" column="zdxm_project_id" jdbcType="VARCHAR"/>
<result property="ybjbProjectId" column="ybjb_project_id" jdbcType="VARCHAR"/>
<result property="landingTime" column="landing_time" jdbcType="VARCHAR"/>
<result property="landing" column="landing" jdbcType="INTEGER"/>
<result property="dimensionIds" column="dimension_ids" jdbcType="VARCHAR"/>
<result property="headquarterIds" column="headquarter_ids" jdbcType="VARCHAR"/>
<result property="jgysbaId" column="jgysba_id" jdbcType="INTEGER"/>
<result property="npId" column="np_id" jdbcType="INTEGER"/>
<result property="xfysId" column="xfys_id" jdbcType="INTEGER"/>
<result property="isDisabled" column="is_disabled" jdbcType="INTEGER"/>
<result property="isStats" column="is_stats" jdbcType="INTEGER"/>
<result property="isDraft" column="is_draft" jdbcType="INTEGER"/>
<result property="createdAt" column="created_at" jdbcType="INTEGER"/>
<result property="updatedAt" column="updated_at" jdbcType="INTEGER"/>
<result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
<result property="isDeleted" column="is_deleted" jdbcType="INTEGER"/>
<result property="landNo" column="land_no" jdbcType="VARCHAR"/>
<result property="landUsage" column="land_usage" jdbcType="VARCHAR"/>
<result property="landArea" column="land_area" jdbcType="VARCHAR"/>
<result property="landAddress" column="land_address" jdbcType="VARCHAR"/>
<result property="landStartDate" column="land_start_date" jdbcType="VARCHAR"/>
<result property="landEndDate" column="land_end_date" jdbcType="VARCHAR"/>
<result property="landObligeeName" column="land_obligee_name" jdbcType="VARCHAR"/>
<result property="landApproveTime" column="land_approve_time" jdbcType="VARCHAR"/>
<result property="homeDisplay" column="home_display" jdbcType="INTEGER"/>
<result property="installment" column="installment" jdbcType="INTEGER"/>
<result property="installmentNum" column="installment_num" jdbcType="INTEGER"/>
</resultMap>
<!-- 批量插入 -->
<insert id="insertBatch" keyProperty="projectId" useGeneratedKeys="true">
insert into gysl.project(project_namecompany_idcompany_namecompany_timeagent_company_idagent_company_namecontact_namecontact_phoneproject_typeorganization_idsub_organization_idzs_organization_idtype_idsecond_type_idthird_type_idss_type_idarea_idaddresslatlngactual_start_timeactual_end_timejgys_statustcty_statusoperation_timeinvestment_typeinvestment_entityinvestment_entity_typethumbnailremarkstatusreview_stepreview_objectreview_resultprogress_contentprogress_update_atext_project_idstz_project_idsgxk_project_idydgh_project_idgcgh_project_idhp_project_idgen_project_idland_idzdxm_project_idybjb_project_idlanding_timelandingdimension_idsheadquarter_idsjgysba_idnp_idxfys_idis_disabledis_statsis_draftcreated_atupdated_atcreated_byis_deletedland_noland_usageland_arealand_addressland_start_dateland_end_dateland_obligee_nameland_approve_timehome_displayinstallmentinstallment_num)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.projectName}#{entity.companyId}#{entity.companyName}#{entity.companyTime}#{entity.agentCompanyId}#{entity.agentCompanyName}#{entity.contactName}#{entity.contactPhone}#{entity.projectType}#{entity.organizationId}#{entity.subOrganizationId}#{entity.zsOrganizationId}#{entity.typeId}#{entity.secondTypeId}#{entity.thirdTypeId}#{entity.ssTypeId}#{entity.areaId}#{entity.address}#{entity.lat}#{entity.lng}#{entity.actualStartTime}#{entity.actualEndTime}#{entity.jgysStatus}#{entity.tctyStatus}#{entity.operationTime}#{entity.investmentType}#{entity.investmentEntity}#{entity.investmentEntityType}#{entity.thumbnail}#{entity.remark}#{entity.status}#{entity.reviewStep}#{entity.reviewObject}#{entity.reviewResult}#{entity.progressContent}#{entity.progressUpdateAt}#{entity.extProjectId}#{entity.stzProjectId}#{entity.sgxkProjectId}#{entity.ydghProjectId}#{entity.gcghProjectId}#{entity.hpProjectId}#{entity.genProjectId}#{entity.landId}#{entity.zdxmProjectId}#{entity.ybjbProjectId}#{entity.landingTime}#{entity.landing}#{entity.dimensionIds}#{entity.headquarterIds}#{entity.jgysbaId}#{entity.npId}#{entity.xfysId}#{entity.isDisabled}#{entity.isStats}#{entity.isDraft}#{entity.createdAt}#{entity.updatedAt}#{entity.createdBy}#{entity.isDeleted}#{entity.landNo}#{entity.landUsage}#{entity.landArea}#{entity.landAddress}#{entity.landStartDate}#{entity.landEndDate}#{entity.landObligeeName}#{entity.landApproveTime}#{entity.homeDisplay}#{entity.installment}#{entity.installmentNum})
</foreach>
</insert>
<!-- 批量插入或按主键更新 -->
<insert id="insertOrUpdateBatch" keyProperty="projectId" useGeneratedKeys="true">
insert into gysl.project(project_namecompany_idcompany_namecompany_timeagent_company_idagent_company_namecontact_namecontact_phoneproject_typeorganization_idsub_organization_idzs_organization_idtype_idsecond_type_idthird_type_idss_type_idarea_idaddresslatlngactual_start_timeactual_end_timejgys_statustcty_statusoperation_timeinvestment_typeinvestment_entityinvestment_entity_typethumbnailremarkstatusreview_stepreview_objectreview_resultprogress_contentprogress_update_atext_project_idstz_project_idsgxk_project_idydgh_project_idgcgh_project_idhp_project_idgen_project_idland_idzdxm_project_idybjb_project_idlanding_timelandingdimension_idsheadquarter_idsjgysba_idnp_idxfys_idis_disabledis_statsis_draftcreated_atupdated_atcreated_byis_deletedland_noland_usageland_arealand_addressland_start_dateland_end_dateland_obligee_nameland_approve_timehome_displayinstallmentinstallment_num)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.projectName}#{entity.companyId}#{entity.companyName}#{entity.companyTime}#{entity.agentCompanyId}#{entity.agentCompanyName}#{entity.contactName}#{entity.contactPhone}#{entity.projectType}#{entity.organizationId}#{entity.subOrganizationId}#{entity.zsOrganizationId}#{entity.typeId}#{entity.secondTypeId}#{entity.thirdTypeId}#{entity.ssTypeId}#{entity.areaId}#{entity.address}#{entity.lat}#{entity.lng}#{entity.actualStartTime}#{entity.actualEndTime}#{entity.jgysStatus}#{entity.tctyStatus}#{entity.operationTime}#{entity.investmentType}#{entity.investmentEntity}#{entity.investmentEntityType}#{entity.thumbnail}#{entity.remark}#{entity.status}#{entity.reviewStep}#{entity.reviewObject}#{entity.reviewResult}#{entity.progressContent}#{entity.progressUpdateAt}#{entity.extProjectId}#{entity.stzProjectId}#{entity.sgxkProjectId}#{entity.ydghProjectId}#{entity.gcghProjectId}#{entity.hpProjectId}#{entity.genProjectId}#{entity.landId}#{entity.zdxmProjectId}#{entity.ybjbProjectId}#{entity.landingTime}#{entity.landing}#{entity.dimensionIds}#{entity.headquarterIds}#{entity.jgysbaId}#{entity.npId}#{entity.xfysId}#{entity.isDisabled}#{entity.isStats}#{entity.isDraft}#{entity.createdAt}#{entity.updatedAt}#{entity.createdBy}#{entity.isDeleted}#{entity.landNo}#{entity.landUsage}#{entity.landArea}#{entity.landAddress}#{entity.landStartDate}#{entity.landEndDate}#{entity.landObligeeName}#{entity.landApproveTime}#{entity.homeDisplay}#{entity.installment}#{entity.installmentNum})
</foreach>
on duplicate key update
project_name = values(project_name) company_id = values(company_id) company_name = values(company_name) company_time = values(company_time) agent_company_id = values(agent_company_id) agent_company_name = values(agent_company_name) contact_name = values(contact_name) contact_phone = values(contact_phone) project_type = values(project_type) organization_id = values(organization_id) sub_organization_id = values(sub_organization_id) zs_organization_id = values(zs_organization_id) type_id = values(type_id) second_type_id = values(second_type_id) third_type_id = values(third_type_id) ss_type_id = values(ss_type_id) area_id = values(area_id) address = values(address) lat = values(lat) lng = values(lng) actual_start_time = values(actual_start_time) actual_end_time = values(actual_end_time) jgys_status = values(jgys_status) tcty_status = values(tcty_status) operation_time = values(operation_time) investment_type = values(investment_type) investment_entity = values(investment_entity) investment_entity_type = values(investment_entity_type) thumbnail = values(thumbnail) remark = values(remark) status = values(status) review_step = values(review_step) review_object = values(review_object) review_result = values(review_result) progress_content = values(progress_content) progress_update_at = values(progress_update_at) ext_project_id = values(ext_project_id) stz_project_id = values(stz_project_id) sgxk_project_id = values(sgxk_project_id) ydgh_project_id = values(ydgh_project_id) gcgh_project_id = values(gcgh_project_id) hp_project_id = values(hp_project_id) gen_project_id = values(gen_project_id) land_id = values(land_id) zdxm_project_id = values(zdxm_project_id) ybjb_project_id = values(ybjb_project_id) landing_time = values(landing_time) landing = values(landing) dimension_ids = values(dimension_ids) headquarter_ids = values(headquarter_ids) jgysba_id = values(jgysba_id) np_id = values(np_id) xfys_id = values(xfys_id) is_disabled = values(is_disabled) is_stats = values(is_stats) is_draft = values(is_draft) created_at = values(created_at) updated_at = values(updated_at) created_by = values(created_by) is_deleted = values(is_deleted) land_no = values(land_no) land_usage = values(land_usage) land_area = values(land_area) land_address = values(land_address) land_start_date = values(land_start_date) land_end_date = values(land_end_date) land_obligee_name = values(land_obligee_name) land_approve_time = values(land_approve_time) home_display = values(home_display) installment = values(installment) installment_num = values(installment_num) </insert>
</mapper>

@ -1,14 +0,0 @@
<?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="com.ruoyi.gysl.mapper.ProjectMonthInfoMapper">
<select id="page" resultType="com.ruoyi.gysl.entity.ProjectMonthInfo">
select * from project_month_info
<where>
<if test="req.xmId != null and req.xmId != ''">
AND xm_id = #{req.xmId}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,14 @@
<?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="com.ruoyi.docking.mapper.ProjectProgressMapper">
<select id="page" resultType="com.ruoyi.docking.entity.ProjectProgress">
SELECT
a.*
FROM
project_progress a
LEFT JOIN project b ON a.project_id = b.project_id
LEFT JOIN basic_information c ON b.company_id = c.tyshxydm
where c.id = #{req.xmId}
</select>
</mapper>

@ -33,5 +33,9 @@
select * from notice
where tyshxydm = #{username} and type = 2
</select>
<select id="qyNoticeCount" resultType="java.lang.Integer">
select count(*) from notice
where tyshxydm = #{username} and type = 2
</select>
</mapper>

@ -41,7 +41,11 @@
</select>
<select id="zwNotice" resultType="com.ruoyi.gysl.entity.Notice">
select * from notice
where type = 2
where type = 1
</select>
<select id="zwNoticeCount" resultType="java.lang.Integer">
select count(*) from notice
where type = 1
</select>
</mapper>

@ -18,6 +18,11 @@ import com.ruoyi.common.utils.poi.ExcelHandlerAdapter;
@Target(ElementType.FIELD)
public @interface Excel
{
/**
*
*/
public boolean required() default false;
/**
* excel
*/

@ -24,6 +24,8 @@ import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.exception.ServiceException;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@ -421,6 +423,12 @@ public class ExcelUtil<T>
// 从map中得到对应列的field.
Field field = (Field) entry.getValue()[0];
Excel attr = (Excel) entry.getValue()[1];
boolean rq = attr.required();
if(rq){
if(StringUtils.isNull(val) || StringUtils.isEmpty(val.toString())) {
throw new ServiceException("第"+i+"行"+attr.name()+"单元格必填项未填写,请正确填写!");
}
}
// 取得类型,并根据对象类型设置值.
Class<?> fieldType = field.getType();
if (String.class == fieldType)

Loading…
Cancel
Save