Browse Source

代码更新

dingsong 4 years ago
parent
commit
2f882169dd

BIN
dowload/template/供应商信息模板.xlsx


BIN
dowload/template/需求库信息模板.xlsx


+ 52 - 12
src/main/java/com/migao/controller/DemandLibraryController.java

@@ -1,26 +1,32 @@
 package com.migao.controller;
 
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.migao.config.authority.LoginUtils;
+import com.migao.config.listener.ExcelListener;
 import com.migao.config.response.BasePageRequest;
 import com.migao.config.response.PageBeanOne;
 import com.migao.config.response.ResponseBean;
-import com.migao.entity.po.Company;
-import com.migao.entity.po.Project;
-import com.migao.entity.po.User;
-import com.migao.entity.vo.req.DemandLibraryInsertReq;
-import com.migao.entity.vo.req.DemandLibraryQueryReq;
-import com.migao.entity.vo.req.DemandLibraryUpdateReq;
-import com.migao.entity.vo.req.DemandSubProjectReq;
+import com.migao.config.response.ResponseBuilder;
+import com.migao.entity.po.*;
+import com.migao.entity.vo.req.*;
 import com.migao.entity.vo.res.DemandLibraryPageQueryRes;
 import com.migao.entity.vo.res.DemandLibraryQueryRes;
 import com.migao.entity.vo.res.DictionaryListRes;
+import com.migao.mapper.CompanyMapper;
+import com.migao.mapper.SupplierMapper;
 import com.migao.service.DemandLibraryService;
+import com.migao.util.EntityUtils;
+import com.migao.util.ProjectNoUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,6 +38,10 @@ import java.util.List;
 public class DemandLibraryController {
     @Resource
     DemandLibraryService demandLibraryService;
+    @Resource
+    CompanyMapper companyMapper;
+    @Resource
+    SupplierMapper supplierMapper;
 
     @ApiOperation("导入主需求")
     @PostMapping(value = "/insert")
@@ -117,13 +127,43 @@ public class DemandLibraryController {
         //获取用户信息
         User user = LoginUtils.getUser();
 
-
-        return null;
+        List<DemandLibraryExcelReq> demandState = new ArrayList<>();
+        try {
+            EasyExcel.read(file.getInputStream(), DemandLibraryExcelReq.class, new ExcelListener<>(demandState)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        demandState.forEach(
+                x -> {
+                    DemandLibrary demandLibrary = EntityUtils.copyProperties(x,DemandLibrary.class);
+                    //找到需求单位id
+                    LambdaQueryWrapper<Company> company = new LambdaQueryWrapper<> ();
+                    company.eq(Company::getOrgName,x.getUnitName());
+                    Company companys = companyMapper.selectOne(company);
+                    demandLibrary.setUnitNameId(companys.getId());
+                    //找到公司id
+                    LambdaQueryWrapper<Supplier> supplierWrapper = new LambdaQueryWrapper<> ();
+                    supplierWrapper.eq(Supplier::getName,x.getImplementVender());
+                    Supplier supplier = supplierMapper.selectOne(supplierWrapper);
+                    demandLibrary.setImplementVenderId(supplier.getId());
+
+                    demandLibrary.setDemandNumber(ProjectNoUtil.getCode());
+                    demandLibrary.setAcceptDemandTime(Integer.parseInt(x.getAcceptDemandTime()));
+                    demandLibrary.setPlanDemandTime(Integer.parseInt(x.getPlanDemandTime()));
+                    demandLibrary.setSubmitTime(LocalDateTime.now());
+                    demandLibrary.setDeleted(0);
+                    demandLibrary.setCreateUserId(user.getId());
+                    demandLibraryService.save(demandLibrary);
+                }
+        );
+
+        return ResponseBuilder.ok(200,"导入成功");
     }
 
     @ApiOperation("导出需求库信息")
-    @PostMapping(value = "/exportDemandLibrary")
-    public ResponseBean exportDemandLibrary() {
-        return null;
+    @PostMapping(value = "/export")
+    public ResponseBean export(@RequestParam String date) {
+        return demandLibraryService.export(date);
     }
 }

+ 75 - 0
src/main/java/com/migao/controller/DemandScheduleController.java

@@ -0,0 +1,75 @@
+package com.migao.controller;
+
+import com.migao.config.response.BasePageRequest;
+import com.migao.config.response.PageBeanOne;
+import com.migao.config.response.ResponseBean;
+import com.migao.entity.po.DemandSchedule;
+import com.migao.entity.vo.req.DemandScheduleInsertReq;
+import com.migao.entity.vo.req.DemandScheduleQueryReq;
+import com.migao.entity.vo.req.DemandScheduleUpdateReq;
+import com.migao.entity.vo.res.DemandScheduleQueryRes;
+import com.migao.service.DemandScheduleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author dingsong
+ */
+@Api(tags = "009.需求进度模快")
+@RestController
+@RequestMapping("/demandSchedule")
+public class DemandScheduleController {
+    @Resource
+    DemandScheduleService scheduleService;
+
+    @ApiOperation("导入需求进度")
+    @PostMapping(value = "/insert")
+    public ResponseBean<?> insert(@RequestBody DemandScheduleInsertReq dsi){
+        return scheduleService.insert(dsi);
+    }
+
+    @ApiOperation("删除")
+    @PostMapping(value = "/deleteById")
+    public ResponseBean<?> deleteById(@RequestParam String id){
+        return scheduleService.deleteById(id);
+    }
+
+    @ApiOperation("更新")
+    @PostMapping(value = "/updateById")
+    public ResponseBean<?> updateById(@RequestBody DemandScheduleUpdateReq updateReq){
+        return scheduleService.updateById(updateReq);
+    }
+
+    @ApiOperation("查看单个进度详情")
+    @PostMapping(value = "/findById")
+    public ResponseBean<DemandSchedule> findById(@RequestParam String id){
+        return scheduleService.findById(id);
+    }
+
+    @ApiOperation("分页查看所有需求进度记录")
+    @PostMapping(value = "/pageQuery")
+    public ResponseBean<PageBeanOne<DemandScheduleQueryRes>> pageQuery(@RequestBody BasePageRequest basePageRequest){
+        return scheduleService.pageQuery(basePageRequest);
+    }
+
+    @ApiOperation("分页查看当前用户需求进度记录")
+    @PostMapping(value = "/pageQueryById")
+    public ResponseBean<PageBeanOne<DemandScheduleQueryRes>> pageQueryById(@RequestBody BasePageRequest basePageRequest){
+        return  scheduleService.pageQueryById(basePageRequest);
+    }
+
+    @ApiOperation("分页模糊查看所有需求进度记录")
+    @PostMapping(value = "/pageQueryOne")
+    public ResponseBean<PageBeanOne<DemandScheduleQueryRes>> pageQueryOne(@RequestBody DemandScheduleQueryReq dsi){
+        return scheduleService.pageQueryOne(dsi);
+    }
+
+    @ApiOperation("分页模糊查看当前用户需求进度记录")
+    @PostMapping(value = "/pageQueryOneById")
+    public ResponseBean<PageBeanOne<DemandScheduleQueryRes>> pageQueryOneById(@RequestBody DemandScheduleQueryReq dsi){
+        return scheduleService.pageQueryOneById(dsi);
+    }
+}

+ 2 - 2
src/main/java/com/migao/entity/po/DemandLibrary.java

@@ -48,8 +48,8 @@ public class DemandLibrary implements Serializable {
     @Column(columnDefinition = "int(11) comment '需求单位'")
     private Integer unitNameId;
 
-    @Column(columnDefinition = "varchar(255) comment '实施厂商'")
-    private String implementVender;
+    @Column(columnDefinition = "int(11) comment '实施厂商id'")
+    private Integer implementVenderId;
 
     @Column(columnDefinition = "tinyint(1) comment '需求状态 -1废除 0立项 1认领'")
     private Integer demandStatus;

+ 18 - 0
src/main/java/com/migao/entity/vo/req/DemandLibraryExcelReq.java

@@ -6,6 +6,8 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+
 /**
  * @author dingsong
  */
@@ -44,5 +46,21 @@ public class DemandLibraryExcelReq {
     @ExcelProperty(index = 4)
     private String implementVender;
 
+    /**
+     * 受理需求时间
+     */
+    @ExcelProperty(index = 5)
+    private String acceptDemandTime;
+
+    /**
+     * 计划需求实施工期(周)
+     */
+    @ExcelProperty(index = 6)
+    private String planDemandTime;
 
+    /**
+     * 截至目前完成百分比
+     */
+    @ExcelProperty(index = 7)
+    private BigDecimal demandSchedule;
 }

+ 70 - 0
src/main/java/com/migao/entity/vo/res/DemandLibraryExportRes.java

@@ -0,0 +1,70 @@
+package com.migao.entity.vo.res;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.migao.util.LocalDateTimeConverter;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author dingsong
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Data
+public class DemandLibraryExportRes {
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ExcelProperty(value = "需求编号")
+    @ApiModelProperty(value = "需求编号")
+    private String demandNumber;
+
+    @ExcelProperty(value = "需求名称")
+    @ApiModelProperty(value = "需求名称")
+    private String demandName;
+
+    @ExcelProperty(value = "需求内容")
+    @ApiModelProperty(value = "需求内容")
+    private String demandContent;
+
+    @ExcelProperty(value = "需求分类")
+    @ApiModelProperty(value = "需求分类")
+    private String demandClass;
+
+    @ExcelProperty(value = "需求单位")
+    @ApiModelProperty(value = "需求单位")
+    private String unitName;
+
+    @ExcelProperty(value = "需求状态")
+    @ApiModelProperty(value = "需求状态")
+    private String demandStatus;
+
+    @ExcelProperty(value = "需求进度")
+    @ApiModelProperty(value = "需求进度")
+    private BigDecimal demandSchedule;
+
+    @ExcelProperty(value = "关联项目")
+    @ApiModelProperty(value = "关联项目")
+    private String associatedProjectId;
+
+    @ExcelProperty(value = "负责人")
+    @ApiModelProperty(value = "负责人")
+    private String submitter;
+
+    @ExcelProperty(value = "提报人")
+    @ApiModelProperty(value = "提报人")
+    private String createUser;
+
+    @ExcelProperty(value = "提交时间", converter = LocalDateTimeConverter.class)
+    @ApiModelProperty(value = "提交时间")
+    private LocalDateTime submitTime;
+}

+ 6 - 0
src/main/java/com/migao/entity/vo/res/DemandLibraryPageQueryRes.java

@@ -30,6 +30,12 @@ public class DemandLibraryPageQueryRes {
     @ApiModelProperty(value = "需求内容")
     private String demandContent;
 
+    @ApiModelProperty(value = "受理需求时间")
+    private Integer acceptDemandTime;
+
+    @ApiModelProperty(value = "计划需求实施工期(周)")
+    private Integer planDemandTime;
+
     @ApiModelProperty(value = "需求分类")
     private String demandClass;
 

+ 9 - 0
src/main/java/com/migao/mapper/DemandLibraryMapper.java

@@ -2,9 +2,18 @@ package com.migao.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.migao.entity.po.DemandLibrary;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author dingsong
  */
 public interface DemandLibraryMapper extends BaseMapper<DemandLibrary> {
+    /**
+     * 通过时间查询需求库信息
+     * @param date 时间
+     * @return
+     */
+    List<DemandLibrary> findByDate(@Param("date") String date);
 }

+ 7 - 0
src/main/java/com/migao/service/DemandLibraryService.java

@@ -109,4 +109,11 @@ public interface DemandLibraryService extends IService<DemandLibrary> {
      * @return
      */
     public ResponseBean<List<Company>> Company();
+
+    /**
+     * 导出数据
+     * @param date
+     * @return
+     */
+    public ResponseBean<?> export(String date);
 }

+ 62 - 4
src/main/java/com/migao/service/impl/DemandLibraryServiceImpl.java

@@ -1,23 +1,26 @@
 package com.migao.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.migao.config.authority.LoginUtils;
+import com.migao.config.constant.SystemConstant;
+import com.migao.config.properties.SystemProperties;
 import com.migao.config.response.*;
 import com.migao.entity.po.*;
 import com.migao.entity.vo.req.DemandLibraryInsertReq;
 import com.migao.entity.vo.req.DemandLibraryQueryReq;
 import com.migao.entity.vo.req.DemandLibraryUpdateReq;
 import com.migao.entity.vo.req.DemandSubProjectReq;
-import com.migao.entity.vo.res.DemandAttachmentRes;
-import com.migao.entity.vo.res.DemandLibraryPageQueryRes;
-import com.migao.entity.vo.res.DemandLibraryQueryRes;
-import com.migao.entity.vo.res.DictionaryListRes;
+import com.migao.entity.vo.res.*;
 import com.migao.mapper.*;
 import com.migao.service.DemandLibraryService;
 import com.migao.util.EntityUtils;
+import com.migao.util.FileUtils;
 import com.migao.util.ProjectNoUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -50,6 +53,8 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
     UserMapper userMapper;
     @Resource
     CompanyMapper companyMapper;
+    @Resource
+    private SystemProperties systemProperties;
 
     @Override
     public ResponseBean<?> insert(DemandLibraryInsertReq demandLibrary) {
@@ -175,6 +180,8 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
                             .submitTime(element.getSubmitTime())
                             .deleted(element.getDeleted())
                             .createUser(userMapper.selectById(element.getCreateUserId()).getName())
+                            .acceptDemandTime(element.getAcceptDemandTime())
+                            .planDemandTime(element.getPlanDemandTime())
                             .build();
                             return dicPageQueryRes;
                     }
@@ -219,6 +226,8 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
                             .submitTime(element.getSubmitTime())
                             .deleted(element.getDeleted())
                             .createUser(userMapper.selectById(element.getCreateUserId()).getName())
+                            .acceptDemandTime(element.getAcceptDemandTime())
+                            .planDemandTime(element.getPlanDemandTime())
                             .build();
                     return dicPageQueryRes;
                 }
@@ -271,6 +280,8 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
                             .submitTime(element.getSubmitTime())
                             .deleted(element.getDeleted())
                             .createUser(userMapper.selectById(element.getCreateUserId()).getName())
+                            .acceptDemandTime(element.getAcceptDemandTime())
+                            .planDemandTime(element.getPlanDemandTime())
                             .build();
                     return dicPageQueryRes;
                 }
@@ -327,6 +338,8 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
                             .submitTime(element.getSubmitTime())
                             .deleted(element.getDeleted())
                             .createUser(userMapper.selectById(element.getCreateUserId()).getName())
+                            .acceptDemandTime(element.getAcceptDemandTime())
+                            .planDemandTime(element.getPlanDemandTime())
                             .build();
                     return dicPageQueryRes;
                 }
@@ -407,5 +420,50 @@ public class DemandLibraryServiceImpl extends ServiceImpl<DemandLibraryMapper, D
         return ResponseBuilder.ok(companyList);
     }
 
+    @Override
+    public ResponseBean<?> export(String date) {
+        //DemandLibraryExportRes
+        List<DemandLibrary> demandLibraryList = demandLibraryMap.findByDate(date);
+        List<DemandLibraryExportRes> duplicatedList = null;
+
+        demandLibraryList.forEach(
+                demandLibrary -> {
+                    DemandLibraryExportRes demandLibraryExportRes = DemandLibraryExportRes
+                            .builder()
+                            .id(demandLibrary.getId())
+                            .demandNumber(demandLibrary.getDemandNumber())
+                            .demandName(demandLibrary.getDemandName())
+                            .demandContent(demandLibrary.getDemandContent())
+                            .demandClass(dictionaryMapper.selectById(demandLibrary.getDemandClassId()).getValue())
+                            .unitName(companyMapper.selectById(demandLibrary.getUnitNameId()).getOrgName())
+                            .demandStatus(demandLibrary.getDemandStatus() == -1 ? "废除"
+                                    : demandLibrary.getDemandStatus() == 0 ? "立项" : "认领")
+                            .demandSchedule(demandLibrary.getDemandSchedule())
+                            .associatedProjectId(projectMapper.selectById(demandLibrary.getAssociatedProjectId()).getName())
+                            .submitter(demandLibrary.getSubmitter())
+                            .createUser(userMapper.selectById(demandLibrary.getCreateUserId()).getName())
+                            .submitTime(demandLibrary.getSubmitTime())
+                            .build();
+                    duplicatedList.add(demandLibraryExportRes);
+                }
+        );
+
+        String fileName = StringUtils.join(
+                FileUtils.getFileNo(), SystemConstant.EXCEL_SUFFIX
+        );
+        String filePath = StringUtils.join(
+                systemProperties.getFileStoreDirPath(), fileName
+        );
+        String fileUrl = StringUtils.join(
+                systemProperties.getDownloadPrefix(), fileName
+        );
+        ExcelWriter excelWriter = EasyExcel.write(filePath, DemandLibraryExportRes.class).build();
+        WriteSheet writeSheet = EasyExcel.writerSheet("需求库数据").build();
+        excelWriter.write(duplicatedList, writeSheet);
+        //关闭流
+        excelWriter.finish();
+        return ResponseBuilder.ok(fileUrl);
+    }
+
 
 }

+ 5 - 0
src/main/resources/mapper/DemandLibraryMapper.xml

@@ -2,4 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 <mapper namespace="com.migao.mapper.DemandLibraryMapper">
+    <select id="findByDate" resultType="com.migao.entity.po.DemandLibrary">
+        select * from t_demand_library
+        where sub_project_id is null
+        and date_format(submit_time,'%Y-%m-%d') = date_format(#{date},'%Y-%m-%d')
+    </select>
 </mapper>