瀏覽代碼

添加字段--上传中标通知书

buzhanyi 2 年之前
父節點
當前提交
7f100302bd

+ 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("下载文件失败");
         }
     }
 

+ 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;
+    }
 }

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

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

+ 12 - 0
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;
@@ -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);

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

@@ -627,7 +627,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         } else if (reqType == 2) { //任务下达列表
             lw.apply("(project_status = 8 or project_status = 9 )");
         } else if (reqType == 3) { //采购执行列表
-            lw.apply("(project_status in (9,10,11,12,13,14,15,16,17,19))");
+            lw.apply("(project_status in (9,10,11,12,13,14,15,16,17,19,20,21))");
         } else if (reqType == 4) { //合同信息列表
             lw.apply("(project_status = 19 or project_status = 20 )");
         } else if (reqType == 5) { //项目建设列表
@@ -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);
     }
 
@@ -3986,7 +3987,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);