guoshilong
2024-03-23 76772672a6bcba95500fb627483092962134011d
项目管理接口
1 files modified
14 files added
715 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java 55 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/TbProjectDTO.java 16 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbProject.java 121 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbProjectSchedule.java 63 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java 20 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml 251 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectScheduleMapper.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectScheduleMapper.xml 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectScheduleService.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java 21 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectScheduleServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java 75 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java 43 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/TbProjectVO.java 15 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java
New file
@@ -0,0 +1,55 @@
package cn.gistack.sm.sjztmd.controller;
import cn.gistack.sm.sjztmd.dto.TbProjectDTO;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@Api(tags = "项目填报")
@RestController
@RequestMapping("/sjztmd/tbProject")
@AllArgsConstructor
public class TbProjectController extends BladeController {
    private final ITbProjectService tbProjectService;
    @GetMapping("/getList")
    public R getList(TbProjectVO tbProjectVO, Query query) {
        Object list = tbProjectService.getList(tbProjectVO, Condition.getPage(query));
        return R.data(list);
    }
    @PostMapping("update")
    public R update(TbProjectDTO tbProjectDTO){
        return R.status(tbProjectService.updateCustomize(tbProjectDTO));
    }
    @GetMapping("/getDetail")
    public R getDetail(String id){
        return R.data(tbProjectService.getDetail(id));
    }
    @GetMapping("/getStatistics")
    public R getStatistics(StatisticsParams statisticsParams){
        List<StatisticsTableProject> list = tbProjectService.getStatisticsTable(statisticsParams);
        return R.data(list);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/TbProjectDTO.java
New file
@@ -0,0 +1,16 @@
package cn.gistack.sm.sjztmd.dto;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import lombok.Data;
import java.util.List;
@Data
public class TbProjectDTO extends TbProject {
    private List<TbProjectSchedule> tbProjectScheduleList;
    private String deleteScheduleIds;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbProject.java
New file
@@ -0,0 +1,121 @@
package cn.gistack.sm.sjztmd.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * 项目填报
 */
@Data
@TableName("\"tb_project\"")
public class TbProject {
    private static final long serialVersionUID = 1L;
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    @TableId(value = "\"guid\"", type = IdType.ASSIGN_ID)
    private String guid;
    @TableField("\"tb_year\"")
    private String tbYear;
    @TableField("\"city_code\"")
    private String cityCode;
    @TableField("\"city_name\"")
    private String cityName;
    @TableField("\"county_code\"")
    private String countyCode;
    @TableField("\"county_name\"")
    private String countyName;
    //中央资金
    @TableField("\"center_fund\"")
    private Double centerFund;
    //地方资金
    @TableField("\"local_fund\"")
    @JsonSerialize(nullsUsing = NullSerializer.class) // 值为-1时显示null
    private Double localFund;
    //是否编制实施方案,1是;2否
    @TableField("\"is_establish_plan\"")
    private String isEstablishPlan;
    //实施方案,逗号分隔字符串  xxx,xxx
    @TableField("\"plan_url\"")
    private String planUrl;
    //方案批复,逗号分隔字符串xxxx,xxxx
    @TableField("\"plan_feed_back_url\"")
    private String planFeedBackUrl;
    //是否政府采购,1是;2否
    @TableField("\"is_gov_purchase\"")
    private String isGovPurchase;
    //采购方式,竞争性磋商,竞争性谈判,公开招投标
    @TableField("\"purchase_way\"")
    private String purchaseWay;
    //政府采购附件
    @TableField("\"gov_url\"")
    private String govUrl;
    //合同签订时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("\"contract_date\"")
    private Date contractDate;
    //合同附件
    @TableField("\"contract_url\"")
    private String contractUrl;
    //计划验收时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("\"check_date\"")
    private Date checkDate;
    //是否验收
    @TableField("\"is_check\"")
    private String isCheck;
    //验收材料
    @TableField("\"check_url\"")
    private String checkUrl;
    //创建人
    @TableField("\"create_user\"")
    private String createUser;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("\"create_time\"")
    private String createTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("\"update_time\"")
    private String updateTime;
    //修改人
    @TableField("\"update_user\"")
    private String updateUser;
    @TableLogic
    @TableField("\"is_deleted\"")
    private Integer isDeleted;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbProjectSchedule.java
New file
@@ -0,0 +1,63 @@
package cn.gistack.sm.sjztmd.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.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
 * 项目填报进度
 */
@Data
@TableName("\"tb_project_schedule\"")
public class TbProjectSchedule {
    private static final long serialVersionUID = 1L;
    //主键
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    @TableId(value = "\"guid\"", type = IdType.ASSIGN_ID)
    private String guid;
    //项目填报id
    @TableField("\"tb_project_id\"")
    private String tbProjectId;
    //年
    @TableField("\"year\"")
    private String year;
    //月
    @TableField("\"month\"")
    private String month;
    //实际到位资金
    @TableField("\"actual_fund\"")
    private double actualFund;
    //创建人
    @TableField("\"create_user\"")
    private String createUser;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("\"create_time\"")
    private String createTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("\"update_time\"")
    private String updateTime;
    //修改人
    @TableField("\"update_user\"")
    private String updateUser;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java
New file
@@ -0,0 +1,20 @@
package cn.gistack.sm.sjztmd.mapper;
import cn.gistack.sm.sjztmd.dto.TbProjectDTO;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TbProjectMapper extends BaseMapper<TbProject> {
    List<TbProjectVO> getList(@Param("page") IPage<TbProjectVO> page,@Param("vo") TbProjectVO tbProjectVO);
    TbProjectDTO getDetail(@Param("id") String id);
    List<StatisticsTableProject> getStatisticsTable(@Param("params") StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
New file
@@ -0,0 +1,251 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.gistack.sm.sjztmd.mapper.TbProjectMapper">
    <!--namespace根据自己需要创建的的mapper的路径和名称填写-->
    <sql id="selectResByRegion">
        SELECT arb."code",
               arb."name",
               arb."eng_scal",
               case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
               case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
               case
                   when town."ad_grad" = 3 THEN town."ad_code"
                   when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
               case
                   when town."ad_grad" = 3 THEN town."ad_name"
                   when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
               case
                   when town."ad_grad" = 2 THEN town."ad_code"
                   when county."ad_grad" = 2 THEN county."ad_code"
                   ELSE city."ad_code" END                                    AS cityCode,
               case
                   when town."ad_grad" = 2 THEN town."ad_name"
                   when county."ad_grad" = 2 THEN county."ad_name"
                   ELSE city."ad_name" END                                    AS cityName,
               case
                   when town."ad_grad" = 1 THEN town."ad_code"
                   when county."ad_grad" = 1 THEN county."ad_code"
                   when city."ad_grad" = 1 THEN city."ad_code"
                   ELSE province."ad_code" END                                AS provinceCode,
               case
                   when town."ad_grad" = 1 THEN town."ad_name"
                   when county."ad_grad" = 1 THEN county."ad_name"
                   when city."ad_grad" = 1 THEN city."ad_name"
                   ELSE province."ad_name" END                                AS provinceName
        FROM sjzt_MD."att_res_base" ARB
                 LEFT JOIN YWXT."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
                 LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = town."p_ad_code"
                 LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
                 LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = city."p_ad_code"
    </sql>
    <select id="getList" resultType="cn.gistack.sm.sjztmd.vo.TbProjectVO">
        SELECT
            *
        FROM SJZT_MD."tb_project" tb
        where
            tb."is_deleted" = 0
        <if test="vo.cityCode != null and vo.cityCode != ''">
            and tb."city_code" = #{vo.cityCode}
        </if>
        <if test="vo.isEstablishPlan != null and vo.isEstablishPlan !=''">
            and tb."is_establish_plan" = #{vo.isEstablishPlan}
        </if>
        <if test="vo.isGovPurchase != null and vo.isGovPurchase != ''">
            and tb."is_gov_purchase" = #{vo.isGovPurchase}
        </if>
        <if test="vo.contractDate != null and vo.contractDate != ''">
            and tb."contract_date" = #{vo.contractDate}
        </if>
        <if test="vo.startTime!=null and vo.startTime!=''">
            and tb."check_date">= #{vo.startTime}
        </if>
        <if test="vo.endTime!=null and vo.endTime!=''">
            and tb."check_date" &lt;= #{vo.endTime}
        </if>
    </select>
    <resultMap id="dto" type="cn.gistack.sm.sjztmd.dto.TbProjectDTO">
        <id property="guid" column="guid"/>
        <result property="tbYear" column="tb_year"/>
        <result property="cityCode" column="city_code"/>
        <result property="cityName" column="city_name"/>
        <result property="countyCode" column="county_code"/>
        <result property="countyName" column="county_name"/>
        <result property="centerFund" column="center_fund"/>
        <result property="localFund" column="local_fund"/>
        <result property="isEstablishPlan" column="is_establish_plan"/>
        <result property="planUrl" column="plan_url"/>
        <result property="planFeedBackUrl" column="plan_feed_back_url"/>
        <result property="isGovPurchase" column="is_gov_purchase"/>
        <result property="purchaseWay" column="purchase_way"/>
        <result property="govUrl" column="gov_url"/>
        <result property="contractDate" column="contract_date"/>
        <result property="contractUrl" column="contract_url"/>
        <result property="checkDate" column="check_date"/>
        <result property="isCheck" column="is_check"/>
        <result property="checkUrl" column="check_url"/>
        <result column="create_user" property="createUser"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="update_user" property="updateUser"/>
        <collection property="tbProjectScheduleList" ofType="cn.gistack.sm.sjztmd.entity.TbProjectSchedule">
            <id property="guid" column="scheduleId"/>
            <result property="year" column="year"/>
            <result property="month" column="month"/>
            <result property="actualFund" column="actual_fund"/>
        </collection>
    </resultMap>
    <select id="getDetail" resultMap="dto">
        SELECT
            tb.*,
            TPS."guid" as scheduleId,
            TPS."year",
            TPS."month",
            TPS."actual_fund"
        from sjzt_md."tb_project" tb
        LEFT JOIN SJZT_MD."tb_project_schedule" TPS ON TPS."tb_project_id" = tb."guid"
        where
            tb."is_deleted" = 0
            AND tb."guid" = #{id}
    </select>
    <select id="getStatisticsTable" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject">
        SELECT
            aab."guid" adCode,
            aab."ad_name" adName,
            paab."guid" padCode,
            paab."ad_name" padName,
            tps.curMonthActualFund,
            project.totalActualFund,
            resNum,
            bigNum,
            midNum,
            smallOneNum,
            smallTwoNum,
            dykeLength,
            levelOneLength,
            levelTwoLength,
            levelThreeLength,
            levelFourLength,
            levelFiveLength
        FROM YWXT."att_ad_base" aab
        left join (
            SELECT
                aab."guid",
                aab."ad_name",
                SUM(CASE WHEN arb."code" is not null then 1 else 0 end) as resNum ,
                SUM(CASE WHEN (arb."eng_scal" = '大(1)型' or arb."eng_scal" = '大(2)型') then 1 else 0 end) as bigNum ,
                SUM(CASE WHEN (arb."eng_scal" = '中型') then 1 else 0 end) as midNum ,
                SUM(CASE WHEN (arb."eng_scal" = '小(1)型') then 1 else 0 end) as smallOneNum ,
                SUM(CASE WHEN (arb."eng_scal" = '小(2)型') then 1 else 0 end) as smallTwoNum
            FROM YWXT."att_ad_base" aab
             LEFT JOIN
             (
                 <include refid="selectResByRegion"/>
             ) arb ON ((arb.townCode = aab."guid")or(arb.countyCode = aab."guid") or (arb.cityCode = aab."guid") or (arb.provinceCode = aab."guid") )
            group by aab."guid",aab."ad_name"
        )res on res."guid" = aab."guid"
        left join (
            SELECT
                aab."guid",
                aab."ad_name",
                SUM(CASE WHEN trd."guid" is not null then trd."dyke_length" else 0 END) as dykeLength,
                SUM(CASE WHEN trd."dyke_level" = '1级' THEN trd."dyke_length" ELSE 0 END) AS levelOneLength,
                SUM(CASE WHEN trd."dyke_level" = '2级' THEN trd."dyke_length" ELSE 0 END) AS levelTwoLength,
                SUM(CASE WHEN trd."dyke_level" = '3级' THEN trd."dyke_length" ELSE 0 END)AS levelThreeLength,
                SUM(CASE WHEN trd."dyke_level" = '4级' THEN trd."dyke_length" ELSE 0 END) AS levelFourLength,
                SUM(CASE WHEN trd."dyke_level" = '5级' THEN trd."dyke_length" ELSE 0 END) AS levelFiveLength
            FROM YWXT."att_ad_base" aab
                     LEFT JOIN (
                SELECT
                    trd."guid",
                    trd."dyke_length",
                    trd."dyke_level",
                    county."guid" as countyCode,
                    city."guid" as cityCode,
                    province."guid" as provinceCode
                FROM SJZT_MD."tb_res_dyke" trd
                         LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = trd."ad_code"
                         LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
                         LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = city."p_ad_code"
            )trd on ((trd.countyCode = aab."guid") or (trd.cityCode = aab."guid") or (trd.provinceCode = aab."guid"))
            group by aab."guid",aab."ad_name"
        )dyke on dyke."guid" = aab."guid"
        left join (
            SELECT
                aab."guid",
                aab."ad_name",
                SUM(CASE WHEN tb."actual_fund" then tb."actual_fund" else 0 end) as totalActualFund
            FROM YWXT."att_ad_base" aab
            LEFT JOIN (
                select
                tb."city_code" cityCode,
                tb."county_code" countyCode,
                province."guid" provinceCode,
                tps."actual_fund"
                from sjzt_md."tb_project" tb
                LEFT JOIN SJZT_MD."tb_project_schedule" tps on tps."tb_project_id" = tb."guid"
                LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = tb."city_code"
            )tb on ((tb.countyCode = aab."guid") or (tb.cityCode = aab."guid") or (tb.provinceCode = aab."guid"))
            group by aab."guid",aab."ad_name"
        ) project on project."guid" = aab."guid"
        left join (
            SELECT
            aab."guid",
            aab."ad_name",
            tb."actual_fund" curMonthActualFund
            FROM YWXT."att_ad_base" aab
            LEFT JOIN (
                select
                tb."city_code" cityCode,
                tb."county_code" countyCode,
                province."guid" provinceCode,
                tps."actual_fund"
                from sjzt_md."tb_project" tb
                LEFT JOIN SJZT_MD."tb_project_schedule" tps on tps."tb_project_id" = tb."guid"
                LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = tb."city_code"
                where
                    1=1
                    <if test="params.tbYear != null and params.tbYear !=''">
                    AND tps."year" = #{params.tbYear}
                    </if>
                  <if test="params.tbMonth != null and params.tbMonth != ''">
                      and tps."month" = #{params.tbMonth}
                  </if>
            )tb on ((tb.countyCode = aab."guid") or (tb.cityCode = aab."guid") or (tb.provinceCode = aab."guid"))
        ) tps on tps."guid" = aab."guid"
        left join ywxt."att_ad_base" paab on paab."guid" = aab."p_ad_code"
        where
            1=1
            <if test="params.adCode != null and params.adCode !=''">
            AND aab."p_ad_code" = #{params.adCode}
            </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectScheduleMapper.java
New file
@@ -0,0 +1,8 @@
package cn.gistack.sm.sjztmd.mapper;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface TbProjectScheduleMapper extends BaseMapper<TbProjectSchedule> {
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectScheduleMapper.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.gistack.sm.sjztmd.mapper.TbProjectScheduleMapper">
    <!--namespace根据自己需要创建的的mapper的路径和名称填写-->
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectScheduleService.java
New file
@@ -0,0 +1,8 @@
package cn.gistack.sm.sjztmd.service;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ITbProjectScheduleService extends IService<TbProjectSchedule> {
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java
New file
@@ -0,0 +1,21 @@
package cn.gistack.sm.sjztmd.service;
import cn.gistack.sm.sjztmd.dto.TbProjectDTO;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface ITbProjectService extends IService<TbProject> {
    Object getList(TbProjectVO tbProjectVO, IPage<TbProjectVO> page);
    Boolean updateCustomize(TbProjectDTO tbProjectDTO);
    TbProjectDTO getDetail(String id);
    List<StatisticsTableProject> getStatisticsTable(StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectScheduleServiceImpl.java
New file
@@ -0,0 +1,11 @@
package cn.gistack.sm.sjztmd.service.impl;
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import cn.gistack.sm.sjztmd.mapper.TbProjectScheduleMapper;
import cn.gistack.sm.sjztmd.service.ITbProjectScheduleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class TbProjectScheduleServiceImpl extends ServiceImpl<TbProjectScheduleMapper, TbProjectSchedule> implements ITbProjectScheduleService {
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java
New file
@@ -0,0 +1,75 @@
package cn.gistack.sm.sjztmd.service.impl;
import cn.gistack.sm.sjztmd.dto.TbProjectDTO;
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import cn.gistack.sm.sjztmd.mapper.TbProjectMapper;
import cn.gistack.sm.sjztmd.service.ITbProjectScheduleService;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
@DS("zt")
@AllArgsConstructor
public class TbProjectServiceImpl extends ServiceImpl<TbProjectMapper, TbProject> implements ITbProjectService {
    private final ITbProjectScheduleService tbProjectScheduleService;
    @Override
    public Object getList(TbProjectVO tbProjectVO, IPage<TbProjectVO> page) {
        if (StringUtil.isNotBlank(tbProjectVO.getIsPage())&&tbProjectVO.getIsPage().equals("1")){
            //isPage不为空且 isPage为1时分页
            return page.setRecords(baseMapper.getList(page,tbProjectVO));
        }
        //否则不分页
        return baseMapper.getList(null,tbProjectVO);
    }
    @Override
    public Boolean updateCustomize(TbProjectDTO tbProjectDTO) {
        //更新项目表
        boolean update = updateById(tbProjectDTO);
        //更新进度
        List<TbProjectSchedule> tbProjectScheduleList = tbProjectDTO.getTbProjectScheduleList();
        if (tbProjectScheduleList != null && tbProjectScheduleList.size()>0){
            tbProjectScheduleList.forEach(tbProjectSchedule -> {
                tbProjectSchedule.setTbProjectId(tbProjectDTO.getGuid());
                tbProjectScheduleService.saveOrUpdate(tbProjectSchedule);
            });
        }
        //删除去掉的进度
        if (StringUtil.isNotBlank(tbProjectDTO.getDeleteScheduleIds())){
            String ids = tbProjectDTO.getDeleteScheduleIds();
            tbProjectScheduleService.removeByIds(Arrays.asList(ids.split(",")));
        }
        return update;
    }
    @Override
    public TbProjectDTO getDetail(String id) {
        return baseMapper.getDetail(id);
    }
    @Override
    public List<StatisticsTableProject> getStatisticsTable(StatisticsParams statisticsParams) {
        return baseMapper.getStatisticsTable(statisticsParams);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java
@@ -17,5 +17,6 @@
    private String isCounty;
    private String tbMonth;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java
New file
@@ -0,0 +1,43 @@
package cn.gistack.sm.sjztmd.statisticsVO;
import lombok.Data;
@Data
/**
 * 项目管理统计表格
 */
public class StatisticsTableProject {
    private String adCode;
    private String adName;
    private String padCode;
    private String padName;
    //本月到位资金
    private double curMonthActualFund;
    //累计完成资金
    private double totalActualFund;
    private int resNum;
    private int bigNum;
    private int midNum;
    private int smallOneNum;
    private int smallTwoNum;
    private double dykeLength;
    private double levelOneLength;
    private double levelTwoLength;
    private double levelThreeLength;
    private double levelFourLength;
    private double levelFiveLength;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/TbProjectVO.java
New file
@@ -0,0 +1,15 @@
package cn.gistack.sm.sjztmd.vo;
import cn.gistack.sm.sjztmd.entity.TbProject;
import lombok.Data;
@Data
public class TbProjectVO extends TbProject {
    private String isPage;
    private String startTime;
    private String endTime;
}