Parcourir la source

Merge branch 'master' into prod

buzhanyi il y a 2 ans
Parent
commit
de0dd3c179

+ 41 - 5
purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java

@@ -1,5 +1,8 @@
 package com.ozs.web.controller.plan;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.constant.ModularConstans;
@@ -9,12 +12,14 @@ import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.enums.SysFileRefEnum;
 import com.ozs.common.exception.ServiceException;
+import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.framework.web.service.TokenService;
 import com.ozs.plan.doman.ProvisionalPlan;
+import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import com.ozs.plan.doman.vo.responseVo.ProvisionalPlanResVo;
 import com.ozs.plan.service.ProvisionalPlanService;
@@ -38,6 +43,9 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -260,17 +268,45 @@ public class ProvisionalPlanController extends BaseController {
         return provisionalPlanService.auditNoPass(provisionalPlanVo);
     }
 
+    @ApiOperation(value = "填写采购服务站")
+    @PostMapping("/adPurchaseServices")
+    //@PreAuthorize("@ss.hasPermi('plan:planYears:adPurchaseServices')")
+    @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
+    public AjaxResult adPurchaseServices(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
+        return provisionalPlanService.adPurchaseServices(provisionalPlanVo);
+    }
 
     @ApiOperation("模板下载")
     @GetMapping("/downloaExcel")
     public void downloadZip(HttpServletResponse response) {
+        List<ProvisionalPlanResVo> list = new ArrayList<ProvisionalPlanResVo>();
+        list.add(new ProvisionalPlanResVo(1L, "单位1", "环太平洋项目", "物资服务类",
+                "徒步环太平洋", new BigDecimal(12.23), "单位1,单位2", "科目一",
+                "2023-02", "2023-03", "2023-04",
+                "重点采购项目,重大规划任务项目", ""));
+        list.add(new ProvisionalPlanResVo(2L, "单位2", "环北冰洋项目", "工程类",
+                "徒步环北冰洋", new BigDecimal(15.88), "单位1", "科目二",
+                "2023-01", "2023-05", "2023-08",
+                "重点采购项目", ""));
+        InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/provisional_plan.xlsx");
+        OutputStream outputStream = null;
         try {
-            InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/provisionalPlan.xlsx");
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, "临时计划导入模板.xlsx");
-            FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode("临时计划(模板)", "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            outputStream = response.getOutputStream();
+            ExcelWriter excelWriter = EasyExcel.write(outputStream)
+                    .withTemplate(resourceAsStream).autoCloseStream(true).build();
+            WriteSheet writeSheet = EasyExcel.writerSheet().build();
+            excelWriter.fill(list, writeSheet);
+            excelWriter.finish();
+            outputStream.flush();
+            outputStream.close();
         } catch (Exception e) {
-            log.error("下载文件失败", e);
+            log.error(e.getMessage());
+            throw new BaseException("下载文件失败");
         }
     }
 

+ 1 - 1
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmPurchaseExecutionController.java

@@ -683,7 +683,7 @@ public class PmPurchaseExecutionController extends BaseController {
             } else {
                 pmDemandUpdate.setWarnStatus(WarnStatus.NORMAL.getCode());
             }
-
+            pmDemandUpdate.setUpAcceptanceTime(pmPurchaseExecutionReqVo.getUpAcceptanceTime());
             return success(pmDemandService.updateById(pmDemandUpdate));
         } else {
             return error("保存上传附件失败");

+ 1 - 0
purchase-system/src/main/java/com/ozs/plan/doman/ProvisionalPlan.java

@@ -74,6 +74,7 @@ public class ProvisionalPlan {
     /**
      * 机关业务指导处(科)
      */
+    @Excel(name = "机关业务指导处(科)")
     @TableField("organ_division")
     private String organDivision;
     @TableField(exist = false)

+ 28 - 4
purchase-system/src/main/java/com/ozs/plan/doman/vo/responseVo/ProvisionalPlanResVo.java

@@ -50,21 +50,27 @@ public class ProvisionalPlanResVo implements Serializable {
      */
     private String budgetAccount;
     private String budgetAccountStr;
-    @Excel(name = "计划提报需求时间", dateFormat = "yyyy-MM")
+
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date planDemandSubTime;
+    @Excel(name = "计划提报需求时间")
+    private String planDemandSubTimeStr;
 
-    @Excel(name = "计划完成采购时间", dateFormat = "yyyy-MM")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date planPurchaseFinishTime;
+    @Excel(name = "计划完成采购时间")
+    private String planPurchaseFinishTimeStr;
 
-    @Excel(name = "计划交付(实施)时间", dateFormat = "yyyy-MM")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date planDeliverTime;
+    @Excel(name = "计划交付(实施)时间")
+    private String planDeliverTimeStr;
 
+    /**
+     * 项目属性
+     */
     private String projectAttr;
     @Excel(name = "项目属性")
-
     private String projectAttrName;
     /**
      * 处理申请撤销
@@ -135,4 +141,22 @@ public class ProvisionalPlanResVo implements Serializable {
      */
     private String letterStr;
 
+    public ProvisionalPlanResVo() {
+    }
+
+    public ProvisionalPlanResVo(Long planPracticalId, String purchaseDeptName, String projectName, String projectTypeStr, String demandOverview, BigDecimal evaluation, String organDivisionStr, String budgetAccountStr, String planDemandSubTimeStr, String planPurchaseFinishTimeStr, String planDeliverTimeStr, String projectAttrName, String remarks) {
+        this.planPracticalId = planPracticalId;
+        this.purchaseDeptName = purchaseDeptName;
+        this.projectName = projectName;
+        this.projectTypeStr = projectTypeStr;
+        this.demandOverview = demandOverview;
+        this.evaluation = evaluation;
+        this.organDivisionStr = organDivisionStr;
+        this.budgetAccountStr = budgetAccountStr;
+        this.planDemandSubTimeStr = planDemandSubTimeStr;
+        this.planPurchaseFinishTimeStr = planPurchaseFinishTimeStr;
+        this.planDeliverTimeStr = planDeliverTimeStr;
+        this.projectAttrName = projectAttrName;
+        this.remarks = remarks;
+    }
 }

+ 7 - 0
purchase-system/src/main/java/com/ozs/plan/service/ProvisionalPlanService.java

@@ -42,4 +42,11 @@ public interface ProvisionalPlanService extends IService<ProvisionalPlan> {
     public Integer countProjectName(String projectName);
 
     public Integer countProjectNameOth(ProvisionalPlanVo provisionalPlan);
+
+    /**
+     * 填写采购服务站
+     * @param provisionalPlanVo
+     * @return
+     */
+    AjaxResult adPurchaseServices(ProvisionalPlanVo provisionalPlanVo);
 }

+ 2 - 1
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -848,7 +848,8 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         //计划待提交,需求待提交,合同待填制,项目建设待完成
         String isAd = "false";
         Integer numByProjectStatus = getNumByProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode(), isAd);
-        Integer numByStatus = demandService.getNumByStatus(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode());
+        Integer numByStatus = demandService.getNumByStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode()) +
+                demandService.getNumByStatus(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode());
         Integer numByStatus1 = demandService.getNumByStatus(PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
         Integer numByStatus2 = demandService.getNumByStatus(PmProjectStatus.UNDER_CONSTRUCTION.getCode());
         StatisticalChartsResVo chartsResVo = new StatisticalChartsResVo();

+ 18 - 6
purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java

@@ -22,6 +22,7 @@ import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo;
+import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import com.ozs.plan.doman.vo.responseVo.ProvisionalPlanResVo;
 import com.ozs.plan.mapper.PlanYearsMapper;
@@ -121,7 +122,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     public String importProvisionalPlan(List<ProvisionalPlan> provisionalPlans, boolean updateSupport, LoginUser loginUser) {
         // 字典项
         HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAboutEnums();
-        HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
+        HashMap<String, String> projectTypesMap = planEnums.get("projectTypesAds");
         HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
 
         int successNum = 0;
@@ -148,7 +149,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
                     if (ofProvisionalPlan.getOrganDivision().contains(",")) {
                         String[] split = ofProvisionalPlan.getOrganDivision().split(",");
                         for (String s : split) {
-                            SysDept infoTow = deptMapper.checkDeptNameOnlyOne(ofProvisionalPlan.getOrganDivision());
+                            SysDept infoTow = deptMapper.checkDeptNameOnlyOne(s);
                             //不是最后一位就加‘,’,是就直接结尾
                             if (!ofProvisionalPlan.getOrganDivision().endsWith(s)) {
                                 if (!ObjectUtils.isEmpty(infoTow)) {
@@ -199,20 +200,20 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
                         builder.append(projectAttributes.get(ofProvisionalPlan.getProjectAttr()));
                     }
                     ofProvisionalPlan.setProjectAttr(builder.toString());
-                    ofProvisionalPlan.setIsExcess(deptService.isExcessOrNo(ofProvisionalPlan.getProjectType(), ofProvisionalPlan.getEvaluation(), info.getDeptId()));
+                    //ofProvisionalPlan.setIsExcess(deptService.isExcessOrNo(ofProvisionalPlan.getProjectType(), ofProvisionalPlan.getEvaluation(), info.getDeptId()));
                     ofProvisionalPlan.setCreated(String.valueOf(loginUser.getUserId()));
                     ofProvisionalPlan.setCreateTime(new Date());
                     ofProvisionalPlan.setPlanType("1");
                     provisionalPlanMapper.insert(ofProvisionalPlan);
                     successNum++;
-                    successMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入成功!");
+                    successMsg.append(successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入成功!");
                 } else {
                     failureNum++;
-                    failureMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 已存在");
+                    failureMsg.append(successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 已存在");
                 }
             } catch (Exception exc) {
                 failureNum++;
-                String msg = "*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入失败";
+                String msg = successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入失败";
                 failureMsg.append(msg + exc.getMessage());
                 log.error(msg, exc);
             }
@@ -589,6 +590,17 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
         return provisionalPlanMapper.countProjectName(projectName);
     }
 
+    @Override
+    @Transactional
+    public AjaxResult adPurchaseServices(ProvisionalPlanVo provisionalPlan) {
+        ProvisionalPlan years = new ProvisionalPlan();
+        BeanUtils.copyProperties(provisionalPlan, years);
+        if (provisionalPlanMapper.updateById(years) == 1) {
+            return AjaxResult.success("成功");
+        }
+        return AjaxResult.success("成功");
+    }
+
     @Override
     public Integer countProjectNameOth(ProvisionalPlanVo provisionalPlan) {
         return provisionalPlanMapper.countProjectNameOth(provisionalPlan);

+ 20 - 6
purchase-system/src/main/java/com/ozs/pm/doman/PmDemand.java

@@ -103,27 +103,41 @@ public class PmDemand implements Serializable {
     @TableField("ADJUST_REASON")
     private String adjustReason;
 
-    /** 备注 */
+    /**
+     * 备注
+     */
     @ApiModelProperty("备注")
     @TableField("REMARKS")
     private String remarks;
 
-    /** 实际提报需求时间--->需求单位成功提报采购需求的日期(具体到日) */
+    /**
+     * 实际提报需求时间--->需求单位成功提报采购需求的日期(具体到日)
+     */
     @ApiModelProperty("实际提报需求时间--->需求单位成功提报采购需求的日期(具体到日)")
     @TableField("REAL_DEMAND_COMMIT_TIME")
     private Date realDemandCommitTime;
 
-    /** 实际完成采购时间--->上传中标通知书的日期(具体到日) */
-    @ApiModelProperty("实际完成采购时间--->上传中标通知书的日期(具体到日)")
+    /**
+     * 实际完成采购时间
+     */
+    @ApiModelProperty("实际完成采购时间")
     @TableField("REAL_PURCHASE_FINISH_TIME")
     private Date realPurchaseFinishTime;
 
-    /** 实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 */
+    @ApiModelProperty("上传中标通知书时间")
+    @TableField("UP_ACCEPTANCE_TIME")
+    private Date upAcceptanceTime;
+
+    /**
+     * 实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期
+     */
     @ApiModelProperty("实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期")
     @TableField("REAL_DELIVER_TIME")
     private Date realDeliverTime;
 
-    /** 审核时间 */
+    /**
+     * 审核时间
+     */
     @ApiModelProperty("审核时间")
     @TableField("AUDIT_TIME")
     private Date auditTime;

+ 4 - 1
purchase-system/src/main/java/com/ozs/pm/doman/PmDemandHis.java

@@ -122,10 +122,13 @@ public class PmDemandHis implements Serializable {
     private Date realDemandCommitTime;
 
 
-    @ApiModelProperty("实际完成采购时间--->上传中标通知书的日期(具体到日)")
+    @ApiModelProperty("实际完成采购时间)")
     @TableField("REAL_PURCHASE_FINISH_TIME")
     private Date realPurchaseFinishTime;
 
+    @ApiModelProperty("上传中标通知书时间")
+    @TableField(exist = false)
+    private Date upAcceptanceTime;
 
     @ApiModelProperty("实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期")
     @TableField("REAL_DELIVER_TIME")

+ 8 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmPurchaseExecutionReqVo.java

@@ -1,6 +1,7 @@
 package com.ozs.pm.doman.vo.requestVo;
 
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ozs.system.domain.SysFileRef;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +10,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -24,7 +26,9 @@ import java.util.List;
 @Builder
 @ApiModel("采购执行查询对象")
 public class PmPurchaseExecutionReqVo {
-    /** 采购需求ID */
+    /**
+     * 采购需求ID
+     */
     @ApiModelProperty("采购需求ID")
     private Long demandId;
 
@@ -34,4 +38,7 @@ public class PmPurchaseExecutionReqVo {
     @ApiModelProperty("上传附件")
     private List<SysFileRef> sysFileRefs;
 
+    @ApiModelProperty("上传中标通知书时间")
+    @TableField("UP_ACCEPTANCE_TIME")
+    private Date upAcceptanceTime;
 }

+ 11 - 2
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandResVo.java

@@ -1,5 +1,6 @@
 package com.ozs.pm.doman.vo.responseVo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
@@ -159,13 +160,21 @@ public class PmDemandResVo extends BaseEntity
     @ApiModelProperty("项目名称")
     private Date realPurchaseFinishTime;
 
-    /** 实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 */
+    /**
+     * 实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 ")
     @ApiModelProperty("实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 ")
     private Date realDeliverTime;
 
-    /** 审核时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "上传中标通知书时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date upAcceptanceTime;
+
+    /**
+     * 审核时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty("审核时间")

+ 3 - 0
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmPurchaseExecutionResVo.java

@@ -12,6 +12,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -84,4 +85,6 @@ public class PmPurchaseExecutionResVo {
      */
     @ApiModelProperty("中标通知书")
     private List<SysFileInfo> fileInfos;
+    @ApiModelProperty("上传中标通知书时间")
+    private Date upAcceptanceTime;
 }

+ 26 - 2
purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java

@@ -177,7 +177,7 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
      * @param
      * @return
      */
-    StatisticalChartsResVo majorProjectByStatusThisMonthNew(@Param("vo") PmDemandReqVo pmDemandReqVo);
+    StatisticalChartsResVo majorProjectByStatusThisMonthSub(@Param("vo") PmDemandReqVo pmDemandReqVo);
 
     /**
      * 本季度新提报重大规划采购任务数量
@@ -185,7 +185,7 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
      * @param
      * @return
      */
-    StatisticalChartsResVo majorProjectByStatusThisQuaNew(@Param("vo") PmDemandReqVo pmDemandReqVo);
+    StatisticalChartsResVo majorProjectByStatusThisQuaSub(@Param("vo") PmDemandReqVo pmDemandReqVo);
 
     /**
      * 本年度新提报重大规划采购任务数量
@@ -193,6 +193,30 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
      * @param
      * @return
      */
+    StatisticalChartsResVo majorProjectByStatusThisYearSub(@Param("vo") PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 本月度新受领重大规划采购任务数量
+     *
+     * @param
+     * @return
+     */
+    StatisticalChartsResVo majorProjectByStatusThisMonthNew(@Param("vo") PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 本季度新受领重大规划采购任务数量
+     *
+     * @param
+     * @return
+     */
+    StatisticalChartsResVo majorProjectByStatusThisQuaNew(@Param("vo") PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 本年度新受领重大规划采购任务数量
+     *
+     * @param
+     * @return
+     */
     StatisticalChartsResVo majorProjectByStatusThisYearNew(@Param("vo") PmDemandReqVo pmDemandReqVo);
 
     /**

+ 18 - 18
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -568,7 +568,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         //中标通知书
         List<SysFileInfo> pmBidWinningNotificationFileInfos = getSysFileInfoList(vo.getDemandId(), SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
         pmPurchaseExecutionResVo.setFileInfos(pmBidWinningNotificationFileInfos);
-
+        vo.setUpAcceptanceTime(pmDemand.getUpAcceptanceTime());
         vo.setPmPurchaseExecutionResVo(pmPurchaseExecutionResVo);
 
     }
@@ -623,13 +623,13 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         }
 
         if (reqType == 1) { //需求审核单位列表
-            lw.apply("(project_status = 6 or project_status = 8 )");
+            lw.apply("(project_status >=6 )");
         } else if (reqType == 2) { //任务下达列表
-            lw.apply("(project_status = 8 or project_status = 9 )");
+            lw.apply("(project_status >=8 )");
         } else if (reqType == 3) { //采购执行列表
-            lw.apply("(project_status in (9,10,11,12,13,14,15,16,17,19))");
+            lw.apply("(project_status >=9 )");
         } else if (reqType == 4) { //合同信息列表
-            lw.apply("(project_status = 19 or project_status = 20 )");
+            lw.apply("(project_status >=19 )");
         } else if (reqType == 5) { //项目建设列表
             lw.apply("(project_status = 20 or project_status = 21 )");
         }
@@ -1821,7 +1821,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
     @Override
     public List<PmDemand> demandWaitCommit() {
-        List<PmDemand> byStatus = getListByStatus(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode());
+        List<PmDemand> byStatus = getListByStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
+        byStatus.addAll(getListByStatus(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
         return (byStatus);
     }
 
@@ -2390,6 +2391,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         }
         //所有滞后
         List<PmDemand> demandList = pmDemandMapper.countProjectExceedAll(pmDemandReqVo);
+        Date now = new Date();
         //滞后时长包括:滞后1个月以内的采购任务、滞后1至3个月采购任务、滞后3至6个月采购任务、滞后6个月至1年采购任务、滞后1年以上采购任务
         HashMap<String, Integer> map = new LinkedHashMap<>();
         map.put("滞后1个月以内的采购任务", 0);
@@ -2400,13 +2402,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         if (!ObjectUtils.isEmpty(demandList) && demandList.size() > 0) {
             for (PmDemand demand : demandList) {
                 //滞后时间
-                Long exTime = null;
-                if (!ObjectUtils.isEmpty(demand.getRealDemandCommitTime()) && demand.getRealDemandCommitTime().getTime() - demand.getPlanDemandSubTime().getTime() > 0) {
-                    exTime = demand.getRealDemandCommitTime().getTime() - demand.getPlanDemandSubTime().getTime();
-                } else if (!ObjectUtils.isEmpty(demand.getRealPurchaseFinishTime()) && demand.getRealPurchaseFinishTime().getTime() - demand.getPlanPurchaseFinishTime().getTime() > 0) {
+                Long exTime = 0L;
+                if (!ObjectUtils.isEmpty(demand.getRealPurchaseFinishTime()) && demand.getRealPurchaseFinishTime().getTime() - demand.getPlanPurchaseFinishTime().getTime() > 0) {
                     exTime = demand.getRealPurchaseFinishTime().getTime() - demand.getPlanPurchaseFinishTime().getTime();
-                } else if (!ObjectUtils.isEmpty(demand.getRealDeliverTime()) && demand.getRealDeliverTime().getTime() - demand.getPlanDeliverTime().getTime() > 0) {
-                    exTime = demand.getRealDeliverTime().getTime() - demand.getPlanDeliverTime().getTime();
+                } else {
+                    exTime = now.getTime() - demand.getPlanPurchaseFinishTime().getTime();
                 }
                 if (exTime < Long.valueOf("2592000000")) {
                     map.put("滞后1个月以内的采购任务", map.get("滞后1个月以内的采购任务") + 1);
@@ -2440,19 +2440,19 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         List<StatisticalChartsResVo> resVos = new ArrayList<>();
         //本月度新提报重大规划采购任务数量
         pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
-        StatisticalChartsResVo resVo = pmDemandMapper.majorProjectByStatusThisMonthNew(pmDemandReqVo);
+        StatisticalChartsResVo resVo = pmDemandMapper.majorProjectByStatusThisMonthSub(pmDemandReqVo);
         resVo.setColumnName("本月度新提报");
         resVo.setColumnNamePlus("重大规划采购任务数量");
         resVos.add(resVo);
         //本季度新提报重大规划采购任务数量
         pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
-        StatisticalChartsResVo resVo2 = pmDemandMapper.majorProjectByStatusThisQuaNew(pmDemandReqVo);
+        StatisticalChartsResVo resVo2 = pmDemandMapper.majorProjectByStatusThisQuaSub(pmDemandReqVo);
         resVo2.setColumnName("本季度新提报");
         resVo2.setColumnNamePlus("重大规划采购任务数量");
         resVos.add(resVo2);
         //本年度新提报重大规划采购任务数量
         pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
-        StatisticalChartsResVo resVo3 = pmDemandMapper.majorProjectByStatusThisYearNew(pmDemandReqVo);
+        StatisticalChartsResVo resVo3 = pmDemandMapper.majorProjectByStatusThisYearSub(pmDemandReqVo);
         resVo3.setColumnName("本年度新提报");
         resVo3.setColumnNamePlus("重大规划采购任务数量");
         resVos.add(resVo3);
@@ -3976,7 +3976,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     public List<PmDemand> getListByStatus(String projectStatus) {
         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>();
         //需求待提交时不用查审核
-        if (!projectStatus.equals("5")) {
+        if (!projectStatus.equals("5") && !projectStatus.equals("4")) {
             List<PmAuditDeptRef> list = new ArrayList<>();
             LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>();
             l.eq(PmAuditDeptRef::getDeptId, SecurityUtils.getDeptId());
@@ -3986,7 +3986,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()));
             }
         }
-        lw.eq(PmDemand::getProjectStatus, projectStatus);
+        lw.in(PmDemand::getProjectStatus, projectStatus);
         lw.eq(PmDemand::getPurchaseDeptId, SecurityUtils.getDeptId());
         lw.last(" order by project_status, plan_demand_sub_time");
         return this.baseMapper.selectList(lw);
@@ -4027,7 +4027,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     public Integer getNumByStatus(String projectStatus) {
         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>();
         ///需求待提交时不用查审核
-        if (!projectStatus.equals("5")) {
+        if (!projectStatus.equals("5") && !projectStatus.equals("4")) {
             List<PmAuditDeptRef> list = new ArrayList<>();
             LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>();
             l.eq(PmAuditDeptRef::getDeptId, SecurityUtils.getDeptId());

+ 34 - 14
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -148,7 +148,7 @@
         SELECT ifnull(COUNT(demand_id), 0) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         <include refid="deptListOrDemandIdAll"/>
-        ( real_purchase_finish_time > plan_purchase_finish_time )
+        now()> plan_purchase_finish_time and ISNULL(real_purchase_finish_time)
         and YEAR(plan_demand_sub_time) = YEAR(NOW())
     </select>
 
@@ -157,7 +157,7 @@
         SELECT ifnull(COUNT(demand_id), 0) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         <include refid="deptListOrDemandIdAll"/>
-        ( real_purchase_finish_time > plan_purchase_finish_time )
+        now()> plan_purchase_finish_time and ISNULL(real_purchase_finish_time)
         and quarter(plan_demand_sub_time) = quarter(NOW())
     </select>
 
@@ -166,7 +166,7 @@
         SELECT ifnull(COUNT(demand_id), 0) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         <include refid="deptListOrDemandIdAll"/>
-        ( real_purchase_finish_time > plan_purchase_finish_time )
+        now()> plan_purchase_finish_time and ISNULL(real_purchase_finish_time)
         and MONTH(plan_demand_sub_time) = MONTH(NOW())
     </select>
 
@@ -175,7 +175,7 @@
         SELECT ifnull(COUNT(demand_id), 0) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         <include refid="deptListOrDemandIdAll"/>
-        ( real_purchase_finish_time > plan_purchase_finish_time)
+        now()> plan_purchase_finish_time and ISNULL(real_purchase_finish_time)
     </select>
 
     <select id="countProjectExceedTZ" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
@@ -258,7 +258,8 @@
         SELECT *
         FROM `pm_demand`
         <include refid="deptListOrDemandIdAll"/>
-        real_purchase_finish_time > plan_purchase_finish_time
+        ((now()> plan_purchase_finish_time and ISNULL(real_purchase_finish_time))
+        or (real_purchase_finish_time > plan_purchase_finish_time))
     </select>
 
     <sql id="majorProjectByStatus">
@@ -268,6 +269,25 @@
         find_in_set('1', project_attr)
     </sql>
 
+    <select id="majorProjectByStatusThisMonthSub" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        <include refid="majorProjectByStatus"/>
+        AND MONTH(plan_demand_sub_time ) = MONTH(now())
+        AND project_status &gt; #{vo.projectStatus}
+    </select>
+    <select id="majorProjectByStatusThisQuaSub" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        <include refid="majorProjectByStatus"/>
+        AND QUARTER(plan_demand_sub_time ) = QUARTER(now())
+        AND project_status &gt; #{vo.projectStatus}
+    </select>
+    <select id="majorProjectByStatusThisYearSub" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        <include refid="majorProjectByStatus"/>
+        AND YEAR(plan_demand_sub_time ) = YEAR(now())
+        AND project_status &gt; #{vo.projectStatus}
+    </select>
+
     <select id="majorProjectByStatusThisMonthNew" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
         <include refid="majorProjectByStatus"/>
@@ -746,11 +766,11 @@
         FROM pm_demand d,pm_contract_info c,
         (SELECT ifnull(COUNT(demand_id), 0) num ,ifnull(sum(evaluation), 0) evaluationTotal FROM pm_demand
         <include refid="deptListOrDemandIdAll"/>
-        project_status &gt; 16 AND MONTH(plan_demand_sub_time) =MONTH(NOW()) ) de
+        project_status &gt; 16 AND MONTH(up_acceptance_time) =MONTH(NOW()) ) de
         <include refid="dDeptListOrDemandIdAll"/>
         d.demand_id = c.demand_id
         AND d.project_status &gt; 16
-        AND MONTH(d.plan_demand_sub_time) = MONTH(NOW())
+        AND MONTH(d.up_acceptance_time) = MONTH(NOW())
     </select>
 
     <select id="selectCGThisQua" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo"
@@ -760,11 +780,11 @@
         FROM pm_demand d,pm_contract_info c,
         (SELECT ifnull(COUNT(demand_id), 0) num ,ifnull(sum(evaluation), 0) evaluationTotal FROM pm_demand
         <include refid="deptListOrDemandIdAll"/>
-        project_status &gt; 17 AND QUARTER(plan_demand_sub_time) =QUARTER(NOW()) ) de
+        project_status &gt; 17 AND QUARTER(up_acceptance_time) =QUARTER(NOW()) ) de
         <include refid="dDeptListOrDemandIdAll"/>
         d.demand_id = c.demand_id
         AND d.project_status &gt; 17
-        AND QUARTER(d.plan_demand_sub_time) = QUARTER(NOW())
+        AND QUARTER(d.up_acceptance_time) = QUARTER(NOW())
     </select>
 
     <select id="selectZJLastYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo"
@@ -774,11 +794,11 @@
         FROM pm_demand d, pm_contract_info c,
         (SELECT ifnull(COUNT(demand_id), 0) num ,ifnull(sum(evaluation), 0) evaluationTotal FROM pm_demand
         <include refid="deptListOrDemandIdAll"/>
-        project_status IN (17,18) AND YEAR(plan_demand_sub_time) = YEAR(NOW())-1 ) de
+        project_status IN (17,18) AND YEAR(up_acceptance_time) = YEAR(NOW())-1 ) de
         <include refid="dDeptListOrDemandIdAll"/>
         d.demand_id = c.demand_id
         AND d.project_status IN (17,18)
-        AND YEAR(d.plan_demand_sub_time) = YEAR(NOW())-1
+        AND YEAR(d.up_acceptance_time) = YEAR(NOW())-1
     </select>
 
     <select id="selectTBThisYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo"
@@ -788,11 +808,11 @@
         FROM pm_demand d, pm_contract_info c,
         (SELECT ifnull(COUNT(demand_id), 0) num ,ifnull(sum(evaluation), 0) evaluationTotal FROM pm_demand
         <include refid="deptListOrDemandIdAll"/>
-        project_status &gt; 17 AND YEAR(plan_demand_sub_time) = YEAR(NOW()) ) de
+        project_status &gt; 17 AND YEAR(up_acceptance_time) = YEAR(NOW()) ) de
         <include refid="dDeptListOrDemandIdAll"/>
         d.demand_id = c.demand_id
         AND d.project_status &gt; 17
-        AND YEAR(d.plan_demand_sub_time) = YEAR(NOW())
+        AND YEAR(d.up_acceptance_time) = YEAR(NOW())
     </select>
 
     <select id="selectFInishAll" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo"
@@ -813,7 +833,7 @@
         FROM pm_demand
         <include refid="deptListOrDemandIdAll"/>
         real_purchase_finish_time &lt;=plan_purchase_finish_time
-        AND YEAR(plan_demand_sub_time) = YEAR(NOW())
+        AND YEAR(up_acceptance_time) = YEAR(NOW())
     </select>
 
     <sql id="countProjectExceedAndStatus">