瀏覽代碼

作业量统计代码提交

zx 4 月之前
父節點
當前提交
a68465a7dd

+ 74 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/controller/PdmWorkCompleStatisticsController.java

@@ -0,0 +1,74 @@
+package com.ruoyi.powerdistribution.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.powerdistribution.domain.vo.PdmWorkCompleStatisticsVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.powerdistribution.domain.PdmWorkCompleStatistics;
+import com.ruoyi.powerdistribution.service.IPdmWorkCompleStatisticsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 工程量完成情况Controller
+ *
+ * @author ruoyi
+ * @date 2025-01-22
+ */
+@RestController
+@Api(value = "PdmWorkCompleStatisticsController", tags = "工程量完成情况")
+@RequestMapping("/power/workCompleStatistics")
+public class PdmWorkCompleStatisticsController extends BaseController
+{
+    @Autowired
+    private IPdmWorkCompleStatisticsService pdmWorkCompleStatisticsService;
+
+    /**
+     * 查询工程量完成情况列表
+     */
+    @ApiOperation(value = "查询可靠性停电记录列表")
+    @GetMapping("/list")
+    public TableDataInfo list(PdmWorkCompleStatistics pdmWorkCompleStatistics)
+    {
+        startPage();
+        List<PdmWorkCompleStatisticsVO> list = pdmWorkCompleStatisticsService.selectPdmWorkCompleStatistics(pdmWorkCompleStatistics);
+        return getDataTable(list);
+    }
+    /**
+     * 导出工程量完成情况列表
+     */
+    @Log(title = "工程量完成情况", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PdmWorkCompleStatistics pdmWorkCompleStatistics)
+    {
+        List<PdmWorkCompleStatistics> list = pdmWorkCompleStatisticsService.selectPdmWorkCompleStatisticsList(pdmWorkCompleStatistics);
+        ExcelUtil<PdmWorkCompleStatistics> util = new ExcelUtil<PdmWorkCompleStatistics>(PdmWorkCompleStatistics.class);
+        util.exportExcel(response, list, "工程量完成情况数据");
+    }
+    /**
+     * 获取工程量完成情况详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(pdmWorkCompleStatisticsService.selectPdmWorkCompleStatisticsById(id));
+    }
+
+
+}

+ 500 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/PdmWorkCompleStatistics.java

@@ -0,0 +1,500 @@
+package com.ruoyi.powerdistribution.domain;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 工程量完成情况对象 pdm_work_comple_statistics
+ *
+ * @author ruoyi
+ * @date 2025-01-22
+ */
+public class PdmWorkCompleStatistics extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 批次工程ID  */
+    @Excel(name = "批次工程ID ")
+    private String batchId;
+
+    /** 批次工程名称 */
+    @Excel(name = "批次工程名称")
+    private String batchName;
+
+    /** 批次工程编号 */
+    @Excel(name = "批次工程编号")
+    private String batchCode;
+
+    /** 计划年度 */
+    @Excel(name = "计划年度")
+    private String planYear;
+
+    /** 工程ID */
+    private String id;
+
+    /** 单项工程编号 */
+    @Excel(name = "单项工程编号")
+    private String proCode;
+
+    /** 单项工程名称 */
+    @Excel(name = "单项工程名称")
+    private String proName;
+
+    /** 排序序号 */
+    @Excel(name = "排序序号")
+    private String sortSerial;
+
+    /** 设计批复村名 */
+    @Excel(name = "设计批复村名")
+    private String smallVillageName;
+
+    /** 合并村名 */
+    @Excel(name = "合并村名")
+    private String villageName;
+
+    /** 竣工标志 1已竣工0未竣工 */
+    @Excel(name = "竣工标志 1已竣工0未竣工")
+    private String completeFlag;
+
+    /** 项目类别:10农网;20城网 */
+    @Excel(name = "项目类别:10农网;20城网")
+    private String proCategory;
+
+    /** 10kV线路电缆计划量 */
+    @Excel(name = "10kV线路电缆计划量")
+    private BigDecimal lineCableNewPlanQt;
+
+    /** 10kV线路电缆累计完成量 */
+    @Excel(name = "10kV线路电缆累计完成量")
+    private BigDecimal lineCableNewAccuQt;
+
+    /** 10kV线路架空计划量 */
+    @Excel(name = "10kV线路架空计划量")
+    private BigDecimal lineOverhdNewPlanQt;
+
+    /** 10kV线路架空累计完成量 */
+    @Excel(name = "10kV线路架空累计完成量")
+    private BigDecimal lineOverhdNewAccuQt;
+
+    /** 配电变压器计划量 */
+    @Excel(name = "配电变压器计划量")
+    private BigDecimal distTransNewPlanQt;
+
+    /** 10kV线路电缆累计完成量 */
+    @Excel(name = "10kV线路电缆累计完成量")
+    private BigDecimal distTransNewAccuQt;
+
+    /** 低压线路计划量 */
+    @Excel(name = "低压线路计划量")
+    private BigDecimal lowVoltLinePlanQt;
+
+    /** 低压线路累计完成量 */
+    @Excel(name = "低压线路累计完成量")
+    private BigDecimal lowVoltLineAccuQt;
+
+    /** 杆塔基计划量 */
+    @Excel(name = "杆塔基计划量")
+    private BigDecimal towerPlanQt;
+
+    /** 杆塔基累计完成量 */
+    @Excel(name = "杆塔基累计完成量")
+    private BigDecimal towerAccuQt;
+
+    /** 环网柜台计划量 */
+    @Excel(name = "环网柜台计划量")
+    private BigDecimal ringCabinetPlanQt;
+
+    /** 环网柜台累计完成量 */
+    @Excel(name = "环网柜台累计完成量")
+    private BigDecimal ringCabinetAccuQt;
+
+    /** 柱上断路器台计划量 */
+    @Excel(name = "柱上断路器台计划量")
+    private BigDecimal poleTabPlanQt;
+
+    /** 柱上断路器台累计完成量 */
+    @Excel(name = "柱上断路器台累计完成量")
+    private BigDecimal poleTabAccuQt;
+
+    /** 标准单位编码  */
+    @Excel(name = "标准单位编码 ")
+    private String stdOrgNo;
+
+    /** 标准单位名称  */
+    @Excel(name = "标准单位名称 ")
+    private String stdOrgNm;
+
+    /** 标准地市单位编码  */
+    @Excel(name = "标准地市单位编码 ")
+    private String stdCityOrgNo;
+
+    /** 标准地市单位名称  */
+    @Excel(name = "标准地市单位名称 ")
+    private String stdCityOrgNm;
+
+    /** 标准区县单位编码  */
+    @Excel(name = "标准区县单位编码 ")
+    private String stdCountyOrgNo;
+
+    /** 标准区县单位名称  */
+    @Excel(name = "标准区县单位名称 ")
+    private String stdCountyOrgNm;
+
+    /** 数据日期  */
+    @Excel(name = "数据日期 ")
+    private String dataDt;
+
+    /** ETL时间戳  */
+    @Excel(name = "ETL时间戳 ")
+    private String etlTm;
+
+    public void setBatchId(String batchId)
+    {
+        this.batchId = batchId;
+    }
+
+    public String getBatchId()
+    {
+        return batchId;
+    }
+    public void setBatchName(String batchName)
+    {
+        this.batchName = batchName;
+    }
+
+    public String getBatchName()
+    {
+        return batchName;
+    }
+    public void setBatchCode(String batchCode)
+    {
+        this.batchCode = batchCode;
+    }
+
+    public String getBatchCode()
+    {
+        return batchCode;
+    }
+    public void setPlanYear(String planYear)
+    {
+        this.planYear = planYear;
+    }
+
+    public String getPlanYear()
+    {
+        return planYear;
+    }
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+    public void setProCode(String proCode)
+    {
+        this.proCode = proCode;
+    }
+
+    public String getProCode()
+    {
+        return proCode;
+    }
+    public void setProName(String proName)
+    {
+        this.proName = proName;
+    }
+
+    public String getProName()
+    {
+        return proName;
+    }
+    public void setSortSerial(String sortSerial)
+    {
+        this.sortSerial = sortSerial;
+    }
+
+    public String getSortSerial()
+    {
+        return sortSerial;
+    }
+    public void setSmallVillageName(String smallVillageName)
+    {
+        this.smallVillageName = smallVillageName;
+    }
+
+    public String getSmallVillageName()
+    {
+        return smallVillageName;
+    }
+    public void setVillageName(String villageName)
+    {
+        this.villageName = villageName;
+    }
+
+    public String getVillageName()
+    {
+        return villageName;
+    }
+    public void setCompleteFlag(String completeFlag)
+    {
+        this.completeFlag = completeFlag;
+    }
+
+    public String getCompleteFlag()
+    {
+        return completeFlag;
+    }
+    public void setProCategory(String proCategory)
+    {
+        this.proCategory = proCategory;
+    }
+
+    public String getProCategory()
+    {
+        return proCategory;
+    }
+    public void setLineCableNewPlanQt(BigDecimal lineCableNewPlanQt)
+    {
+        this.lineCableNewPlanQt = lineCableNewPlanQt;
+    }
+
+    public BigDecimal getLineCableNewPlanQt()
+    {
+        return lineCableNewPlanQt;
+    }
+    public void setLineCableNewAccuQt(BigDecimal lineCableNewAccuQt)
+    {
+        this.lineCableNewAccuQt = lineCableNewAccuQt;
+    }
+
+    public BigDecimal getLineCableNewAccuQt()
+    {
+        return lineCableNewAccuQt;
+    }
+    public void setLineOverhdNewPlanQt(BigDecimal lineOverhdNewPlanQt)
+    {
+        this.lineOverhdNewPlanQt = lineOverhdNewPlanQt;
+    }
+
+    public BigDecimal getLineOverhdNewPlanQt()
+    {
+        return lineOverhdNewPlanQt;
+    }
+    public void setLineOverhdNewAccuQt(BigDecimal lineOverhdNewAccuQt)
+    {
+        this.lineOverhdNewAccuQt = lineOverhdNewAccuQt;
+    }
+
+    public BigDecimal getLineOverhdNewAccuQt()
+    {
+        return lineOverhdNewAccuQt;
+    }
+    public void setDistTransNewPlanQt(BigDecimal distTransNewPlanQt)
+    {
+        this.distTransNewPlanQt = distTransNewPlanQt;
+    }
+
+    public BigDecimal getDistTransNewPlanQt()
+    {
+        return distTransNewPlanQt;
+    }
+    public void setDistTransNewAccuQt(BigDecimal distTransNewAccuQt)
+    {
+        this.distTransNewAccuQt = distTransNewAccuQt;
+    }
+
+    public BigDecimal getDistTransNewAccuQt()
+    {
+        return distTransNewAccuQt;
+    }
+    public void setLowVoltLinePlanQt(BigDecimal lowVoltLinePlanQt)
+    {
+        this.lowVoltLinePlanQt = lowVoltLinePlanQt;
+    }
+
+    public BigDecimal getLowVoltLinePlanQt()
+    {
+        return lowVoltLinePlanQt;
+    }
+    public void setLowVoltLineAccuQt(BigDecimal lowVoltLineAccuQt)
+    {
+        this.lowVoltLineAccuQt = lowVoltLineAccuQt;
+    }
+
+    public BigDecimal getLowVoltLineAccuQt()
+    {
+        return lowVoltLineAccuQt;
+    }
+    public void setTowerPlanQt(BigDecimal towerPlanQt)
+    {
+        this.towerPlanQt = towerPlanQt;
+    }
+
+    public BigDecimal getTowerPlanQt()
+    {
+        return towerPlanQt;
+    }
+    public void setTowerAccuQt(BigDecimal towerAccuQt)
+    {
+        this.towerAccuQt = towerAccuQt;
+    }
+
+    public BigDecimal getTowerAccuQt()
+    {
+        return towerAccuQt;
+    }
+    public void setRingCabinetPlanQt(BigDecimal ringCabinetPlanQt)
+    {
+        this.ringCabinetPlanQt = ringCabinetPlanQt;
+    }
+
+    public BigDecimal getRingCabinetPlanQt()
+    {
+        return ringCabinetPlanQt;
+    }
+    public void setRingCabinetAccuQt(BigDecimal ringCabinetAccuQt)
+    {
+        this.ringCabinetAccuQt = ringCabinetAccuQt;
+    }
+
+    public BigDecimal getRingCabinetAccuQt()
+    {
+        return ringCabinetAccuQt;
+    }
+    public void setPoleTabPlanQt(BigDecimal poleTabPlanQt)
+    {
+        this.poleTabPlanQt = poleTabPlanQt;
+    }
+
+    public BigDecimal getPoleTabPlanQt()
+    {
+        return poleTabPlanQt;
+    }
+    public void setPoleTabAccuQt(BigDecimal poleTabAccuQt)
+    {
+        this.poleTabAccuQt = poleTabAccuQt;
+    }
+
+    public BigDecimal getPoleTabAccuQt()
+    {
+        return poleTabAccuQt;
+    }
+    public void setStdOrgNo(String stdOrgNo)
+    {
+        this.stdOrgNo = stdOrgNo;
+    }
+
+    public String getStdOrgNo()
+    {
+        return stdOrgNo;
+    }
+    public void setStdOrgNm(String stdOrgNm)
+    {
+        this.stdOrgNm = stdOrgNm;
+    }
+
+    public String getStdOrgNm()
+    {
+        return stdOrgNm;
+    }
+    public void setStdCityOrgNo(String stdCityOrgNo)
+    {
+        this.stdCityOrgNo = stdCityOrgNo;
+    }
+
+    public String getStdCityOrgNo()
+    {
+        return stdCityOrgNo;
+    }
+    public void setStdCityOrgNm(String stdCityOrgNm)
+    {
+        this.stdCityOrgNm = stdCityOrgNm;
+    }
+
+    public String getStdCityOrgNm()
+    {
+        return stdCityOrgNm;
+    }
+    public void setStdCountyOrgNo(String stdCountyOrgNo)
+    {
+        this.stdCountyOrgNo = stdCountyOrgNo;
+    }
+
+    public String getStdCountyOrgNo()
+    {
+        return stdCountyOrgNo;
+    }
+    public void setStdCountyOrgNm(String stdCountyOrgNm)
+    {
+        this.stdCountyOrgNm = stdCountyOrgNm;
+    }
+
+    public String getStdCountyOrgNm()
+    {
+        return stdCountyOrgNm;
+    }
+    public void setDataDt(String dataDt)
+    {
+        this.dataDt = dataDt;
+    }
+
+    public String getDataDt()
+    {
+        return dataDt;
+    }
+    public void setEtlTm(String etlTm)
+    {
+        this.etlTm = etlTm;
+    }
+
+    public String getEtlTm()
+    {
+        return etlTm;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("batchId", getBatchId())
+            .append("batchName", getBatchName())
+            .append("batchCode", getBatchCode())
+            .append("planYear", getPlanYear())
+            .append("id", getId())
+            .append("proCode", getProCode())
+            .append("proName", getProName())
+            .append("sortSerial", getSortSerial())
+            .append("smallVillageName", getSmallVillageName())
+            .append("villageName", getVillageName())
+            .append("completeFlag", getCompleteFlag())
+            .append("proCategory", getProCategory())
+            .append("lineCableNewPlanQt", getLineCableNewPlanQt())
+            .append("lineCableNewAccuQt", getLineCableNewAccuQt())
+            .append("lineOverhdNewPlanQt", getLineOverhdNewPlanQt())
+            .append("lineOverhdNewAccuQt", getLineOverhdNewAccuQt())
+            .append("distTransNewPlanQt", getDistTransNewPlanQt())
+            .append("distTransNewAccuQt", getDistTransNewAccuQt())
+            .append("lowVoltLinePlanQt", getLowVoltLinePlanQt())
+            .append("lowVoltLineAccuQt", getLowVoltLineAccuQt())
+            .append("towerPlanQt", getTowerPlanQt())
+            .append("towerAccuQt", getTowerAccuQt())
+            .append("ringCabinetPlanQt", getRingCabinetPlanQt())
+            .append("ringCabinetAccuQt", getRingCabinetAccuQt())
+            .append("poleTabPlanQt", getPoleTabPlanQt())
+            .append("poleTabAccuQt", getPoleTabAccuQt())
+            .append("stdOrgNo", getStdOrgNo())
+            .append("stdOrgNm", getStdOrgNm())
+            .append("stdCityOrgNo", getStdCityOrgNo())
+            .append("stdCityOrgNm", getStdCityOrgNm())
+            .append("stdCountyOrgNo", getStdCountyOrgNo())
+            .append("stdCountyOrgNm", getStdCountyOrgNm())
+            .append("dataDt", getDataDt())
+            .append("etlTm", getEtlTm())
+            .toString();
+    }
+}

+ 72 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/vo/PdmWorkCompleStatisticsVO.java

@@ -0,0 +1,72 @@
+package com.ruoyi.powerdistribution.domain.vo;
+
+import com.ruoyi.powerdistribution.domain.PdmWorkCompleStatistics;
+
+import java.math.BigDecimal;
+
+public class PdmWorkCompleStatisticsVO extends PdmWorkCompleStatistics {
+
+    private BigDecimal lineCableNewAccuQtWork;
+    private BigDecimal lineOverhdNewAccuQtWork;
+    private BigDecimal distTransNewAccuQtWork;
+    private BigDecimal lowVoltLineAccuQtWork;
+    private BigDecimal towerAccuQtWork;
+    private BigDecimal ringCabinetAccuQtWork;
+    private BigDecimal poleTabAccuQtWork;
+
+    public BigDecimal getLineCableNewAccuQtWork() {
+        return lineCableNewAccuQtWork;
+    }
+
+    public void setLineCableNewAccuQtWork(BigDecimal lineCableNewAccuQtWork) {
+        this.lineCableNewAccuQtWork = lineCableNewAccuQtWork;
+    }
+
+    public BigDecimal getLineOverhdNewAccuQtWork() {
+        return lineOverhdNewAccuQtWork;
+    }
+
+    public void setLineOverhdNewAccuQtWork(BigDecimal lineOverhdNewAccuQtWork) {
+        this.lineOverhdNewAccuQtWork = lineOverhdNewAccuQtWork;
+    }
+
+    public BigDecimal getDistTransNewAccuQtWork() {
+        return distTransNewAccuQtWork;
+    }
+
+    public void setDistTransNewAccuQtWork(BigDecimal distTransNewAccuQtWork) {
+        this.distTransNewAccuQtWork = distTransNewAccuQtWork;
+    }
+
+    public BigDecimal getLowVoltLineAccuQtWork() {
+        return lowVoltLineAccuQtWork;
+    }
+
+    public void setLowVoltLineAccuQtWork(BigDecimal lowVoltLineAccuQtWork) {
+        this.lowVoltLineAccuQtWork = lowVoltLineAccuQtWork;
+    }
+
+    public BigDecimal getTowerAccuQtWork() {
+        return towerAccuQtWork;
+    }
+
+    public void setTowerAccuQtWork(BigDecimal towerAccuQtWork) {
+        this.towerAccuQtWork = towerAccuQtWork;
+    }
+
+    public BigDecimal getRingCabinetAccuQtWork() {
+        return ringCabinetAccuQtWork;
+    }
+
+    public void setRingCabinetAccuQtWork(BigDecimal ringCabinetAccuQtWork) {
+        this.ringCabinetAccuQtWork = ringCabinetAccuQtWork;
+    }
+
+    public BigDecimal getPoleTabAccuQtWork() {
+        return poleTabAccuQtWork;
+    }
+
+    public void setPoleTabAccuQtWork(BigDecimal poleTabAccuQtWork) {
+        this.poleTabAccuQtWork = poleTabAccuQtWork;
+    }
+}

+ 69 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/mapper/PdmWorkCompleStatisticsMapper.java

@@ -0,0 +1,69 @@
+package com.ruoyi.powerdistribution.mapper;
+
+import java.util.List;
+import com.ruoyi.powerdistribution.domain.PdmWorkCompleStatistics;
+import com.ruoyi.powerdistribution.domain.vo.PdmWorkCompleStatisticsVO;
+
+/**
+ * 工程量完成情况Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-01-22
+ */
+public interface PdmWorkCompleStatisticsMapper
+{
+    /**
+     * 查询工程量完成情况
+     *
+     * @param id 工程量完成情况主键
+     * @return 工程量完成情况
+     */
+    public PdmWorkCompleStatistics selectPdmWorkCompleStatisticsById(String id);
+
+    /**
+     * 查询工程量完成情况列表
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 工程量完成情况集合
+     */
+    public List<PdmWorkCompleStatistics> selectPdmWorkCompleStatisticsList(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 新增工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    public int insertPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 修改工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    public int updatePdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 删除工程量完成情况
+     *
+     * @param id 工程量完成情况主键
+     * @return 结果
+     */
+    public int deletePdmWorkCompleStatisticsById(String id);
+
+    /**
+     * 批量删除工程量完成情况
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePdmWorkCompleStatisticsByIds(String[] ids);
+
+    /**
+     * 工程量统计和作业数据
+     * @param pdmWorkCompleStatistics
+     * @return
+     */
+    List<PdmWorkCompleStatisticsVO> selectPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+}

+ 69 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/service/IPdmWorkCompleStatisticsService.java

@@ -0,0 +1,69 @@
+package com.ruoyi.powerdistribution.service;
+
+import java.util.List;
+import com.ruoyi.powerdistribution.domain.PdmWorkCompleStatistics;
+import com.ruoyi.powerdistribution.domain.vo.PdmWorkCompleStatisticsVO;
+
+/**
+ * 工程量完成情况Service接口
+ *
+ * @author ruoyi
+ * @date 2025-01-22
+ */
+public interface IPdmWorkCompleStatisticsService
+{
+    /**
+     * 查询工程量完成情况
+     *
+     * @param id 工程量完成情况主键
+     * @return 工程量完成情况
+     */
+    public PdmWorkCompleStatistics selectPdmWorkCompleStatisticsById(String id);
+
+    /**
+     * 查询工程量完成情况列表
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 工程量完成情况集合
+     */
+    public List<PdmWorkCompleStatistics> selectPdmWorkCompleStatisticsList(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 新增工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    public int insertPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 修改工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    public int updatePdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+
+    /**
+     * 批量删除工程量完成情况
+     *
+     * @param ids 需要删除的工程量完成情况主键集合
+     * @return 结果
+     */
+    public int deletePdmWorkCompleStatisticsByIds(String[] ids);
+
+    /**
+     * 删除工程量完成情况信息
+     *
+     * @param id 工程量完成情况主键
+     * @return 结果
+     */
+    public int deletePdmWorkCompleStatisticsById(String id);
+
+    /**
+     * 工程量统计和作业数据
+     * @param pdmWorkCompleStatistics
+     * @return
+     */
+    List<PdmWorkCompleStatisticsVO> selectPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics);
+}

+ 100 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/service/impl/PdmWorkCompleStatisticsServiceImpl.java

@@ -0,0 +1,100 @@
+package com.ruoyi.powerdistribution.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.powerdistribution.domain.vo.PdmWorkCompleStatisticsVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.powerdistribution.mapper.PdmWorkCompleStatisticsMapper;
+import com.ruoyi.powerdistribution.domain.PdmWorkCompleStatistics;
+import com.ruoyi.powerdistribution.service.IPdmWorkCompleStatisticsService;
+
+/**
+ * 工程量完成情况Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-01-22
+ */
+@Service
+public class PdmWorkCompleStatisticsServiceImpl implements IPdmWorkCompleStatisticsService
+{
+    @Autowired
+    private PdmWorkCompleStatisticsMapper pdmWorkCompleStatisticsMapper;
+
+    /**
+     * 查询工程量完成情况
+     *
+     * @param id 工程量完成情况主键
+     * @return 工程量完成情况
+     */
+    @Override
+    public PdmWorkCompleStatistics selectPdmWorkCompleStatisticsById(String id)
+    {
+        return pdmWorkCompleStatisticsMapper.selectPdmWorkCompleStatisticsById(id);
+    }
+
+    /**
+     * 查询工程量完成情况列表
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 工程量完成情况
+     */
+    @Override
+    public List<PdmWorkCompleStatistics> selectPdmWorkCompleStatisticsList(PdmWorkCompleStatistics pdmWorkCompleStatistics)
+    {
+        return pdmWorkCompleStatisticsMapper.selectPdmWorkCompleStatisticsList(pdmWorkCompleStatistics);
+    }
+
+    /**
+     * 新增工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    @Override
+    public int insertPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics)
+    {
+        return pdmWorkCompleStatisticsMapper.insertPdmWorkCompleStatistics(pdmWorkCompleStatistics);
+    }
+
+    /**
+     * 修改工程量完成情况
+     *
+     * @param pdmWorkCompleStatistics 工程量完成情况
+     * @return 结果
+     */
+    @Override
+    public int updatePdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics)
+    {
+        return pdmWorkCompleStatisticsMapper.updatePdmWorkCompleStatistics(pdmWorkCompleStatistics);
+    }
+
+    /**
+     * 批量删除工程量完成情况
+     *
+     * @param ids 需要删除的工程量完成情况主键
+     * @return 结果
+     */
+    @Override
+    public int deletePdmWorkCompleStatisticsByIds(String[] ids)
+    {
+        return pdmWorkCompleStatisticsMapper.deletePdmWorkCompleStatisticsByIds(ids);
+    }
+
+    /**
+     * 删除工程量完成情况信息
+     *
+     * @param id 工程量完成情况主键
+     * @return 结果
+     */
+    @Override
+    public int deletePdmWorkCompleStatisticsById(String id)
+    {
+        return pdmWorkCompleStatisticsMapper.deletePdmWorkCompleStatisticsById(id);
+    }
+
+    @Override
+    public List<PdmWorkCompleStatisticsVO> selectPdmWorkCompleStatistics(PdmWorkCompleStatistics pdmWorkCompleStatistics) {
+        return pdmWorkCompleStatisticsMapper.selectPdmWorkCompleStatistics(pdmWorkCompleStatistics);
+    }
+}

+ 293 - 0
ruoyi-powerdistribution/src/main/resources/mapper/powerdistribution/PdmWorkCompleStatisticsMapper.xml

@@ -0,0 +1,293 @@
+<?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.powerdistribution.mapper.PdmWorkCompleStatisticsMapper">
+
+    <resultMap type="PdmWorkCompleStatistics" id="PdmWorkCompleStatisticsResult">
+        <result property="batchId"    column="batch_id"    />
+        <result property="batchName"    column="batch_name"    />
+        <result property="batchCode"    column="batch_code"    />
+        <result property="planYear"    column="plan_year"    />
+        <result property="id"    column="id"    />
+        <result property="proCode"    column="pro_code"    />
+        <result property="proName"    column="pro_name"    />
+        <result property="sortSerial"    column="sort_serial"    />
+        <result property="smallVillageName"    column="small_village_name"    />
+        <result property="villageName"    column="village_name"    />
+        <result property="completeFlag"    column="complete_flag"    />
+        <result property="proCategory"    column="pro_category"    />
+        <result property="lineCableNewPlanQt"    column="line_cable_new_plan_qt"    />
+        <result property="lineCableNewAccuQt"    column="line_cable_new_accu_qt"    />
+        <result property="lineOverhdNewPlanQt"    column="line_overhd_new_plan_qt"    />
+        <result property="lineOverhdNewAccuQt"    column="line_overhd_new_accu_qt"    />
+        <result property="distTransNewPlanQt"    column="dist_trans_new_plan_qt"    />
+        <result property="distTransNewAccuQt"    column="dist_trans_new_accu_qt"    />
+        <result property="lowVoltLinePlanQt"    column="low_volt_line_plan_qt"    />
+        <result property="lowVoltLineAccuQt"    column="low_volt_line_accu_qt"    />
+        <result property="towerPlanQt"    column="tower_plan_qt"    />
+        <result property="towerAccuQt"    column="tower_accu_qt"    />
+        <result property="ringCabinetPlanQt"    column="ring_cabinet_plan_qt"    />
+        <result property="ringCabinetAccuQt"    column="ring_cabinet_accu_qt"    />
+        <result property="poleTabPlanQt"    column="pole_tab_plan_qt"    />
+        <result property="poleTabAccuQt"    column="pole_tab_accu_qt"    />
+        <result property="stdOrgNo"    column="std_org_no"    />
+        <result property="stdOrgNm"    column="std_org_nm"    />
+        <result property="stdCityOrgNo"    column="std_city_org_no"    />
+        <result property="stdCityOrgNm"    column="std_city_org_nm"    />
+        <result property="stdCountyOrgNo"    column="std_county_org_no"    />
+        <result property="stdCountyOrgNm"    column="std_county_org_nm"    />
+        <result property="dataDt"    column="data_dt"    />
+        <result property="etlTm"    column="etl_tm"    />
+
+        <result property="lineCableNewAccuQtWork"    column="line_cable_new_accu_qt_work"    />
+        <result property="lineOverhdNewAccuQtWork"    column="line_overhd_new_accu_qt_work"    />
+        <result property="distTransNewAccuQtWork"    column="dist_trans_new_accu_qt_work"    />
+        <result property="lowVoltLineAccuQtWork"    column="low_volt_line_accu_qt_work"    />
+        <result property="towerAccuQtWork"    column="tower_accu_qt_work"    />
+        <result property="ringCabinetAccuQtWork"    column="ring_cabinet_accu_qt_work"    />
+        <result property="poleTabAccuQtWork"    column="pole_tab_accu_qt_work"    />
+
+    </resultMap>
+
+    <sql id="selectPdmWorkCompleStatisticsVo">
+        select batch_id, batch_name, batch_code, plan_year, id, pro_code, pro_name, sort_serial, small_village_name, village_name, complete_flag, pro_category, line_cable_new_plan_qt, line_cable_new_accu_qt, line_overhd_new_plan_qt, line_overhd_new_accu_qt, dist_trans_new_plan_qt, dist_trans_new_accu_qt, low_volt_line_plan_qt, low_volt_line_accu_qt, tower_plan_qt, tower_accu_qt, ring_cabinet_plan_qt, ring_cabinet_accu_qt, pole_tab_plan_qt, pole_tab_accu_qt, std_org_no, std_org_nm, std_city_org_no, std_city_org_nm, std_county_org_no, std_county_org_nm, data_dt, etl_tm from pdm_work_comple_statistics
+    </sql>
+
+    <select id="selectPdmWorkCompleStatisticsList" parameterType="PdmWorkCompleStatistics" resultMap="PdmWorkCompleStatisticsResult">
+        <include refid="selectPdmWorkCompleStatisticsVo"/>
+        <where>
+            <if test="batchId != null  and batchId != ''"> and batch_id = #{batchId}</if>
+            <if test="batchName != null  and batchName != ''"> and batch_name like concat('%', #{batchName}, '%')</if>
+            <if test="batchCode != null  and batchCode != ''"> and batch_code = #{batchCode}</if>
+            <if test="planYear != null  and planYear != ''"> and plan_year = #{planYear}</if>
+            <if test="proCode != null  and proCode != ''"> and pro_code = #{proCode}</if>
+            <if test="proName != null  and proName != ''"> and pro_name like concat('%', #{proName}, '%')</if>
+            <if test="sortSerial != null  and sortSerial != ''"> and sort_serial = #{sortSerial}</if>
+            <if test="smallVillageName != null  and smallVillageName != ''"> and small_village_name like concat('%', #{smallVillageName}, '%')</if>
+            <if test="villageName != null  and villageName != ''"> and village_name like concat('%', #{villageName}, '%')</if>
+            <if test="completeFlag != null  and completeFlag != ''"> and complete_flag = #{completeFlag}</if>
+            <if test="proCategory != null  and proCategory != ''"> and pro_category = #{proCategory}</if>
+            <if test="lineCableNewPlanQt != null "> and line_cable_new_plan_qt = #{lineCableNewPlanQt}</if>
+            <if test="lineCableNewAccuQt != null "> and line_cable_new_accu_qt = #{lineCableNewAccuQt}</if>
+            <if test="lineOverhdNewPlanQt != null "> and line_overhd_new_plan_qt = #{lineOverhdNewPlanQt}</if>
+            <if test="lineOverhdNewAccuQt != null "> and line_overhd_new_accu_qt = #{lineOverhdNewAccuQt}</if>
+            <if test="distTransNewPlanQt != null "> and dist_trans_new_plan_qt = #{distTransNewPlanQt}</if>
+            <if test="distTransNewAccuQt != null "> and dist_trans_new_accu_qt = #{distTransNewAccuQt}</if>
+            <if test="lowVoltLinePlanQt != null "> and low_volt_line_plan_qt = #{lowVoltLinePlanQt}</if>
+            <if test="lowVoltLineAccuQt != null "> and low_volt_line_accu_qt = #{lowVoltLineAccuQt}</if>
+            <if test="towerPlanQt != null "> and tower_plan_qt = #{towerPlanQt}</if>
+            <if test="towerAccuQt != null "> and tower_accu_qt = #{towerAccuQt}</if>
+            <if test="ringCabinetPlanQt != null "> and ring_cabinet_plan_qt = #{ringCabinetPlanQt}</if>
+            <if test="ringCabinetAccuQt != null "> and ring_cabinet_accu_qt = #{ringCabinetAccuQt}</if>
+            <if test="poleTabPlanQt != null "> and pole_tab_plan_qt = #{poleTabPlanQt}</if>
+            <if test="poleTabAccuQt != null "> and pole_tab_accu_qt = #{poleTabAccuQt}</if>
+            <if test="stdOrgNo != null  and stdOrgNo != ''"> and std_org_no = #{stdOrgNo}</if>
+            <if test="stdOrgNm != null  and stdOrgNm != ''"> and std_org_nm = #{stdOrgNm}</if>
+            <if test="stdCityOrgNo != null  and stdCityOrgNo != ''"> and std_city_org_no = #{stdCityOrgNo}</if>
+            <if test="stdCityOrgNm != null  and stdCityOrgNm != ''"> and std_city_org_nm = #{stdCityOrgNm}</if>
+            <if test="stdCountyOrgNo != null  and stdCountyOrgNo != ''"> and std_county_org_no = #{stdCountyOrgNo}</if>
+            <if test="stdCountyOrgNm != null  and stdCountyOrgNm != ''"> and std_county_org_nm = #{stdCountyOrgNm}</if>
+            <if test="dataDt != null  and dataDt != ''"> and data_dt = #{dataDt}</if>
+            <if test="etlTm != null  and etlTm != ''"> and etl_tm = #{etlTm}</if>
+        </where>
+    </select>
+
+
+    <select id="selectPdmWorkCompleStatistics" parameterType="PdmWorkCompleStatistics" resultType="com.ruoyi.powerdistribution.domain.vo.PdmWorkCompleStatisticsVO">
+
+        select batch_id, batch_name, batch_code, plan_year, t1.id, pro_code, pro_name, sort_serial, small_village_name, village_name, complete_flag, pro_category, line_cable_new_plan_qt, line_cable_new_accu_qt, line_overhd_new_plan_qt, line_overhd_new_accu_qt, dist_trans_new_plan_qt, dist_trans_new_accu_qt, low_volt_line_plan_qt, low_volt_line_accu_qt, tower_plan_qt, tower_accu_qt, ring_cabinet_plan_qt, ring_cabinet_accu_qt, pole_tab_plan_qt, pole_tab_accu_qt, std_org_no, std_org_nm, std_city_org_no, std_city_org_nm, std_county_org_no, std_county_org_nm, data_dt, etl_tm,
+        IFNULL(t2.line_cable_new_accu_qt_work,0) line_cable_new_accu_qt_work,
+        IFNULL(t2.line_overhd_new_accu_qt_work,0) line_overhd_new_accu_qt_work,
+        IFNULL(t2.dist_trans_new_accu_qt_work,0) dist_trans_new_accu_qt_work,
+        IFNULL(t2.low_volt_line_accu_qt_work,0) low_volt_line_accu_qt_work,
+        IFNULL(t2.ring_cabinet_accu_qt_work,0) ring_cabinet_accu_qt_work,
+        IFNULL(t2.pole_tab_accu_qt_work,0) pole_tab_accu_qt_work
+        from pdm_work_comple_statistics t1
+        LEFT JOIN (
+        select proj_id,
+        sum(if(volt_lvl_cd = '2001008' and ((op_content like '%新建%' and op_content like '%电缆%') or (op_content like '%更换%' and op_content like '%电缆%')or (op_content like '%拆除%' and op_content like '%电缆%')),1,0)) line_cable_new_accu_qt_work,
+        sum(if(volt_lvl_cd = '2001008' and ((op_content like '%新建%' and op_content like '%导线%') or (op_content like '%更换%' and op_content like '%导线%')or (op_content like '%拆除%' and op_content like '%导线%')),1,0)) line_overhd_new_accu_qt_work,
+        sum(if(volt_lvl_cd = '2001008' and ((op_content like '%更换%' and op_content like '%变压器%') or (op_content like '%更换%' and op_content like '%变压器%')or (op_content like '%拆除%' and op_content like '%变压器%')),1,0)) dist_trans_new_accu_qt_work,
+        sum(if(volt_lvl_cd = '2001009' and ((op_content like '%新建%' and op_content like '%电缆%') or (op_content like '%更换%' and op_content like '%电缆%')or (op_content like '%拆除%' and op_content like '%电缆%')),1,0)) low_volt_line_accu_qt_work,
+        sum(if((op_content like '%新建%' and op_content like '%环网%') or (op_content like '%导线%' and op_content like '%环网%')or (op_content like '%拆除%' and op_content like '%环网%'),1,0)) ring_cabinet_accu_qt_work,
+        sum(if(volt_lvl_cd = '2001008' and
+        ((op_content like '%新建%' and op_content like '%断路器%') or (op_content like '%更换%' and op_content like '%断路器%') or (op_content like '%拆除%' and op_content like '%断路器%')
+        or (op_content like '%新建%' and op_content like '%开关%') or (op_content like '%更换%' and op_content like '%开关%') or (op_content like '%拆除%' and op_content like '%开关%')
+        or(op_content like '%新建%' and op_content like '%刀闸%') or (op_content like '%更换%' and op_content like '%刀闸%') or (op_content like '%拆除%' and op_content like '%刀闸%')
+        or (op_content like '%新建%' and op_content like '%避雷器%') or (op_content like '%更换%' and op_content like '%避雷器%') or (op_content like '%拆除%' and op_content like '%避雷器%')
+        ),1,0)) pole_tab_accu_qt_work
+        FROM pdm_work_plan
+        GROUP BY proj_id
+        ) t2 on t1.id = t2.proj_id
+
+        <where>
+            <if test="batchId != null  and batchId != ''"> and batch_id = #{batchId}</if>
+            <if test="batchName != null  and batchName != ''"> and batch_name like concat('%', #{batchName}, '%')</if>
+            <if test="batchCode != null  and batchCode != ''"> and batch_code = #{batchCode}</if>
+            <if test="planYear != null  and planYear != ''"> and plan_year = #{planYear}</if>
+            <if test="proCode != null  and proCode != ''"> and pro_code = #{proCode}</if>
+            <if test="proName != null  and proName != ''"> and pro_name like concat('%', #{proName}, '%')</if>
+            <if test="sortSerial != null  and sortSerial != ''"> and sort_serial = #{sortSerial}</if>
+            <if test="smallVillageName != null  and smallVillageName != ''"> and small_village_name like concat('%', #{smallVillageName}, '%')</if>
+            <if test="villageName != null  and villageName != ''"> and village_name like concat('%', #{villageName}, '%')</if>
+            <if test="completeFlag != null  and completeFlag != ''"> and complete_flag = #{completeFlag}</if>
+            <if test="proCategory != null  and proCategory != ''"> and pro_category = #{proCategory}</if>
+            <if test="lineCableNewPlanQt != null "> and line_cable_new_plan_qt = #{lineCableNewPlanQt}</if>
+            <if test="lineCableNewAccuQt != null "> and line_cable_new_accu_qt = #{lineCableNewAccuQt}</if>
+            <if test="lineOverhdNewPlanQt != null "> and line_overhd_new_plan_qt = #{lineOverhdNewPlanQt}</if>
+            <if test="lineOverhdNewAccuQt != null "> and line_overhd_new_accu_qt = #{lineOverhdNewAccuQt}</if>
+            <if test="distTransNewPlanQt != null "> and dist_trans_new_plan_qt = #{distTransNewPlanQt}</if>
+            <if test="distTransNewAccuQt != null "> and dist_trans_new_accu_qt = #{distTransNewAccuQt}</if>
+            <if test="lowVoltLinePlanQt != null "> and low_volt_line_plan_qt = #{lowVoltLinePlanQt}</if>
+            <if test="lowVoltLineAccuQt != null "> and low_volt_line_accu_qt = #{lowVoltLineAccuQt}</if>
+            <if test="towerPlanQt != null "> and tower_plan_qt = #{towerPlanQt}</if>
+            <if test="towerAccuQt != null "> and tower_accu_qt = #{towerAccuQt}</if>
+            <if test="ringCabinetPlanQt != null "> and ring_cabinet_plan_qt = #{ringCabinetPlanQt}</if>
+            <if test="ringCabinetAccuQt != null "> and ring_cabinet_accu_qt = #{ringCabinetAccuQt}</if>
+            <if test="poleTabPlanQt != null "> and pole_tab_plan_qt = #{poleTabPlanQt}</if>
+            <if test="poleTabAccuQt != null "> and pole_tab_accu_qt = #{poleTabAccuQt}</if>
+            <if test="stdOrgNo != null  and stdOrgNo != ''"> and std_org_no = #{stdOrgNo}</if>
+            <if test="stdOrgNm != null  and stdOrgNm != ''"> and std_org_nm = #{stdOrgNm}</if>
+            <if test="stdCityOrgNo != null  and stdCityOrgNo != ''"> and std_city_org_no = #{stdCityOrgNo}</if>
+            <if test="stdCityOrgNm != null  and stdCityOrgNm != ''"> and std_city_org_nm = #{stdCityOrgNm}</if>
+            <if test="stdCountyOrgNo != null  and stdCountyOrgNo != ''"> and std_county_org_no = #{stdCountyOrgNo}</if>
+            <if test="stdCountyOrgNm != null  and stdCountyOrgNm != ''"> and std_county_org_nm = #{stdCountyOrgNm}</if>
+            <if test="dataDt != null  and dataDt != ''"> and data_dt = #{dataDt}</if>
+            <if test="etlTm != null  and etlTm != ''"> and etl_tm = #{etlTm}</if>
+        </where>
+    </select>
+
+    <select id="selectPdmWorkCompleStatisticsById" parameterType="String" resultMap="PdmWorkCompleStatisticsResult">
+        <include refid="selectPdmWorkCompleStatisticsVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertPdmWorkCompleStatistics" parameterType="PdmWorkCompleStatistics">
+        insert into pdm_work_comple_statistics
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="batchId != null">batch_id,</if>
+            <if test="batchName != null">batch_name,</if>
+            <if test="batchCode != null">batch_code,</if>
+            <if test="planYear != null">plan_year,</if>
+            <if test="id != null">id,</if>
+            <if test="proCode != null">pro_code,</if>
+            <if test="proName != null">pro_name,</if>
+            <if test="sortSerial != null">sort_serial,</if>
+            <if test="smallVillageName != null">small_village_name,</if>
+            <if test="villageName != null">village_name,</if>
+            <if test="completeFlag != null">complete_flag,</if>
+            <if test="proCategory != null">pro_category,</if>
+            <if test="lineCableNewPlanQt != null">line_cable_new_plan_qt,</if>
+            <if test="lineCableNewAccuQt != null">line_cable_new_accu_qt,</if>
+            <if test="lineOverhdNewPlanQt != null">line_overhd_new_plan_qt,</if>
+            <if test="lineOverhdNewAccuQt != null">line_overhd_new_accu_qt,</if>
+            <if test="distTransNewPlanQt != null">dist_trans_new_plan_qt,</if>
+            <if test="distTransNewAccuQt != null">dist_trans_new_accu_qt,</if>
+            <if test="lowVoltLinePlanQt != null">low_volt_line_plan_qt,</if>
+            <if test="lowVoltLineAccuQt != null">low_volt_line_accu_qt,</if>
+            <if test="towerPlanQt != null">tower_plan_qt,</if>
+            <if test="towerAccuQt != null">tower_accu_qt,</if>
+            <if test="ringCabinetPlanQt != null">ring_cabinet_plan_qt,</if>
+            <if test="ringCabinetAccuQt != null">ring_cabinet_accu_qt,</if>
+            <if test="poleTabPlanQt != null">pole_tab_plan_qt,</if>
+            <if test="poleTabAccuQt != null">pole_tab_accu_qt,</if>
+            <if test="stdOrgNo != null">std_org_no,</if>
+            <if test="stdOrgNm != null">std_org_nm,</if>
+            <if test="stdCityOrgNo != null">std_city_org_no,</if>
+            <if test="stdCityOrgNm != null">std_city_org_nm,</if>
+            <if test="stdCountyOrgNo != null">std_county_org_no,</if>
+            <if test="stdCountyOrgNm != null">std_county_org_nm,</if>
+            <if test="dataDt != null">data_dt,</if>
+            <if test="etlTm != null">etl_tm,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="batchId != null">#{batchId},</if>
+            <if test="batchName != null">#{batchName},</if>
+            <if test="batchCode != null">#{batchCode},</if>
+            <if test="planYear != null">#{planYear},</if>
+            <if test="id != null">#{id},</if>
+            <if test="proCode != null">#{proCode},</if>
+            <if test="proName != null">#{proName},</if>
+            <if test="sortSerial != null">#{sortSerial},</if>
+            <if test="smallVillageName != null">#{smallVillageName},</if>
+            <if test="villageName != null">#{villageName},</if>
+            <if test="completeFlag != null">#{completeFlag},</if>
+            <if test="proCategory != null">#{proCategory},</if>
+            <if test="lineCableNewPlanQt != null">#{lineCableNewPlanQt},</if>
+            <if test="lineCableNewAccuQt != null">#{lineCableNewAccuQt},</if>
+            <if test="lineOverhdNewPlanQt != null">#{lineOverhdNewPlanQt},</if>
+            <if test="lineOverhdNewAccuQt != null">#{lineOverhdNewAccuQt},</if>
+            <if test="distTransNewPlanQt != null">#{distTransNewPlanQt},</if>
+            <if test="distTransNewAccuQt != null">#{distTransNewAccuQt},</if>
+            <if test="lowVoltLinePlanQt != null">#{lowVoltLinePlanQt},</if>
+            <if test="lowVoltLineAccuQt != null">#{lowVoltLineAccuQt},</if>
+            <if test="towerPlanQt != null">#{towerPlanQt},</if>
+            <if test="towerAccuQt != null">#{towerAccuQt},</if>
+            <if test="ringCabinetPlanQt != null">#{ringCabinetPlanQt},</if>
+            <if test="ringCabinetAccuQt != null">#{ringCabinetAccuQt},</if>
+            <if test="poleTabPlanQt != null">#{poleTabPlanQt},</if>
+            <if test="poleTabAccuQt != null">#{poleTabAccuQt},</if>
+            <if test="stdOrgNo != null">#{stdOrgNo},</if>
+            <if test="stdOrgNm != null">#{stdOrgNm},</if>
+            <if test="stdCityOrgNo != null">#{stdCityOrgNo},</if>
+            <if test="stdCityOrgNm != null">#{stdCityOrgNm},</if>
+            <if test="stdCountyOrgNo != null">#{stdCountyOrgNo},</if>
+            <if test="stdCountyOrgNm != null">#{stdCountyOrgNm},</if>
+            <if test="dataDt != null">#{dataDt},</if>
+            <if test="etlTm != null">#{etlTm},</if>
+         </trim>
+    </insert>
+
+    <update id="updatePdmWorkCompleStatistics" parameterType="PdmWorkCompleStatistics">
+        update pdm_work_comple_statistics
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="batchId != null">batch_id = #{batchId},</if>
+            <if test="batchName != null">batch_name = #{batchName},</if>
+            <if test="batchCode != null">batch_code = #{batchCode},</if>
+            <if test="planYear != null">plan_year = #{planYear},</if>
+            <if test="proCode != null">pro_code = #{proCode},</if>
+            <if test="proName != null">pro_name = #{proName},</if>
+            <if test="sortSerial != null">sort_serial = #{sortSerial},</if>
+            <if test="smallVillageName != null">small_village_name = #{smallVillageName},</if>
+            <if test="villageName != null">village_name = #{villageName},</if>
+            <if test="completeFlag != null">complete_flag = #{completeFlag},</if>
+            <if test="proCategory != null">pro_category = #{proCategory},</if>
+            <if test="lineCableNewPlanQt != null">line_cable_new_plan_qt = #{lineCableNewPlanQt},</if>
+            <if test="lineCableNewAccuQt != null">line_cable_new_accu_qt = #{lineCableNewAccuQt},</if>
+            <if test="lineOverhdNewPlanQt != null">line_overhd_new_plan_qt = #{lineOverhdNewPlanQt},</if>
+            <if test="lineOverhdNewAccuQt != null">line_overhd_new_accu_qt = #{lineOverhdNewAccuQt},</if>
+            <if test="distTransNewPlanQt != null">dist_trans_new_plan_qt = #{distTransNewPlanQt},</if>
+            <if test="distTransNewAccuQt != null">dist_trans_new_accu_qt = #{distTransNewAccuQt},</if>
+            <if test="lowVoltLinePlanQt != null">low_volt_line_plan_qt = #{lowVoltLinePlanQt},</if>
+            <if test="lowVoltLineAccuQt != null">low_volt_line_accu_qt = #{lowVoltLineAccuQt},</if>
+            <if test="towerPlanQt != null">tower_plan_qt = #{towerPlanQt},</if>
+            <if test="towerAccuQt != null">tower_accu_qt = #{towerAccuQt},</if>
+            <if test="ringCabinetPlanQt != null">ring_cabinet_plan_qt = #{ringCabinetPlanQt},</if>
+            <if test="ringCabinetAccuQt != null">ring_cabinet_accu_qt = #{ringCabinetAccuQt},</if>
+            <if test="poleTabPlanQt != null">pole_tab_plan_qt = #{poleTabPlanQt},</if>
+            <if test="poleTabAccuQt != null">pole_tab_accu_qt = #{poleTabAccuQt},</if>
+            <if test="stdOrgNo != null">std_org_no = #{stdOrgNo},</if>
+            <if test="stdOrgNm != null">std_org_nm = #{stdOrgNm},</if>
+            <if test="stdCityOrgNo != null">std_city_org_no = #{stdCityOrgNo},</if>
+            <if test="stdCityOrgNm != null">std_city_org_nm = #{stdCityOrgNm},</if>
+            <if test="stdCountyOrgNo != null">std_county_org_no = #{stdCountyOrgNo},</if>
+            <if test="stdCountyOrgNm != null">std_county_org_nm = #{stdCountyOrgNm},</if>
+            <if test="dataDt != null">data_dt = #{dataDt},</if>
+            <if test="etlTm != null">etl_tm = #{etlTm},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deletePdmWorkCompleStatisticsById" parameterType="String">
+        delete from pdm_work_comple_statistics where id = #{id}
+    </delete>
+
+    <delete id="deletePdmWorkCompleStatisticsByIds" parameterType="String">
+        delete from pdm_work_comple_statistics where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>