hexiao 2 år sedan
förälder
incheckning
1e5a024bde

+ 99 - 0
purchase-admin/src/main/java/com/ozs/web/controller/plan/MonthlyReconciliationController.java

@@ -0,0 +1,99 @@
+package com.ozs.web.controller.plan;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.enums.SysFileRefEnum;
+import com.ozs.plan.doman.MonthlyReconciliation;
+import com.ozs.plan.doman.vo.requestVo.MonthlyReconciliationPageReqVo;
+import com.ozs.plan.service.MonthlyReconciliationService;
+import com.ozs.system.domain.SysFileInfo;
+import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.service.SysFileRefService;
+import com.ozs.system.service.SysFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+@RestController
+@RequestMapping("/monthly/reconciliation")
+@Api( tags = ModularConstans.monthly)
+public class MonthlyReconciliationController extends BaseController {
+
+
+    @Autowired
+    private MonthlyReconciliationService monthlyReconciliationService;
+    @Autowired
+    private SysFileRefService sysFileRefService;
+    @Autowired
+    private SysFileService sysFileService;
+
+    @ApiOperation(value = "分页查询月度对表")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:monthly:list')")
+    @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                           @RequestBody MonthlyReconciliationPageReqVo vo) {
+        LambdaQueryWrapper<MonthlyReconciliation> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getProjectName())){
+            lw.like(MonthlyReconciliation::getProjectName,vo.getProjectName());
+        }
+        if(!ObjectUtils.isEmpty(vo.getProjectStatus())){
+            lw.eq(MonthlyReconciliation::getProjectStatus,vo.getProjectStatus());
+        }
+        if(!StringUtils.isBlank(vo.getPurchaseServices())){
+            lw.eq(MonthlyReconciliation::getPurchaseServices,vo.getPurchaseServices());
+        }
+//        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+//            lw.ge(BaseNotice::getReleaseTime,vo.getStartTime());
+//        }
+//        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+//            lw.le(BaseNotice::getReleaseTime,vo.getEntTime());
+//        }
+        IPage<MonthlyReconciliation> page = monthlyReconciliationService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+
+        return success(page);
+
+    }
+
+
+    @ApiOperation(value = "查看月度对表详情")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:monthly:query')")
+    @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        MonthlyReconciliation vo = monthlyReconciliationService.getById(id);
+
+        if(!ObjectUtils.isEmpty(vo)){
+            LambdaQueryWrapper<SysFileRef> lw =new LambdaQueryWrapper();
+            lw.eq(SysFileRef::getType, SysFileRefEnum.PLAN_TEMPORARY.getType());
+            lw.eq(SysFileRef::getRedId,vo.getPlanId());
+            List<SysFileRef> list = sysFileRefService.list(lw);
+            if(!ObjectUtils.isEmpty(list)){
+                LambdaQueryWrapper<SysFileInfo> l =new LambdaQueryWrapper();
+                l.in(SysFileInfo::getFileId, list.stream().map(SysFileRef::getFileId).collect(Collectors.toList()));
+                vo.setFileList(sysFileService.list(l));
+            }
+        }
+
+        return success(vo);
+    }
+
+}

+ 2 - 2
purchase-admin/src/main/resources/logback.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-<!--        <property name="log.path" value="/home/purchase/logs" />-->
-    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/文档/purchase/logs"/>
+    <property name="log.path" value="/home/purchase/logs"/>
+    <!--    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/文档/purchase/logs"/>-->
     <!-- 日志输出格式 -->
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
 

+ 4 - 2
purchase-common/src/main/java/com/ozs/common/constant/ModularConstans.java

@@ -4,11 +4,13 @@ public class ModularConstans {
 
     public static final String policy = "政策法规";
 
-    public static final String  notice = "公告管理";
+    public static final String notice = "公告管理";
 
-    public static final String  noticeType = "公告类型管理";
+    public static final String noticeType = "公告类型管理";
 
     public static final String agency = "招标代理机构管理";
 
     public static final String fileTemplate = "文件模板管理";
+
+    public static final String monthly = "月度对表";
 }

+ 23 - 0
purchase-common/src/main/java/com/ozs/common/enums/SysFileRefEnum.java

@@ -0,0 +1,23 @@
+package com.ozs.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+public enum SysFileRefEnum {
+
+    PLAN_YEAR(1, "年度计划附件"),
+    PLAN_TEMPORARY(2, "临时、季度计划附件"),
+
+    ;
+
+    private  Integer type;
+    private  String info;
+
+
+
+
+}

+ 133 - 0
purchase-system/src/main/java/com/ozs/plan/doman/MonthlyReconciliation.java

@@ -0,0 +1,133 @@
+package com.ozs.plan.doman;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.system.domain.SysFileInfo;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("月度对表对象")
+@TableName("pm_demand")
+public class MonthlyReconciliation extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long demandId;
+
+    /** 计划ID */
+    @Excel(name = "计划ID")
+    private Long planId;
+
+    /** 采购单位(登录账号的单位) */
+    @Excel(name = "采购单位", readConverterExp = "登=录账号的单位")
+    private Long purchaseDeptId;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    private String projectName;
+
+    /** 项目类型(0:装备类;1:物资类;2:服务类;3:工程类) */
+    @Excel(name = "项目类型", readConverterExp = "0=:装备类;1:物资类;2:服务类;3:工程类")
+    private String projectType;
+
+    /** 需求概况 */
+    @Excel(name = "需求概况")
+    private String demandOverview;
+
+    /** 概算金额(万元(保留小数点后两位) */
+    @Excel(name = "概算金额(万元", readConverterExp = "保=留小数点后两位")
+    private BigDecimal evaluation;
+
+    /** 是否为超限额计划(0:未超额,1:超额) */
+    @Excel(name = "是否为超限额计划(0:未超额,1:超额)")
+    private Integer isExcess;
+
+    /** 采购服务站 */
+    @Excel(name = "采购服务站")
+    private String purchaseServices;
+
+    /** 采购方式  (0:公开招标, 1:单一来源,2:邀请招标,3:竞争式谈判,4:询价) */
+    @Excel(name = "采购方式  (0:公开招标, 1:单一来源,2:邀请招标,3:竞争式谈判,4:询价)")
+    private String purchaseMode;
+
+    /** 计划提报需求时间--->需求单位成功提报采购需求的日期(具体到月) */
+    @Excel(name = "计划提报需求时间--->需求单位成功提报采购需求的日期", readConverterExp = "具=体到月")
+    private Date planDemandSubTime;
+
+    /** 计划完成采购时间--->公示中标结果的日期,即填制中标信息的日期(具体到月) */
+    @Excel(name = "计划完成采购时间--->公示中标结果的日期,即填制中标信息的日期", readConverterExp = "具=体到月")
+    private Date planPurchaseFinishTime;
+
+    /** 计划交付时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "计划交付时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date planDeliverTime;
+
+    /** 项目属性(0:应急应战项目, 1:重大规划任务项目, 2:规划任务项目, 3:一般项目) */
+    @Excel(name = "项目属性", readConverterExp = "0=:应急应战项目,,1=:重大规划任务项目,,2=:规划任务项目,,3=:一般项目")
+    private String projectAttr;
+
+    /** 计划调整情况及理由--->如计划需要变更,在填写申请修改时需填写调整情况及理由,审核单位审核通过后显示该信息 */
+    @Excel(name = "计划调整情况及理由--->如计划需要变更,在填写申请修改时需填写调整情况及理由,审核单位审核通过后显示该信息")
+    private String adjustReason;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    /** 实际提报需求时间--->需求单位成功提报采购需求的日期(具体到日) */
+    @Excel(name = "实际提报需求时间--->需求单位成功提报采购需求的日期", readConverterExp = "具=体到日")
+    private Date realDemandCommitTime;
+
+    /** 实际完成采购时间--->公示中标结果的日期,即填制中标信息的日期(具体到日) */
+    @Excel(name = "实际完成采购时间--->公示中标结果的日期,即填制中标信息的日期", readConverterExp = "具=体到日")
+    private Date realPurchaseFinishTime;
+
+    /** 实际交付(实施)时间--->供应商完成并交付后,使用单位收到标的日期,即填制建设文档的日期 */
+    @Excel(name = "实际交付", readConverterExp = "实=施")
+    private Date realDeliverTime;
+
+    /** 审核时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date auditTime;
+
+    /** 预警状态(0:正常,1:预警) */
+    @Excel(name = "预警状态(0:正常,1:预警)")
+    private String warnStatus;
+
+    /** 项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成) */
+    @Excel(name = "项目状态(4:需求待填制,5:需求待提交,6:需求待审核,7:任务待下达,8:任务已下达,9:中标信息待填制,10:中标信息已填制,11:合同待填制,12:合同已填制,13:项目建设中,14:项目建设完成)")
+    private Long projectStatus;
+
+    /** 退回原因 */
+    @Excel(name = "退回原因")
+    private String refuseReason;
+
+    /** 滞后原因 */
+    @Excel(name = "滞后原因")
+    private String delayReason;
+
+    /** 调整建议 */
+    @Excel(name = "调整建议")
+    private String adjustAdvice;
+
+    /** 附件 */
+    @Excel(name = "附件")
+    private List<SysFileInfo> fileList;
+}

+ 37 - 0
purchase-system/src/main/java/com/ozs/plan/doman/vo/requestVo/MonthlyReconciliationPageReqVo.java

@@ -0,0 +1,37 @@
+package com.ozs.plan.doman.vo.requestVo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@ApiModel(value = "MonthlyReconciliationPageReqVo", description = ModularConstans.monthly+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MonthlyReconciliationPageReqVo extends PageVo {
+
+    @ApiModelProperty("项目名称")
+    private String projectName;
+
+    @ApiModelProperty("采购服务站")
+    private String purchaseServices;
+
+    @ApiModelProperty("项目状态")
+    private Integer projectStatus;
+
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date entTime;
+
+}

+ 13 - 0
purchase-system/src/main/java/com/ozs/plan/mapper/MonthlyReconciliationMapper.java

@@ -0,0 +1,13 @@
+package com.ozs.plan.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.plan.doman.MonthlyReconciliation;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface MonthlyReconciliationMapper extends BaseMapper<MonthlyReconciliation> {
+
+
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/plan/service/MonthlyReconciliationService.java

@@ -0,0 +1,10 @@
+package com.ozs.plan.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.plan.doman.MonthlyReconciliation;
+
+public interface MonthlyReconciliationService extends IService<MonthlyReconciliation> {
+
+
+}

+ 15 - 0
purchase-system/src/main/java/com/ozs/plan/service/impl/MonthlyReconciliationServiceImpl.java

@@ -0,0 +1,15 @@
+package com.ozs.plan.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.plan.doman.MonthlyReconciliation;
+import com.ozs.plan.mapper.MonthlyReconciliationMapper;
+import com.ozs.plan.service.MonthlyReconciliationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class MonthlyReconciliationServiceImpl extends ServiceImpl<MonthlyReconciliationMapper, MonthlyReconciliation> implements MonthlyReconciliationService {
+
+}

+ 43 - 0
purchase-system/src/main/java/com/ozs/system/domain/SysFileRef.java

@@ -0,0 +1,43 @@
+package com.ozs.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 附件关联对象 sys_file_ref
+ *
+ * @author ruoyi
+ * @date 2023-01-17
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SysFileRef extends BaseDto
+{
+
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 关联id */
+    @Excel(name = "关联id")
+    private Long redId;
+
+    /** 附件主键 */
+    @Excel(name = "附件主键")
+    private Long fileId;
+
+    /** 来源类型:年度1;季度2;临时3,项目4 */
+    @Excel(name = "来源类型:年度1;季度2;临时3,项目4")
+    private Integer type;
+
+
+}

+ 14 - 0
purchase-system/src/main/java/com/ozs/system/mapper/SysFileRefMapper.java

@@ -0,0 +1,14 @@
+package com.ozs.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.system.domain.SysFileRef;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface SysFileRefMapper extends BaseMapper<SysFileRef>
+{
+
+}

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

@@ -0,0 +1,7 @@
+package com.ozs.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.system.domain.SysFileRef;
+
+public interface SysFileRefService  extends IService<SysFileRef> {
+}

+ 12 - 0
purchase-system/src/main/java/com/ozs/system/service/impl/SysFileRefServiceImpl.java

@@ -0,0 +1,12 @@
+package com.ozs.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.mapper.SysFileRefMapper;
+import com.ozs.system.service.SysFileRefService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysFileRefServiceImpl  extends ServiceImpl<SysFileRefMapper, SysFileRef> implements SysFileRefService {
+
+}