Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

zhuzeyu 10 kuukautta sitten
vanhempi
commit
1c15c5c055

+ 24 - 15
src/main/java/cn/ezhizao/project/business/processCompletion/controller/BizProcessCompletionController.java

@@ -1,5 +1,7 @@
 package cn.ezhizao.project.business.processCompletion.controller;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -11,7 +13,9 @@ import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
 import cn.ezhizao.framework.web.page.TableDataInfo;
 import cn.ezhizao.project.business.processCompletion.domain.BizProcessCompletion;
+import cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics;
 import cn.ezhizao.project.business.processCompletion.service.IBizProcessCompletionService;
+import cn.ezhizao.project.business.processCompletion.service.ICompleteStatisticsService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -30,32 +34,41 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/business/completion")
-public class BizProcessCompletionController extends BaseController
-{
+public class BizProcessCompletionController extends BaseController {
     @Resource
     private IBizProcessCompletionService bizProcessCompletionService;
+    @Resource
+    private ICompleteStatisticsService completeStatisticsService;
 
     /**
      * 查询企业租户列表
      */
     @PreAuthorize("@ss.hasPermi('business:completion:list')")
     @GetMapping("/list")
-    public TableDataInfo list(BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException
-    {
+    public TableDataInfo list(BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProcessCompletion);
         startPage();
         List<BizProcessCompletion> list = bizProcessCompletionService.getList(bizProcessCompletion);
         return getDataTable(list);
     }
 
+    @PreAuthorize("@ss.hasPermi('business:completion:list')")
+    @GetMapping("/listStatistics")
+    public TableDataInfo listStatistics(CompleteStatistics completeStatistics) throws NoSuchFieldException, IllegalAccessException {
+        List<CompleteStatistics> list = completeStatisticsService.getList(completeStatistics);
+        list.forEach(l -> {
+            l.setRatio(l.getFinishedNum().equals(0) ? BigDecimal.ZERO : BigDecimal.valueOf(l.getFinishedInTimeNum()).divide(BigDecimal.valueOf(l.getFinishedNum()), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)));
+        });
+        return getDataTable(list);
+    }
+
     /**
      * 导出企业租户列表
      */
     @PreAuthorize("@ss.hasPermi('business:completion:export')")
     @Log(title = "企业租户", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException
-    {
+    public void export(HttpServletResponse response, BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProcessCompletion);
         List<BizProcessCompletion> list = bizProcessCompletionService.getList(bizProcessCompletion);
         ExcelUtil<BizProcessCompletion> util = new ExcelUtil<BizProcessCompletion>(BizProcessCompletion.class);
@@ -67,8 +80,7 @@ public class BizProcessCompletionController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('business:completion:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(bizProcessCompletionService.getById(id));
     }
 
@@ -78,8 +90,7 @@ public class BizProcessCompletionController extends BaseController
     @PreAuthorize("@ss.hasPermi('business:completion:add')")
     @Log(title = "企业租户", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException
-    {
+    public AjaxResult add(@RequestBody BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProcessCompletion);
         return toAjax(bizProcessCompletionService.save(bizProcessCompletion));
     }
@@ -90,8 +101,7 @@ public class BizProcessCompletionController extends BaseController
     @PreAuthorize("@ss.hasPermi('business:completion:edit')")
     @Log(title = "企业租户", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException
-    {
+    public AjaxResult edit(@RequestBody BizProcessCompletion bizProcessCompletion) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizProcessCompletion);
         return toAjax(bizProcessCompletionService.updateById(bizProcessCompletion));
     }
@@ -101,9 +111,8 @@ public class BizProcessCompletionController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('business:completion:remove')")
     @Log(title = "企业租户", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable List<Long> ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable List<Long> ids) {
         return toAjax(bizProcessCompletionService.removeBatchByIds(ids));
     }
 }

+ 70 - 3
src/main/java/cn/ezhizao/project/business/processCompletion/domain/BizProcessCompletion.java

@@ -1,7 +1,10 @@
 package cn.ezhizao.project.business.processCompletion.domain;
 
+import java.util.Date;
+
 import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import io.swagger.annotations.ApiModelProperty;
@@ -10,7 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
  * 企业租户对象 biz_process_completion
  *
  * @author ezhizao
- * @date 2024-08-01
+ * @date 2024-08-02
  */
 @Data
 @TableName(value = "biz_process_completion")
@@ -18,6 +21,43 @@ public class BizProcessCompletion extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
+    /** 下达日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "下达日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "下达日期")
+    private Date releaseDate;
+
+    /** 计划完成日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "计划完成日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "计划完成日期")
+    private Date planDate;
+
+    /** 产品id */
+    @ApiModelProperty(value = "计划完成日期")
+    private Long productId;
+
+    /** 产品描述 */
+    @Excel(name = "产品描述")
+    @ApiModelProperty(value = "产品描述")
+    private String productDescription;
+
+    /** 产品产品编码 */
+    @Excel(name = "产品产品编码")
+    @ApiModelProperty(value = "产品产品编码")
+    private String productCode;
+
+    /** 实际完成日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "实际完成日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "实际完成日期")
+    private Date actualDate;
+
+    /** 是否超期 0 未开始 1未超期 2 已超期 */
+    @Excel(name = "是否超期 0 未开始 1未超期 2 已超期")
+    @ApiModelProperty(value = "是否超期 0 未开始 1未超期 2 已超期")
+    private Integer isOverdue;
+
     /** 年 */
     @Excel(name = "年")
     @ApiModelProperty(value = "年")
@@ -31,11 +71,38 @@ public class BizProcessCompletion extends BaseEntity
     /** 计划数量 */
     @Excel(name = "计划数量")
     @ApiModelProperty(value = "计划数量")
-    private Integer planNum;
+    private Long planNum;
 
     /** 实际数量 */
     @Excel(name = "实际数量")
     @ApiModelProperty(value = "实际数量")
-    private Integer actualNum;
+    private Long actualNum;
+
+    /** 客户id */
+    @ApiModelProperty(value = "实际数量")
+    private Long companyId;
+
+    /** 客户代号 */
+    @Excel(name = "客户代号")
+    @ApiModelProperty(value = "客户代号")
+    private String companyCode;
+
+    /** 客户集团简称,产品描述用 */
+    @Excel(name = "客户集团简称,产品描述用")
+    @ApiModelProperty(value = "客户集团简称,产品描述用")
+    private String companyAlias;
+
+    /** 规格,不允许出现下划线_ */
+    @Excel(name = "规格,不允许出现下划线_")
+    @ApiModelProperty(value = "规格,不允许出现下划线_")
+    private String specification;
+
+    /** 图号,不允许出现下划线_ */
+    @Excel(name = "图号,不允许出现下划线_")
+    @ApiModelProperty(value = "图号,不允许出现下划线_")
+    private String drawingNumber;
+
+    @ApiModelProperty(value = "未及时原因")
+    private String reason;
 
 }

+ 15 - 0
src/main/java/cn/ezhizao/project/business/processCompletion/domain/CompleteStatistics.java

@@ -0,0 +1,15 @@
+package cn.ezhizao.project.business.processCompletion.domain;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class CompleteStatistics {
+    private String year;
+    private String month;
+    private String yearMonth;
+    private Integer finishedNum;
+    private Integer finishedInTimeNum;
+    private BigDecimal ratio;
+}

+ 12 - 0
src/main/java/cn/ezhizao/project/business/processCompletion/mapper/CompleteStatisticsMapper.java

@@ -0,0 +1,12 @@
+package cn.ezhizao.project.business.processCompletion.mapper;
+
+import cn.ezhizao.project.business.processCompletion.domain.BizProcessCompletion;
+import cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+public interface CompleteStatisticsMapper  extends BaseMapper<CompleteStatistics> {
+
+    public List<CompleteStatistics> getList(CompleteStatistics completeStatistics);
+}

+ 16 - 0
src/main/java/cn/ezhizao/project/business/processCompletion/service/ICompleteStatisticsService.java

@@ -0,0 +1,16 @@
+package cn.ezhizao.project.business.processCompletion.service;
+
+import cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+public interface ICompleteStatisticsService extends IService<CompleteStatistics> {
+    /**
+     * 查询企业租户列表
+     *
+     * @param completeStatistics 企业租户
+     * @return 企业租户集合
+     */
+    public List<CompleteStatistics> getList(CompleteStatistics completeStatistics);
+}

+ 23 - 0
src/main/java/cn/ezhizao/project/business/processCompletion/service/impl/CompleteStatisticsServiceImpl.java

@@ -0,0 +1,23 @@
+package cn.ezhizao.project.business.processCompletion.service.impl;
+
+import cn.ezhizao.project.business.processCompletion.domain.BizProcessCompletion;
+import cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics;
+import cn.ezhizao.project.business.processCompletion.mapper.BizProcessCompletionMapper;
+import cn.ezhizao.project.business.processCompletion.mapper.CompleteStatisticsMapper;
+import cn.ezhizao.project.business.processCompletion.service.IBizProcessCompletionService;
+import cn.ezhizao.project.business.processCompletion.service.ICompleteStatisticsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class CompleteStatisticsServiceImpl  extends ServiceImpl<CompleteStatisticsMapper, CompleteStatistics> implements ICompleteStatisticsService {
+    @Resource
+    private CompleteStatisticsMapper completeStatisticsMapper;
+    @Override
+    public List<CompleteStatistics> getList(CompleteStatistics completeStatistics) {
+        return completeStatisticsMapper.getList(completeStatistics);
+    }
+}

+ 3 - 3
src/main/resources/application-dev.yml

@@ -80,11 +80,11 @@ spring:
 # 文件上传
 file:
     upload:
-        path: D:/Ezhizao/dms/upload/  # 实体路径
+        path: D://Ezhizao//dms//upload/  # 实体路径
         url: /upload/** # 映射url
         type: xlsx,xls,txt,jpeg,jpg,doc,ppt,pptx,png,pdf,rar,zip,wps,gif,docx #支持的文件类型
     excelTemplate:
-        url: /home/files/dms/templates/
+        url: D://Ezhizao//dms//templates/
 # 文件上传
 ruoyi:
-    profile: D:/Ezhizao/identity/
+    profile: D:/Ezhizao/dms/

+ 21 - 0
src/main/resources/mybatis/business/processCompletion/CompleteStatisticsMapper.xml

@@ -0,0 +1,21 @@
+<?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="cn.ezhizao.project.business.processCompletion.mapper.CompleteStatisticsMapper">
+
+    <resultMap type="cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics" id="CompleteStatisticsResult">
+    </resultMap>
+
+
+    <select id="getList" parameterType="cn.ezhizao.project.business.processCompletion.domain.CompleteStatistics" resultMap="CompleteStatisticsResult">
+        SELECT year, month, (select count(1) from biz_process_completion t where t.deleted = 0 and t.year = biz_process_completion.year and t.month = biz_process_completion.month and (t.is_overdue = 1 or t.is_overdue = 2)) as finished_num, (select count(1) from biz_process_completion t where t.deleted = 0 and t.year = biz_process_completion.year and t.month = biz_process_completion.month and t.is_overdue = 1) as finished_in_time_num FROM biz_process_completion
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            deleted = 0
+            <if test="year != null  and year != ''"> AND year = #{year}</if>
+        </trim>
+        group by year,month
+        order by year,month
+    </select>
+
+</mapper>