From 3fc8d8c85b7354112c09eceab98ea86aa718c6c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Mon, 24 Apr 2023 11:28:16 +0800 Subject: [PATCH 01/40] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 4 ++ jero-web/src/common/lang/zh-cn.js | 4 ++ .../components/certificationList/index.vue | 66 ++++++++++++++++++- 3 files changed, 73 insertions(+), 1 deletion(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 1bdd0684d..625954e6d 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1801,4 +1801,8 @@ module.exports = { verifytheconformancedeliverabletype:'Verify the conformance deliverable type', designaconformancedeliverabletype:'Design a conformance deliverable type', reasonForReturnOfCompliance:'Reason for compliance return', + supplementarySubmission:'Supplementary Submission', + confirmSupplementarySubmission:'Confirm Supplementary Submission ?', + onlyProcessStatusOfApprovedCanBeSelected:'Only data with a process status of approved can be selected', + andTheOperatorCurrentData:' And the operator is the responsible person for the current data', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 4a7f90656..829a4533c 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1903,4 +1903,8 @@ module.exports = { verifytheconformancedeliverabletype:'验证符合性交付物类型', designaconformancedeliverabletype:'设计符合性交付物类型', reasonForReturnOfCompliance: '符合性退回原因', + supplementarySubmission:'补充提交', + confirmSupplementarySubmission:'确认补充提交?', + onlyProcessStatusOfApprovedCanBeSelected:'只能选择流程状态为审查通过的数据', + andTheOperatorCurrentData:',并且登录人为当前数据的责任人', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index 523b0f69f..9aa533fb4 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -227,6 +227,14 @@ {{ $t('reviewAndReturn') }} + +
+ + {{ $t('supplementarySubmission') }} +
+
0) { + let ids = [] + let notConditions = [] + let _this = this + for (let i = 0; i < this.selectedRowKeysList.length; i++) { + if (this.selectedRowKeysList[i].flowStatus == 'Review and pass') { + if (this.roleSwitchingCode == 20 && this.selectedRowKeysList[i].dutyPersonName == this.userInfo().username) { + ids.push(this.selectedRowKeysList[i].id) + } else if (this.roleSwitchingCode == 21) { + ids.push(this.selectedRowKeysList[i].id) + } else { + notConditions.push(this.selectedRowKeysList[i].inspectionItem) + } + } else { + notConditions.push(this.selectedRowKeysList[i].inspectionItem) + } + } + let data = '' + if (notConditions && notConditions.length > 0) { + if (this.roleSwitchingCode == 20) { + data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyProcessStatusOfApprovedCanBeSelected') + this.$t('andTheOperatorCurrentData') + } else { + data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyProcessStatusOfApprovedCanBeSelected') + } + } + if (ids && ids.length > 0) { + this.$confirm({ + content: _this.$t('confirmSupplementarySubmission'), + onOk() { + let query = { + ids: ids.join(','), + 'flowStatus': 'Results to be submitted' + } + postAction('/project/projectCertificationInventoryEO/updateStatusBatch', query).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() + _this.selectedRowKeys = [] + _this.selectedRowKeysList = [] + if (notConditions && notConditions.length > 0) { + _this.failedMessage(data) + } + } else { + _this.$message.warning(_this.$t('operationFailed')) + } + }) + } + }) + } else { + this.failedMessage(data) + } + } else { + this.$message.warning(this.$t('selectLeastOne')) + } } } } From 9f16316d323f5281fa1af76d606da8a69acfe588 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Mon, 24 Apr 2023 11:37:51 +0800 Subject: [PATCH 02/40] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E3=80=81=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=20=E7=89=88=E6=9C=AC=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E5=8D=87=E7=89=88=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-boot/db/蔚来标准sql/dev_2nd_period.sql | 10 ++++++++++ .../authDummy/entity/AuthDummyInventoryBaseEO.java | 8 ++++++++ .../modules/dummy/entity/DummyInventoryBaseEO.java | 7 +++++++ 3 files changed, 25 insertions(+) diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index b851236bb..ae65108cc 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -622,3 +622,13 @@ INSERT INTO `sys_dict_item`(`id`, `dict_id`, `item_text`, `item_value`, `descrip -- 市场认证清单 增加字段 2023-04-17 未同步生产环境 ALTER TABLE `auth_dummy_inventory_info` ADD COLUMN `attestation_type` varchar(2000) NULL COMMENT '认证类型' AFTER `deliverable_template`; + +-- 市场法规清单 增加字段 2023-04-24 未同步生产环境 +ALTER TABLE `dummy_inventory_base` + ADD COLUMN `version_num` varchar(2000) NULL COMMENT '版本号' AFTER `dummy_inventory_info_id`, + ADD COLUMN `upgrade_explanation` varchar(2000) NULL COMMENT '升版说明' AFTER `version_num`; + +-- 市场认证清单 增加字段 2023-04-24 未同步生产环境 +ALTER TABLE `auth_dummy_inventory_base` + ADD COLUMN `version_num` varchar(2000) NULL COMMENT '版本号' AFTER `state`, + ADD COLUMN `upgrade_explanation` varchar(2000) NULL COMMENT '升版说明' AFTER `version_num`; \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java index 0b36891f8..c29c773dc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/authDummy/entity/AuthDummyInventoryBaseEO.java @@ -84,4 +84,12 @@ public class AuthDummyInventoryBaseEO implements Serializable { /**订阅标识*/ @TableField(exist = false) private String readFlag; + + /**版本号*/ + @ApiModelProperty(value = "版本号") + private String versionNum; + + /**升版说明*/ + @ApiModelProperty(value = "升版说明") + private String upgradeExplanation; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java index 44c3b2bd2..ba2e5cafd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/entity/DummyInventoryBaseEO.java @@ -95,4 +95,11 @@ public class DummyInventoryBaseEO implements Serializable { @TableField(exist = false) private String orderByField; + /**版本号*/ + @ApiModelProperty(value = "版本号") + private String versionNum; + + /**升版说明*/ + @ApiModelProperty(value = "升版说明") + private String upgradeExplanation; } From 2085a3ac4da92343003a15511409174ef348304e Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Mon, 24 Apr 2023 13:53:53 +0800 Subject: [PATCH 03/40] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0log=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...arketListVersionUpdateLogEOController.java | 170 ++++++++++++++++++ .../entity/MarketListVersionUpdateLogEO.java | 81 +++++++++ .../jero/modules/log/enums/ListTypeEnum.java | 33 ++++ .../MarketListVersionUpdateLogEOMapper.java | 17 ++ .../MarketListVersionUpdateLogEOMapper.xml | 16 ++ .../IMarketListVersionUpdateLogEOService.java | 61 +++++++ ...rketListVersionUpdateLogEOServiceImpl.java | 89 +++++++++ 7 files changed, 467 insertions(+) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/enums/ListTypeEnum.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/MarketListVersionUpdateLogEOMapper.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/xml/MarketListVersionUpdateLogEOMapper.xml create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java new file mode 100644 index 000000000..5b309a684 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/controller/MarketListVersionUpdateLogEOController.java @@ -0,0 +1,170 @@ +package com.jero.modules.log.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; +import com.jero.modules.log.service.IMarketListVersionUpdateLogEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 市场清单版本更新log表 + * @Author: jero-boot + * @Date: 2023-04-24 + * @Version: V1.0 + */ +@Api(tags="市场清单版本更新log表") +@RestController +@RequestMapping("/log/marketListVersionUpdateLogEO") +@Slf4j +public class MarketListVersionUpdateLogEOController extends JeroController { + @Autowired + private IMarketListVersionUpdateLogEOService marketListVersionUpdateLogEOService; + + /** + * 分页列表查询 + * + * @param marketListVersionUpdateLogEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "市场清单版本更新log表-分页列表查询") + @ApiOperation(value="市场清单版本更新log表-分页列表查询", notes="市场清单版本更新log表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(marketListVersionUpdateLogEO, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = marketListVersionUpdateLogEOService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "市场清单版本更新log表-列表查询") + @ApiOperation(value="市场清单版本更新log表-列表查询", notes="市场清单版本更新log表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = marketListVersionUpdateLogEOService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param marketListVersionUpdateLogEO + * @return + */ + @AutoLog(value = "市场清单版本更新log表-添加") + @ApiOperation(value="市场清单版本更新log表-添加", notes="市场清单版本更新log表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { + marketListVersionUpdateLogEOService.add(marketListVersionUpdateLogEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param marketListVersionUpdateLogEO + * @return + */ + @AutoLog(value = "市场清单版本更新log表-编辑") + @ApiOperation(value="市场清单版本更新log表-编辑", notes="市场清单版本更新log表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { + marketListVersionUpdateLogEOService.editById(marketListVersionUpdateLogEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "市场清单版本更新log表-通过id删除") + @ApiOperation(value="市场清单版本更新log表-通过id删除", notes="市场清单版本更新log表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + marketListVersionUpdateLogEOService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "市场清单版本更新log表-批量删除") + @ApiOperation(value="市场清单版本更新log表-批量删除", notes="市场清单版本更新log表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.marketListVersionUpdateLogEOService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "市场清单版本更新log表-通过id查询") + @ApiOperation(value="市场清单版本更新log表-通过id查询", notes="市场清单版本更新log表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + MarketListVersionUpdateLogEO marketListVersionUpdateLogEO = marketListVersionUpdateLogEOService.queryById(id); + if(marketListVersionUpdateLogEO==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(marketListVersionUpdateLogEO); + } + + /** + * 导出excel + * + * @param request + * @param marketListVersionUpdateLogEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { + return super.exportXls(request, marketListVersionUpdateLogEO, MarketListVersionUpdateLogEO.class, "市场清单版本更新log表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, MarketListVersionUpdateLogEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java new file mode 100644 index 000000000..421932ae8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/entity/MarketListVersionUpdateLogEO.java @@ -0,0 +1,81 @@ +package com.jero.modules.log.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 市场清单版本更新log表 + * @Author: jero-boot + * @Date: 2023-04-24 + * @Version: V1.0 + */ +@Data +@TableName("market_list_version_update_log") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="market_list_version_update_log对象", description="市场清单版本更新log表") +public class MarketListVersionUpdateLogEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**版本号*/ + @Excel(name = "版本号", width = 15) + @ApiModelProperty(value = "版本号") + private String versionNum; + + /**升版说明*/ + @Excel(name = "升版说明", width = 15) + @ApiModelProperty(value = "升版说明") + private String upgradeExplanation; + + /**清单类型*/ + @Excel(name = "清单类型", width = 15) + @ApiModelProperty(value = "清单类型") + private String listType; + + /**清单id*/ + @Excel(name = "清单id", width = 15) + @ApiModelProperty(value = "清单id") + private String listId; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/enums/ListTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/enums/ListTypeEnum.java new file mode 100644 index 000000000..bcfd884a2 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/enums/ListTypeEnum.java @@ -0,0 +1,33 @@ +package com.jero.modules.log.enums; + +/** + * 清单类型枚举类 + */ +public enum ListTypeEnum { + MARKET_REGULATION_LIST("市场法规清单","Market Regulation List"), + MARKET_CERTIFICATION_LIST("市场认证清单","Market Certification List"); + + String name; + String value; + + private ListTypeEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/MarketListVersionUpdateLogEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/MarketListVersionUpdateLogEOMapper.java new file mode 100644 index 000000000..c3ec07429 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/MarketListVersionUpdateLogEOMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.log.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 市场清单版本更新log表 + * @Author: jero-boot + * @Date: 2023-04-24 + * @Version: V1.0 + */ +public interface MarketListVersionUpdateLogEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/xml/MarketListVersionUpdateLogEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/xml/MarketListVersionUpdateLogEOMapper.xml new file mode 100644 index 000000000..63d029a07 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/mapper/xml/MarketListVersionUpdateLogEOMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java new file mode 100644 index 000000000..cd43030f5 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/IMarketListVersionUpdateLogEOService.java @@ -0,0 +1,61 @@ +package com.jero.modules.log.service; + +import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 市场清单版本更新log表 + * @Author: jero-boot + * @Date: 2023-04-24 + * @Version: V1.0 + */ +public interface IMarketListVersionUpdateLogEOService extends IService { + + /** + * 保存 + * + * @param marketListVersionUpdateLogEO + * @return + */ + void add(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO); + + /** + * 更新 + * + * @param marketListVersionUpdateLogEO + * @return + */ + void editById(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + MarketListVersionUpdateLogEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java new file mode 100644 index 000000000..d11b33a94 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/log/service/impl/MarketListVersionUpdateLogEOServiceImpl.java @@ -0,0 +1,89 @@ +package com.jero.modules.log.service.impl; + +import com.jero.modules.log.entity.MarketListVersionUpdateLogEO; +import com.jero.modules.log.mapper.MarketListVersionUpdateLogEOMapper; +import com.jero.modules.log.service.IMarketListVersionUpdateLogEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 市场清单版本更新log表 + * @Author: jero-boot + * @Date: 2023-04-24 + * @Version: V1.0 + */ +@Service +public class MarketListVersionUpdateLogEOServiceImpl extends ServiceImpl implements IMarketListVersionUpdateLogEOService { + + /** + * 保存 + * + * @param marketListVersionUpdateLogEO + * @return + */ + @Override + public void add(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { + Date now = new Date(); + marketListVersionUpdateLogEO.setCreateTime(now); + marketListVersionUpdateLogEO.setUpdateTime(now); + save(marketListVersionUpdateLogEO); + } + + /** + * 更新 + * + * @param marketListVersionUpdateLogEO + * @return + */ + @Override + public void editById(MarketListVersionUpdateLogEO marketListVersionUpdateLogEO) { + Date now = new Date(); + marketListVersionUpdateLogEO.setUpdateTime(now); + saveOrUpdate(marketListVersionUpdateLogEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public MarketListVersionUpdateLogEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} From 2cde427c9f34635ac382244e4ee30aba4d581507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Mon, 24 Apr 2023 14:13:56 +0800 Subject: [PATCH 04/40] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=B3=95=E8=A7=84=E3=80=81=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 2 + jero-web/src/common/lang/zh-cn.js | 2 + .../views/documentTools/virtualList/index.vue | 87 ++++++-- .../components/releaseForm.vue | 201 ++++++++++++++++++ .../views/virtualAuthenticationList/index.vue | 95 +++++++-- 5 files changed, 355 insertions(+), 32 deletions(-) create mode 100644 jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 625954e6d..a2d24c0b9 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1805,4 +1805,6 @@ module.exports = { confirmSupplementarySubmission:'Confirm Supplementary Submission ?', onlyProcessStatusOfApprovedCanBeSelected:'Only data with a process status of approved can be selected', andTheOperatorCurrentData:' And the operator is the responsible person for the current data', + upgradeInstructions:'Upgrade Instructions', + upgradeOrNot:'Upgrade or not', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 829a4533c..7376d26c3 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1907,4 +1907,6 @@ module.exports = { confirmSupplementarySubmission:'确认补充提交?', onlyProcessStatusOfApprovedCanBeSelected:'只能选择流程状态为审查通过的数据', andTheOperatorCurrentData:',并且登录人为当前数据的责任人', + upgradeInstructions:'升版说明', + upgradeOrNot:'是否升版', } \ No newline at end of file diff --git a/jero-web/src/views/documentTools/virtualList/index.vue b/jero-web/src/views/documentTools/virtualList/index.vue index e7f3d88f2..007427c79 100644 --- a/jero-web/src/views/documentTools/virtualList/index.vue +++ b/jero-web/src/views/documentTools/virtualList/index.vue @@ -128,6 +128,20 @@
+ +
+
+ * + {{$t('VersionNumber')}} +
+ + + +
+
@@ -150,6 +164,7 @@
+ @@ -160,6 +175,7 @@ import VueDraggableResizable from 'vue-draggable-resizable' import tableDragResize from '@/mixins/tableDragResize' import setCreator from '@/components/setCreator/index' + import releaseForm from '../../virtualAuthenticationList/components/releaseForm' import { mapGetters } from 'vuex' import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header' @@ -167,7 +183,8 @@ name: 'index', components: { VueDraggableResizable, - setCreator + setCreator, + releaseForm }, mixins: [tableDragResize, ResizeHeader, ResizeColumnProvide], data() { @@ -189,6 +206,18 @@ trigger: 'blur' } ], + versionNum:[ + { + required: true, + message: this.$t('VersionNumber') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 100, + message: this.$t('VersionNumber') + this.$t('cannotExceed') + 100 + this.$t('Characters'), + trigger: 'blur' + } + ], useExplain: [ { required: true, @@ -225,17 +254,24 @@ ellipsis: true, scopedSlots: { customRender: 'VirtualListName' } }, + { + title: this.$t('VersionNumber'), + align: 'left', + width: '10%', + ellipsis: true, + dataIndex: 'versionNum' + }, { title: this.$t('listStatus'), align: 'left', - width: '20%', + width: '15%', ellipsis: true, dataIndex: 'state_dictText' }, { title: this.$t('creater'), align: 'left', - width: '20%', + width: '15%', ellipsis: true, dataIndex: 'createBy' }, @@ -362,17 +398,40 @@ } item.id = val.id let _this = this - this.$confirm({ - content: content, - onOk() { - postAction(_this.url.urlWithdraw, item).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.getList() - } else { - _this.$message.warning(res.message) - } - }) + if (item.state == 1){ + this.$refs.releaseFormRef.getData(val.id) + }else{ + this.$confirm({ + content: content, + onOk() { + postAction(_this.url.urlWithdraw, item).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() + } else { + _this.$message.warning(res.message) + } + }) + } + }) + } + }, + releaseFormData(id, val) { + let _this = this + let item = { + state: 1, + id: id, + ...val + } + postAction(_this.url.urlWithdraw, item).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() + _this.$refs.releaseFormRef.confirmLoading = false + _this.$refs.releaseFormRef.visible = false + } else { + _this.$message.warning(res.message) + _this.$refs.releaseFormRef.confirmLoading = false } }) }, diff --git a/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue b/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue new file mode 100644 index 000000000..724b58b64 --- /dev/null +++ b/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue @@ -0,0 +1,201 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/virtualAuthenticationList/index.vue b/jero-web/src/views/virtualAuthenticationList/index.vue index b837edcc1..9ec008852 100644 --- a/jero-web/src/views/virtualAuthenticationList/index.vue +++ b/jero-web/src/views/virtualAuthenticationList/index.vue @@ -42,7 +42,7 @@ {{$t('BatchDelete')}}
- +
+ +
+
+ * + {{$t('VersionNumber')}} +
+ + + +
+
@@ -144,11 +158,13 @@ {{$t('submit')}}
+ @@ -126,11 +156,13 @@ text-align: right; margin-top: 20px; } - /deep/.tooltipColor .ant-tooltip-inner { + + /deep/ .tooltipColor .ant-tooltip-inner { color: #333; background-color: #fff !important; } - /deep/.tooltipColor .ant-tooltip-arrow::before { + + /deep/ .tooltipColor .ant-tooltip-arrow::before { background-color: #fff; } \ No newline at end of file diff --git a/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue b/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue new file mode 100644 index 000000000..1642c6f6c --- /dev/null +++ b/jero-web/src/components/UpdateLog/versionUpdatedRecordList.vue @@ -0,0 +1,138 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue index 3965a9050..1b8c32b24 100644 --- a/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue +++ b/jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue @@ -323,7 +323,7 @@
- + @@ -434,7 +434,8 @@ exportData: '/dummy/dummyInventoryInfoEO/exportData', exportTemplate: '/dummy/dummyInventoryInfoEO/exportTemplate', getSysCategoryTree: '/sys/category/getSysCategoryTree', - logList: '/dummy/dummyLogEO/page' + logList: '/dummy/dummyLogEO/page', + versionList:'/log/marketListVersionUpdateLogEO/page', }, loading: false, dataSource: [], @@ -1062,7 +1063,8 @@ this.getList() }, UpdateLogClick() { - this.$refs.UpdateLogRef.getList({ dummyInventoryBaseId: this.$route.query.id }) + this.$refs.UpdateLogRef.getList({ dummyInventoryBaseId: this.$route.query.id, }, + {listId:this.$route.query.id,listType:'Market Regulation List'}) }, searchQuery() { this.getList() diff --git a/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue b/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue index 724b58b64..c2685d197 100644 --- a/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue +++ b/jero-web/src/views/virtualAuthenticationList/components/releaseForm.vue @@ -22,7 +22,7 @@ - + diff --git a/jero-web/src/views/virtualAuthenticationList/virtualAuthenticationListDesign/certificationListMaintenance.vue b/jero-web/src/views/virtualAuthenticationList/virtualAuthenticationListDesign/certificationListMaintenance.vue index 5a6f8b47f..3d54dc18e 100644 --- a/jero-web/src/views/virtualAuthenticationList/virtualAuthenticationListDesign/certificationListMaintenance.vue +++ b/jero-web/src/views/virtualAuthenticationList/virtualAuthenticationListDesign/certificationListMaintenance.vue @@ -244,7 +244,7 @@ - + @@ -299,7 +299,8 @@ editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑 setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置 importZipUrl: '/authDummy/authDummyInventoryInfoEO/importData',//导入 - number: '/project/projectLawsInventoryEO/list' + number: '/project/projectLawsInventoryEO/list', + versionList:'/log/marketListVersionUpdateLogEO/page', }, queryParam: {}, orderByField: '', @@ -416,7 +417,8 @@ this.toggleSearchStatus = !this.toggleSearchStatus }, UpdateLogClick() { - this.$refs.UpdateLogRef.getList({ authDummyInventoryBaseId: this.$route.query.id }) + this.$refs.UpdateLogRef.getList({ authDummyInventoryBaseId: this.$route.query.id }, + {listId:this.$route.query.id,listType:'Market Certification List'}) }, //搜索 searchQuery() { From 60a3973cb4434cb643ad20ecf254ba0ca2b77227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Mon, 24 Apr 2023 17:17:21 +0800 Subject: [PATCH 07/40] =?UTF-8?q?=E5=B8=83=E5=B1=80=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 4 + jero-web/src/common/lang/zh-cn.js | 4 + .../components/ProjectDetails.vue | 82 +----- ...usEchart.vue => certificationActivity.vue} | 71 ++--- .../certificationProgressEchart.vue | 248 ------------------ ...rt.vue => parameterCollectionProgress.vue} | 0 .../components/projectStatus.vue | 47 ++-- ...ctEcharts.vue => regulatoryCompliance.vue} | 63 ++--- 8 files changed, 94 insertions(+), 425 deletions(-) rename jero-web/src/views/projectManagement/components/{deliverableStatusEchart.vue => certificationActivity.vue} (88%) delete mode 100644 jero-web/src/views/projectManagement/components/certificationProgressEchart.vue rename jero-web/src/views/projectManagement/components/{ParameterCollectionEchart.vue => parameterCollectionProgress.vue} (100%) rename jero-web/src/views/projectManagement/components/{currentStatusOfTheProjectEcharts.vue => regulatoryCompliance.vue} (84%) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index ca68b2ff2..2924c0d11 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1809,4 +1809,8 @@ module.exports = { upgradeOrNot:'Upgrade or not', operationRecords:'Operation Records', versionUpdatedRecord:'Version Updated Record', + regulatoryComplianceManagement:'Regulatory Compliance Management', + certificationActivityManagement:'Certification Activity Management', + parameterCollectionProgressManagement:'Parameter Collection Progress Management', + certificationTaskConfirmation:'Certification Task Confirmation', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index f7a7221b3..d74c33f43 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1911,4 +1911,8 @@ module.exports = { upgradeOrNot:'是否升版', operationRecords:'操作记录', versionUpdatedRecord:'版本更新记录', + regulatoryComplianceManagement:'法规符合性管理', + certificationActivityManagement:'认证活动管理', + parameterCollectionProgressManagement:'参数收集进度管理', + certificationTaskConfirmation:'认证任务确认', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index 7c7970d5b..a657e3730 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -28,23 +28,8 @@ {{queryForm.projectStatus_dictText}} - - - - - - - - - -
- - - - -
{{$t('StudioEngineer')}} {{queryForm.softwareVersion}}
- - - - - - - - - - - -
@@ -127,33 +100,6 @@ >{{queryForm.explanation}}
- - - - - - - - - - - - - - - - - - - - - - - - - - -
{{$t('complianceCertificationProgram')}} @@ -181,21 +127,9 @@
- - - - - - - - - - - - - - - + + + @@ -208,22 +142,16 @@ import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import addModel from './addModel' import settingList from './settingList' - import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts' - import deliverableStatusEchart from './deliverableStatusEchart' - import ParameterCollectionEchart from './ParameterCollectionEchart' - import certificationProgressEchart from './certificationProgressEchart' + import projectStatus from './projectStatus' import { mapGetters } from 'vuex' export default { name: 'ProjectDetails', components: { listOfRelevantPersonnel, - ParameterCollectionEchart, addModel, settingList, - currentStatusOfTheProjectEcharts, - deliverableStatusEchart, - certificationProgressEchart + projectStatus }, data() { return { diff --git a/jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue similarity index 88% rename from jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue rename to jero-web/src/views/projectManagement/components/certificationActivity.vue index f0498d93d..3b2ec79d1 100644 --- a/jero-web/src/views/projectManagement/components/deliverableStatusEchart.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -9,15 +9,7 @@
-
-
-
-
-
-
-
-
-
+
@@ -32,7 +24,7 @@ import responsibilityList from './responsibilityList' export default { - name: 'DeliverableStatusEchart', + name: 'certificationActivity', components: { responsibilityList }, @@ -50,9 +42,7 @@ } }, mounted() { - this.mainLeftContentEcharts() this.mainRightEcharts() - this.mainRightContentEcharts() this.mainBottomEcharts() this.getData() }, @@ -243,23 +233,15 @@ } , mainLeftEcharts(data, color) { - this.getEcharts('main-left', this.$t('listConfirmationProgress'), color, data, 1) + this.getEcharts('main-left', this.$t('certificationTaskConfirmation'), color, data, 1) } , mainRightEcharts(data, color) { - this.getEcharts('main-right', this.$t('taskConfirmationProgress'), color, data, 2) - } - , - mainLeftContentEcharts(data, color) { - this.getEcharts('main-left-content', this.$t('designComplianceConfirmationProgress'), color, data, 3) - } - , - mainRightContentEcharts(data, color) { - this.getEcharts('main-right-content', this.$t('preHomeConfirmProgress'), color, data, 4) + this.getEcharts('main-right', this.$t('preHomoFlow'), color, data, 2) } , mainBottomEcharts(data, color) { - this.getEcharts('main-bottom', this.$t('verificationComplianceConfirmationProgress'), color, data, 5) + this.getEcharts('main-bottom', this.$t('CertificationProgress'), color, data, 5) }, responsibility(item) { this.$emit('currentStatus', item) @@ -276,48 +258,41 @@ margin-bottom: 20px; .box-content-left { - width: calc(50% - 12px); - height: 398px; + width: calc(50% - 10px); + height: 346px; border: 2px #eff1f3 solid; - + border-radius: 6px; + margin-top: 4px; #main-left { width: 100%; height: 100%; - padding: 24px; - box-sizing: border-box; - } - - #main-left-content { - width: 100%; - height: 100%; - padding: 24px; - box-sizing: border-box; - } - - #main-bottom { - width: 100%; - height: 100%; - padding: 24px; + padding: 20px 24px; box-sizing: border-box; } } .box-content-right { - width: calc(50% - 12px); - height: 398px; + width: calc(50% - 10px); + height: 346px; border: 2px #eff1f3 solid; - + border-radius: 6px; + margin-top: 4px; #main-right { width: 100%; height: 100%; - padding: 24px; + padding: 20px 24px; box-sizing: border-box; } - - #main-right-content { + } + .box-content-bottom{ + width: 100%; + height: 346px; + border: 2px #eff1f3 solid; + border-radius: 6px; + #main-bottom { width: 100%; height: 100%; - padding: 24px; + padding: 20px 24px; box-sizing: border-box; } } diff --git a/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue b/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue deleted file mode 100644 index fc704f2a0..000000000 --- a/jero-web/src/views/projectManagement/components/certificationProgressEchart.vue +++ /dev/null @@ -1,248 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/ParameterCollectionEchart.vue b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue similarity index 100% rename from jero-web/src/views/projectManagement/components/ParameterCollectionEchart.vue rename to jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue diff --git a/jero-web/src/views/projectManagement/components/projectStatus.vue b/jero-web/src/views/projectManagement/components/projectStatus.vue index b76f998bc..2cde6b587 100644 --- a/jero-web/src/views/projectManagement/components/projectStatus.vue +++ b/jero-web/src/views/projectManagement/components/projectStatus.vue @@ -12,22 +12,22 @@
- - + + v-if="activeKey == $t('regulatoryComplianceManagement')"/> - - + + - - + + - - + + @@ -35,25 +35,25 @@ \ No newline at end of file From ba24f656dd494a95a1ccc5fcd1b41b149ae05838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Tue, 25 Apr 2023 15:15:12 +0800 Subject: [PATCH 13/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-boot/path带文件导出/军品数据.xls | Bin 0 -> 2823 bytes jero-web/src/assets/heiTop.png | Bin 0 -> 564 bytes jero-web/src/assets/huiBottom.png | Bin 0 -> 215 bytes jero-web/src/assets/kongBottom.png | Bin 0 -> 292 bytes jero-web/src/assets/kongTop.png | Bin 0 -> 723 bytes jero-web/src/assets/shiBottom.png | Bin 0 -> 435 bytes jero-web/src/assets/shiTop.png | Bin 0 -> 754 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 jero-boot/path带文件导出/军品数据.xls create mode 100644 jero-web/src/assets/heiTop.png create mode 100644 jero-web/src/assets/huiBottom.png create mode 100644 jero-web/src/assets/kongBottom.png create mode 100644 jero-web/src/assets/kongTop.png create mode 100644 jero-web/src/assets/shiBottom.png create mode 100644 jero-web/src/assets/shiTop.png diff --git a/jero-boot/path带文件导出/军品数据.xls b/jero-boot/path带文件导出/军品数据.xls new file mode 100644 index 0000000000000000000000000000000000000000..84d215a282a5ee14e4bd1ac5483697d7f3d1f440 GIT binary patch literal 2823 zcmaJ@2{@E%8y@>Gr)C_gX%W+(H8De$Xk-^-D`br|6L}`2XJ=*Qw{b-nqW-y1wU~=efW8z3;~o#ltHK00M!4---6t z0FD5$?p^R`-vC7g_HR{Eqjxj>mpCRtC_n6DWi-Mt)44sT22m@}G!jJPhC)kqeTRX-PlvFcSk z;nuEMUZa)Z`ynq%OL9X7-HSAXq87$xs0_GkJ7$7vguG~kx3XDO`o0iR2+@@fe>Nfm z46BG^c0bw;)i4qIbe4#Rj--*4E@xRCMh-`{VtiD-*wtH%_3UpF;d|cEa`#wE+imP6IL;EGD-K*a=7hdCiZ>*p^00gciw56CwEwLLKp({pR# zt@KKeI11yo#sv)4pgw6Ts9IZeUV#s$^%lw=)Kwq<=Fi<3!jN~=)fEZvD4l{`9<}Le zedVyOb+zQHdb2z&RW-zO`M~X4M$wmQZ$>224?B*GA7aL8_eE3eNWgnnYHw%KD@~P! z3o<(PU%&hQ+xenV*S4-pBXZcY zOij4-Oap3cF~s5QhXo>4Utyi#Cb;6IFqO5KasXx6Z2UNPDv?{Pw~1U3m-M@iErJY3 z^IR*dh&Np}&@kCImU&y0FUu+$RKYZl<-IQ=`epzqaP^|8gvtV7VBkPlx^_K7A3P20 zYfo_b42ot{A^WXhgU=O)g*&S#t>Vv?fALxuZVCtYUhfn*ylV^m{Q7CoDJ}qji}z>X zLs;N@;M^_oIKKczS3f^C@@6+1g___HeP+}K1dpo;g^*7aNJL48b%BAC{rnkbXUSSO{&;v7==~tW7hgHn}j(Va>wD(?2fLIEl@3R$TQ}eC~Q#`V`8H_WRT3K z0E#J`+(RBEG$W-&;Hn^DqlxcgRtL(dX^NV3x*-Ir9W`^)!`M(^5NS8Lj;6Ou z&W_CA@ITb%LBH$+mHZdZ;+EoUuYYObL&1i5eYtBQ>17Sb6EfOqr_;*1D33arUu%4v zUMKgc7a)#TPpTZl8{Sw<`aYeV)8;U=qUu}8Q%NAEh2CKn9lcC?kT1?YpYWH*3q@EI znP;sZBPz;5G{jdiz|$3v_OJ@XdtomJut7y8>ab}7U`Aa7hSkI$)~9-bqZGRYVgfPT zol=+7KFoH$_y})KoK?eoj!tox0<|?p=*|%0D;+|#zLG%n*F-g?8#8~9?Iw)#m#`tL z0of2o;1R|HmDPwB)3-tA)JmNwl$$|)PI9%eJb6^J?8K8(V@D$I5!t1Cme$-PunJ4~ zDH(SCxAZ`QFM6})f~0b6vjik=(d4Q?%gCrlQC_>0o}_IS#pFW#$)O@YJMANN7A|me zim8~!@bIfOandUW_C!WzBLQ8WH)W$Ec+tI}sU%OFwBm&d{yv>M=h{=oIsJ-6qJ z9@H5+YX&x4N)ZEmH1^37hNYIc6a6Hp7E<{Gg);Zjg@t4lr#-wyPI>($sAm9b4;gTH zBIlFA=e&Z$@70j=s(#yVhY>p~FC~7%Kf82|G zmo4e+?WuP{y>DKYU$ZO_8l{3Dn*{ESHGh7?-S|i~*TY4xpzJSVVZO#AjdiBk+0=2D z9`&xIOQs6HZltCTY_uko)5c$UURfJn0<-ZiAyfJdShUIiskDQ)@DIk}ecW(3pG|T3 zt#fx291_Enda73u?1gA8%4K{S;0aYM)8@e#*Kmouz^BL6mEX}lmS6AoZPISl6!bb0 zky{*&aXR+i*(q51dEXUEr`BA-BGNI$=+|0k8))1*$Wuj8$l%0K6+V@-p%7y@}CI>rzj(_m9A1&&r;Yp_weV4&=pixPBWEQv1>bNjwq z_k!5XsYtdr!t?jMz`Tb&98dVSG@^k=3ct^Ie_F?%3-mhu6_C?JZFdjs?W(EsJ@{vv zgA>{0;CfhxQupaHV&5qVAKJ=!t8i{MD2dipA)Tz27dFL$i(3@1J^64NJ$v%`dvMG_ zmZ-lca+(x-4%m)ktiSn(sbJ>@oTk9`vh65hF>|N0?abyBK(=vg2Z4tp`+qjFGo4d} z*ebal9W2xRC(Ycs1LrYfi`90-@onw!f9cwp%1Ki8Iol3?fz4D-O72YN{FrPWZ^y^2 Y4~yAHVE_OC literal 0 HcmV?d00001 diff --git a/jero-web/src/assets/heiTop.png b/jero-web/src/assets/heiTop.png new file mode 100644 index 0000000000000000000000000000000000000000..9f44b09381c18a34953025a7c2d2f49ab73e5650 GIT binary patch literal 564 zcmV-40?Yl0P)Px$?ny*JR7gv$mCH`TP!NWvCD0ox-ga(kf{iwDE54X-;KGe>;2XH+6}*IPTL}sq zcY;C-r=^jO8MF2sFg}Z zC={Y?UDx}(S}q(B3y#xv0Z@%$k|aS8xVxrlzGnqw!W)f7QPZ{uh^Q<=6h(m`z`f(+ zgI-!dD%`THk|0O}0Fcv)RaJ%Y*xNS@qr2+PN_f3qmvr6eBVsBzhGhjT!Rf`KC{ruA zU|zr+oO-OP71As>cs9WIqq!L*aI)g*sqL*A9#6UWoQBL;Ke1>E|M7S@t6N^+;yuz- z6hEhXFooOp3xT!Y0vGFO(GbHe!M2~T0N~=kz%d6AZ-rK?wMjmQVfb%+S*8VJ=hL=y zI-N=s6+gz~;Lic%J!7NulauOwVvA*2JE~gg`M&?_08P_iIP_|!dGtV#InN#Ebyrcu zE@N!%fO5GEzR%7K#a60%7 z*m%ooQ5HB8PKPuDSr)phhD^f?0)MW@i+$w&iO3>Z-s;V2O1h0k!^DcUe-^U^v-G2co#^NA%Cx&(BWL^R}6FprVLoEE0 zQxq7!y}y6{;fohPnCBb0)l9m+{{Gtk|NqxBD=Q~AFI!fmthd#Iw^5Sea>sdvHEj!| z9Zo3lI2TAZoL3NW=8$YSt*}G!h*ZN_g$;^Jq#E)B9&gS5K1ovI-&w^eaRqMr%Fawj z+YAi;_%G}$PdKMy8Z$vyzI5@72=PSke_K4i?TB$HVskO?2nb|gU<#;vTFC!vKG1Ot Mp00i_>zopr0O@5;{{R30 literal 0 HcmV?d00001 diff --git a/jero-web/src/assets/kongBottom.png b/jero-web/src/assets/kongBottom.png new file mode 100644 index 0000000000000000000000000000000000000000..105ea2a07a4866f9f4aa4bd5f8a1f9f86f14d539 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co#^NA%Cx&(BWL^R}_dH!3LoEE0 zQxsUFq#_P@NlE>C5Ok{Jde7SGr;`7S5)Ee+ z+}hgy>hQSz&u>m*6zgc2#J9_Fie%AyL+6KAt@#!1MedJnY@AtZueoj}gK5LV_x|oK z2PP#5Y+~eToEI?tfQ@I1;|sQiElFx-Hf)K;47(LA4slFp+`;Q;%yESED3gYOV`9TR mmJi~r0qYx09~v;IurgS6Zabc&6m$jXQwC30KbLh*2~7Z}du!zY literal 0 HcmV?d00001 diff --git a/jero-web/src/assets/kongTop.png b/jero-web/src/assets/kongTop.png new file mode 100644 index 0000000000000000000000000000000000000000..849789daee85dd909031adaf32f8d3842a48f25b GIT binary patch literal 723 zcmV;^0xbQBP)Px%jY&j7R7gvumCJ7uVHCv=kjkU=2}a7JNUhMurY^NhENX+{4^WGC(U3Ihn*YE> zHF0BN(ijtqq$b3bB&1OaOCQl_tyW5C>#HpWkWvr^v0%PI9s|P+*x7#b{m!}fo;xEz zJCDad4H0z%7Ryd6*95J+gdzm+ETqOX%1&1#4oG(o!(`g#yUP!EyG4-5cc%0j*_}ZH z9&P@>m8CF%v>cpuz4~$sZ&Ys4jC&P*G2@kMkCIzZ))!fJ}K39!SxUNLqh+Y{Pu$-UG4tj3A}h`@O8GeA+S z0*!Fmu_DO@E~}LUwlE(2!YaUolOAvN?M!G@O&!;lQLSJd5M&rLsKV(~C{lKvO3Kz_ zu2c|#hhzqy)__8)lA;p4l;iZIPA#iV1z(Qq&*>C>SOvs+dJjtQCkyE*y{41oc&`t= z2a6%H2L}c4_^0hXDo4Am;4*P*^(!17!;b~ zsV#xPA>=v|u2Uy)RipfG0beYE^KXN|pWHAkrWe(;%+DWzaDUu6(2FsR68s+>riW+I z1THMD0Kc``*d~y_Jv00-YHf?JHB!&ch@qGx${yGEe$g8q!qd`wV0f{8~ zz^KDDZ8v8H74T9B$S}c;&dZYj1ZIuLIV*Td95(?shm#XpKpb`U>tSOVGTmdAR@6>{ zdv0U~1!>GR(91{>or-rW0F`0%xISk5p&%(jSA1@;kKO}1$0Tlfs*;NKe-^bj$R1=x ziJJx;9N};Df{+~ZEd;;wGJ$MzUVIPx$ZAnByR5(wKlS^{KFc3t0_!PN?%}p?@Qdw~$Un<3l$mhr=_ALl8npBS@%fu#$ zSF&pKrn^TH{PorK%1Y|Ge^e^JGS24$vT#mgh&gS2hBqaAP$N$ zsEB1AEtXTz6p}4O1(ZP$AP^`)t9#HrgaAkbpnyUE2?TFa3=^!O#X5sBWSoI#H8dVb z>%13WExfPra_9miDG({9UD;ZK8e2+&1F9XMJArd6DBhtOLkz+P>4O~}j<%9jRhwFd zctR+1C=65Kf6UhK!D?zmRc+Wfol2~q-r#l10pu*KJM5s@VCR%q%%#8VbFc(0Hx7^@ zbQ)zb3E494@by{Y_#Bm_yG)R592l^TGFgig<{njXGPeMT>HT;OoYYksh~1TxO9+}9 zURv~*eFDrwQbyP~c$7mHNx@Qgyc^@zk00PGZ|}lEbsOK$2YT#rtjxmyAgm%trGW=< dlWGpYvTv~;-^y2$sjdJ3002ovPDHLkV1i9XweA1_ literal 0 HcmV?d00001 diff --git a/jero-web/src/assets/shiTop.png b/jero-web/src/assets/shiTop.png new file mode 100644 index 0000000000000000000000000000000000000000..3645b8c8fb32d6d3d2adc2ff5eeb848a746b35c1 GIT binary patch literal 754 zcmVPx%tVu*cR7gveR7-N&KoEUx3=$%7Y(s94oWb#u#IB-9Ws%F|23dHK19*`OP}!x* zO7Jh{_-Wn2AdzU^J|v(YSf4z|-KTr$u`6_MRDK zNF+-O`V00vLNu=7=%}ApARoNdDq+8N55PCD0to^UGuv0c49ud}sMmYz3ake|JM&QT z?+D~EvyCyd2@0O(mGcX%f;+|xPnZfv1w;mLnPyIbMewVuB5no)kO0f{AfO^j8s|=? zsu_ixeIJ-E&LB-{wF=m+g&_D@uq1h@M-hm%AT)#8mzb=LVRn!p~H#p1%iH&8PU@Imesj|Hd zMByvKdFKSc7w6+dM{2Bpf&iF|4$%1U*CDQM=+ADAUY4(UGEN3+9i*{q&p`zUhX?qS0czvjur zu3%!5R4=EzFb+p6!1>^EBLxEQnxkmd%kDENz{B;xPlL;CyImy;dbWUDRQ)!xd`rgT zwT$yMU*;(;D!k~^bY{FSJ`x|tQR0dmV=XR4UXboVynQQ+rogjUeViMg8PTQ~b1$3x kIQovl{2Q9b8-XR|A7w~MaLh?ck^lez07*qoM6N<$f)SiklmGw# literal 0 HcmV?d00001 From 46669840de2980a677664497b6eff8d69067f023 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Tue, 25 Apr 2023 16:09:08 +0800 Subject: [PATCH 14/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95=E7=9B=B8=E5=85=B3=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rojectCertificationInventoryEOService.java | 35 ++ ...ctCertificationInventoryEOServiceImpl.java | 310 ++++++++++++++++++ .../impl/ProjectLibraryBaseServiceImpl.java | 45 ++- 3 files changed, 377 insertions(+), 13 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index fc087b9d6..8a4017306 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -253,4 +253,39 @@ public interface IProjectCertificationInventoryEOService extends IService projectCertificationInventoryEOList); void certificationInventoryEOListSortByInventoryVerifyEndTimeAsc(List projectCertificationInventoryEOList); void certificationInventoryEOListSortByTaskConfirmEndTimeAsc(List projectCertificationInventoryEOList); + + /** + * 获取任务确认统计信息 + * @param pciEoList + * @return + */ + List> getTaskToConfirmStatistics(List pciEoList); + + /** + * 获取Pre-Homo统计信息 + * @param pciEoList + * @return + */ + List> getPrehomoStatistice(List pciEoList); + + /** + * 获取认证进度统计信息 全部 + * @param pciEoList + * @return + */ + List> getAllCertificationProgressStatistics(List pciEoList); + + /** + * 获取认证进度统计信息 整车 + * @param pciEoList + * @return + */ + List> getCarCertificationProgressStatistics(List pciEoList); + + /** + * 获取认证进度统计信息 零部件 + * @param pciEoList + * @return + */ + List> getPartCertificationProgressStatistics(List pciEoList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index 00a6f6c0e..e7085fffc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -2540,6 +2540,316 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl> getTaskToConfirmStatistics(List pciEoList) { + List> result = new ArrayList<>(); + + int notStartedCount = 0; + int toConfirmCount = 0; + int acceptedCount = 0; + int rejectedCount = 0; + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 未发起 + notStartedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).count(); + // 待确认 + toConfirmCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).count(); + // 接受 + acceptedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).count(); + // 拒绝 + rejectedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).count(); + } + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map acceptedMap = new HashMap<>(); + Map rejectedMap = new HashMap<>(); + + notStartedMap.put("taskAffirmStatus",TaskAffirmStatusEnum.NOT_STARTED.getValue()); + notStartedMap.put("taskAffirmStatusCount",notStartedCount); + + toConfirmMap.put("taskAffirmStatus",TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + toConfirmMap.put("taskAffirmStatusCount",toConfirmCount); + + acceptedMap.put("taskAffirmStatus",TaskAffirmStatusEnum.ACCEPTED.getValue()); + acceptedMap.put("taskAffirmStatusCount",acceptedCount); + + rejectedMap.put("taskAffirmStatus",TaskAffirmStatusEnum.REJECTED.getValue()); + rejectedMap.put("taskAffirmStatusCount",rejectedCount); + + result.add(notStartedMap); + result.add(toConfirmMap); + result.add(acceptedMap); + result.add(rejectedMap); + return result; + } + + @Override + public List> getPrehomoStatistice(List pciEoList) { + List> result = new ArrayList<>(); + + int notStartedCount = 0; + int toConfirmCount = 0; + int acceptedCount = 0; + int rejectedCount = 0; + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 未发起 + notStartedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).count(); + // 待确认 + toConfirmCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + ); + return flag; + }).count(); + // 审查通过 + acceptedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + ); + return flag; + }).count(); + // 审查退回 + rejectedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).count(); + } + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map acceptedMap = new HashMap<>(); + Map rejectedMap = new HashMap<>(); + + notStartedMap.put("taskAffirmStatus",TaskAffirmStatusEnum.NOT_STARTED.getValue()); + notStartedMap.put("taskAffirmStatusCount",notStartedCount); + + toConfirmMap.put("taskAffirmStatus",TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + toConfirmMap.put("taskAffirmStatusCount",toConfirmCount); + + acceptedMap.put("taskAffirmStatus",CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()); + acceptedMap.put("taskAffirmStatusCount",acceptedCount); + + rejectedMap.put("taskAffirmStatus",CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()); + rejectedMap.put("taskAffirmStatusCount",rejectedCount); + + result.add(notStartedMap); + result.add(toConfirmMap); + result.add(acceptedMap); + result.add(rejectedMap); + return result; + } + + @Override + public List> getAllCertificationProgressStatistics(List pciEoList) { + List> result = new ArrayList<>(); + + int notStartedCount = 0; + int inProgressCount = 0; + int testPassedCount = 0; + int testFailedCount = 0; + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 未开始 + notStartedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).count(); + // 进行中 + inProgressCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + || StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()) + ); + return flag; + }).count(); + // 实验通过 + testPassedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + || StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()) + || StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()) + ); + return flag; + }).count(); + // 实验失败 + testFailedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).count(); + } + Map notStartedMap = new HashMap<>(); + Map inProgressMap = new HashMap<>(); + Map testPassedMap = new HashMap<>(); + Map testFailedMap = new HashMap<>(); + + notStartedMap.put("certificationProgress",CertificationProgressEnum.NOT_START.getValue()); + notStartedMap.put("certificationProgressCount",notStartedCount); + + inProgressMap.put("certificationProgress",CertificationProgressEnum.IN_PROGRESS.getValue()); + inProgressMap.put("certificationProgressCount",inProgressCount); + + testPassedMap.put("certificationProgress",CertificationProgressEnum.TEST_PASSED.getValue()); + testPassedMap.put("certificationProgressCount",testPassedCount); + + testFailedMap.put("certificationProgress",CertificationProgressEnum.TEST_FAILED.getValue()); + testFailedMap.put("certificationProgressCount",testFailedCount); + + result.add(notStartedMap); + result.add(inProgressMap); + result.add(testPassedMap); + result.add(testFailedMap); + return result; + } + + @Override + public List> getCarCertificationProgressStatistics(List pciEoList) { + List> result = new ArrayList<>(); + + int notStartedCount = 0; + int inProgressCount = 0; + int testPassedCount = 0; + int testFailedCount = 0; + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 未开始 + notStartedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).count(); + // 进行中 + inProgressCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + ); + return flag; + }).count(); + // 实验通过 + testPassedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + ); + return flag; + }).count(); + // 实验失败 + testFailedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).count(); + } + Map notStartedMap = new HashMap<>(); + Map inProgressMap = new HashMap<>(); + Map testPassedMap = new HashMap<>(); + Map testFailedMap = new HashMap<>(); + + notStartedMap.put("certificationProgress",CertificationProgressEnum.NOT_START.getValue()); + notStartedMap.put("certificationProgressCount",notStartedCount); + + inProgressMap.put("certificationProgress",CertificationProgressEnum.IN_PROGRESS.getValue()); + inProgressMap.put("certificationProgressCount",inProgressCount); + + testPassedMap.put("certificationProgress",CertificationProgressEnum.TEST_PASSED.getValue()); + testPassedMap.put("certificationProgressCount",testPassedCount); + + testFailedMap.put("certificationProgress",CertificationProgressEnum.TEST_FAILED.getValue()); + testFailedMap.put("certificationProgressCount",testFailedCount); + + result.add(notStartedMap); + result.add(inProgressMap); + result.add(testPassedMap); + result.add(testFailedMap); + return result; + } + + @Override + public List> getPartCertificationProgressStatistics(List pciEoList) { + List> result = new ArrayList<>(); + + int notSubmitCount = 0; + int reportSubmitCount = 0; + int storedCount = 0; + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 部件报告未提交 + notSubmitCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).count(); + // 部件报告已提交 + reportSubmitCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + ); + return flag; + }).count(); + // 部件报告已入库 + storedCount = (int) pciEoList.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + ); + return flag; + }).count(); + } + Map notSubmitMap = new HashMap<>(); + Map reportSubmitMap = new HashMap<>(); + Map storedMap = new HashMap<>(); + + notSubmitMap.put("certificationProgress",CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()); + notSubmitMap.put("certificationProgressCount",notSubmitCount); + + reportSubmitMap.put("certificationProgress",CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()); + reportSubmitMap.put("certificationProgressCount",reportSubmitCount); + + storedMap.put("certificationProgress",CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()); + storedMap.put("certificationProgressCount",storedCount); + + result.add(notSubmitMap); + result.add(reportSubmitMap); + result.add(storedMap); + return result; + } + @Override public Result saveBatch(JSONObject json) { Date now = new Date(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index d1974cf35..b37caf6b3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -1493,16 +1493,16 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl verifyComplianceMap = new HashMap<>(); //认证进度 Map certificationProgressMap = new HashMap<>(); + // 认证任务确认 + Map rzTaskToConfirmMap = new HashMap<>(); //清单确认统计 - List> listingToConfirmMapList = this.projectLawsInventoryEOMapper.getlistingToConfirmStatistics(id); + /*List> listingToConfirmMapList = this.projectLawsInventoryEOMapper.getlistingToConfirmStatistics(id); listingToConfirmMap.put("listingToConfirmMapList",listingToConfirmMapList); - result.put("listingToConfirmMap",listingToConfirmMap); + result.put("listingToConfirmMap",listingToConfirmMap);*/ QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); lawsInventoryEOQueryWrapper.lambda().in(ProjectLawsInventoryEO::getProjectLibraryId,Arrays.asList(id.split(","))); - //lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue()); - //lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue()); List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); @@ -1513,7 +1513,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> currentProjectStatusMapList = new ArrayList<>(); + /*List> currentProjectStatusMapList = new ArrayList<>(); CurrentProjectStatusEnum[] values = CurrentProjectStatusEnum.values(); for (CurrentProjectStatusEnum value : values) { Map map = new HashMap<>(); @@ -1536,25 +1536,20 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl> designComplianceMapList = this.projectLawsInventoryEOService.getDesignComplianceStatistice(projectLawsInventoryEOList); designComplianceMap.put("designComplianceMapList",designComplianceMapList); result.put("designComplianceMap",designComplianceMap); - //prehomo确认 - /*List> prehomoMapList = this.projectTaskInventoryEOMapper.getPrehomoStatistice(projectLawsInventoryIdList); - prehomoMap.put("prehomoMapList",prehomoMapList); - result.put("prehomoMap",prehomoMap);*/ - //验证符合性 List> verifyComplianceMapList = this.projectLawsInventoryEOService.getVerifyComplianceStatistice(projectLawsInventoryEOList); verifyComplianceMap.put("verifyComplianceMapList",verifyComplianceMapList); result.put("verifyComplianceMap",verifyComplianceMap); //认证进度统计 - int certificationProgressTotal; + /*int certificationProgressTotal; List> certificationProgressMapList = this.projectTaskInventoryEOMapper.getCertificationProgressStatistics(projectLawsInventoryIdList); certificationProgressTotal = certificationProgressMapList.stream().filter( certificationProgress -> Integer.parseInt(certificationProgress.get("certificationProgressCount").toString()) != 0 @@ -1581,6 +1576,30 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().in(ProjectCertificationInventoryEO::getProjectLibraryId,Arrays.asList(id.split(","))); + List pciEoList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + if(CollectionUtils.isNotEmpty(pciEoList)){ + // 认证清单-任务确认统计 + List> rzTaskToConfirmMapList = this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList); + rzTaskToConfirmMap.put("rzTaskToConfirmMapList",rzTaskToConfirmMapList); + result.put("rzTaskToConfirmMap",rzTaskToConfirmMap); + + // Pre-Homo 统计 + List> prehomoMapList = this.projectCertificationInventoryEOService.getPrehomoStatistice(pciEoList); + prehomoMap.put("prehomoMapList",prehomoMapList); + result.put("prehomoMap",prehomoMap); + + // 认证进度 统计 + List> allMapList = this.projectCertificationInventoryEOService.getAllCertificationProgressStatistics(pciEoList); + List> carMapList = this.projectCertificationInventoryEOService.getCarCertificationProgressStatistics(pciEoList); + List> partMapList = this.projectCertificationInventoryEOService.getPartCertificationProgressStatistics(pciEoList); + certificationProgressMap.put("allMapList",allMapList);// 全部 + certificationProgressMap.put("carMapList",carMapList);// 整车 + certificationProgressMap.put("partMapList",partMapList);// 零部件 result.put("certificationProgressMap",certificationProgressMap); } @@ -1989,7 +2008,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl list = this.list(wrapper); if(list.size() != 0){ - Collections.sort(list); +// Collections.sort(list); } return list; } From 3582f3105ec8ae958049a2615a1ec7bfea1dc21c Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Tue, 25 Apr 2023 17:49:31 +0800 Subject: [PATCH 15/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E6=9F=A5=E8=AF=A2=E4=B8=8D=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E9=A1=B9=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLawsInventoryEOController.java | 12 ++++ .../entity/ProjectLawsInventoryEO.java | 8 +++ .../mapper/ProjectLawsInventoryEOMapper.java | 3 + .../xml/ProjectLawsInventoryEOMapper.xml | 66 +++++++++++++++++++ .../IProjectLawsInventoryEOService.java | 3 + .../ProjectLawsInventoryEOServiceImpl.java | 65 ++++++++++++++++++ 6 files changed, 157 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index 44c2312ef..8038adb94 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -527,4 +527,16 @@ public class ProjectLawsInventoryEOController extends JeroController compulsoryTransfer(@RequestBody JSONObject json) { return this.projectLawsInventoryEOService.compulsoryTransfer(json); } + + /** + * 分页查询不符合项列表 + * @return + */ + @AutoLog(value = "项目库-法规清单表-查询不符合项列表") + @ApiOperation(value="项目库-法规清单表-查询不符合项列表", notes="项目库-法规清单表-查询不符合项列表") + @GetMapping(value = "/queryNotComplianList") + public Result queryNotComplianList(@RequestParam Map params) { + List> result = this.projectLawsInventoryEOService.queryNotComplianList(params); + return Result.OK(result); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java index c6da492f3..f739e73aa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLawsInventoryEO.java @@ -522,4 +522,12 @@ public class ProjectLawsInventoryEO implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "验证符合性确认-责任确认截止时间") private Date verifyDutyDueDate; + + /**流程类型*/ + @TableField(exist = false) + private String flowType; + + /**流程类型展示名称*/ + @TableField(exist = false) + private String flowTypeName; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java index 3306200d3..22ebe11b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java @@ -3,6 +3,7 @@ package com.jero.modules.project.mapper; import java.util.List; import java.util.Map; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -44,4 +45,6 @@ public interface ProjectLawsInventoryEOMapper extends BaseMapper> getTaskToConfirmStatisticsGroupByTerritory(@Param("projectLibraryId") String projectLibraryId, @Param("taskAffirmStatus") String taskAffirmStatus); + + List> queryNotComplianList(@Param("params") Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml index 333452acb..d41eb0ead 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml @@ -105,4 +105,70 @@ and task_affirm_status = #{taskAffirmStatus} group by duty_territory; + + + + + + + and temp.serial_number like CONCAT(CONCAT('%',#{params.serialNumber}),'%') + + + and temp.title like CONCAT(CONCAT('%',#{params.title}),'%') + + + and temp.duty_territory = #{params.dutyTerritory} + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index da6007a7c..c8a497483 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -2,6 +2,7 @@ package com.jero.modules.project.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.itextpdf.text.DocumentException; import com.jero.common.api.vo.Result; @@ -276,4 +277,6 @@ public interface IProjectLawsInventoryEOService extends IService> getVerifyComplianceStatistice(List projectLawsInventoryEOList); + + List> queryNotComplianList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index e20f0dac3..94760e9de 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -8,6 +8,8 @@ import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.itextpdf.text.Font; import com.itextpdf.text.*; @@ -75,6 +77,7 @@ import com.jero.modules.todoCenter.enums.TodoCenterStatusEnum; import com.jero.modules.todoCenter.enums.VerifyComplianceFlowNodeKeyEnum; import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; import com.jero.modules.todoCenter.service.IProcessInfoEOService; +import com.jero.modules.todoCenter.vo.ProcessInfoVO; import com.jero.modules.wkflow.entity.ProcessHistoryEO; import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; import com.jero.modules.wkflow.enums.FlowTypeEnum; @@ -12532,6 +12535,68 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl> queryNotComplianList(Map params) { + String cut = (String) params.get("cut"); + + List complianceFlowStatusList = new ArrayList<>(); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.INCONFORMITY.getValue()); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.TO_TRACK.getValue()); + params.put("complianceFlowStatusList",complianceFlowStatusList); + List> result = this.baseMapper.queryNotComplianList(params); + if(CollectionUtils.isNotEmpty(result)){ + List sysDictItems = sysDictItemServiceImpl.selectItemsAll(); + + List userIdList = new ArrayList<>(); + + List regulationOwnerIdList = result.stream().filter( + data -> StringUtils.isNotEmpty((String) data.get("regulationOwnerId")) + ).map(e -> (String) e.get("regulationOwnerId")).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(regulationOwnerIdList)){ + userIdList.addAll(regulationOwnerIdList); + } + + List dutyIdList = result.stream().filter( + data -> StringUtils.isNotEmpty((String) data.get("dutyId")) + ).map(e -> (String) e.get("dutyId")).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(dutyIdList)){ + userIdList.addAll(dutyIdList); + } + List userList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(userIdList)){ + userList = this.sysUserService.querySysUserListByIdList(userIdList); + } + for (Map dataMap : result) { + String dutyTerritory = (String) dataMap.get("dutyTerritory"); + if(StringUtils.isNotEmpty(dutyTerritory)){ + if(StringUtils.isNotEmpty(dutyTerritory)){ + String dutyTerritory_dictText = this.disposeShowDictItemValue(sysDictItems, dutyTerritory,cut,ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue()); + dataMap.put("dutyTerritory_dictText",dutyTerritory_dictText); + } + } + + String flowStatus = (String) dataMap.get("flowStatus"); + if(StringUtils.isNotEmpty(flowStatus)){ + dataMap.put("flowStatusName",ComplianceFlowStatusEnum.getTextByValue(flowStatus,cut)); + } + + if(CollectionUtils.isNotEmpty(userList)){ + String regulationOwnerId = (String) dataMap.get("regulationOwnerId"); + if(StringUtils.isNotEmpty(regulationOwnerId)){ + String regulationOwnerIdName = this.sysUserService.getUsernameByUserId(userList,regulationOwnerId); + dataMap.put("regulationOwnerIdName",regulationOwnerIdName); + } + String dutyId = (String) dataMap.get("dutyId"); + if(StringUtils.isNotEmpty(dutyId)){ + String dutyIdName = this.sysUserService.getUsernameByUserId(userList,dutyId); + dataMap.put("dutyIdName",dutyIdName); + } + } + } + } + return result; + } + /** * 设计符合性相关待办任务强制转办 * @param projectLibraryId From fe1391f0b444b90fe176580ebfa8cb788d533fdc Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Tue, 25 Apr 2023 17:58:59 +0800 Subject: [PATCH 16/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93-=E6=9C=AA?= =?UTF-8?q?=E7=AC=A6=E5=90=88=E9=A1=B9=E5=88=97=E8=A1=A8=E3=80=82=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=B5=81=E7=A8=8B=E7=B1=BB=E5=9E=8B=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProjectLawsInventoryEOServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 94760e9de..e8b48096c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -12592,6 +12592,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl Date: Tue, 25 Apr 2023 18:01:02 +0800 Subject: [PATCH 17/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 6 + jero-web/src/common/lang/zh-cn.js | 6 + .../components/ProjectDetails.vue | 70 ++-- .../components/certificationActivity.vue | 357 +++++++++++------- .../components/certificationList/index.vue | 11 +- .../components/nonConformance.vue | 44 +-- .../parameterCollectionProgress.vue | 202 ++++++---- .../components/projectStatus.vue | 26 +- .../projectStatusBoard/index.vue | 20 +- 9 files changed, 463 insertions(+), 279 deletions(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index b3fe193f8..5b09f4be8 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1816,4 +1816,10 @@ module.exports = { selectTime:'Select Time', designCompliance:'Design Compliance', verifyCompliance:'Verify Compliance', + stateExport:'State Export', + completeVehicle:'Complete Vehicle', + components:'Components', + componentReportNotSubmitted:'Component report not submitted', + componentReportSubmitted:'Component report submitted', + componentReportHasBeenStored:'Component report has been stored', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 985db1858..8e705785e 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1918,4 +1918,10 @@ module.exports = { selectTime:'选择时间', designCompliance:'设计符合性', verifyCompliance:'验证符合性', + stateExport:'状态导出', + completeVehicle:'整车', + components:'零部件', + componentReportNotSubmitted:'部件报告未提交', + componentReportSubmitted:'部件报告已提交', + componentReportHasBeenStored:'部件报告已入库', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index a657e3730..67a2c847d 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -42,14 +42,19 @@
{{$t('ListOfRelevantPersonnel')}} - - - {{$t('ListOfRelevantPersonnel')}} - + + + {{$t('ListOfRelevantPersonnel')}} + + + + + + +
@@ -85,13 +90,13 @@ @click="urlClick(queryForm.attestationPlan)" >{{queryForm.attestationPlan}} -
- {{$t('configurationInformation')}} - {{queryForm.ipdInfo}} -
+
+ {{$t('configurationInformation')}} + {{queryForm.ipdInfo}} +
@@ -127,8 +132,22 @@
- - +
+
+ {{$t('projectStatus')}} +
+
+ {{$t('stateExport')}} + + {{$t('versionStatistics')}} + +
+
+ @@ -156,8 +175,8 @@ data() { return { queryForm: {}, - cut:'', - administrators:false, + cut: '', + administrators: false, activeKey: this.$t('CurrentStatusOfTheProject'), url: { queryById: 'project/projectLibraryBase/queryById', @@ -190,9 +209,9 @@ if (res.success) { this.cut = res.cut this.queryForm = res.result[0] || {} - if(this.cut == 'en'){ + if (this.cut == 'en') { this.queryForm.brandText = this.queryForm.brandTextEn - }else{ + } else { this.queryForm.brandText = this.queryForm.brandText } } else { @@ -247,7 +266,7 @@ .header-text { font-size: 16px; - font-weight: 400; + font-weight: bold; color: #000F16; } @@ -391,11 +410,18 @@ .box-text { display: flex; justify-content: space-between; - height: 80px; + height: 72px; line-height: 80px; } + .header-tight { + line-height: 90px; + } + .button-text { padding: 0 13px; } + .box-button{ + margin-left: 12px; + } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/certificationActivity.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue index 3b2ec79d1..1221cbfbc 100644 --- a/jero-web/src/views/projectManagement/components/certificationActivity.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -10,6 +10,17 @@
+
+
+ {{$t('whole')}} +
+
+ {{$t('completeVehicle')}} +
+
+ {{$t('components')}} +
+
@@ -38,11 +49,19 @@ return { url: { getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics' - } + }, + certificationProgressMap:{}, } }, mounted() { - this.mainRightEcharts() + let boxContentTextColor = document.getElementsByClassName('box-content-text-color') + if (boxContentTextColor && boxContentTextColor.length > 0) { + boxContentTextColor[0].classList.remove('box-content-text-color') + } + let boxContentTextText = document.getElementsByClassName('box-content-text-text') + if (boxContentTextText && boxContentTextText.length > 0) { + boxContentTextText[0].classList.add('box-content-text-color') + } this.mainBottomEcharts() this.getData() }, @@ -57,122 +76,155 @@ getAction(this.url.getProjectDetailsStatistics, { id: id }).then((res) => { if (res.success) { if (res.result) { - let listingToConfirmMap = res.result.listingToConfirmMap ? res.result.listingToConfirmMap.listingToConfirmMapList : [] - let taskToConfirmMap = res.result.taskToConfirmMap ? res.result.taskToConfirmMap.taskToConfirmMapList : [] - let designComplianceMap = res.result.designComplianceMap ? res.result.designComplianceMap.designComplianceMapList : [] - let prehomoMap = res.result.prehomoMap ? res.result.prehomoMap.prehomoMapList : [] - let verifyComplianceMap = res.result.verifyComplianceMap ? res.result.verifyComplianceMap.verifyComplianceMapList : [] - this.dataEcharts(listingToConfirmMap, 1) - this.dataEcharts(taskToConfirmMap, 2) - this.dataEchartsOne(designComplianceMap, 1) - this.dataEchartsOne(prehomoMap, 2) - this.dataEchartsOne(verifyComplianceMap, 3) + let rzTaskToConfirmMapList = res.result.rzTaskToConfirmMap ? res.result.rzTaskToConfirmMap.rzTaskToConfirmMapList : [] + let prehomoMapList = res.result.prehomoMap ? res.result.prehomoMap.prehomoMapList : [] + this.certificationProgressMap = res.result.certificationProgressMap + let allMapList = res.result.certificationProgressMap ? res.result.certificationProgressMap.allMapList : [] + this.dataEcharts(rzTaskToConfirmMapList) + this.mainRightEcharts(prehomoMapList) + this.mainBottomEcharts(allMapList) } } }) }, - dataEcharts(val, num) { + dataEcharts(dataSource) { let data = [] let color = [] - if (val && val.length > 0) { - val.forEach((res) => { - if (res.inventoryAffirmStatus == 'Not started' || res.taskAffirmStatus == 'Not started') { + if (dataSource && dataSource.length > 0) { + this.dataSource = [{}] + dataSource.forEach(res => { + if (res.taskAffirmStatus == 'Not started') { data.push({ - value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount, + value: res.taskAffirmStatusCount, name: this.$t('notLaunch'), - status: res.inventoryAffirmStatus || res.taskAffirmStatus - }) - color.push('#707486') - } else if (res.inventoryAffirmStatus == 'List to confirm' || res.taskAffirmStatus == 'List to confirm') { - data.push({ - value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount, - name: this.$t('toBeConfirmed'), - status: res.inventoryAffirmStatus || res.taskAffirmStatus + color: '#00B3BE' }) color.push('#00B3BE') - } else if (res.inventoryAffirmStatus == 'Accepted' || res.taskAffirmStatus == 'Accepted') { + } else if (res.taskAffirmStatus == 'List to confirm') { data.push({ - value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount, - name: this.$t('accept'), - status: res.inventoryAffirmStatus || res.taskAffirmStatus + value: res.taskAffirmStatusCount, + name: this.$t('listToConfirm'), + color: '#FDA71C' }) - color.push('#26BD4B') - } else if (res.inventoryAffirmStatus == 'Rejected' || res.taskAffirmStatus == 'Rejected') { + color.push('#FDA71C') + } else if (res.taskAffirmStatus == 'Accepted') { data.push({ - value: res.inventoryAffirmStatusCount || res.taskAffirmStatusCount, + value: res.taskAffirmStatusCount, + name: this.$t('accept'), + color: '#26BC4B' + }) + color.push('#26BC4B') + } else if (res.taskAffirmStatus == 'Rejected') { + data.push({ + value: res.taskAffirmStatusCount, name: this.$t('refuse'), - status: res.inventoryAffirmStatus || res.taskAffirmStatus + color: '#E83030' }) color.push('#E83030') } }) } - if (num == 1) { - this.mainLeftEcharts(data, color) - } else { - this.mainRightEcharts(data, color) - } + this.getEcharts('main-left', this.$t('regulatoryTaskConfirmation'), color, data) }, - dataEchartsOne(val, num) { + mainRightEcharts(dataSource){ let data = [] let color = [] - if (val && val.length > 0) { - val.forEach((res) => { - if (res.designFlowTaskStatus == 'No rating' || res.prehomoFlowTaskStatus == 'No rating' || res.verifyFlowTaskStatus == 'No rating') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('toBeConfirmed'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#00B3BE') - } else if (res.designFlowTaskStatus == 'Compliance' || res.prehomoFlowTaskStatus == 'Compliance' || res.verifyFlowTaskStatus == 'Compliance') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('accord'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#26BD4B') - } else if (res.designFlowTaskStatus == 'Non-Compliance' || res.prehomoFlowTaskStatus == 'Non-Compliance' || res.verifyFlowTaskStatus == 'Non-Compliance') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('nonConformity'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#E83030') - } else if (res.designFlowTaskStatus == 'To be tracked' || res.prehomoFlowTaskStatus == 'To be tracked' || res.verifyFlowTaskStatus == 'To be tracked') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('Tracked'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#FDA71C') - } else if (res.designFlowTaskStatus == 'NA' || res.prehomoFlowTaskStatus == 'NA' || res.verifyFlowTaskStatus == 'NA') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('notInvolved'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#707486') - } else if (res.designFlowTaskStatus == 'Termination of task' || res.prehomoFlowTaskStatus == 'Termination of task' || res.verifyFlowTaskStatus == 'Termination of task') { - data.push({ - value: res.designFlowTaskStatusCount || res.prehomoFlowTaskStatusCount || res.verifyFlowTaskStatusCount, - name: this.$t('taskTermination'), - status: res.designFlowTaskStatus || res.prehomoFlowTaskStatus || res.verifyFlowTaskStatus - }) - color.push('#E83030') - } + if (dataSource && dataSource.length > 0) { + this.dataSource = [{}] + dataSource.forEach(res => { + if (res.taskAffirmStatus == 'Not started') { + data.push({ + value: res.taskAffirmStatusCount, + name: this.$t('notLaunch'), + color: '#00B3BE' + }) + color.push('#00B3BE') + } else if (res.taskAffirmStatus == 'List to confirm') { + data.push({ + value: res.taskAffirmStatusCount, + name: this.$t('listToConfirm'), + color: '#FDA71C' + }) + color.push('#FDA71C') + } else if (res.taskAffirmStatus == 'Review and pass') { + data.push({ + value: res.taskAffirmStatusCount, + name: this.$t('reviewAndPass'), + color: '#26BC4B' + }) + color.push('#26BC4B') + } else if (res.taskAffirmStatus == 'Review and return') { + data.push({ + value: res.taskAffirmStatusCount, + name: this.$t('reviewAndReturn'), + color: '#E83030' + }) + color.push('#E83030') } - ) - } - if (num == 1) { - this.mainLeftContentEcharts(data, color) - } else if (num == 2) { - this.mainRightContentEcharts(data, color) - } else if (num == 3) { - this.mainBottomEcharts(data, color) + }) } + this.getEcharts('main-right', this.$t('preHomoFlow'), color, data) }, - getEcharts(chart, title, color, data, num) { + mainBottomEcharts(dataSource){ + let data = [] + let color = [] + if (dataSource && dataSource.length > 0) { + dataSource.forEach(res => { + if (res.certificationProgress == 'Not start') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('Notatthe'), + color: '#00B3BE' + }) + color.push('#00B3BE') + } else if (res.certificationProgress == 'In progress') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('inProgress'), + color: '#FDA71C' + }) + color.push('#FDA71C') + } else if (res.certificationProgress == 'Test passed') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('experimentPassed'), + color: '#26BC4B' + }) + color.push('#26BC4B') + } else if (res.certificationProgress == 'Test failed') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('experimentFailed'), + color: '#E83030' + }) + color.push('#E83030') + }else if (res.certificationProgress == 'Component report not submitted') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('componentReportNotSubmitted'), + color: '#FDA71C' + }) + color.push('#FDA71C') + }else if (res.certificationProgress == 'Component report submitted') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('componentReportSubmitted'), + color: '#6FD682' + }) + color.push('#6FD682') + }else if (res.certificationProgress == 'Component report has been stored') { + data.push({ + value: res.certificationProgressCount, + name: this.$t('componentReportHasBeenStored'), + color: '#26BC4B' + }) + color.push('#26BC4B') + } + }) + } + this.getEcharts('main-bottom', this.$t('CertificationProgress'), color, data) + }, + getEcharts(chart, title, color, data) { var myChart = echarts.init(document.getElementById(chart)) myChart.setOption({ title: { @@ -207,44 +259,50 @@ } ] }) - myChart.on('click', (params) => { - let query = { - title: params.seriesName, - projectLibraryId: this.$route.query.id - } - if (num === 1) { - query.operatorType = 'queryListingToConfirmStatistics' - query.inventoryAffirmStatus = params.data.status - } else if (num === 2) { - query.operatorType = 'queryTaskToConfirmStatistics' - query.taskAffirmStatus = params.data.status - } else if (num === 3) { - query.operatorType = 'queryDesignStatistics' - query.designFlowTaskStatus = params.data.status - } else if (num === 4) { - query.operatorType = 'queryPrehomoStatistics' - query.prehomoFlowTaskStatus = params.data.status - } else if (num === 5) { - query.operatorType = 'queryVerifyStatistics' - query.verifyFlowTaskStatus = params.data.status - } - this.$refs.responsibilityListRef.getData(query) - }) - } - , - mainLeftEcharts(data, color) { - this.getEcharts('main-left', this.$t('certificationTaskConfirmation'), color, data, 1) - } - , - mainRightEcharts(data, color) { - this.getEcharts('main-right', this.$t('preHomoFlow'), color, data, 2) - } - , - mainBottomEcharts(data, color) { - this.getEcharts('main-bottom', this.$t('CertificationProgress'), color, data, 5) + // myChart.on('click', (params) => { + // let query = { + // title: params.seriesName, + // projectLibraryId: this.$route.query.id + // } + // if (num === 1) { + // query.operatorType = 'queryListingToConfirmStatistics' + // query.inventoryAffirmStatus = params.data.status + // } else if (num === 2) { + // query.operatorType = 'queryTaskToConfirmStatistics' + // query.taskAffirmStatus = params.data.status + // } else if (num === 3) { + // query.operatorType = 'queryDesignStatistics' + // query.designFlowTaskStatus = params.data.status + // } else if (num === 4) { + // query.operatorType = 'queryPrehomoStatistics' + // query.prehomoFlowTaskStatus = params.data.status + // } else if (num === 5) { + // query.operatorType = 'queryVerifyStatistics' + // query.verifyFlowTaskStatus = params.data.status + // } + // this.$refs.responsibilityListRef.getData(query) + // }) }, + responsibility(item) { this.$emit('currentStatus', item) + }, + boxContentClick(num) { + let boxContentTextColor = document.getElementsByClassName('box-content-text-color') + if (boxContentTextColor && boxContentTextColor.length > 0) { + boxContentTextColor[0].classList.remove('box-content-text-color') + } + let boxContentTextText = document.getElementsByClassName('box-content-text-text') + if (boxContentTextText && boxContentTextText.length > 0) { + boxContentTextText[num].classList.add('box-content-text-color') + } + if (num == 0){ + this.mainBottomEcharts( this.certificationProgressMap.allMapList || []) + }else if(num == 1){ + this.mainBottomEcharts( this.certificationProgressMap.carMapList || []) + }else if(num == 2){ + this.mainBottomEcharts( this.certificationProgressMap.partMapList || []) + } } } } @@ -263,6 +321,7 @@ border: 2px #eff1f3 solid; border-radius: 6px; margin-top: 4px; + #main-left { width: 100%; height: 100%; @@ -277,6 +336,7 @@ border: 2px #eff1f3 solid; border-radius: 6px; margin-top: 4px; + #main-right { width: 100%; height: 100%; @@ -284,11 +344,49 @@ box-sizing: border-box; } } - .box-content-bottom{ + + .box-content-bottom { width: 100%; height: 346px; border: 2px #eff1f3 solid; + position: relative; border-radius: 6px; + + .box-content-text { + height: 30px; + background: #F5F6F7; + border-radius: 4px; + position: absolute; + right: 24px; + top: 20px; + display: flex; + z-index: 100; + justify-content: space-between; + padding: 0 2px 0 2px; + + .box-content-text-text { + display: inline-block; + font-size: 12px; + color: #6F7385; + line-height: 30px; + margin-right: 10px; + cursor: pointer; + margin-left: 10px; + } + + .box-content-text-color { + box-shadow: 0px 1px 2px rgba(0, 0, 60, 0.01), 0px 2px 4px rgba(0, 22, 60, 0.02), 0px 4px 6px rgba(0, 22, 60, 0.0229458); + border-radius: 4px; + padding: 4px 6px; + background: #FFFFFF; + border: 1px solid #E6E7EC; + color: #01A0AC; + line-height: normal; + margin-right: 0; + margin-left: 0; + } + } + #main-bottom { width: 100%; height: 100%; @@ -297,4 +395,5 @@ } } } + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index 9aa533fb4..ee9217fda 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -560,9 +560,9 @@ 'In progress': 'TrackedColor', 'NA': 'notInvolvedColor', 'Not start': 'submittedColor', - '25181c5a4c044001b4beca539c77a5c8': 'accordColor', - '0a384b5475554ae8886b950730a3bff7': 'accordColor', - '7cba3c71fd24421eade54c685e3b4444': 'TrackedColor' + 'Component report submitted': 'componentColor', + 'Component report has been stored': 'accordColor', + 'Component report not submitted': 'TrackedColor' }, fieldList: [ { @@ -2499,7 +2499,10 @@ background: #dbf6e2; color: #26BD4B; } - + .componentColor{ + background: #EDFCEF; + color: #6FD682; + } .nonConformityColor { background: #f3dddd; color: #E83030; diff --git a/jero-web/src/views/projectManagement/components/nonConformance.vue b/jero-web/src/views/projectManagement/components/nonConformance.vue index 9ef14c8c7..682e17cd1 100644 --- a/jero-web/src/views/projectManagement/components/nonConformance.vue +++ b/jero-web/src/views/projectManagement/components/nonConformance.vue @@ -73,18 +73,18 @@ -
- -
+ + + + + + + + + + + + @@ -124,7 +124,7 @@ { title: this.$t('ProcessType'), align: 'left', - dataIndex: 'flowType', + dataIndex: 'flowTypeName', scopedSlots: { customRender: 'ProcessType' }, ellipsis: true, sorter:true, @@ -133,7 +133,7 @@ { title: this.$t('areaOfResponsibility'), align: 'left', - dataIndex: 'dutyTerritory', + dataIndex: 'dutyTerritory_dictText', ellipsis: true, sorter:true, width: 100 @@ -141,7 +141,7 @@ { title: this.$t('problemType'), align: 'left', - dataIndex: 'problemType', + dataIndex: 'flowStatusName', ellipsis: true, sorter:true, width: 150 @@ -149,7 +149,7 @@ { title: this.$t('Sponsor'), align: 'left', - dataIndex: 'initiator', + dataIndex: 'regulationOwnerIdName', ellipsis: true, sorter:true, width: 100 @@ -157,7 +157,7 @@ { title: this.$t('personLiable'), align: 'left', - dataIndex: 'duty', + dataIndex: 'dutyIdName', ellipsis: true, sorter:true, width: 100 @@ -167,7 +167,7 @@ pageSize: 10, pageNo: 1, url: { - page: '/project/ncrTrackController/queryPageInfo', + page: '/project/projectLawsInventoryEO/queryNotComplianList', exportData: '/project/ncrTrackController/exportDataInfo' } } @@ -242,8 +242,8 @@ }, getList() { let query = { - pageNo: this.pageNo, - pageSize: this.pageSize, + // pageNo: this.pageNo, + // pageSize: this.pageSize, projectLibraryId: this.$route.query.id, orderBy: this.orderBy, orderByField: this.orderByField, @@ -252,8 +252,8 @@ this.loading = true getAction(this.url.page, query).then((res) => { if (res.success) { - this.dataSource = res.result.records || [] - this.total = res.result.total + this.dataSource = res.result || [] + // this.total = res.result.total this.loading = false } else { this.dataSource = [] diff --git a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue index 306768776..d0c31160b 100644 --- a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue +++ b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue @@ -4,19 +4,29 @@ - - - +
+
+ {{ $t('Collectlist') }} +
+ + {{ d.label }} - +
- - - + +
+
+ {{ $t('Statisticalmodels') }} +
+ {{$t('Thepercentage')}} @@ -24,9 +34,8 @@ {{$t('Quantity')}} - +
-
@@ -44,7 +53,7 @@ import * as echarts from 'echarts' import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage' import responsibilityList from './responsibilityList' - import "echarts/lib/component/dataZoom" + import 'echarts/lib/component/dataZoom' export default { name: 'DeliverableStatusEchart', @@ -59,28 +68,28 @@ }, data() { return { - queryParam:{ - value:1, - ctype:'' + queryParam: { + value: 1, + ctype: '' }, - options:[], - collecting:[], - notStart:[], - submit:[], - syncReport:[], - collectingdata:[], - notStartdata:[], - submitdata:[], - syncReportdata:[], - dutyTerritory:[], - collectingpercentage:[], - collectingquantity:[], - notStartpercentage:[], - notStartquantity:[], - submitpercentage:[], - submitquantity:[], - syncReportpercentage:[], - syncReportquantity:[], + options: [], + collecting: [], + notStart: [], + submit: [], + syncReport: [], + collectingdata: [], + notStartdata: [], + submitdata: [], + syncReportdata: [], + dutyTerritory: [], + collectingpercentage: [], + collectingquantity: [], + notStartpercentage: [], + notStartquantity: [], + submitpercentage: [], + submitquantity: [], + syncReportpercentage: [], + syncReportquantity: [], url: { getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatisticsCollectManifestData' } @@ -97,18 +106,18 @@ if (res.success) { if (res.result) { this.collecting = res.result.collecting ? res.result.collecting : [] - this.notStart = res.result.notStart ? res.result.notStart: [] + this.notStart = res.result.notStart ? res.result.notStart : [] this.submit = res.result.submit ? res.result.submit : [] this.syncReport = res.result.syncReport ? res.result.syncReport : [] this.dutyTerritory = res.result.dutyTerritory ? res.result.dutyTerritory : [] - this.getEcharts() + this.getEcharts() } } }) }, - getoptions(){ + getoptions() { let id = '' if (this.idList && this.idList.length > 0) { id = this.idList.join(',') @@ -116,7 +125,7 @@ id = this.$route.query.parentId ? this.$route.query.parentId : this.$route.query.id // id = this.$route.query.id } - getAction('project/projectLibraryBase/getProjectDetailsStatisticsCollectManifestLabel', {id:id}).then((res) => { + getAction('project/projectLibraryBase/getProjectDetailsStatisticsCollectManifestLabel', { id: id }).then((res) => { if (res.success) { this.options = res.result this.queryParam.ctype = this.options[0].value @@ -125,7 +134,7 @@ } }) }, - getonChange(value){ + getonChange(value) { this.collectingpercentage = [] this.collectingquantity = [] this.notStartpercentage = [] @@ -136,7 +145,7 @@ this.syncReportquantity = [] this.getData(value) }, - onChange(value){ + onChange(value) { this.collectingpercentage = [] this.collectingquantity = [] this.notStartpercentage = [] @@ -149,53 +158,53 @@ }, getEcharts(chart, title, color, data, num) { - this.collecting.forEach((item,index) => { + this.collecting.forEach((item, index) => { this.collectingpercentage.push(item.percentage) this.collectingquantity.push(item.quantity) }) - this.notStart.forEach((item,index) => { + this.notStart.forEach((item, index) => { this.notStartpercentage.push(item.percentage) this.notStartquantity.push(item.quantity) }) - this.submit.forEach((item,index) => { + this.submit.forEach((item, index) => { this.submitpercentage.push(item.percentage) this.submitquantity.push(item.quantity) }) - this.syncReport.forEach((item,index) => { + this.syncReport.forEach((item, index) => { this.syncReportpercentage.push(item.percentage) this.syncReportquantity.push(item.quantity) }) - if(this.queryParam.value == 1){ + if (this.queryParam.value == 1) { this.collectingdata = this.collectingpercentage this.notStartdata = this.notStartpercentage this.submitdata = this.submitpercentage this.syncReportdata = this.syncReportpercentage - }else if(this.queryParam.value == 2){ + } else if (this.queryParam.value == 2) { this.collectingdata = this.collectingquantity this.notStartdata = this.notStartquantity this.submitdata = this.submitquantity this.syncReportdata = this.syncReportquantity } - var chartDom = document.getElementById('main-left'); - var myChart = echarts.init(chartDom); - var option; - var option1; + var chartDom = document.getElementById('main-left') + var myChart = echarts.init(chartDom) + var option + var option1 - let xAxisData = []; + let xAxisData = [] // let data1 = []; // let data2 = []; // let data3 = []; // let data4 = []; xAxisData = this.dutyTerritory - // data1.push(+(Math.random() * 2).toFixed(2)); - // data2.push(+(Math.random() * 100).toFixed(2)); - // data3.push(+(Math.random() + 0.3).toFixed(2)); - // data4.push(+Math.random().toFixed(2)); + // data1.push(+(Math.random() * 2).toFixed(2)); + // data2.push(+(Math.random() * 100).toFixed(2)); + // data3.push(+(Math.random() + 0.3).toFixed(2)); + // data4.push(+Math.random().toFixed(2)); - let yAxis=[]; - let tooltip= {}; + let yAxis = [] + let tooltip = {} let _this = this - if(this.queryParam.value === 1){ + if (this.queryParam.value === 1) { yAxis = [ { type: 'value', @@ -203,15 +212,15 @@ show: true, interval: 'auto', formatter: '{value} %' - }, - }, + } + } ] - }else{ - yAxis=[ + } else { + yAxis = [ { - type: 'value', - }, - ]; + type: 'value' + } + ] } option = { legend: { @@ -227,21 +236,21 @@ // } }, tooltip: { - trigger:'axis', + trigger: 'axis', // axisPointer: { // 坐标轴指示器,坐标轴触发有效 // type: 'line'// 默认为直线,可选为:'line' | 'shadow' // }, - formatter: function (params) { - var html = params[0].name + "
"; + formatter: function(params) { + var html = params[0].name + '
' for (var i = 0; i < params.length; i++) { - html += params[i].marker + params[i].seriesName + ":" + params[i].value; + html += params[i].marker + params[i].seriesName + ':' + params[i].value if (_this.queryParam.value == 1) { - html += "%" + "
"; - }else{ - html +="
"; + html += '%' + '
' + } else { + html += '
' } } - return html; + return html } }, @@ -250,11 +259,11 @@ // name: 'X Axis', axisLabel: { interval: 0, - rotate:25, + rotate: 25 // formatter: function(value) { // return value.split("").join("\n"); // } - }, + } // axisLine: { onZero: true }, // splitLine: { show: false }, // splitArea: { show: false } @@ -272,7 +281,7 @@ barWidth: 40, barGap: '-100%', itemStyle: { - color: "#707486", + color: '#00B3BE' }, data: this.notStartdata }, @@ -283,7 +292,7 @@ barWidth: 40, barGap: '-100%', itemStyle: { - color: "#00B3BE", + color: '#FDA71C' }, data: this.collectingdata }, @@ -294,7 +303,7 @@ barWidth: 40, barGap: '-100%', itemStyle: { - color: "#26BD4B", + color: '#26BD4B' }, data: this.submitdata }, @@ -305,13 +314,12 @@ barWidth: 40, barGap: '-100%', itemStyle: { - color: "#E83030", + color: '#2F8DF3' }, data: this.syncReportdata } ], - dataZoom:[ - + dataZoom: [ { type: 'slider',//给x轴设置滚动条 show: true, //flase直接隐藏图形 @@ -322,14 +330,13 @@ startValue: 0,//滚动条的起始位置 endValue: 9 //滚动条的截止位置(按比例分割你的柱状图x轴长度) } - - ], - }; - option && myChart.setOption(option, true); + ] + } + option && myChart.setOption(option, true) }, mainLeftEcharts(data, color) { - this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1) + this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1) }, responsibility(item) { this.$emit('currentStatus', item) @@ -371,6 +378,7 @@ box-sizing: border-box; } } + .box-input { display: inline-block; width: calc(70% - 100px); @@ -398,4 +406,32 @@ } } } + + .box-title-text { + line-height: 1.4; + display: flex; + align-items: center; + margin-bottom: 16px; + } + + .title-text { + color: #000F16; + display: inline-block; + font-weight: 500; + font-size: 14px; + margin-right: 16px; + margin-top: 3px; + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .box-input { + display: inline-block; + width: calc(100% - 126px); + height: 38px; + margin-top: 2px; + line-height: 38px; + } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/projectStatus.vue b/jero-web/src/views/projectManagement/components/projectStatus.vue index 2cde6b587..6f31469e6 100644 --- a/jero-web/src/views/projectManagement/components/projectStatus.vue +++ b/jero-web/src/views/projectManagement/components/projectStatus.vue @@ -1,17 +1,17 @@ diff --git a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue index d0c31160b..668bb5a60 100644 --- a/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue +++ b/jero-web/src/views/projectManagement/components/parameterCollectionProgress.vue @@ -223,9 +223,15 @@ ] } option = { + title: { + text: this.$t('parameterCollectionProgress'), + }, legend: { data: [this.$t('Notatthe'), this.$t('Inthecollection'), this.$t('Submitted'), this.$t('SynchronizedLibrary')], - left: '10%' + icon: 'circle', + bottom:'0', + itemWidth: 12, + itemHeight: 12, }, toolbox: { // feature: { @@ -270,8 +276,9 @@ }, yAxis: yAxis, grid: { - left: '10%', - bottom: '20%' + bottom: '20%', + left:50, + right:10, }, series: [ { @@ -324,7 +331,7 @@ type: 'slider',//给x轴设置滚动条 show: true, //flase直接隐藏图形 xAxisIndex: [0], - bottom: 0, + bottom: 46, height: 20, showDetail: false, startValue: 0,//滚动条的起始位置 @@ -354,13 +361,14 @@ .box-content-left { width: calc(100% - 12px); - height: 600px; + height: 626px; border: 2px #eff1f3 solid; + border-radius: 6px; #main-left { width: 100%; height: 100%; - padding: 24px; + padding: 24px 20px; box-sizing: border-box; } diff --git a/jero-web/src/views/projectManagement/components/projectStatus.vue b/jero-web/src/views/projectManagement/components/projectStatus.vue index 6f31469e6..71866f40a 100644 --- a/jero-web/src/views/projectManagement/components/projectStatus.vue +++ b/jero-web/src/views/projectManagement/components/projectStatus.vue @@ -11,7 +11,7 @@ - + - + - @@ -38,7 +36,6 @@ import regulatoryCompliance from './regulatoryCompliance' import certificationActivity from './certificationActivity' import parameterCollectionProgress from './parameterCollectionProgress' - import versionStatistics from './versionStatistics' import nonConformance from './nonConformance' import { getAction, postAction } from '@/api/manage' @@ -48,7 +45,6 @@ parameterCollectionProgress, regulatoryCompliance, certificationActivity, - versionStatistics, nonConformance }, data() { @@ -59,6 +55,9 @@ } }, methods: { + activeKeyChange(){ + this.$emit('projectStatusForm',this.activeKey) + }, currentStatus(item) { this.$emit('TaskListChange', item) }, diff --git a/jero-web/src/views/projectManagement/components/versionStatistics.vue b/jero-web/src/views/projectManagement/components/versionStatistics.vue index 5827159d0..82d2f3446 100644 --- a/jero-web/src/views/projectManagement/components/versionStatistics.vue +++ b/jero-web/src/views/projectManagement/components/versionStatistics.vue @@ -34,7 +34,7 @@ :components="drag(columns,'columns')" :columns="columns" :rowKey="(record)=>JSON.stringify(record)" - :scroll="{x: '100%',y:500}" + :scroll="{x: '100%',y:'calc(100vh - 280px)'}" :data-source="dataList" :pagination="false" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" From 2c163200c855e96cb6133a95fa4186f476f14d2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Wed, 26 Apr 2023 15:38:29 +0800 Subject: [PATCH 20/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectDetails/index.vue | 5 +- .../components/ProjectDetails.vue | 10 ++-- .../components/certificationActivity.vue | 46 +++++++++---------- .../components/certificationList/index.vue | 4 ++ .../components/regulatoryCompliance.vue | 18 ++++---- .../components/responsibilityList.vue | 5 +- 6 files changed, 48 insertions(+), 40 deletions(-) diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index 6e06d955c..72e5bb2bd 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -153,7 +153,7 @@
- + --> @@ -417,7 +418,7 @@ this.textTitle = this.$t('listOfRegulations') } else { this.areaOfResponsibility = item - this.textTitle = this.$t('taskList') + this.textTitle = this.$t('certificationList') } let textColor = document.getElementsByClassName('Virtual-detail-left-text-color') if (textColor && textColor.length > 0) { diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index acb4d8f8f..7dfe78a4b 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -148,7 +148,9 @@
- + @@ -225,9 +227,9 @@ } }) }, - // currentStatus(item) { - // this.$emit('TaskListChange', item) - // }, + currentStatus(item) { + this.$emit('TaskListChange', item) + }, getSetting() { getAction(this.url.queryByProjectId, { projectId: this.$route.query.id }).then((res) => { if (res.success) { diff --git a/jero-web/src/views/projectManagement/components/certificationActivity.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue index 1221cbfbc..b34fa45b3 100644 --- a/jero-web/src/views/projectManagement/components/certificationActivity.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -259,29 +259,29 @@ } ] }) - // myChart.on('click', (params) => { - // let query = { - // title: params.seriesName, - // projectLibraryId: this.$route.query.id - // } - // if (num === 1) { - // query.operatorType = 'queryListingToConfirmStatistics' - // query.inventoryAffirmStatus = params.data.status - // } else if (num === 2) { - // query.operatorType = 'queryTaskToConfirmStatistics' - // query.taskAffirmStatus = params.data.status - // } else if (num === 3) { - // query.operatorType = 'queryDesignStatistics' - // query.designFlowTaskStatus = params.data.status - // } else if (num === 4) { - // query.operatorType = 'queryPrehomoStatistics' - // query.prehomoFlowTaskStatus = params.data.status - // } else if (num === 5) { - // query.operatorType = 'queryVerifyStatistics' - // query.verifyFlowTaskStatus = params.data.status - // } - // this.$refs.responsibilityListRef.getData(query) - // }) + myChart.on('click', (params) => { + let query = { + title: params.seriesName, + projectLibraryId: this.$route.query.id + } + // if (num === 1) { + // query.operatorType = 'queryListingToConfirmStatistics' + // query.inventoryAffirmStatus = params.data.status + // } else if (num === 2) { + // query.operatorType = 'queryTaskToConfirmStatistics' + // query.taskAffirmStatus = params.data.status + // } else if (num === 3) { + // query.operatorType = 'queryDesignStatistics' + // query.designFlowTaskStatus = params.data.status + // } else if (num === 4) { + // query.operatorType = 'queryPrehomoStatistics' + // query.prehomoFlowTaskStatus = params.data.status + // } else if (num === 5) { + // query.operatorType = 'queryVerifyStatistics' + // query.verifyFlowTaskStatus = params.data.status + // } + this.$refs.responsibilityListRef.getData(query) + }) }, responsibility(item) { diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index ee9217fda..1e118b23e 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -826,6 +826,10 @@ this.long = localStorage.getItem('language') || 'zh-cn' this.loading = true this.userInfoQuery = this.userInfo() + if (this.areaOfResponsibility && this.areaOfResponsibility.dutyTerritory) { + this.queryParam.dutyTerritory = this.areaOfResponsibility.dutyTerritory + this.queryParam = { ...this.queryParam } + } this.getProcessStatus() this.getDeliverableTree() this.getRoleByUserId(() => { diff --git a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue index ea81954a7..a1a783b49 100644 --- a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue +++ b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue @@ -126,15 +126,15 @@ } ] }) - // myChart.on('click', (params) => { - // let query = { - // title: params.seriesName, - // projectLibraryId: this.$route.query.id, - // operatorType: 'queryCurrentProjectStatusStatistics', - // conditionAssessment: params.data.color - // } - // this.$refs.responsibilityListRef.getData(query) - // }) + myChart.on('click', (params) => { + let query = { + title: params.seriesName, + projectLibraryId: this.$route.query.id, + operatorType: 'queryCurrentProjectStatusStatistics', + conditionAssessment: params.data.color + } + this.$refs.responsibilityListRef.getData(query) + }) }, mainTopEcharts(dataSource) { diff --git a/jero-web/src/views/projectManagement/components/responsibilityList.vue b/jero-web/src/views/projectManagement/components/responsibilityList.vue index 5f57dedd5..d49d20017 100644 --- a/jero-web/src/views/projectManagement/components/responsibilityList.vue +++ b/jero-web/src/views/projectManagement/components/responsibilityList.vue @@ -101,10 +101,11 @@ this.visible = false }, areaOfResponsibilityClick(item) { - if (this.queryParam.operatorType == 'queryListingToConfirmStatistics' || this.queryParam.operatorType == 'queryTaskToConfirmStatistics'){ + if (this.queryParam.operatorType == 'queryListingToConfirmStatistics' || + this.queryParam.operatorType == 'queryTaskToConfirmStatistics'){ item.isListing = '1' } - // this.$emit('responsibility', item) + this.$emit('responsibility', item) } } } From 410091d828b554cc7b5009faea48f7894e8500ca Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Wed, 26 Apr 2023 16:04:52 +0800 Subject: [PATCH 21/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E5=AF=BC=E5=87=BA=E4=B8=8D=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E9=A1=B9=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLawsInventoryEOController.java | 14 +++++ .../IProjectLawsInventoryEOService.java | 2 + .../ProjectLawsInventoryEOServiceImpl.java | 60 +++++++++++++++++++ 3 files changed, 76 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index 8038adb94..3d0e91614 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -539,4 +539,18 @@ public class ProjectLawsInventoryEOController extends JeroController> result = this.projectLawsInventoryEOService.queryNotComplianList(params); return Result.OK(result); } + + /** + * 导出不符合项列表 + * @param request + * @param params + */ + @AutoLog(value = "项目库-法规清单表-导出不符合项列表") + @ApiOperation(value="项目库-法规清单表-导出不符合项列表", notes="项目库-法规清单表-导出不符合项列表") + @RequestMapping(value = "/exportNotComplianList") + public void exportNotComplianList(HttpServletResponse response, + HttpServletRequest request, + @RequestParam Map params) { + this.projectLawsInventoryEOService.exportNotComplianList(response,request, params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index c8a497483..f4e021a17 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -279,4 +279,6 @@ public interface IProjectLawsInventoryEOService extends IService> getVerifyComplianceStatistice(List projectLawsInventoryEOList); List> queryNotComplianList(Map params); + + void exportNotComplianList(HttpServletResponse response, HttpServletRequest request, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 1c3fa146c..f346ee4ed 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -12612,6 +12612,66 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl params) { + String cut = (String) params.get("cut"); + String header = ""; + String sheetName = "未符合项"; + if (StringUtils.equals(cut,CutEnum.CN.getValue())) { + header = "编号,标题,流程类型,责任领域,问题类型,发起人,责任人"; + } else if (StringUtils.equals(cut,CutEnum.EN.getValue())) { + header = "Number,Title,Process Type,Responsible Field,Issue Type,Creator,Assignee"; + sheetName = "Non-compliant"; + } + + OutputStream os = null; + Workbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet(sheetName); + + List> dataList = this.queryNotComplianList(params); + + CellStyle cellStyle = workbook.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); + Row rowHeader = sheet.createRow(0);//开始创建标题行 + if (com.jero.modules.system.util.StringUtils.isNotBlank(header)) { + String[] headerArr = header.split(","); + for (int i = 0; i < headerArr.length; i++) { + sheet.setColumnWidth(i, 5000); // 设置列宽度为5000 + Cell cellHeader = rowHeader.createCell(i); + cellHeader.setCellStyle(cellStyle); + cellHeader.setCellValue(headerArr[i]); + } + } + + if(CollectionUtils.isNotEmpty(dataList)){ + for (int i = 0; i < dataList.size(); i++) { + Row row = sheet.createRow(i + 1); + row.createCell(0).setCellValue((String) dataList.get(i).get("serialNumber")); + row.createCell(1).setCellValue((String) dataList.get(i).get("title")); + row.createCell(2).setCellValue((String) dataList.get(i).get("flowTypeName")); + row.createCell(3).setCellValue((String) dataList.get(i).get("dutyTerritory_dictText")); + row.createCell(4).setCellValue((String) dataList.get(i).get("flowStatusName")); + row.createCell(5).setCellValue((String) dataList.get(i).get("regulationOwnerIdName")); + row.createCell(6).setCellValue((String) dataList.get(i).get("dutyIdName")); + } + } + + try { + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + } catch (IOException e) { + e.printStackTrace(); + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("导出失败"); + }else{ + throw new JeroBootException("Export failure"); + } + } finally { + IOUtils.closeQuietly(os); + } + } + /** * 设计符合性相关待办任务强制转办 * @param projectLibraryId From 9771e84f7d0e9951b5f647805fff6769e9fd564a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Wed, 26 Apr 2023 17:03:56 +0800 Subject: [PATCH 22/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/certificationActivity.vue | 77 +++-- .../components/regulatoryCompliance.vue | 63 +++- .../components/responsibilityList.vue | 73 ++-- .../components/settingList.vue | 321 ++++++++++-------- 4 files changed, 297 insertions(+), 237 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/certificationActivity.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue index b34fa45b3..a8033f9ba 100644 --- a/jero-web/src/views/projectManagement/components/certificationActivity.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -97,34 +97,38 @@ data.push({ value: res.taskAffirmStatusCount, name: this.$t('notLaunch'), - color: '#00B3BE' + color: '#00B3BE', + status:res.taskAffirmStatus }) color.push('#00B3BE') } else if (res.taskAffirmStatus == 'List to confirm') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('listToConfirm'), - color: '#FDA71C' + color: '#FDA71C', + status:res.taskAffirmStatus }) color.push('#FDA71C') } else if (res.taskAffirmStatus == 'Accepted') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('accept'), - color: '#26BC4B' + color: '#26BC4B', + status:res.taskAffirmStatus }) color.push('#26BC4B') } else if (res.taskAffirmStatus == 'Rejected') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('refuse'), - color: '#E83030' + color: '#E83030', + status:res.taskAffirmStatus }) color.push('#E83030') } }) } - this.getEcharts('main-left', this.$t('regulatoryTaskConfirmation'), color, data) + this.getEcharts('main-left', this.$t('certificationTaskConfirmation'), color, data) }, mainRightEcharts(dataSource){ let data = [] @@ -136,28 +140,32 @@ data.push({ value: res.taskAffirmStatusCount, name: this.$t('notLaunch'), - color: '#00B3BE' + color: '#00B3BE', + status:res.taskAffirmStatus }) color.push('#00B3BE') } else if (res.taskAffirmStatus == 'List to confirm') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('listToConfirm'), - color: '#FDA71C' + color: '#FDA71C', + status:res.taskAffirmStatus }) color.push('#FDA71C') } else if (res.taskAffirmStatus == 'Review and pass') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('reviewAndPass'), - color: '#26BC4B' + color: '#26BC4B', + status:res.taskAffirmStatus }) color.push('#26BC4B') } else if (res.taskAffirmStatus == 'Review and return') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('reviewAndReturn'), - color: '#E83030' + color: '#E83030', + status:res.taskAffirmStatus }) color.push('#E83030') } @@ -174,49 +182,56 @@ data.push({ value: res.certificationProgressCount, name: this.$t('Notatthe'), - color: '#00B3BE' + color: '#00B3BE', + status:res.certificationProgress }) color.push('#00B3BE') } else if (res.certificationProgress == 'In progress') { data.push({ value: res.certificationProgressCount, name: this.$t('inProgress'), - color: '#FDA71C' + color: '#FDA71C', + status:res.certificationProgress }) color.push('#FDA71C') } else if (res.certificationProgress == 'Test passed') { data.push({ value: res.certificationProgressCount, name: this.$t('experimentPassed'), - color: '#26BC4B' + color: '#26BC4B', + status:res.certificationProgress }) color.push('#26BC4B') } else if (res.certificationProgress == 'Test failed') { data.push({ value: res.certificationProgressCount, name: this.$t('experimentFailed'), - color: '#E83030' + color: '#E83030', + status:res.certificationProgress }) color.push('#E83030') }else if (res.certificationProgress == 'Component report not submitted') { data.push({ value: res.certificationProgressCount, name: this.$t('componentReportNotSubmitted'), - color: '#FDA71C' + color: '#FDA71C', + status:res.certificationProgress }) color.push('#FDA71C') }else if (res.certificationProgress == 'Component report submitted') { data.push({ value: res.certificationProgressCount, name: this.$t('componentReportSubmitted'), - color: '#6FD682' + color: '#6FD682', + status:res.certificationProgress }) color.push('#6FD682') }else if (res.certificationProgress == 'Component report has been stored') { data.push({ value: res.certificationProgressCount, name: this.$t('componentReportHasBeenStored'), - color: '#26BC4B' + color: '#26BC4B', + status:res.certificationProgress }) color.push('#26BC4B') } @@ -264,22 +279,16 @@ title: params.seriesName, projectLibraryId: this.$route.query.id } - // if (num === 1) { - // query.operatorType = 'queryListingToConfirmStatistics' - // query.inventoryAffirmStatus = params.data.status - // } else if (num === 2) { - // query.operatorType = 'queryTaskToConfirmStatistics' - // query.taskAffirmStatus = params.data.status - // } else if (num === 3) { - // query.operatorType = 'queryDesignStatistics' - // query.designFlowTaskStatus = params.data.status - // } else if (num === 4) { - // query.operatorType = 'queryPrehomoStatistics' - // query.prehomoFlowTaskStatus = params.data.status - // } else if (num === 5) { - // query.operatorType = 'queryVerifyStatistics' - // query.verifyFlowTaskStatus = params.data.status - // } + if (params.seriesName === this.$t('certificationTaskConfirmation')) { + query.operatorType = 'queryRZTaskToConfirmStatistics' + query.status = params.data.status + } else if (params.seriesName === this.$t('preHomoFlow')) { + query.operatorType = 'queryPrehomoStatistics' + query.status = params.data.status + } else if (params.seriesName === this.$t('CertificationProgress')) { + query.operatorType = 'queryCertificationProgressStatistics' + query.status = params.data.status + } this.$refs.responsibilityListRef.getData(query) }) }, @@ -313,7 +322,8 @@ width: 100%; display: flex; justify-content: space-between; - margin-bottom: 20px; + flex-wrap: wrap; + /*margin-bottom: 20px;*/ .box-content-left { width: calc(50% - 10px); @@ -351,6 +361,7 @@ border: 2px #eff1f3 solid; position: relative; border-radius: 6px; + margin-top: 20px; .box-content-text { height: 30px; diff --git a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue index a1a783b49..a5164fc8a 100644 --- a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue +++ b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue @@ -127,11 +127,28 @@ ] }) myChart.on('click', (params) => { - let query = { - title: params.seriesName, - projectLibraryId: this.$route.query.id, - operatorType: 'queryCurrentProjectStatusStatistics', - conditionAssessment: params.data.color + let query = {} + if (params.seriesName == this.$t('regulatoryTaskConfirmation')){ + query = { + title: params.seriesName, + projectLibraryId: this.$route.query.id, + operatorType: 'queryFGTaskToConfirmStatistics', + status:params.data.status + } + }else if(params.seriesName == this.$t('designCompliance')){ + query = { + title: params.seriesName, + projectLibraryId: this.$route.query.id, + operatorType: 'queryDesignStatistics', + status:params.data.status + } + }else if(params.seriesName == this.$t('verifyCompliance')){ + query = { + title: params.seriesName, + projectLibraryId: this.$route.query.id, + operatorType: 'queryVerifyStatistics', + status:params.data.status + } } this.$refs.responsibilityListRef.getData(query) }) @@ -147,28 +164,32 @@ data.push({ value: res.taskAffirmStatusCount, name: this.$t('notLaunch'), - color: '#00B3BE' + color: '#00B3BE', + status: res.taskAffirmStatus }) color.push('#00B3BE') } else if (res.taskAffirmStatus == 'List to confirm') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('listToConfirm'), - color: '#FDA71C' + color: '#FDA71C', + status: res.taskAffirmStatus }) color.push('#FDA71C') } else if (res.taskAffirmStatus == 'Accepted') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('accept'), - color: '#26BC4B' + color: '#26BC4B', + status: res.taskAffirmStatus }) color.push('#26BC4B') } else if (res.taskAffirmStatus == 'Rejected') { data.push({ value: res.taskAffirmStatusCount, name: this.$t('refuse'), - color: '#E83030' + color: '#E83030', + status: res.taskAffirmStatus }) color.push('#E83030') } @@ -187,28 +208,32 @@ data.push({ value: res.designFlowTaskStatusCount, name: this.$t('notLaunch'), - color: '#00B3BE' + color: '#00B3BE', + status:res.designFlowTaskStatus }) color.push('#00B3BE') } else if (res.designFlowTaskStatus == 'List to confirm') { data.push({ value: res.designFlowTaskStatusCount, name: this.$t('listToConfirm'), - color: '#FDA71C' + color: '#FDA71C', + status:res.designFlowTaskStatus }) color.push('#FDA71C') } else if (res.designFlowTaskStatus == 'Compliance') { data.push({ value: res.designFlowTaskStatusCount, name: this.$t('compliance'), - color: '#26BC4B' + color: '#26BC4B', + status:res.designFlowTaskStatus }) color.push('#26BC4B') } else if (res.designFlowTaskStatus == 'Non-Compliance') { data.push({ value: res.designFlowTaskStatusCount, name: this.$t('nonCompliance'), - color: '#707486' + color: '#707486', + status:res.designFlowTaskStatus }) color.push('#707486') } @@ -227,28 +252,32 @@ data.push({ value: res.verifyFlowTaskStatusCount, name: this.$t('notLaunch'), - color: '#00B3BE' + color: '#00B3BE', + status:res.verifyFlowTaskStatus }) color.push('#00B3BE') } else if (res.verifyFlowTaskStatus == 'List to confirm') { data.push({ value: res.verifyFlowTaskStatusCount, name: this.$t('listToConfirm'), - color: '#FDA71C' + color: '#FDA71C', + status:res.verifyFlowTaskStatus }) color.push('#FDA71C') } else if (res.verifyFlowTaskStatus == 'Compliance') { data.push({ value: res.verifyFlowTaskStatusCount, name: this.$t('compliance'), - color: '#26BC4B' + color: '#26BC4B', + status:res.verifyFlowTaskStatus }) color.push('#26BC4B') } else if (res.verifyFlowTaskStatus == 'Non-Compliance') { data.push({ value: res.verifyFlowTaskStatusCount, name: this.$t('nonCompliance'), - color: '#707486' + color: '#707486', + status:res.verifyFlowTaskStatus }) color.push('#707486') } diff --git a/jero-web/src/views/projectManagement/components/responsibilityList.vue b/jero-web/src/views/projectManagement/components/responsibilityList.vue index d49d20017..8fe9a1de0 100644 --- a/jero-web/src/views/projectManagement/components/responsibilityList.vue +++ b/jero-web/src/views/projectManagement/components/responsibilityList.vue @@ -1,37 +1,37 @@ + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/responsibilityList.vue b/jero-web/src/views/projectManagement/components/responsibilityList.vue index 8fe9a1de0..7be4a77f8 100644 --- a/jero-web/src/views/projectManagement/components/responsibilityList.vue +++ b/jero-web/src/views/projectManagement/components/responsibilityList.vue @@ -68,7 +68,14 @@ dataIndex: 'amount', align: 'left', ellipsis: true, - width: 300 + width: 150 + }, + { + title: this.$t('proportion'), + dataIndex: 'percentage', + align: 'left', + ellipsis: true, + width: 150 } ] } diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index eb39c74d3..9ec232d63 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -483,7 +483,7 @@ for (let i = 0; i < timeData.length; i++) { for (let j = 0; j < timeData[i].data[0].length; j++) { for (let k = 0; k < dataList.length; k++) { - let num = (Math.ceil(clientWidth / 30)) * parseInt(timeData[i].data[0][j].time.slice(8, 10)) + let num = (Math.floor(clientWidth / 30 * 10000)/10000) * parseInt(timeData[i].data[0][j].time.slice(8, 10)) timeList.forEach((res, index) => { if (timeData[i].data[0][j].time.slice(0, 7) == res.slice(0, 7)) { timeData[i].data[0][j].left = 'left:' + ((clientWidth * index + num) - 10) + 'px' @@ -509,8 +509,8 @@ }) this.timeData = timeData - console.log(this.timeData) this.timeData = [...this.timeData] + console.log(this.timeData) this.loadingMain = false }, 500) @@ -754,14 +754,23 @@ .process-content-right-top { font-size: 12px; color: #040B29; - width: 75px; + width: 83px; background: #fff; display: inline-block; overflow: hidden; position: absolute; - top: -12px; + top: -15px; left: 50%; transform: translate(-50%, -50%); + overflow: hidden; + display: -webkit-box; + text-overflow: ellipsis; + /*! autoprefixer: off */ + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + /*! autoprefixer: on;*/ + text-justify: inter-ideograph; + word-break: break-all } .process-content-right-button { @@ -770,11 +779,19 @@ width: 75px; background: #fff; display: inline-block; - overflow: hidden; position: absolute; top: 12px; left: 50%; transform: translate(-50%, -50%); + overflow: hidden; + display: -webkit-box; + text-overflow: ellipsis; + /*! autoprefixer: off */ + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + /*! autoprefixer: on;*/ + text-justify: inter-ideograph; + word-break: break-all } .process-content-right-button { @@ -810,7 +827,7 @@ .process-content-right-top { font-size: 12px; color: #040B29; - width: 75px; + width: 83px; background: #fff; display: inline-block; overflow: hidden; @@ -818,30 +835,35 @@ top: -12px; left: 50%; transform: translate(-50%, -50%); + display: -webkit-box; + text-overflow: ellipsis; + /*! autoprefixer: off */ + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + /*! autoprefixer: on;*/ + text-justify: inter-ideograph; + word-break: break-all } .process-content-right-button { - font-size: 12px; - color: #040B29; - width: 75px; - background: #fff; - display: inline-block; - overflow: hidden; - position: absolute; - top: 12px; - left: 50%; - transform: translate(-50%, -50%); - } - - .process-content-right-button { - width: 75px; + width: 83px; font-size: 12px; font-weight: 400; color: #6F7385; position: absolute; + background: #fff; left: 50%; - top: 34px; + top: 36px; transform: translate(-50%, -50%); + overflow: hidden; + display: -webkit-box; + text-overflow: ellipsis; + /*! autoprefixer: off */ + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + /*! autoprefixer: on;*/ + text-justify: inter-ideograph; + word-break: break-all } } @@ -870,7 +892,7 @@ } .box-top-content-right-xian { - height: 120%; + height: 101%; border-left: 1px #D92E2E solid; position: absolute; top: -42px; From 8d5aa7df5fea2d05b5238b4097f31f773f5e14da Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Thu, 27 Apr 2023 14:15:56 +0800 Subject: [PATCH 25/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE-=E7=82=B9=E5=87=BB=E9=A5=BC=E7=8A=B6=E5=9B=BE?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=B4=A3=E4=BB=BB=E9=A2=86=E5=9F=9F=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E7=99=BE=E5=88=86=E6=AF=94=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/ISysDictItemService.java | 9 + .../service/impl/SysDictItemServiceImpl.java | 26 ++ .../project/enums/OperatorTypeEnum.java | 2 + .../IProjectLibraryStatisticsService.java | 35 +++ .../impl/ProjectLibraryBaseServiceImpl.java | 184 ++++++++--- .../ProjectLibraryStatisticsServiceImpl.java | 290 ++++++++++++++++++ 6 files changed, 495 insertions(+), 51 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java index 30e9d7eed..4487a3877 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictItemService.java @@ -4,6 +4,7 @@ import com.jero.modules.system.entity.SysDictItem; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -46,4 +47,12 @@ public interface ISysDictItemService extends IService { * @return */ String disposeShowDictItemText(List sysDictItems,String fieldTexts,String cut,String dicCode); + + /** + * 根据字典code获取一级数据字典 + * @param dictCode + * @param sysDictItems + * @return + */ + Map> getFirstLevelSysDictItemByDictCode(String dictCode,List sysDictItems); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java index dc1122fe6..f0a7f27b6 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.CommonConstant; import com.jero.common.constant.enums.CutEnum; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.service.ISysDictItemService; @@ -13,7 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -231,4 +234,27 @@ public class SysDictItemServiceImpl extends ServiceImpl> getFirstLevelSysDictItemByDictCode(String dictCode,List sysDictItems) { + List sysDictItemByDictCode = sysDictItems.stream().filter(sysDict -> { + boolean flag = false; + if (StringUtils.equals(sysDict.getDictCode(), dictCode)) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + Map> result = null; + if(CollectionUtils.isNotEmpty(sysDictItemByDictCode)){ + result = sysDictItems.stream().filter(sysDict -> { + boolean flag = false; + if (StringUtils.isNotEmpty(sysDict.getStatNode())) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(SysDictItem::getStatNode)); + } + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index c440e0b3c..548ac6a32 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -38,6 +38,8 @@ public enum OperatorTypeEnum { QUERY_PREHOMO_STATISTICS("查询prehomo统计","queryPrehomoStatistics"), QUERY_VERIFY_STATISTICS("查询验证符合性统计","queryVerifyStatistics"), QUERY_CERTIFICATION_PROGRESS_STATISTICS("查询认证进度统计","queryCertificationProgressStatistics"), + QUERY_FG_TASK_TO_CONFIRM_STATISTICS("查询法规任务确认统计","queryFGTaskToConfirmStatistics"), + QUERY_RZ_TASK_TO_CONFIRM_STATISTICS("查询认证任务确认统计","queryRZTaskToConfirmStatistics"), ADD_LAWS_OPINION_GATHER("添加法规意见收集数据","addLawsOpinionGather"), UPDATE_LAWS_OPINION_GATHER_GATHER_RESULT("更新法规意见收集数据收集结果","updateLawsOpinionGatherGatherResult"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java new file mode 100644 index 000000000..66059e1bd --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java @@ -0,0 +1,35 @@ +package com.jero.modules.project.service; + +import com.jero.modules.project.entity.ProjectLawsInventoryEO; + +import java.util.List; +import java.util.Map; + +/** + * 项目库统计service + */ +public interface IProjectLibraryStatisticsService { + + /** + * 获取法规清单-任务确认统计信息-根据责任领域分组 + * @param datas + * @return + */ + Map getFGTaskToConfirmStatisticsGroupByTerritory(List datas, Map params); + + /** + * 获取设计符合性确认流程统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getDesignComplianceStatisticeGroupByTerritory(List datas, Map params); + + /** + * 获取验证符合性确认流程统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getVerifyComplianceStatisticeGroupByTerritory(List datas, Map params); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index b37caf6b3..a0dfbaf18 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -165,6 +165,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl lawsInventoryEOQueryWrapper = new QueryWrapper<>(); lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); - lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue()); - lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue()); List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); - List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); - if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ - params.put("projectLawsInventoryIdList",projectLawsInventoryIdList); - List> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params); - disposeData(conditionAssessmentMapList,cut); - result.put("dataList",conditionAssessmentMapList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ - //清单确认 状态 - String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus"); - List> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus); - disposeData(listingToConfirmList,cut); - result.put("dataList",listingToConfirmList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ - //任务确认 状态 - String taskAffirmStatus = (String) params.get("taskAffirmStatus"); - List> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus); - disposeData(taskToConfirmList,cut); - result.put("dataList",taskToConfirmList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ - //设计符合性 流程任务状态 - String designFlowTaskStatus = (String) params.get("designFlowTaskStatus"); - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> designComplianceList = this.projectTaskInventoryEOMapper.getDesignComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,designFlowTaskStatus); - disposeData(designComplianceList,cut); - result.put("dataList",designComplianceList); - } - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ - //prehomo确认 流程任务状态 - String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus"); - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus); - disposeData(prehomoList,cut); - result.put("dataList",prehomoList); - } - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ - //验证符合性 流程任务状态 - String verifyFlowTaskStatus = (String) params.get("verifyFlowTaskStatus"); + List sysDictItems = new ArrayList<>(); + // 法规清单所有的责任领域 + String pliDutyTerritoryStr = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(pliDutyTerritoryStr)) { + List pliDutyTerritoryList = Arrays.asList(pliDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); + sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> { + boolean flag = false; + for (String pliDutyTerritory : pliDutyTerritoryList) { + if(StringUtils.equals(sysDictItem.getItemValue(),pliDutyTerritory)){ + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> verifyComplianceList = this.projectTaskInventoryEOMapper.getVerifyComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,verifyFlowTaskStatus); - disposeData(verifyComplianceList,cut); - result.put("dataList",verifyComplianceList); - } - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ - //认证进度 流程任务状态 - String certificationProgress = (String) params.get("certificationProgress"); + Map pliEoMap = new HashMap<>(); - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress); - disposeData(certificationProgressList,cut); - result.put("dataList",certificationProgressList); + Map> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){ + // 根据责任领域组装法规清单数据,后续计算使用 + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) { + String key = firstLevelMap.getKey(); + List dutyTerritoryList = firstLevelMap.getValue(); + if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } + List pliEoList = projectLawsInventoryEOList.stream().filter(pliEo -> { + boolean flag = false; + for (SysDictItem dutyTerritory : dutyTerritoryList) { + if (StringUtils.contains(pliEo.getDutyTerritory(), dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + + JSONObject json = new JSONObject(); + json.put("dutyTerritoryList",dutyTerritoryList); + json.put("pliEoList",pliEoList); + pliEoMap.put(key,json); + } + } + String status = (String) params.get("status"); + if (CollectionUtils.isNotEmpty(projectLawsInventoryEOList)) { + List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); + if(StringUtils.equals(OperatorTypeEnum.QUERY_FG_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + if(ObjectUtils.isNotEmpty(pliEoMap)){ + + List> dataList = new ArrayList<>(); + for (Map.Entry pliMap : pliEoMap.entrySet()) { + String key = pliMap.getKey(); + JSONObject json = (JSONObject) pliMap.getValue(); + List pliEoList = (List) json.get("pliEoList"); + Map dataMaps = this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList,params); + Map dataMap = (Map) dataMaps.get(status); + double amount = (double) dataMap.get("amount"); + if(amount != 0){ + dataMap.put("dutyTerritoryName",key); + dataList.add(dataMap); + } + } + result.put("dataList",dataList); + } + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ + params.put("projectLawsInventoryIdList",projectLawsInventoryIdList); + List> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params); + disposeData(conditionAssessmentMapList,cut); + result.put("dataList",conditionAssessmentMapList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + //清单确认 状态 + String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus"); + List> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus); + disposeData(listingToConfirmList,cut); + result.put("dataList",listingToConfirmList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + //任务确认 状态 + String taskAffirmStatus = (String) params.get("taskAffirmStatus"); + List> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus); + disposeData(taskToConfirmList,cut); + result.put("dataList",taskToConfirmList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + //设计符合性 + List> dataList = new ArrayList<>(); + for (Map.Entry pliMap : pliEoMap.entrySet()) { + String key = pliMap.getKey(); + JSONObject json = (JSONObject) pliMap.getValue(); + List pliEoList = (List) json.get("pliEoList"); + Map dataMaps = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList,params); + Map dataMap = (Map) dataMaps.get(status); + double amount = (double) dataMap.get("amount"); + if(amount != 0){ + dataMap.put("dutyTerritoryName",key); + dataList.add(dataMap); + } + } + result.put("dataList",dataList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + //prehomo确认 流程任务状态 + String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus"); + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus); + disposeData(prehomoList,cut); + result.put("dataList",prehomoList); + } + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + //验证符合性 流程任务状态 + List> dataList = new ArrayList<>(); + for (Map.Entry pliMap : pliEoMap.entrySet()) { + String key = pliMap.getKey(); + JSONObject json = (JSONObject) pliMap.getValue(); + List pliEoList = (List) json.get("pliEoList"); + Map dataMaps = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList,params); + Map dataMap = (Map) dataMaps.get(status); + double amount = (double) dataMap.get("amount"); + if(amount != 0){ + dataMap.put("dutyTerritoryName",key); + dataList.add(dataMap); + } + } + result.put("dataList",dataList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ + //认证进度 流程任务状态 + String certificationProgress = (String) params.get("certificationProgress"); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress); + disposeData(certificationProgressList,cut); + result.put("dataList",certificationProgressList); + } } } return result; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java new file mode 100644 index 000000000..d263a4e5c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java @@ -0,0 +1,290 @@ +package com.jero.modules.project.service.impl; + +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.enums.ComplianceFlowStatusEnum; +import com.jero.modules.project.enums.TaskAffirmStatusEnum; +import com.jero.modules.project.service.IProjectCertificationInventoryEOService; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectLibraryStatisticsService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStatisticsService { + + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + @Autowired + private IProjectCertificationInventoryEOService projectCertificationInventoryEOService; + + @Override + public Map getFGTaskToConfirmStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + DecimalFormat df = new DecimalFormat("#.00"); + String status = (String) params.get("status"); + + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map acceptedMap = new HashMap<>(); + Map rejectedMap = new HashMap<>(); + + // 未发起 + List notStartedDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List notStartedVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartedComplianceFlowCount = (double) notStartedDesignPliEoList.size() + notStartedVerifyPliEoList.size(); + double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size() * 2)) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedComplianceFlowCount); + notStartedMap.put("percentage",notStartedPercentageStr + "%"); + + // 待确认 + List toConfirmDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List toConfirmVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double toConfirmComplianceFlowCount = (double) toConfirmDesignPliEoList.size() + toConfirmVerifyPliEoList.size(); + double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size() * 2)) * 100; + String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; + toConfirmMap.put("amount",toConfirmComplianceFlowCount); + toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + + // 接受 + List acceptedDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List acceptedVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double acceptedComplianceFlowCount = (double) acceptedDesignPliEoList.size() + acceptedVerifyPliEoList.size(); + double acceptedPercentage = (acceptedComplianceFlowCount / (datas.size() * 2)) * 100; + String acceptedPercentageStr = acceptedPercentage != 0 ? df.format(acceptedPercentage) : "0"; + acceptedMap.put("amount",acceptedComplianceFlowCount); + acceptedMap.put("percentage",acceptedPercentageStr + "%"); + + // 拒绝 + List rejectedDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List rejectedVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double rejectedComplianceFlowCount = (double) rejectedDesignPliEoList.size() + rejectedVerifyPliEoList.size(); + double rejectedPercentage = (rejectedComplianceFlowCount / (datas.size() * 2)) * 100; + String rejectedPercentageStr = rejectedPercentage != 0 ? df.format(rejectedPercentage) : "0"; + rejectedMap.put("amount",rejectedComplianceFlowCount); + rejectedMap.put("percentage",rejectedPercentageStr + "%"); + + result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); + result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); + result.put(TaskAffirmStatusEnum.ACCEPTED.getValue(),acceptedMap); + result.put(TaskAffirmStatusEnum.REJECTED.getValue(),rejectedMap); + } + return result; + } + + @Override + public Map getDesignComplianceStatisticeGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map complianceMap = new HashMap<>(); + Map nonComplianceMap = new HashMap<>(); + + DecimalFormat df = new DecimalFormat("#.00"); + // 未发起 + List notStartedDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartedComplianceFlowCount = (double) notStartedDesignPliEoList.size(); + double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedComplianceFlowCount); + notStartedMap.put("percentage",notStartedPercentageStr + "%"); + + // 待确认 + List toConfirmDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double toConfirmComplianceFlowCount = (double) toConfirmDesignPliEoList.size(); + double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100; + String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; + toConfirmMap.put("amount",toConfirmComplianceFlowCount); + toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + + // 符合 + List complianceDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double complianceFlowCount = (double) complianceDesignPliEoList.size(); + double compliancePercentage = (complianceFlowCount / (datas.size())) * 100; + String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0"; + complianceMap.put("amount",complianceFlowCount); + complianceMap.put("percentage",compliancePercentageStr + "%"); + + // 不符合 + List nonComplianceDesignPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double nonComplianceComplianceFlowCount = (double) nonComplianceDesignPliEoList.size(); + double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100; + String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0"; + nonComplianceMap.put("amount",nonComplianceComplianceFlowCount); + nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%"); + + result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); + result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); + result.put(ComplianceFlowStatusEnum.CONFORMITY.getValue(),complianceMap); + result.put(ComplianceFlowStatusEnum.INCONFORMITY.getValue(),nonComplianceMap); + } + return result; + } + + @Override + public Map getVerifyComplianceStatisticeGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map complianceMap = new HashMap<>(); + Map nonComplianceMap = new HashMap<>(); + + DecimalFormat df = new DecimalFormat("#.00"); + // 未发起 + List notStartedVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartedComplianceFlowCount = (double) notStartedVerifyPliEoList.size(); + double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedComplianceFlowCount); + notStartedMap.put("percentage",notStartedPercentageStr + "%"); + + // 待确认 + List toConfirmVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double toConfirmComplianceFlowCount = (double) toConfirmVerifyPliEoList.size(); + double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100; + String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; + toConfirmMap.put("amount",toConfirmComplianceFlowCount); + toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + + // 符合 + List complianceVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double complianceFlowCount = (double) complianceVerifyPliEoList.size(); + double compliancePercentage = (complianceFlowCount / (datas.size())) * 100; + String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0"; + complianceMap.put("amount",complianceFlowCount); + complianceMap.put("percentage",compliancePercentageStr + "%"); + + // 不符合 + List nonComplianceVerifyPliEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double nonComplianceComplianceFlowCount = (double) nonComplianceVerifyPliEoList.size(); + double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100; + String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0"; + nonComplianceMap.put("amount",nonComplianceComplianceFlowCount); + nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%"); + + result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); + result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); + result.put(ComplianceFlowStatusEnum.CONFORMITY.getValue(),complianceMap); + result.put(ComplianceFlowStatusEnum.INCONFORMITY.getValue(),nonComplianceMap); + } + return result; + } +} From f89da954ca1b20514011ae3abbcfce829f4ac186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 27 Apr 2023 14:36:54 +0800 Subject: [PATCH 26/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/certificationActivity.vue | 12 +++++++++- .../components/regulatoryCompliance.vue | 13 ++++++++++- .../components/responsibilityList.vue | 23 ++++++++++--------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/certificationActivity.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue index a8033f9ba..0ba4406be 100644 --- a/jero-web/src/views/projectManagement/components/certificationActivity.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -246,7 +246,17 @@ text: title }, tooltip: { - trigger: 'item' + trigger: 'item', + textStyle : { + fontWeight : 'normal', + fontSize : 14, + color:'#040B29', + fontFamily:'BlueSkyNoto', + }, + formatter: function (parms) { + let str = parms.marker+' '+parms.data.name+'        '+parms.data.value+' ('+parms.percent+'%)' + return str + } }, legend: { itemWidth: 12, diff --git a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue index a5164fc8a..f07000ca8 100644 --- a/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue +++ b/jero-web/src/views/projectManagement/components/regulatoryCompliance.vue @@ -98,7 +98,17 @@ text: title }, tooltip: { - trigger: 'item' + trigger: 'item', + textStyle : { + fontWeight : 'normal', + fontSize : 14, + color:'#040B29', + fontFamily:'BlueSkyNoto', + }, + formatter: function (parms) { + let str = parms.marker+' '+parms.data.name+'        '+parms.data.value+' ('+parms.percent+'%)' + return str + } }, legend: { itemWidth: 12, @@ -287,6 +297,7 @@ }, responsibility(item) { + console.log(item) this.$emit('currentStatus', item) } } diff --git a/jero-web/src/views/projectManagement/components/responsibilityList.vue b/jero-web/src/views/projectManagement/components/responsibilityList.vue index 7be4a77f8..16298c695 100644 --- a/jero-web/src/views/projectManagement/components/responsibilityList.vue +++ b/jero-web/src/views/projectManagement/components/responsibilityList.vue @@ -27,9 +27,10 @@ :data-source="dataSource" :columns="columns" > - + + {{text}} - + @@ -59,7 +60,7 @@ title: this.$t('areaOfResponsibility'), dataIndex: 'dutyTerritoryName', align: 'left', - width: 100, + width: 150, ellipsis: true, scopedSlots: { customRender: 'areaOfResponsibility' } }, @@ -107,14 +108,14 @@ handleCancel() { this.visible = false }, - areaOfResponsibilityClick(item) { - if (this.queryParam.operatorType == 'queryFGTaskToConfirmStatistics' || - this.queryParam.operatorType == 'queryDesignStatistics' || - this.queryParam.operatorType == 'queryVerifyStatistics') { - item.isListing = '1' - } - this.$emit('responsibility', item) - } + // areaOfResponsibilityClick(item) { + // if (this.queryParam.operatorType == 'queryFGTaskToConfirmStatistics' || + // this.queryParam.operatorType == 'queryDesignStatistics' || + // this.queryParam.operatorType == 'queryVerifyStatistics') { + // item.isListing = '1' + // } + // this.$emit('responsibility', item) + // } } } From b2d967115fa3952b740e3d8e35a5624bca0f1020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 28 Apr 2023 10:26:11 +0800 Subject: [PATCH 27/40] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=B9=E7=9B=AE=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/certificationActivity.vue | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/jero-web/src/views/projectManagement/components/certificationActivity.vue b/jero-web/src/views/projectManagement/components/certificationActivity.vue index 0ba4406be..499e9893f 100644 --- a/jero-web/src/views/projectManagement/components/certificationActivity.vue +++ b/jero-web/src/views/projectManagement/components/certificationActivity.vue @@ -51,9 +51,11 @@ getProjectDetailsStatistics: '/project/projectLibraryBase/getProjectDetailsStatistics' }, certificationProgressMap:{}, + num:'0', } }, mounted() { + this.num = '0' let boxContentTextColor = document.getElementsByClassName('box-content-text-color') if (boxContentTextColor && boxContentTextColor.length > 0) { boxContentTextColor[0].classList.remove('box-content-text-color') @@ -284,7 +286,9 @@ } ] }) + myChart.off('click') // 重点代码 myChart.on('click', (params) => { + console.log(params) let query = { title: params.seriesName, projectLibraryId: this.$route.query.id @@ -296,7 +300,13 @@ query.operatorType = 'queryPrehomoStatistics' query.status = params.data.status } else if (params.seriesName === this.$t('CertificationProgress')) { - query.operatorType = 'queryCertificationProgressStatistics' + if (this.num == '0'){ + query.operatorType = 'queryCertificationProgressStatisticsAll' + }else if(this.num == '1'){ + query.operatorType = 'queryCertificationProgressStatisticsCar' + }else if(this.num == '2'){ + query.operatorType = 'queryCertificationProgressStatisticsPart' + } query.status = params.data.status } this.$refs.responsibilityListRef.getData(query) @@ -307,6 +317,7 @@ this.$emit('currentStatus', item) }, boxContentClick(num) { + let boxContentTextColor = document.getElementsByClassName('box-content-text-color') if (boxContentTextColor && boxContentTextColor.length > 0) { boxContentTextColor[0].classList.remove('box-content-text-color') @@ -315,6 +326,7 @@ if (boxContentTextText && boxContentTextText.length > 0) { boxContentTextText[num].classList.add('box-content-text-color') } + this.num = num if (num == 0){ this.mainBottomEcharts( this.certificationProgressMap.allMapList || []) }else if(num == 1){ From fa0b4dadb401bbcbd877a83fc578cfb94d0f091a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 28 Apr 2023 16:05:17 +0800 Subject: [PATCH 28/40] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=AA=E7=AC=A6?= =?UTF-8?q?=E5=90=88=E9=A1=B9=E7=9A=84=E4=BC=A0=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/nonConformance.vue | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/jero-web/src/views/projectManagement/components/nonConformance.vue b/jero-web/src/views/projectManagement/components/nonConformance.vue index e51031eeb..2dc2e0f90 100644 --- a/jero-web/src/views/projectManagement/components/nonConformance.vue +++ b/jero-web/src/views/projectManagement/components/nonConformance.vue @@ -243,6 +243,21 @@ tableOnChange(pagination, filters, sorter) { this.orderBy = sorter.order == 'ascend' ? '1' : '2' this.orderByField = sorter.columnKey + if (sorter.columnKey == 'serialNumber'){ + this.orderByField = 'serial_number' + }else if(sorter.columnKey == 'flowTypeName'){ + this.orderByField = 'flow_type' + }else if(sorter.columnKey == 'dutyTerritory_dictText'){ + this.orderByField = 'duty_territory' + }else if(sorter.columnKey == 'flowStatusName'){ + this.orderByField = 'flow_status' + }else if(sorter.columnKey == 'regulationOwnerIdName'){ + this.orderByField = 'regulation_owner_id' + }else if(sorter.columnKey == 'dutyIdName'){ + this.orderByField = 'duty_id' + }else{ + this.orderByField = sorter.columnKey + } this.getList() }, getList() { From c12fed1390ca9ea847eaaa01931b92d0d49dcd84 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Fri, 28 Apr 2023 17:38:53 +0800 Subject: [PATCH 29/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=BB=9F=E8=AE=A1-=E6=8C=89=E7=85=A7=E4=B8=80?= =?UTF-8?q?=E7=BA=A7=E8=B4=A3=E4=BB=BB=E9=A2=86=E5=9F=9F=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E3=80=82=E5=AF=BC=E5=87=BA=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/enums/OperatorTypeEnum.java | 3 + .../xml/ProjectLawsInventoryEOMapper.xml | 13 +- .../IProjectLibraryStatisticsService.java | 41 ++ ...ctCertificationInventoryEOServiceImpl.java | 6 +- .../impl/ProjectLibraryBaseServiceImpl.java | 336 +++++++++++----- .../ProjectLibraryStatisticsServiceImpl.java | 380 +++++++++++++++++- 6 files changed, 656 insertions(+), 123 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index 548ac6a32..64790607f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -40,6 +40,9 @@ public enum OperatorTypeEnum { QUERY_CERTIFICATION_PROGRESS_STATISTICS("查询认证进度统计","queryCertificationProgressStatistics"), QUERY_FG_TASK_TO_CONFIRM_STATISTICS("查询法规任务确认统计","queryFGTaskToConfirmStatistics"), QUERY_RZ_TASK_TO_CONFIRM_STATISTICS("查询认证任务确认统计","queryRZTaskToConfirmStatistics"), + QUERY_CERTIFICATION_PROGRESS_STATISTICS_ALL("查询认证进度统计-全部","queryCertificationProgressStatisticsAll"), + QUERY_CERTIFICATION_PROGRESS_STATISTICS_CAR("查询认证进度统计-整车","queryCertificationProgressStatisticsCar"), + QUERY_CERTIFICATION_PROGRESS_STATISTICS_PART("查询认证进度统计-零部件","queryCertificationProgressStatisticsPart"), ADD_LAWS_OPINION_GATHER("添加法规意见收集数据","addLawsOpinionGather"), UPDATE_LAWS_OPINION_GATHER_GATHER_RESULT("更新法规意见收集数据收集结果","updateLawsOpinionGatherGatherResult"), diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml index f106f4482..6d2dc3451 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml @@ -115,7 +115,8 @@ duty_territory as "dutyTerritory", flow_status as "flowStatus", regulation_owner_id as "regulationOwnerId", - duty_id as "dutyId" + duty_id as "dutyId", + stand_id as "standId" from ( SELECT id, @@ -126,7 +127,8 @@ design_flow_status as flow_status, regulation_owner_id, design_duty_id as duty_id, - project_library_id + project_library_id, + stand_id FROM project_laws_inventory WHERE @@ -145,7 +147,8 @@ verify_flow_status as flow_status, regulation_owner_id, verify_duty_id as duty_id, - project_library_id + project_library_id, + stand_id FROM project_laws_inventory WHERE @@ -158,10 +161,10 @@ order by temp.${params.orderByField} - + asc - + desc diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java index 66059e1bd..0c23387e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java @@ -1,5 +1,6 @@ package com.jero.modules.project.service; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import java.util.List; @@ -32,4 +33,44 @@ public interface IProjectLibraryStatisticsService { * @return */ Map getVerifyComplianceStatisticeGroupByTerritory(List datas, Map params); + + /** + * 获取认证清单-任务确认统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getRZTaskToConfirmStatisticsGroupByTerritory(List datas, Map params); + + /** + * 获取认证清单-Pre-Homo统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getPrehomoStatisticeGroupByTerritory(List datas, Map params); + + /** + * 获取认证清单-全部-认证进度统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getAllCertificationProgressStatisticsGroupByTerritory(List datas, Map params); + + /** + * 获取认证清单-整车-认证进度统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getCarCertificationProgressStatisticsGroupByTerritory(List datas, Map params); + + /** + * 获取认证清单-零部件-认证进度统计信息-根据责任领域分组 + * @param datas + * @param params + * @return + */ + Map getPartCertificationProgressStatisticsGroupByTerritory(List datas, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index e7085fffc..f961c3e34 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -2812,21 +2812,21 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl { boolean flag = ( - StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()) ); return flag; }).count(); // 部件报告已提交 reportSubmitCount = (int) pciEoList.stream().filter(pciEo -> { boolean flag = ( - StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()) ); return flag; }).count(); // 部件报告已入库 storedCount = (int) pciEoList.stream().filter(pciEo -> { boolean flag = ( - StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + StringUtils.equals(pciEo.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()) ); return flag; }).count(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index a0dfbaf18..3fac21149 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -50,6 +50,8 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Row; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; @@ -1734,6 +1736,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl result = new HashMap<>(); + List> dataList = new ArrayList<>(); QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); @@ -1758,10 +1761,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl pliEoMap = new HashMap<>(); - Map> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); - if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){ + Map> firstLevelDutyTerritoryMapFG = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMapFG)){ // 根据责任领域组装法规清单数据,后续计算使用 - for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) { + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMapFG.entrySet()) { String key = firstLevelMap.getKey(); List dutyTerritoryList = firstLevelMap.getValue(); if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ @@ -1786,92 +1789,191 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); - if(StringUtils.equals(OperatorTypeEnum.QUERY_FG_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ - if(ObjectUtils.isNotEmpty(pliEoMap)){ - - List> dataList = new ArrayList<>(); - for (Map.Entry pliMap : pliEoMap.entrySet()) { - String key = pliMap.getKey(); - JSONObject json = (JSONObject) pliMap.getValue(); - List pliEoList = (List) json.get("pliEoList"); - Map dataMaps = this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList,params); - Map dataMap = (Map) dataMaps.get(status); - double amount = (double) dataMap.get("amount"); - if(amount != 0){ - dataMap.put("dutyTerritoryName",key); - dataList.add(dataMap); - } - } - result.put("dataList",dataList); + for (Map.Entry pliMap : pliEoMap.entrySet()) { + String key = pliMap.getKey(); + JSONObject json = (JSONObject) pliMap.getValue(); + List pliEoList = (List) json.get("pliEoList"); + Map dataMaps = new HashMap<>(); + if(StringUtils.equals(OperatorTypeEnum.QUERY_FG_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList,params); } - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ - params.put("projectLawsInventoryIdList",projectLawsInventoryIdList); - List> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params); - disposeData(conditionAssessmentMapList,cut); - result.put("dataList",conditionAssessmentMapList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ - //清单确认 状态 - String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus"); - List> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus); - disposeData(listingToConfirmList,cut); - result.put("dataList",listingToConfirmList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ - //任务确认 状态 - String taskAffirmStatus = (String) params.get("taskAffirmStatus"); - List> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus); - disposeData(taskToConfirmList,cut); - result.put("dataList",taskToConfirmList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ - //设计符合性 - List> dataList = new ArrayList<>(); - for (Map.Entry pliMap : pliEoMap.entrySet()) { - String key = pliMap.getKey(); - JSONObject json = (JSONObject) pliMap.getValue(); - List pliEoList = (List) json.get("pliEoList"); - Map dataMaps = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList,params); - Map dataMap = (Map) dataMaps.get(status); - double amount = (double) dataMap.get("amount"); - if(amount != 0){ - dataMap.put("dutyTerritoryName",key); - dataList.add(dataMap); - } + if(ObjectUtils.isEmpty(dataMaps)){ + continue; } - result.put("dataList",dataList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ - //prehomo确认 流程任务状态 - String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus"); - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus); - disposeData(prehomoList,cut); - result.put("dataList",prehomoList); - } - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ - //验证符合性 流程任务状态 - List> dataList = new ArrayList<>(); - for (Map.Entry pliMap : pliEoMap.entrySet()) { - String key = pliMap.getKey(); - JSONObject json = (JSONObject) pliMap.getValue(); - List pliEoList = (List) json.get("pliEoList"); - Map dataMaps = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList,params); - Map dataMap = (Map) dataMaps.get(status); - double amount = (double) dataMap.get("amount"); - if(amount != 0){ - dataMap.put("dutyTerritoryName",key); - dataList.add(dataMap); - } - } - result.put("dataList",dataList); - }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ - //认证进度 流程任务状态 - String certificationProgress = (String) params.get("certificationProgress"); - - if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ - List> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress); - disposeData(certificationProgressList,cut); - result.put("dataList",certificationProgressList); + Map dataMap = (Map) dataMaps.get(status); + double amount = (double) dataMap.get("amount"); + if(amount != 0){ + dataMap.put("dutyTerritoryName",key); + dataList.add(dataMap); } } + if(CollectionUtils.isNotEmpty(dataList)){ + result.put("dataList",dataList); + return result; + } +// if(StringUtils.equals(OperatorTypeEnum.QUERY_FG_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ +// if(ObjectUtils.isNotEmpty(pliEoMap)){ +// +// List> dataList = new ArrayList<>(); +// for (Map.Entry pliMap : pliEoMap.entrySet()) { +// String key = pliMap.getKey(); +// JSONObject json = (JSONObject) pliMap.getValue(); +// List pliEoList = (List) json.get("pliEoList"); +// Map dataMaps = this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList,params); +// Map dataMap = (Map) dataMaps.get(status); +// double amount = (double) dataMap.get("amount"); +// if(amount != 0){ +// dataMap.put("dutyTerritoryName",key); +// dataList.add(dataMap); +// } +// } +// result.put("dataList",dataList); +// } +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ +// params.put("projectLawsInventoryIdList",projectLawsInventoryIdList); +// List> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params); +// disposeData(conditionAssessmentMapList,cut); +// result.put("dataList",conditionAssessmentMapList); +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ +// //清单确认 状态 +// String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus"); +// List> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus); +// disposeData(listingToConfirmList,cut); +// result.put("dataList",listingToConfirmList); +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ +// //任务确认 状态 +// String taskAffirmStatus = (String) params.get("taskAffirmStatus"); +// List> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus); +// disposeData(taskToConfirmList,cut); +// result.put("dataList",taskToConfirmList); +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ +// //设计符合性 +// List> dataList = new ArrayList<>(); +// for (Map.Entry pliMap : pliEoMap.entrySet()) { +// String key = pliMap.getKey(); +// JSONObject json = (JSONObject) pliMap.getValue(); +// List pliEoList = (List) json.get("pliEoList"); +// Map dataMaps = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList,params); +// Map dataMap = (Map) dataMaps.get(status); +// double amount = (double) dataMap.get("amount"); +// if(amount != 0){ +// dataMap.put("dutyTerritoryName",key); +// dataList.add(dataMap); +// } +// } +// result.put("dataList",dataList); +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ +// //prehomo确认 流程任务状态 +// String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus"); +// if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ +// List> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus); +// disposeData(prehomoList,cut); +// result.put("dataList",prehomoList); +// } +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ +// //验证符合性 流程任务状态 +// List> dataList = new ArrayList<>(); +// for (Map.Entry pliMap : pliEoMap.entrySet()) { +// String key = pliMap.getKey(); +// JSONObject json = (JSONObject) pliMap.getValue(); +// List pliEoList = (List) json.get("pliEoList"); +// Map dataMaps = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList,params); +// Map dataMap = (Map) dataMaps.get(status); +// double amount = (double) dataMap.get("amount"); +// if(amount != 0){ +// dataMap.put("dutyTerritoryName",key); +// dataList.add(dataMap); +// } +// } +// result.put("dataList",dataList); +// }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ +// //认证进度 流程任务状态 +// String certificationProgress = (String) params.get("certificationProgress"); +// +// if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ +// List> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress); +// disposeData(certificationProgressList,cut); +// result.put("dataList",certificationProgressList); +// } +// } + } + + Map pciEoMap = new HashMap<>(); + QueryWrapper pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); + List projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) { + List pciDutyTerritoryList = Arrays.asList(pciDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); + sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> { + boolean flag = false; + for (String pliDutyTerritory : pciDutyTerritoryList) { + if(StringUtils.equals(sysDictItem.getItemValue(),pliDutyTerritory)){ + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + Map> firstLevelDutyTerritoryMapRZ = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMapRZ)){ + // 根据责任领域组装法规清单数据,后续计算使用 + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMapRZ.entrySet()) { + String key = firstLevelMap.getKey(); + List dutyTerritoryList = firstLevelMap.getValue(); + if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } + List pciEoList = projectCertificationInventoryEOList.stream().filter(pciEo -> { + boolean flag = false; + for (SysDictItem dutyTerritory : dutyTerritoryList) { + if (StringUtils.contains(pciEo.getDutyTerritory(), dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + + JSONObject json = new JSONObject(); + json.put("dutyTerritoryList",dutyTerritoryList); + json.put("pciEoList",pciEoList); + pciEoMap.put(key,json); + } + } + if (CollectionUtils.isNotEmpty(projectCertificationInventoryEOList) && ObjectUtils.isNotEmpty(pciEoMap)) { + for (Map.Entry pciMap : pciEoMap.entrySet()) { + String key = pciMap.getKey(); + JSONObject json = (JSONObject) pciMap.getValue(); + List pciEoList = (List) json.get("pciEoList"); + Map dataMaps = new HashMap<>(); + if(StringUtils.equals(OperatorTypeEnum.QUERY_RZ_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getRZTaskToConfirmStatisticsGroupByTerritory(pciEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getPrehomoStatisticeGroupByTerritory(pciEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS_ALL.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getAllCertificationProgressStatisticsGroupByTerritory(pciEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS_CAR.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getCarCertificationProgressStatisticsGroupByTerritory(pciEoList,params); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS_PART.getValue(),operatorType)){ + dataMaps = this.projectLibraryStatisticsService.getPartCertificationProgressStatisticsGroupByTerritory(pciEoList,params); + } + if(ObjectUtils.isEmpty(dataMaps)){ + continue; + } + Map dataMap = (Map) dataMaps.get(status); + double amount = (double) dataMap.get("amount"); + if(amount != 0){ + dataMap.put("dutyTerritoryName",key); + dataList.add(dataMap); + } + } + result.put("dataList",dataList); } return result; } @@ -1884,8 +1986,25 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectDetailsStatisticsGroupByTerritory, Map params){ - List> exportData = new ArrayList<>(); - exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("dataList"); + public void createSheetData(HSSFSheet sheet,Map exportDataMap, Map params){ + List> exportDataList = (List>) exportDataMap.get("dataList"); int rowIndex = 1; - for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) { + for (int dataIndex = 0; dataIndex < exportDataList.size(); dataIndex++) { Row dataRow = sheet.createRow(rowIndex); - dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("dutyTerritoryName").toString()); - dataRow.createCell(1).setCellValue(exportData.get(dataIndex).get("amount").toString()); + dataRow.createCell(0).setCellValue(exportDataList.get(dataIndex).get("dutyTerritoryName").toString()); + dataRow.createCell(1).setCellValue(String.valueOf(Math.round((Double) exportDataList.get(dataIndex).get("amount")))); + dataRow.createCell(2).setCellValue(exportDataList.get(dataIndex).get("percentage").toString()); rowIndex ++; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java index d263a4e5c..60973d5a7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java @@ -1,6 +1,9 @@ package com.jero.modules.project.service.impl; +import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; +import com.jero.modules.project.enums.CertificationProgressEnum; import com.jero.modules.project.enums.ComplianceFlowStatusEnum; import com.jero.modules.project.enums.TaskAffirmStatusEnum; import com.jero.modules.project.service.IProjectCertificationInventoryEOService; @@ -12,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.DecimalFormat; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,6 +23,8 @@ import java.util.stream.Collectors; @Service public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStatisticsService { + private static DecimalFormat df = new DecimalFormat("#.00"); + private static String percentSign = "%"; @Autowired private IProjectLawsInventoryEOService projectLawsInventoryEOService; @Autowired @@ -30,7 +34,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati public Map getFGTaskToConfirmStatisticsGroupByTerritory(List datas, Map params) { Map result = new HashMap<>(); if(CollectionUtils.isNotEmpty(datas)){ - DecimalFormat df = new DecimalFormat("#.00"); String status = (String) params.get("status"); Map notStartedMap = new HashMap<>(); @@ -59,7 +62,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size() * 2)) * 100; String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; notStartedMap.put("amount",notStartedComplianceFlowCount); - notStartedMap.put("percentage",notStartedPercentageStr + "%"); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); // 待确认 List toConfirmDesignPliEoList = datas.stream().filter(data -> { @@ -78,7 +81,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size() * 2)) * 100; String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; toConfirmMap.put("amount",toConfirmComplianceFlowCount); - toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + toConfirmMap.put("percentage",toConfirmPercentageStr + percentSign); // 接受 List acceptedDesignPliEoList = datas.stream().filter(data -> { @@ -107,7 +110,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double acceptedPercentage = (acceptedComplianceFlowCount / (datas.size() * 2)) * 100; String acceptedPercentageStr = acceptedPercentage != 0 ? df.format(acceptedPercentage) : "0"; acceptedMap.put("amount",acceptedComplianceFlowCount); - acceptedMap.put("percentage",acceptedPercentageStr + "%"); + acceptedMap.put("percentage",acceptedPercentageStr + percentSign); // 拒绝 List rejectedDesignPliEoList = datas.stream().filter(data -> { @@ -126,7 +129,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double rejectedPercentage = (rejectedComplianceFlowCount / (datas.size() * 2)) * 100; String rejectedPercentageStr = rejectedPercentage != 0 ? df.format(rejectedPercentage) : "0"; rejectedMap.put("amount",rejectedComplianceFlowCount); - rejectedMap.put("percentage",rejectedPercentageStr + "%"); + rejectedMap.put("percentage",rejectedPercentageStr + percentSign); result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); @@ -145,7 +148,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati Map complianceMap = new HashMap<>(); Map nonComplianceMap = new HashMap<>(); - DecimalFormat df = new DecimalFormat("#.00"); // 未发起 List notStartedDesignPliEoList = datas.stream().filter(data -> { boolean flag = ( @@ -161,7 +163,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100; String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; notStartedMap.put("amount",notStartedComplianceFlowCount); - notStartedMap.put("percentage",notStartedPercentageStr + "%"); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); // 待确认 List toConfirmDesignPliEoList = datas.stream().filter(data -> { @@ -176,7 +178,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100; String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; toConfirmMap.put("amount",toConfirmComplianceFlowCount); - toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + toConfirmMap.put("percentage",toConfirmPercentageStr + percentSign); // 符合 List complianceDesignPliEoList = datas.stream().filter(data -> { @@ -189,7 +191,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double compliancePercentage = (complianceFlowCount / (datas.size())) * 100; String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0"; complianceMap.put("amount",complianceFlowCount); - complianceMap.put("percentage",compliancePercentageStr + "%"); + complianceMap.put("percentage",compliancePercentageStr + percentSign); // 不符合 List nonComplianceDesignPliEoList = datas.stream().filter(data -> { @@ -202,7 +204,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100; String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0"; nonComplianceMap.put("amount",nonComplianceComplianceFlowCount); - nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%"); + nonComplianceMap.put("percentage",nonCompliancePercentageStr + percentSign); result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); @@ -220,8 +222,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati Map toConfirmMap = new HashMap<>(); Map complianceMap = new HashMap<>(); Map nonComplianceMap = new HashMap<>(); - - DecimalFormat df = new DecimalFormat("#.00"); // 未发起 List notStartedVerifyPliEoList = datas.stream().filter(data -> { boolean flag = ( @@ -237,7 +237,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double notStartedPercentage = (notStartedComplianceFlowCount / (datas.size())) * 100; String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; notStartedMap.put("amount",notStartedComplianceFlowCount); - notStartedMap.put("percentage",notStartedPercentageStr + "%"); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); // 待确认 List toConfirmVerifyPliEoList = datas.stream().filter(data -> { @@ -252,7 +252,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double toConfirmPercentage = (toConfirmComplianceFlowCount / (datas.size())) * 100; String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; toConfirmMap.put("amount",toConfirmComplianceFlowCount); - toConfirmMap.put("percentage",toConfirmPercentageStr + "%"); + toConfirmMap.put("percentage",toConfirmPercentageStr + percentSign); // 符合 List complianceVerifyPliEoList = datas.stream().filter(data -> { @@ -265,7 +265,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double compliancePercentage = (complianceFlowCount / (datas.size())) * 100; String compliancePercentageStr = compliancePercentage != 0 ? df.format(compliancePercentage) : "0"; complianceMap.put("amount",complianceFlowCount); - complianceMap.put("percentage",compliancePercentageStr + "%"); + complianceMap.put("percentage",compliancePercentageStr + percentSign); // 不符合 List nonComplianceVerifyPliEoList = datas.stream().filter(data -> { @@ -278,7 +278,7 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati double nonCompliancePercentage = (nonComplianceComplianceFlowCount / (datas.size())) * 100; String nonCompliancePercentageStr = nonCompliancePercentage != 0 ? df.format(nonCompliancePercentage) : "0"; nonComplianceMap.put("amount",nonComplianceComplianceFlowCount); - nonComplianceMap.put("percentage",nonCompliancePercentageStr + "%"); + nonComplianceMap.put("percentage",nonCompliancePercentageStr + percentSign); result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); @@ -287,4 +287,350 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati } return result; } + + @Override + public Map getRZTaskToConfirmStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map acceptedMap = new HashMap<>(); + Map rejectedMap = new HashMap<>(); + // 未发起 + List notStartedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + double notStartedCount = (double) notStartedPciEoList.size(); + double notStartedPercentage = (notStartedCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedCount); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); + + // 待确认 + List toConfirmPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double toConfirmCount = (double) toConfirmPciEoList.size(); + double toConfirmPercentage = (toConfirmCount / (datas.size())) * 100; + String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; + toConfirmMap.put("amount",toConfirmCount); + toConfirmMap.put("percentage",toConfirmPercentageStr + percentSign); + + // 接受 + List acceptedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double acceptedCount = (double) acceptedPciEoList.size(); + double acceptedPercentage = (acceptedCount / (datas.size())) * 100; + String acceptedPercentageStr = acceptedPercentage != 0 ? df.format(acceptedPercentage) : "0"; + acceptedMap.put("amount",acceptedCount); + acceptedMap.put("percentage",acceptedPercentageStr + percentSign); + + // 拒绝 + List rejectedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double rejectedCount = (double) rejectedPciEoList.size(); + double rejectedPercentage = (rejectedCount / (datas.size())) * 100; + String rejectedPercentageStr = rejectedPercentage != 0 ? df.format(rejectedPercentage) : "0"; + rejectedMap.put("amount",rejectedCount); + rejectedMap.put("percentage",rejectedPercentageStr + percentSign); + + result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); + result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); + result.put(TaskAffirmStatusEnum.ACCEPTED.getValue(),acceptedMap); + result.put(TaskAffirmStatusEnum.REJECTED.getValue(),rejectedMap); + } + return result; + } + + @Override + public Map getPrehomoStatisticeGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + DecimalFormat df = new DecimalFormat("#.00"); + + Map notStartedMap = new HashMap<>(); + Map toConfirmMap = new HashMap<>(); + Map acceptedMap = new HashMap<>(); + Map rejectedMap = new HashMap<>(); + + // 未发起 + List notStartedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + double notStartedCount = (double) notStartedPciEoList.size(); + double notStartedPercentage = (notStartedCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedCount); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); + + // 待确认 + List toConfirmPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double toConfirmCount = (double) toConfirmPciEoList.size(); + double toConfirmPercentage = (toConfirmCount / (datas.size())) * 100; + String toConfirmPercentageStr = toConfirmPercentage != 0 ? df.format(toConfirmPercentage) : "0"; + toConfirmMap.put("amount",toConfirmCount); + toConfirmMap.put("percentage",toConfirmPercentageStr + percentSign); + + // 审查通过 + List acceptedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double acceptedCount = (double) acceptedPciEoList.size(); + double acceptedPercentage = (acceptedCount / (datas.size())) * 100; + String acceptedPercentageStr = acceptedPercentage != 0 ? df.format(acceptedPercentage) : "0"; + acceptedMap.put("amount",acceptedCount); + acceptedMap.put("percentage",acceptedPercentageStr + percentSign); + + // 审查退回 + List rejectedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getFlowStatus(),CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double rejectedCount = (double) rejectedPciEoList.size(); + double rejectedPercentage = (rejectedCount / (datas.size())) * 100; + String rejectedPercentageStr = rejectedPercentage != 0 ? df.format(rejectedPercentage) : "0"; + rejectedMap.put("amount",rejectedCount); + rejectedMap.put("percentage",rejectedPercentageStr + percentSign); + + result.put(TaskAffirmStatusEnum.NOT_STARTED.getValue(),notStartedMap); + result.put(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue(),toConfirmMap); + result.put(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue(),acceptedMap); + result.put(CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue(),rejectedMap); + } + return result; + } + + @Override + public Map getAllCertificationProgressStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartedMap = new HashMap<>(); + Map inProgressMap = new HashMap<>(); + Map testPassedMap = new HashMap<>(); + Map testFailedMap = new HashMap<>(); + + // 未开始 + List notStartedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(), CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartedCount = (double) notStartedPciEoList.size(); + double notStartedPercentage = (notStartedCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedCount); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); + + // 进行中 + List inProgressPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + || StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double inProgressCount = (double) inProgressPciEoList.size(); + double inProgressPercentage = (inProgressCount / (datas.size())) * 100; + String inProgressPercentageStr = inProgressPercentage != 0 ? df.format(inProgressPercentage) : "0"; + inProgressMap.put("amount",inProgressCount); + inProgressMap.put("percentage",inProgressPercentageStr + percentSign); + + // 实验通过 + List testPassedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + || StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()) + || StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testPassedCount = (double) testPassedPciEoList.size(); + double testPassedPercentage = (testPassedCount / (datas.size())) * 100; + String testPassedPercentageStr = testPassedPercentage != 0 ? df.format(testPassedPercentage) : "0"; + testPassedMap.put("amount",testPassedCount); + testPassedMap.put("percentage",testPassedPercentageStr + percentSign); + + // 实验失败 + List testFailedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testFailedCount = (double) testFailedPciEoList.size(); + double testFailedPercentage = (testFailedCount / (datas.size())) * 100; + String testFailedPercentageStr = testFailedPercentage != 0 ? df.format(testFailedPercentage) : "0"; + testFailedMap.put("amount",testFailedCount); + testFailedMap.put("percentage",testFailedPercentageStr + percentSign); + + result.put(CertificationProgressEnum.NOT_START.getValue(),notStartedMap); + result.put(CertificationProgressEnum.IN_PROGRESS.getValue(),inProgressMap); + result.put(CertificationProgressEnum.TEST_PASSED.getValue(),testPassedMap); + result.put(CertificationProgressEnum.TEST_FAILED.getValue(),testFailedMap); + } + return result; + } + + @Override + public Map getCarCertificationProgressStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartedMap = new HashMap<>(); + Map inProgressMap = new HashMap<>(); + Map testPassedMap = new HashMap<>(); + Map testFailedMap = new HashMap<>(); + + // 未开始 + List notStartedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartedCount = (double) notStartedPciEoList.size(); + double notStartedPercentage = (notStartedCount / (datas.size())) * 100; + String notStartedPercentageStr = notStartedPercentage != 0 ? df.format(notStartedPercentage) : "0"; + notStartedMap.put("amount",notStartedCount); + notStartedMap.put("percentage",notStartedPercentageStr + percentSign); + + // 进行中 + List inProgressPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double inProgressCount = (double) inProgressPciEoList.size(); + double inProgressPercentage = (inProgressCount / (datas.size())) * 100; + String inProgressPercentageStr = inProgressPercentage != 0 ? df.format(inProgressPercentage) : "0"; + inProgressMap.put("amount",inProgressCount); + inProgressMap.put("percentage",inProgressPercentageStr + percentSign); + + // 实验通过 + List testPassedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testPassedCount = (double) testPassedPciEoList.size(); + double testPassedPercentage = (testPassedCount / (datas.size())) * 100; + String testPassedPercentageStr = testPassedPercentage != 0 ? df.format(testPassedPercentage) : "0"; + testPassedMap.put("amount",testPassedCount); + testPassedMap.put("percentage",testPassedPercentageStr + percentSign); + + // 实验失败 + List testFailedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testFailedCount = (double) testFailedPciEoList.size(); + double testFailedPercentage = (testFailedCount / (datas.size())) * 100; + String testFailedPercentageStr = testFailedPercentage != 0 ? df.format(testFailedPercentage) : "0"; + testFailedMap.put("amount",testFailedCount); + testFailedMap.put("percentage",testFailedPercentageStr + percentSign); + + result.put(CertificationProgressEnum.NOT_START.getValue(),notStartedMap); + result.put(CertificationProgressEnum.IN_PROGRESS.getValue(),inProgressMap); + result.put(CertificationProgressEnum.TEST_PASSED.getValue(),testPassedMap); + result.put(CertificationProgressEnum.TEST_FAILED.getValue(),testFailedMap); + } + return result; + } + + @Override + public Map getPartCertificationProgressStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notSubmitMap = new HashMap<>(); + Map reportSubmitMap = new HashMap<>(); + Map storedMap = new HashMap<>(); + + // 部件报告未提交 + List notSubmitPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notSubmitCount = (double) notSubmitPciEoList.size(); + double notSubmitPercentage = (notSubmitCount / (datas.size())) * 100; + String notSubmitPercentageStr = notSubmitPercentage != 0 ? df.format(notSubmitPercentage) : "0"; + notSubmitMap.put("amount",notSubmitCount); + notSubmitMap.put("percentage",notSubmitPercentageStr + percentSign); + + // 部件报告已提交 + List reportSubmitPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double reportSubmitCount = (double) reportSubmitPciEoList.size(); + double reportSubmitPercentage = (reportSubmitCount / (datas.size())) * 100; + String reportSubmitPercentageStr = reportSubmitPercentage != 0 ? df.format(reportSubmitPercentage) : "0"; + reportSubmitMap.put("amount",reportSubmitCount); + reportSubmitMap.put("percentage",reportSubmitPercentageStr + percentSign); + + // 部件报告已入库 + List storedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double storedCount = (double) storedPciEoList.size(); + double storedPercentage = (storedCount / (datas.size())) * 100; + String storedPercentageStr = storedPercentage != 0 ? df.format(storedPercentage) : "0"; + storedMap.put("amount",storedCount); + storedMap.put("percentage",storedPercentageStr + percentSign); + + result.put(CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue(),notSubmitMap); + result.put(CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue(),reportSubmitMap); + result.put(CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue(),storedMap); + } + return result; + } } From be786db0645e1d177d46a69f4cf3caf108f13a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Thu, 4 May 2023 10:32:42 +0800 Subject: [PATCH 30/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E7=9A=84=E7=8A=B6=E6=80=81=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 1 + jero-web/src/common/lang/zh-cn.js | 1 + .../views/projectManagement/components/ProjectDetails.vue | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 40bcf2ee2..69e548480 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1824,4 +1824,5 @@ module.exports = { componentReportHasBeenStored:'Component report has been stored', parameterCollectionProgress:'Parameter Collection Progress', proportion:'Proportion', + projectProgressStatistics:'Project Progress Statistics', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index b97c3739d..4ea7862f0 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1926,4 +1926,5 @@ module.exports = { componentReportHasBeenStored:'部件报告已入库', parameterCollectionProgress:'参数收集进度', proportion:'占比', + projectProgressStatistics:'项目进度统计', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index 3e894d1f5..060322c38 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -252,7 +252,11 @@ this.$refs.settingListRef.edit() }, stateExportClick() { - + let query = { + projectLibraryId: this.$route.query.id + } + downloadFile('/project/projectLibraryBase/exportProjectProgressStatisticsXls', + this.queryForm.projectName+'-'+this.queryForm.projectVersion+'-'+this.$t('projectProgressStatistics') + '.xls', query) }, versionStatisticsClick() { From d7c032e1dd5416f0fd5abee69129e45668aca016 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Thu, 4 May 2023 18:02:43 +0800 Subject: [PATCH 31/40] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E7=BB=9F=E8=AE=A1(=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AF=BC=E5=87=BA)=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLibraryBaseController.java | 5 + .../service/IProjectLibraryBaseService.java | 8 + .../IProjectLibraryStatisticsService.java | 9 + .../impl/ProjectLibraryBaseServiceImpl.java | 513 ++++++++++++++++++ .../ProjectLibraryStatisticsServiceImpl.java | 120 +++- 5 files changed, 654 insertions(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java index f49a2ca42..b870ca39e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java @@ -286,4 +286,9 @@ public class ProjectLibraryBaseController extends JeroController params) { + this.projectLibraryBaseService.exportProjectProgressStatisticsXls(response,request, params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index f68aa498e..34ea29c85 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -159,4 +159,12 @@ public interface IProjectLibraryBaseService extends IService * @return */ JSONArray getProjectProgressInfo(); + + /** + * 导出项目进度统计(状态导出) + * @param response + * @param request + * @param params + */ + void exportProjectProgressStatisticsXls(HttpServletResponse response, HttpServletRequest request, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java index 0c23387e8..8bac94398 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryStatisticsService.java @@ -1,5 +1,6 @@ package com.jero.modules.project.service; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; @@ -73,4 +74,12 @@ public interface IProjectLibraryStatisticsService { * @return */ Map getPartCertificationProgressStatisticsGroupByTerritory(List datas, Map params); + + /** + * 获取认证参数收集-统计信息 + * @param datas + * @param params + * @return + */ + Map getParameterCollectingStatisticsGroupByTerritory(List datas, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 3fac21149..796352687 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -14,6 +14,7 @@ import com.jero.common.system.vo.LoginUser; import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.cert.collect.entity.ParamsManifestEO; import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; +import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; import com.jero.modules.cert.collect.service.IParamsManifestEOService; import com.jero.modules.dummy.enums.OrderEnum; @@ -53,6 +54,7 @@ import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; @@ -171,6 +173,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl params) { + String fileName = ""; + String cut = (String) params.get("cut"); + String projectLibraryId = (String) params.get("projectLibraryId"); + if(StringUtils.isEmpty(projectLibraryId)){ + throw new JeroBootException("项目库id不能为空!"); + } + OutputStream ops = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + this.exportRegulatoryManagement(workbook,params); + this.exportCertificationManagement(workbook,params); + this.exportParameterCollecting(workbook,params); + try { + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + ops = response.getOutputStream(); + workbook.write(ops); + ops.flush(); + }catch (IOException ex){ + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } + } + + /** + * 导出法规符合性管理 + * @param workbook + * @param params + */ + private void exportRegulatoryManagement(HSSFWorkbook workbook,Map params) { + String cut = (String) params.get("cut"); + String sheetName = "法规符合性管理"; + String firstTitle = "法规任务确认," + + "设计符合性确认," + + "验证符合性确认"; + String secondTitle = "责任领域(一级)," + + "未发起,待确认,接受,拒绝,完成度," + + "未发起,待确认,符合,不符合,完成度," + + "未发起,待确认,符合,不符合,完成度"; + if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + sheetName = "Regulatory compliance management"; + firstTitle = "Regulatory task confirmation," + + "Design Conformity Verification," + + "Verification Conformity Confirmation"; + secondTitle = "Area of responsibility (level 1)," + + "Not launched,To be confirmed,Accept,Refuse,Degree of completion," + + "Not launched,To be confirmed,Meet,Not meet,Degree of completion," + + "Not launched,To be confirmed,Meet,Not meet,Degree of completion"; + } + HSSFSheet sheet = workbook.createSheet(sheetName); + //合并单元格 起始行,结束行,起始列,结束列 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 1, 5); + sheet.addMergedRegion(region1); + CellRangeAddress region2 = new CellRangeAddress(0, 0, 6, 10); + sheet.addMergedRegion(region2); + CellRangeAddress region3 = new CellRangeAddress(0, 0, 11, 15); + sheet.addMergedRegion(region3); + + String[] firstTitleArr = firstTitle.split(","); + String[] secondTitleArr = secondTitle.split(","); + Row firstRow = sheet.createRow(0); + Row secondRow = sheet.createRow(1); + + CellStyle cellStyleTitle = workbook.createCellStyle(); + cellStyleTitle.setAlignment(HorizontalAlignment.CENTER); + for (int i = 0; i <= 15; i++){ + sheet.setColumnWidth(i, 3500); + Cell firstRowCell = firstRow.createCell(i); + firstRowCell.setCellStyle(cellStyleTitle); + if(i == 1){ + firstRowCell.setCellValue(firstTitleArr[0]); + }else if(i==6){ + firstRowCell.setCellValue(firstTitleArr[1]); + }else if(i==11){ + firstRowCell.setCellValue(firstTitleArr[2]); + } + + Cell secondRowCell = secondRow.createCell(i); + secondRowCell.setCellValue(secondTitleArr[i]); + } + + String projectLibraryId = (String) params.get("projectLibraryId"); + + QueryWrapper pliQueryWrap = new QueryWrapper<>(); + pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + List pliEOList = this.projectLawsInventoryEOMapper.selectList(pliQueryWrap); + List sysDictItems = new ArrayList<>(); + String pliDutyTerritoryStr = pliEOList.stream().map(ProjectLawsInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(pliDutyTerritoryStr)) { + List pliDutyTerritoryList = Arrays.asList(pliDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); + sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> { + boolean flag = false; + for (String pliDutyTerritory : pliDutyTerritoryList) { + if(StringUtils.equals(sysDictItem.getItemValue(),pliDutyTerritory)){ + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + + Map> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){ + int dataIndex = 2; + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) { + String key = firstLevelMap.getKey(); + List dutyTerritoryList = firstLevelMap.getValue(); + if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } + List pliEoList = pliEOList.stream().filter(pliEo -> { + boolean flag = false; + for (SysDictItem dutyTerritory : dutyTerritoryList) { + if (StringUtils.contains(pliEo.getDutyTerritory(), dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + + this.exportRegulatoryManagementSetData(params, sheet, dataIndex ,key,pliEoList); + dataIndex ++; + } + } + } + + /** + * 导出法规符合性管理-设置数据 + * @param params + * @param sheet + * @param dataIndex + * @param key + * @param pliEoList + */ + private void exportRegulatoryManagementSetData(Map params, HSSFSheet sheet, int dataIndex, String key, List pliEoList) { + Row dataRow = sheet.createRow(dataIndex); + dataRow.createCell(0).setCellValue(key); + + Map taskConfirmMap= this.projectLibraryStatisticsService.getFGTaskToConfirmStatisticsGroupByTerritory(pliEoList, params); + Map taskConfirmNotStartedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.NOT_STARTED.getValue()); + double taskConfirmNotStartedAmount = (double) taskConfirmNotStartedMap.get("amount"); + Map taskConfirmToConfirmMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + double taskConfirmToConfirmAmount = (double) taskConfirmToConfirmMap.get("amount"); + Map taskConfirmAcceptedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.ACCEPTED.getValue()); + double taskConfirmAcceptedAmount = (double) taskConfirmAcceptedMap.get("amount"); + Map taskConfirmRejectedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.REJECTED.getValue()); + double taskConfirmRejectedAmount = (double) taskConfirmRejectedMap.get("amount"); + dataRow.createCell(1).setCellValue(taskConfirmNotStartedAmount); + dataRow.createCell(2).setCellValue(taskConfirmToConfirmAmount); + dataRow.createCell(3).setCellValue(taskConfirmAcceptedAmount); + dataRow.createCell(4).setCellValue(taskConfirmRejectedAmount); + double taskConfirmCount = taskConfirmNotStartedAmount + taskConfirmToConfirmAmount + taskConfirmAcceptedAmount + taskConfirmRejectedAmount; + double taskConfirmPercentage = (taskConfirmAcceptedAmount / taskConfirmCount) * 100; + String taskConfirmPercentageStr = (taskConfirmPercentage != 0 && (taskConfirmCount !=0 )) ? df.format(taskConfirmPercentage) : "0"; + dataRow.createCell(5).setCellValue(taskConfirmPercentageStr + percentSign); + + Map designMap = this.projectLibraryStatisticsService.getDesignComplianceStatisticeGroupByTerritory(pliEoList, params); + Map designNotStartedMap = (Map) designMap.get(TaskAffirmStatusEnum.NOT_STARTED.getValue()); + double designNotStartedAmount = (double) designNotStartedMap.get("amount"); + Map designToConfirmMap = (Map) designMap.get(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + double designToConfirmAmount = (double) designToConfirmMap.get("amount"); + Map designComplianceMap = (Map) designMap.get(ComplianceFlowStatusEnum.CONFORMITY.getValue()); + double designComplianceAmount = (double) designComplianceMap.get("amount"); + Map designNonComplianceMap = (Map) designMap.get(ComplianceFlowStatusEnum.INCONFORMITY.getValue()); + double designNonComplianceAmount = (double) designNonComplianceMap.get("amount"); + dataRow.createCell(6).setCellValue(designNotStartedAmount); + dataRow.createCell(7).setCellValue(designToConfirmAmount); + dataRow.createCell(8).setCellValue(designComplianceAmount); + dataRow.createCell(9).setCellValue(designNonComplianceAmount); + double designCount = designNotStartedAmount + designToConfirmAmount + designComplianceAmount + designNonComplianceAmount; + double designPercentage = (designComplianceAmount / designCount) * 100; + String designPercentageStr = (designPercentage != 0 && (designCount !=0 )) ? df.format(designPercentage) : "0"; + dataRow.createCell(10).setCellValue(designPercentageStr + percentSign); + + Map verifyMap = this.projectLibraryStatisticsService.getVerifyComplianceStatisticeGroupByTerritory(pliEoList, params); + Map verifyNotStartedMap = (Map) verifyMap.get(TaskAffirmStatusEnum.NOT_STARTED.getValue()); + double verifyNotStartedAmount = (double) verifyNotStartedMap.get("amount"); + Map verifyToConfirmMap = (Map) verifyMap.get(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + double verifyToConfirmAmount = (double) verifyToConfirmMap.get("amount"); + Map verifyComplianceMap = (Map) verifyMap.get(ComplianceFlowStatusEnum.CONFORMITY.getValue()); + double verifyComplianceAmount = (double) verifyComplianceMap.get("amount"); + Map verifyNonComplianceMap = (Map) verifyMap.get(ComplianceFlowStatusEnum.INCONFORMITY.getValue()); + double verifyNonComplianceAmount = (double) verifyNonComplianceMap.get("amount"); + dataRow.createCell(11).setCellValue(verifyNotStartedAmount); + dataRow.createCell(12).setCellValue(verifyToConfirmAmount); + dataRow.createCell(13).setCellValue(verifyComplianceAmount); + dataRow.createCell(14).setCellValue(verifyNonComplianceAmount); + double verifyCount = verifyNotStartedAmount + verifyToConfirmAmount + verifyComplianceAmount + verifyNonComplianceAmount; + double verifyPercentage = (verifyComplianceAmount / verifyCount) * 100; + String verifyPercentageStr = (verifyPercentage != 0 && (verifyCount !=0 )) ? df.format(verifyPercentage) : "0"; + dataRow.createCell(15).setCellValue(verifyPercentageStr + percentSign); + } + + /** + * 导出认证活动管理 + * @param workbook + * @param params + */ + private void exportCertificationManagement(HSSFWorkbook workbook,Map params){ + String cut = (String) params.get("cut"); + String sheetName = "认证活动管理"; + String firstTitle = "认证任务确认," + + "Pre-Homo," + + "认证进度"; + String secondTitle = "责任领域(一级)," + + "未发起,待确认,接受,拒绝,完成度," + + "未发起,待确认,审查通过,审查退回,完成度," + + "未开始,进行中,实验通过,实验失败,部件报告未上传,部件报告已上传,部件报告已入库,完成度"; + if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + sheetName = "Certification Activity Management"; + firstTitle = "Authentication task confirmation," + + "Pre-Homo," + + "Certification progress"; + secondTitle = "Area of responsibility (level 1)," + + "Not launched,To be confirmed,Accept,Refuse,Degree of completion," + + "Not launched,To be confirmed,Review of the adoption,Review return,Degree of completion," + + "Not started,In progress,Experiment passed,Experiment failed,Parts report not uploaded,Parts report uploaded,Parts report in stock,Degree of completion"; + } + HSSFSheet sheet = workbook.createSheet(sheetName); + + //合并单元格 起始行,结束行,起始列,结束列 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 1, 5); + sheet.addMergedRegion(region1); + CellRangeAddress region2 = new CellRangeAddress(0, 0, 6, 10); + sheet.addMergedRegion(region2); + CellRangeAddress region3 = new CellRangeAddress(0, 0, 11, 18); + sheet.addMergedRegion(region3); + CellRangeAddress region4 = new CellRangeAddress(0, 0, 19, 23); + sheet.addMergedRegion(region4); + + String[] firstTitleArr = firstTitle.split(","); + String[] secondTitleArr = secondTitle.split(","); + Row firstRow = sheet.createRow(0); + Row secondRow = sheet.createRow(1); + + CellStyle cellStyleTitle = workbook.createCellStyle(); + cellStyleTitle.setAlignment(HorizontalAlignment.CENTER); + for (int i = 0; i <= 18; i++){ + sheet.setColumnWidth(i, 3500); + Cell firstRowCell = firstRow.createCell(i); + firstRowCell.setCellStyle(cellStyleTitle); + if(i == 1){ + firstRowCell.setCellValue(firstTitleArr[0]); + }else if(i==6){ + firstRowCell.setCellValue(firstTitleArr[1]); + }else if(i==11){ + firstRowCell.setCellValue(firstTitleArr[2]); + }else if(i==19){ + firstRowCell.setCellValue(firstTitleArr[3]); + } + Cell secondRowCell = secondRow.createCell(i); + secondRowCell.setCellValue(secondTitleArr[i]); + } + + String projectLibraryId = (String) params.get("projectLibraryId"); + QueryWrapper pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); + List projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); + List sysDictItems = new ArrayList<>(); + if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) { + List pciDutyTerritoryList = Arrays.asList(pciDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); + sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> { + boolean flag = false; + for (String pliDutyTerritory : pciDutyTerritoryList) { + if(StringUtils.equals(sysDictItem.getItemValue(),pliDutyTerritory)){ + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + Map> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){ + int dataIndex = 2; + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) { + String key = firstLevelMap.getKey(); + List dutyTerritoryList = firstLevelMap.getValue(); + if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } + List pciEoList = projectCertificationInventoryEOList.stream().filter(pciEo -> { + boolean flag = false; + for (SysDictItem dutyTerritory : dutyTerritoryList) { + if (StringUtils.contains(pciEo.getDutyTerritory(), dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + this.exportCertificationManagementSetData(params, sheet, dataIndex, key, pciEoList); + + dataIndex ++; + } + } + } + + /** + * 导出认证活动管理-设置数据 + * @param params + * @param sheet + * @param dataIndex + * @param key + * @param pciEoList + */ + private void exportCertificationManagementSetData(Map params, HSSFSheet sheet, int dataIndex, String key, List pciEoList) { + Row dataRow = sheet.createRow(dataIndex); + dataRow.createCell(0).setCellValue(key); + + Map taskConfirmMap = this.projectLibraryStatisticsService.getRZTaskToConfirmStatisticsGroupByTerritory(pciEoList, params); + Map taskConfirmNotStartedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.NOT_STARTED.getValue()); + double taskConfirmNotStartedAmount = (double) taskConfirmNotStartedMap.get("amount"); + Map taskConfirmToConfirmMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + double taskConfirmToConfirmAmount = (double) taskConfirmToConfirmMap.get("amount"); + Map taskConfirmAcceptedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.ACCEPTED.getValue()); + double taskConfirmAcceptedAmount = (double) taskConfirmAcceptedMap.get("amount"); + Map taskConfirmRejectedMap = (Map) taskConfirmMap.get(TaskAffirmStatusEnum.REJECTED.getValue()); + double taskConfirmRejectedAmount = (double) taskConfirmRejectedMap.get("amount"); + dataRow.createCell(1).setCellValue(taskConfirmNotStartedAmount); + dataRow.createCell(2).setCellValue(taskConfirmToConfirmAmount); + dataRow.createCell(3).setCellValue(taskConfirmAcceptedAmount); + dataRow.createCell(4).setCellValue(taskConfirmRejectedAmount); + double taskConfirmCount = taskConfirmNotStartedAmount + taskConfirmToConfirmAmount + taskConfirmAcceptedAmount + taskConfirmRejectedAmount; + double taskConfirmPercentage = (taskConfirmAcceptedAmount / taskConfirmCount) * 100; + String taskConfirmPercentageStr = (taskConfirmPercentage != 0 && (taskConfirmCount !=0 )) ? df.format(taskConfirmPercentage) : "0"; + dataRow.createCell(5).setCellValue(taskConfirmPercentageStr + percentSign); + + Map prehomoMap = this.projectLibraryStatisticsService.getPrehomoStatisticeGroupByTerritory(pciEoList, params); + Map prehomoNotStartedMap = (Map) prehomoMap.get(TaskAffirmStatusEnum.NOT_STARTED.getValue()); + double prehomoNotStartedAmount = (double) prehomoNotStartedMap.get("amount"); + Map prehomoToConfirmMap = (Map) prehomoMap.get(TaskAffirmStatusEnum.LIST_TO_CONFIRM.getValue()); + double prehomoToConfirmAmount = (double) prehomoToConfirmMap.get("amount"); + Map prehomoAcceptedMap = (Map) prehomoMap.get(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()); + double prehomoAcceptedAmount = (double) prehomoAcceptedMap.get("amount"); + Map prehomoRejectedMap = (Map) prehomoMap.get(CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()); + double prehomoRejectedAmount = (double) prehomoRejectedMap.get("amount"); + dataRow.createCell(6).setCellValue(prehomoNotStartedAmount); + dataRow.createCell(7).setCellValue(prehomoToConfirmAmount); + dataRow.createCell(8).setCellValue(prehomoAcceptedAmount); + dataRow.createCell(9).setCellValue(prehomoRejectedAmount); + double prehomoCount = prehomoNotStartedAmount + prehomoToConfirmAmount + prehomoAcceptedAmount + prehomoRejectedAmount; + double prehomoPercentage = (prehomoAcceptedAmount / prehomoCount) * 100; + String prehomoPercentageStr = (prehomoPercentage != 0 && (prehomoCount !=0 )) ? df.format(prehomoPercentage) : "0"; + dataRow.createCell(10).setCellValue(prehomoPercentageStr + percentSign); + + Map certificationProgressMap = this.projectLibraryStatisticsService.getPartCertificationProgressStatisticsGroupByTerritory(pciEoList, params); + Map certificationProgressNotStartMap = (Map)certificationProgressMap.get(CertificationProgressEnum.NOT_START.getValue()); + double certificationProgressNotStartAmount = (double) certificationProgressNotStartMap.get("amount"); + Map certificationProgressInProgressMap = (Map)certificationProgressMap.get(CertificationProgressEnum.IN_PROGRESS.getValue()); + double certificationProgressInProgressAmount = (double) certificationProgressInProgressMap.get("amount"); + Map certificationProgressTestPassedMap = (Map)certificationProgressMap.get(CertificationProgressEnum.TEST_PASSED.getValue()); + double certificationProgressTestPassedAmount = (double) certificationProgressTestPassedMap.get("amount"); + Map certificationProgressTestFailedMap = (Map)certificationProgressMap.get(CertificationProgressEnum.TEST_FAILED.getValue()); + double certificationProgressTestFailedAmount = (double) certificationProgressTestFailedMap.get("amount"); + Map certificationProgressNotSubmitMap = (Map)certificationProgressMap.get(CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()); + double certificationProgressNotSubmitAmount = (double) certificationProgressNotSubmitMap.get("amount"); + Map certificationProgressSubmitMap = (Map)certificationProgressMap.get(CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()); + double certificationProgressSubmitAmount = (double) certificationProgressSubmitMap.get("amount"); + Map certificationProgressStoredMap = (Map)certificationProgressMap.get(CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()); + double certificationProgressStoredAmount = (double) certificationProgressStoredMap.get("amount"); + dataRow.createCell(11).setCellValue(certificationProgressNotStartAmount); + dataRow.createCell(12).setCellValue(certificationProgressInProgressAmount); + dataRow.createCell(13).setCellValue(certificationProgressTestPassedAmount); + dataRow.createCell(14).setCellValue(certificationProgressTestFailedAmount); + dataRow.createCell(15).setCellValue(certificationProgressNotSubmitAmount); + dataRow.createCell(16).setCellValue(certificationProgressSubmitAmount); + dataRow.createCell(17).setCellValue(certificationProgressStoredAmount); + double certificationProgressCount = certificationProgressNotStartAmount + certificationProgressInProgressAmount + + certificationProgressTestPassedAmount + certificationProgressTestFailedAmount + + certificationProgressNotSubmitAmount + certificationProgressSubmitAmount + + certificationProgressStoredAmount; + double certificationProgressPercentage = (certificationProgressTestPassedAmount / certificationProgressCount) * 100; + String certificationProgressPercentageStr = (certificationProgressPercentage != 0 && (certificationProgressCount !=0 )) ? df.format(certificationProgressPercentage) : "0"; + dataRow.createCell(18).setCellValue(certificationProgressPercentageStr + percentSign); + } + + /** + * 导出认证参数收集 + * @param workbook + * @param params + */ + private void exportParameterCollecting(HSSFWorkbook workbook, Map params) { + String cut = (String) params.get("cut"); + String sheetName = "认证参数收集"; + String firstTitle = "认证参数收集"; + String secondTitle = "责任领域(一级),未开始,收集中,已提交,已同步至上报库,完成度"; + if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + sheetName = "Authentication parameter collection"; + firstTitle = "Authentication parameter collection"; + secondTitle = "Area of responsibility (level 1),Not started,Collecting,Has submitted,Synced to the report library,Degree of completion"; + } + HSSFSheet sheet = workbook.createSheet(sheetName); + //合并单元格 起始行,结束行,起始列,结束列 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 1, 5); + sheet.addMergedRegion(region1); + + String[] secondTitleArr = secondTitle.split(","); + Row firstRow = sheet.createRow(0); + Row secondRow = sheet.createRow(1); + + CellStyle cellStyleTitle = workbook.createCellStyle(); + cellStyleTitle.setAlignment(HorizontalAlignment.CENTER); + for (int i = 0; i <= 5; i++){ + sheet.setColumnWidth(i, 3500); + Cell firstRowCell = firstRow.createCell(i); + firstRowCell.setCellStyle(cellStyleTitle); + if(i == 1){ + firstRowCell.setCellValue(firstTitle); + } + + Cell secondRowCell = secondRow.createCell(i); + secondRowCell.setCellValue(secondTitleArr[i]); + } + + String projectLibraryId = (String) params.get("projectLibraryId"); + + QueryWrapper pmQueryWrap = new QueryWrapper<>(); + pmQueryWrap.lambda().eq(ParamsManifestEO::getProjectId,projectLibraryId); + List pmEoList = this.paramsManifestEOService.list(pmQueryWrap); + if(CollectionUtils.isNotEmpty(pmEoList)){ + List pmIdList = pmEoList.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); + QueryWrapper pcmQueryWrap = new QueryWrapper<>(); + pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmIdList); + List pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap); + + List sysDictItems = new ArrayList<>(); + String pcmDutyTerritoryStr = pcmEoList.stream().map(ParamsCollectManifestEO::getDutyTerritory).collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(pcmDutyTerritoryStr)) { + List pcmDutyTerritoryList = Arrays.asList(pcmDutyTerritoryStr.split(",")).stream().distinct().collect(Collectors.toList()); + sysDictItems = this.sysDictItemServiceImpl.selectItemsAll().stream().filter(sysDictItem -> { + boolean flag = false; + for (String pcmDutyTerritory : pcmDutyTerritoryList) { + if(StringUtils.equals(sysDictItem.getItemValue(),pcmDutyTerritory)){ + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + } + + Map> firstLevelDutyTerritoryMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems); + if(ObjectUtils.isNotEmpty(firstLevelDutyTerritoryMap)){ + int dataIndex = 2; + for (Map.Entry> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) { + String key = firstLevelMap.getKey(); + List dutyTerritoryList = firstLevelMap.getValue(); + if(StringUtils.isEmpty(key) || CollectionUtils.isEmpty(dutyTerritoryList)){ + continue; + } + List pcmEos = pcmEoList.stream().filter(pcmEo -> { + boolean flag = false; + for (SysDictItem dutyTerritory : dutyTerritoryList) { + if (StringUtils.contains(pcmEo.getDutyTerritory(), dutyTerritory.getItemValue())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(pcmEos)){ + this.exportParameterCollectingSetData(params, sheet, dataIndex ,key,pcmEos); + } + dataIndex ++; + } + } + } + } + + /** + * 导出认证参数收集-设置数据 + * @param params + * @param sheet + * @param dataIndex + * @param key + * @param pcmEos + */ + private void exportParameterCollectingSetData(Map params, HSSFSheet sheet, int dataIndex, String key, List pcmEos) { + Map parameterCollectingMap = this.projectLibraryStatisticsService.getParameterCollectingStatisticsGroupByTerritory(pcmEos,params); + Map notStartMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.NOT_START.getValue()); + double notStartAmount = (double) notStartMap.get("amount"); + Map collectingMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.COLLECTING.getValue()); + double collectingAmount = (double) collectingMap.get("amount"); + Map submitMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SUBMIT.getValue()); + double submitAmount = (double) submitMap.get("amount"); + Map syncReporMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SYNC_REPORT.getValue()); + double syncReporAmount = (double) syncReporMap.get("amount"); + + Row dataRow = sheet.createRow(dataIndex); + dataRow.createCell(0).setCellValue(key); + dataRow.createCell(1).setCellValue(notStartAmount); + dataRow.createCell(2).setCellValue(collectingAmount); + dataRow.createCell(3).setCellValue(submitAmount); + dataRow.createCell(4).setCellValue(syncReporAmount); + double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount; + double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100; + String parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) : "0"; + dataRow.createCell(5).setCellValue(parameterCollectingPercentageStr + percentSign); + } + private JSONArray getNodeProgressList(TimeNodeVO nodeTnVo) { //根据节点获取对应进度和时间 JSONArray nodeList = new JSONArray(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java index 60973d5a7..301eb8142 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java @@ -1,5 +1,8 @@ package com.jero.modules.project.service.impl; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; +import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; +import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum; import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum; @@ -34,7 +37,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati public Map getFGTaskToConfirmStatisticsGroupByTerritory(List datas, Map params) { Map result = new HashMap<>(); if(CollectionUtils.isNotEmpty(datas)){ - String status = (String) params.get("status"); Map notStartedMap = new HashMap<>(); Map toConfirmMap = new HashMap<>(); @@ -587,6 +589,10 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati Map notSubmitMap = new HashMap<>(); Map reportSubmitMap = new HashMap<>(); Map storedMap = new HashMap<>(); + Map notStartMap = new HashMap<>(); + Map inProgressMap = new HashMap<>(); + Map testPassedMap = new HashMap<>(); + Map testFailedMap = new HashMap<>(); // 部件报告未提交 List notSubmitPciEoList = datas.stream().filter(data -> { @@ -627,9 +633,121 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati storedMap.put("amount",storedCount); storedMap.put("percentage",storedPercentageStr + percentSign); + // 未开始 + List notStartPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartCount = (double) notStartPciEoList.size(); + double notStartPercentage = (notStartCount / (datas.size())) * 100; + String notStartPercentageStr = notStartPercentage != 0 ? df.format(notStartPercentage) : "0"; + notStartMap.put("amount",notStartCount); + notStartMap.put("percentage",notStartPercentageStr + percentSign); + // 进行中 + List inProgressPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double inProgressCount = (double) inProgressPciEoList.size(); + double inProgressPercentage = (inProgressCount / (datas.size())) * 100; + String inProgressPercentageStr = inProgressPercentage != 0 ? df.format(inProgressPercentage) : "0"; + inProgressMap.put("amount",inProgressCount); + inProgressMap.put("percentage",inProgressPercentageStr + percentSign); + // 实验通过 + List testPassedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testPassedCount = (double) testPassedPciEoList.size(); + double testPassedPercentage = (testPassedCount / (datas.size())) * 100; + String testPassedPercentageStr = testPassedPercentage != 0 ? df.format(testPassedPercentage) : "0"; + testPassedMap.put("amount",testPassedCount); + testPassedMap.put("percentage",testPassedPercentageStr + percentSign); + + // 实验失败 + List testFailedPciEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double testFailedCount = (double) testFailedPciEoList.size(); + double testFailedPercentage = (testFailedCount / (datas.size())) * 100; + String testFailedPercentageStr = testFailedPercentage != 0 ? df.format(testFailedPercentage) : "0"; + testFailedMap.put("amount",testFailedCount); + testFailedMap.put("percentage",testFailedPercentageStr + percentSign); + result.put(CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue(),notSubmitMap); result.put(CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue(),reportSubmitMap); result.put(CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue(),storedMap); + result.put(CertificationProgressEnum.NOT_START.getValue(),notStartMap); + result.put(CertificationProgressEnum.IN_PROGRESS.getValue(),inProgressMap); + result.put(CertificationProgressEnum.TEST_PASSED.getValue(),testPassedMap); + result.put(CertificationProgressEnum.TEST_FAILED.getValue(),testFailedMap); + } + return result; + } + + @Override + public Map getParameterCollectingStatisticsGroupByTerritory(List datas, Map params) { + Map result = new HashMap<>(); + if(CollectionUtils.isNotEmpty(datas)){ + Map notStartMap = new HashMap<>(); + Map collectingMap = new HashMap<>(); + Map submitMap = new HashMap<>(); + Map syncReporMap = new HashMap<>(); + + List notStartPcmEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getState(), CollectManifestStateEnum.WAIT_COLLECT.getValue()) + || StringUtils.equals(data.getState(), CollectManifestStateEnum.SDT_BACK.getValue()) + || StringUtils.equals(data.getState(), CollectManifestStateEnum.CHANGE.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double notStartCount = (double) notStartPcmEoList.size(); + notStartMap.put("amount",notStartCount); + + List collectingPcmEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getState(), CollectManifestStateEnum.WAIT_FILL.getValue()) + || StringUtils.equals(data.getState(),CollectManifestStateEnum.WAIT_SDT.getValue()) + || StringUtils.equals(data.getState(),CollectManifestStateEnum.DRE_BACK.getValue()) + || StringUtils.equals(data.getState(),CollectManifestStateEnum.CERT_BACK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double collectingCount = (double) collectingPcmEoList.size(); + collectingMap.put("amount",collectingCount); + + List submitPcmEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getState(), CollectManifestStateEnum.SUBMIT.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double submitCount = (double) submitPcmEoList.size(); + submitMap.put("amount",submitCount); + + List syncReporPcmEoList = datas.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getState(), CollectManifestStateEnum.SYNC_REPORT.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + double syncReporCount = (double) syncReporPcmEoList.size(); + syncReporMap.put("amount",syncReporCount); + + result.put(CollectManifestStatisticsStateEnum.NOT_START.getValue(),notStartMap); + result.put(CollectManifestStatisticsStateEnum.COLLECTING.getValue(),collectingMap); + result.put(CollectManifestStatisticsStateEnum.SUBMIT.getValue(),submitMap); + result.put(CollectManifestStatisticsStateEnum.SYNC_REPORT.getValue(),syncReporMap); } return result; } From cae020cfe849ce65384011fdee6dec697b2909c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 5 May 2023 10:00:46 +0800 Subject: [PATCH 32/40] =?UTF-8?q?=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 1 + jero-web/src/common/lang/zh-cn.js | 1 + .../components/settingList.vue | 144 ++++++++++++++++++ .../projectStatusBoard/index.vue | 36 +++-- 4 files changed, 171 insertions(+), 11 deletions(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 69e548480..f8f7be466 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1825,4 +1825,5 @@ module.exports = { parameterCollectionProgress:'Parameter Collection Progress', proportion:'Proportion', projectProgressStatistics:'Project Progress Statistics', + GRPSystemProjectProgressStatistics:'GRP system project progress statistics', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 4ea7862f0..ae56fa752 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1927,4 +1927,5 @@ module.exports = { parameterCollectionProgress:'参数收集进度', proportion:'占比', projectProgressStatistics:'项目进度统计', + GRPSystemProjectProgressStatistics:'GRP系统项目进度统计', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index a8cda90c8..784233db2 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -165,6 +165,150 @@ + +

+
+ + G0 +
+ + + +
+
+ +
+
+ + G1 +
+ + + +
+
+ +
+
+ + G2 +
+ + + +
+
+ +
+
+ + G3 +
+ + + +
+
+ +
+
+ + G4 +
+ + + +
+
+ +
+
+ + G5 +
+ + + +
+
+ +
+
+ + G6 +
+ + + +
+
+ +
+
+ + G7 +
+ + + +
+
diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index 9ec232d63..40de5d47a 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -71,8 +71,9 @@
- - + + + {{ $t('export') }}
@@ -483,7 +484,7 @@ for (let i = 0; i < timeData.length; i++) { for (let j = 0; j < timeData[i].data[0].length; j++) { for (let k = 0; k < dataList.length; k++) { - let num = (Math.floor(clientWidth / 30 * 10000)/10000) * parseInt(timeData[i].data[0][j].time.slice(8, 10)) + let num = (Math.floor(clientWidth / 30 * 10000) / 10000) * parseInt(timeData[i].data[0][j].time.slice(8, 10)) timeList.forEach((res, index) => { if (timeData[i].data[0][j].time.slice(0, 7) == res.slice(0, 7)) { timeData[i].data[0][j].left = 'left:' + ((clientWidth * index + num) - 10) + 'px' @@ -496,15 +497,15 @@ contentRightXian[0].style = 'display:none' let clientWidthOne = dataList[0].clientWidth clientWidthOne = clientWidthOne / length - let num = (Math.floor(clientWidthOne / 30 * 10000)/10000) * parseInt(this.handlingTime.slice(8, 10)) + let num = (Math.floor(clientWidthOne / 30 * 10000) / 10000) * parseInt(this.handlingTime.slice(8, 10)) timeList.forEach((res, index) => { if (res.slice(0, 7) == this.handlingTime.slice(0, 7)) { if (timeList.length - 1 == index) { - contentRightText[0].style = 'left:' + ((clientWidthOne * index + num)-84) + 'px;' + 'display:block;border-radius: 2px 0 2px 2px;' - }else{ - contentRightText[0].style = 'left:' + ((clientWidthOne * index + num)+2) + 'px;' + 'display:block;border-radius: 2px 2px 2px 0;' + contentRightText[0].style = 'left:' + ((clientWidthOne * index + num) - 84) + 'px;' + 'display:block;border-radius: 2px 0 2px 2px;' + } else { + contentRightText[0].style = 'left:' + ((clientWidthOne * index + num) + 2) + 'px;' + 'display:block;border-radius: 2px 2px 2px 0;' } - contentRightXian[0].style = 'left:' + ((clientWidthOne * index + num)+2) + 'px;' + 'display:block' + contentRightXian[0].style = 'left:' + ((clientWidthOne * index + num) + 2) + 'px;' + 'display:block' } }) @@ -558,6 +559,15 @@ query: item }) window.open(newUrl.href, '_blank') + }, + //导出 + handleExport() { + let query = { + ...this.queryParam, + startTime: this.startTime || this.getNewDate('before', 6), + endTime: this.endTime || this.getNewDate('after', 5) + } + downloadFile(this.url.exportData, this.$t('GRPSystemProjectProgressStatistics') + '.xls', query, this.Deselect) } } } @@ -657,9 +667,11 @@ .box-top-text-right { display: inline-block; float: right; - height: 10px; - width: 300px; + height: 30px; + text-align: right; + margin-right: 16px; margin-top: -4px; + cursor: pointer; } .fullScreenView { @@ -874,7 +886,8 @@ position: absolute; top: 48px; } - .process-content-right-xian-color{ + + .process-content-right-xian-color { height: 28px; width: 100%; position: absolute; @@ -882,6 +895,7 @@ background: linear-gradient(90deg, rgba(0, 179, 190, 0.12) 0%, rgba(4, 11, 41, 0.02) 100%); transform: matrix(-1, 0, 0, 1, 0, 0); } + .process-content-right-xian-one { height: 1px; width: 100%; From 88b280edf09571abb42c465541d06ef9692fc383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 5 May 2023 10:52:26 +0800 Subject: [PATCH 33/40] =?UTF-8?q?=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/settingList.vue | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index 784233db2..9a76adcec 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -171,13 +171,13 @@ G0
- + @@ -207,13 +207,13 @@ G2
- + @@ -225,13 +225,13 @@ G3 - + @@ -243,13 +243,13 @@ G4 - + @@ -261,13 +261,13 @@ G5 - + @@ -279,13 +279,13 @@ G6 - + @@ -297,13 +297,13 @@ G7 - + From 1831de9144d3c6cd0e9f7548f55e62c21e946916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 5 May 2023 11:02:15 +0800 Subject: [PATCH 34/40] =?UTF-8?q?=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/projectManagement/components/settingList.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index 9a76adcec..a247439c7 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -189,13 +189,13 @@ G1 - + From 1ccef4c01fbdfb018fa1f1c357c6fa42cc76fc85 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Fri, 5 May 2023 11:38:20 +0800 Subject: [PATCH 35/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81=E8=AE=A1?= =?UTF-8?q?=E5=88=92-=E5=A2=9E=E5=8A=A0G0-G7=E5=B1=9E=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-boot/db/蔚来标准sql/dev_2nd_period.sql | 14 +- .../ProjectTaskPlanningController.java | 7 +- .../project/entity/ProjectTaskPlanning.java | 45 ++++++ .../enums/ProjectTaskPlanningNameEnum.java | 10 +- .../mapper/xml/ProjectTaskPlanningMapper.xml | 9 ++ .../impl/ProjectTaskPlanningServiceImpl.java | 143 ++++++++++++++++++ .../jero/modules/project/vo/TimeNodeVO.java | 1 + 7 files changed, 226 insertions(+), 3 deletions(-) diff --git a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql index ae65108cc..0218449f1 100644 --- a/jero-boot/db/蔚来标准sql/dev_2nd_period.sql +++ b/jero-boot/db/蔚来标准sql/dev_2nd_period.sql @@ -631,4 +631,16 @@ ALTER TABLE `dummy_inventory_base` -- 市场认证清单 增加字段 2023-04-24 未同步生产环境 ALTER TABLE `auth_dummy_inventory_base` ADD COLUMN `version_num` varchar(2000) NULL COMMENT '版本号' AFTER `state`, - ADD COLUMN `upgrade_explanation` varchar(2000) NULL COMMENT '升版说明' AFTER `version_num`; \ No newline at end of file + ADD COLUMN `upgrade_explanation` varchar(2000) NULL COMMENT '升版说明' AFTER `version_num`; + +-- 法规/认证任务计划 增加字段 2023-05-05 未同步生产环境 +ALTER TABLE `project_task_planning` + ADD COLUMN `zero` datetime(0) NULL COMMENT '概念验证阶段' AFTER `sys_org_code`, + ADD COLUMN `one` datetime(0) NULL COMMENT '初样阶段' AFTER `zero`, + ADD COLUMN `two` datetime(0) NULL COMMENT '工艺方案阶段' AFTER `one`, + ADD COLUMN `three` datetime(0) NULL COMMENT '零件试制阶段' AFTER `two`, + ADD COLUMN `four` datetime(0) NULL COMMENT '整车装配工艺方案阶段' AFTER `three`, + ADD COLUMN `five` datetime(0) NULL COMMENT '预生产阶段' AFTER `four`, + ADD COLUMN `six` datetime(0) NULL COMMENT '试产阶段' AFTER `five`, + ADD COLUMN `seven` datetime(0) NULL COMMENT '小批量生产阶段' AFTER `six`, + ADD COLUMN `eight` datetime(0) NULL COMMENT '大规模生产阶段' AFTER `seven`; \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskPlanningController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskPlanningController.java index c28965530..ddee18b2a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskPlanningController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskPlanningController.java @@ -13,6 +13,7 @@ import com.jero.modules.project.vo.TimeNodeVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -70,8 +71,12 @@ public class ProjectTaskPlanningController extends JeroController queryList(@RequestParam(name="projectId",required=true) String projectId) { + ProjectTaskPlanning result = new ProjectTaskPlanning(); List projectTaskPlanning = projectTaskPlanningService.queryList(projectId); - return Result.OK(projectTaskPlanning.get(0)); + if(CollectionUtils.isNotEmpty(projectTaskPlanning)){ + result = projectTaskPlanning.get(0); + } + return Result.OK(result); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java index 30dd70050..32324c8c2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskPlanning.java @@ -102,4 +102,49 @@ public class ProjectTaskPlanning implements Serializable { @TableField(exist = false) List timeNodeVOS; + + /**概念验证阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date zero; + + /**初样阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date one; + + /**工艺方案阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date two; + + /**零件试制阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date three; + + /**整车装配工艺方案阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date four; + + /**预生产阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date five; + + /**试产阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date six; + + /**小批量生产阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date seven; + + /**大规模生产阶段*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date eight; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java index 6d2563696..767676d4c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java @@ -10,7 +10,6 @@ public enum ProjectTaskPlanningNameEnum { // PREHOMO_DEADLINE("摸底试验结束","Pre-Homo Confirmation"), // name:Pre-Homo value:Pre-Homo // ATTESTATION_START_TIME("认证试验结束","Homo Completion"),// name:认证开始 value:Certification begins ATTESTATION_END_TIME("认证批准","Homo KO"),// name:认证结束 value:End of certification -// VERIFY_DEADLINE("验证符合性确认","Validation Compliance Confirmation"), LIST_CONFIRMATION("清单发布","List Publishing"), LEGAL_TASK_CONFIRMATION("责任确认","Responsibility Confirmation"), @@ -19,7 +18,16 @@ public enum ProjectTaskPlanningNameEnum { ATTESTATION_START_TIME("认证开始","Certification Start"),// name:认证开始 value:Certification begins VERIFY_DEADLINE("验证核查","Verification And Verification"), CERTIFICATION_SUBMISSION("认证提交","Certification Submission"), + G_ZERO("G0","G0"), + G_ONE("G1","G1"), + G_TWO("G2","G2"), + G_THREE("G3","G3"), + G_FOUR("G4","G4"), + G_FIVE("G5","G5"), + G_SIX("G6","G6"), + G_SEVEN("G7","G7"), +// VERIFY_DEADLINE("验证符合性确认","Validation Compliance Confirmation"), ; String name; String value; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskPlanningMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskPlanningMapper.xml index a883441db..ca124104e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskPlanningMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskPlanningMapper.xml @@ -11,6 +11,15 @@ + + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java index 52343e473..094598dc8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java @@ -135,6 +135,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl { private Date time; private String status; private String projectId; + private boolean isG; // 是否是G0 - G8 @Override public int compare(TimeNodeVO o1, TimeNodeVO o2) { From 07a88da7a2a88a8454ec7afc17029fc37a65e610 Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Fri, 5 May 2023 11:43:49 +0800 Subject: [PATCH 36/40] update --- .../impl/ProjectTaskPlanningServiceImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java index 094598dc8..478d48fd1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java @@ -300,6 +300,25 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl Date: Fri, 5 May 2023 11:51:31 +0800 Subject: [PATCH 37/40] =?UTF-8?q?=E5=90=88=E8=A7=84=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/complianceCertificationForm.vue | 4 ++-- .../src/views/projectManagement/projectStatusBoard/index.vue | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/complianceCertificationForm.vue b/jero-web/src/views/projectManagement/components/complianceCertificationForm.vue index 37465169d..2790f90d3 100644 --- a/jero-web/src/views/projectManagement/components/complianceCertificationForm.vue +++ b/jero-web/src/views/projectManagement/components/complianceCertificationForm.vue @@ -6,7 +6,7 @@
+ v-for="(val,indexOne) in timeData" :key="indexOne" v-if="val.g">
{{ val.name }}
@@ -26,7 +26,7 @@
+ v-for="(val,indexTwo) in timeData" v-if="!val.g">
{{ val.name }}
diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index 40de5d47a..734edd6bf 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -103,6 +103,7 @@
{{ val.name }}
@@ -123,6 +124,7 @@
{{ val.name }} From 5b52c8d9bd776ab1b3a07473704ca65ad9ddf4ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E5=BC=BA=E5=BC=BA?= <787203167> Date: Fri, 5 May 2023 16:10:44 +0800 Subject: [PATCH 38/40] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/projectManagement/projectStatusBoard/index.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue index 734edd6bf..69e572ba4 100644 --- a/jero-web/src/views/projectManagement/projectStatusBoard/index.vue +++ b/jero-web/src/views/projectManagement/projectStatusBoard/index.vue @@ -569,7 +569,8 @@ startTime: this.startTime || this.getNewDate('before', 6), endTime: this.endTime || this.getNewDate('after', 5) } - downloadFile(this.url.exportData, this.$t('GRPSystemProjectProgressStatistics') + '.xls', query, this.Deselect) + downloadFile('/project/ProjectStatusBoardController/exportXls', + this.$t('GRPSystemProjectProgressStatistics') + '.xls', query, this.Deselect) } } } From 7cbf3dae614d093618861b356fa6d1896e4da3dc Mon Sep 17 00:00:00 2001 From: wangzhijiang Date: Sat, 6 May 2023 17:40:52 +0800 Subject: [PATCH 39/40] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E5=AF=BC=E5=87=BA-=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E3=80=81=E9=A1=B9=E7=9B=AE=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=A6=82=E8=A7=88=E5=86=85=E5=AE=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ParamsCollectManifestEOMapper.java | 2 + .../xml/ParamsCollectManifestEOMapper.xml | 3 + .../IParamsCollectManifestEOService.java | 2 + .../ParamsCollectManifestEOServiceImpl.java | 6 + .../ProjectStatusBoardController.java | 7 + ...rojectCertificationInventoryEOService.java | 21 + .../IProjectLawsInventoryEOService.java | 21 + .../service/IProjectStatusBoardService.java | 9 + ...ctCertificationInventoryEOServiceImpl.java | 260 ++++++- .../ProjectLawsInventoryEOServiceImpl.java | 356 +++++++++- .../impl/ProjectLibraryBaseServiceImpl.java | 2 +- .../impl/ProjectStatusBoardServiceImpl.java | 634 +++++++++++++++++- 12 files changed, 1310 insertions(+), 13 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java index 3d3f6db04..64eb78905 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java @@ -35,4 +35,6 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper queryByProjectId(@Param("projectId") String projectId); + + List getList(@Param("params") Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index a64c16f48..2d9e849f9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -139,5 +139,8 @@ + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java index a7d0a23e0..5c11b45c7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java @@ -200,4 +200,6 @@ public interface IParamsCollectManifestEOService extends IService batchEditDeadline(ParamsCollectManifestVO paramsCollectManifestVO); + + List getList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 273743f88..c33192062 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -7256,4 +7256,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl getList(Map params) { + List result = this.baseMapper.getList(params); + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectStatusBoardController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectStatusBoardController.java index 6d3e4570c..d2da8dcb3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectStatusBoardController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectStatusBoardController.java @@ -12,9 +12,11 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; import java.util.Map; @@ -81,6 +83,11 @@ public class ProjectStatusBoardController { return Result.OK(mapList); } + // 导出excel文件 + @RequestMapping(value = "/exportXls") + public void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectLibraryBase projectLibraryBase) { + this.iProjectStatusBoardService.exportXls(response,request, projectLibraryBase); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index 8a4017306..32d7da54b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -288,4 +288,25 @@ public interface IProjectCertificationInventoryEOService extends IService> getPartCertificationProgressStatistics(List pciEoList); + + /** + * 按照认证任务确认状态分组 + * @param pciEos + * @return + */ + Map groupByFGRwqrStatus(List pciEos); + + /** + * 按照preHomo确认状态分组 + * @param pciEos + * @return + */ + Map groupByPreHomoStatus(List pciEos); + + /** + * 根据认证进度分组 + * @param pciEos + * @return + */ + Map groupByCertificationProgress(List pciEos); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index f4e021a17..5a1fac321 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -281,4 +281,25 @@ public interface IProjectLawsInventoryEOService extends IService> queryNotComplianList(Map params); void exportNotComplianList(HttpServletResponse response, HttpServletRequest request, Map params); + + /** + * 按照法规任务确认状态分组 + * @param pliEos + * @return + */ + Map groupByFGRwqrStatus(List pliEos); + + /** + * 按照设计符合性状态分组 + * @param pliEos + * @return + */ + Map groupByDesignStatus(List pliEos); + + /** + * 按照验证符合性状态分组 + * @param pliEos + * @return + */ + Map groupByVerifyStatus(List pliEos); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectStatusBoardService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectStatusBoardService.java index 36e76b058..3194b7e20 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectStatusBoardService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectStatusBoardService.java @@ -4,6 +4,7 @@ import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.vo.TimeNodeVO; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.List; import java.util.Map; @@ -31,4 +32,12 @@ public interface IProjectStatusBoardService { * @param req */ List> scheduleInfoList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req); + + /** + * 导出excel文件 + * @param response + * @param request + * @param projectLibraryBase + */ + void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectLibraryBase projectLibraryBase); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index f961c3e34..f7770a7c2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -84,10 +84,7 @@ import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import java.io.*; -import java.text.Collator; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.text.*; import java.util.*; import java.util.stream.Collectors; @@ -112,6 +109,9 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic @Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl implements IProjectCertificationInventoryEOService { + private static DecimalFormat df = new DecimalFormat("#.00"); + private static String percentSign = "%"; + @Autowired private ISysUserService sysUserService; @Autowired @@ -5602,4 +5602,256 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl groupByFGRwqrStatus(List pciEos) { + Map result = new HashMap<>(); + Map projectScheduleExportMap = new HashMap<>(); + + double toBeReleasedCount = 0; + double toBeVerifiedCount = 0; + double toBeConfirmedCount = 0; + double acceptCount = 0; + double refuseCount = 0; + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + if(CollectionUtils.isNotEmpty(pciEos)){ + List toBeReleased = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List toBeVerified = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List toBeConfirmed = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List accept = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List refuse = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + toBeReleasedCount = toBeReleased.size(); + toBeVerifiedCount = toBeVerified.size(); + toBeConfirmedCount = toBeConfirmed.size(); + acceptCount = accept.size(); + refuseCount = refuse.size(); + + count = toBeReleasedCount + toBeVerifiedCount + toBeConfirmedCount + acceptCount + refuseCount; + // 计算百分比 + percentage = acceptCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + + projectScheduleExportMap.put("toBeReleased",toBeReleasedCount); + projectScheduleExportMap.put("toBeVerified",toBeVerifiedCount); + projectScheduleExportMap.put("toBeConfirmed",toBeConfirmedCount); + projectScheduleExportMap.put("accept",acceptCount); + projectScheduleExportMap.put("refuse",refuseCount); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } + + @Override + public Map groupByPreHomoStatus(List pciEos) { + Map result = new HashMap<>(); + Map projectScheduleExportMap = new HashMap<>(); + + double notStartCount = 0; // 未发起 + double toBeSubmittedCount = 0; // 待提交 + double toBeReviewedCount = 0; // 待审查 + double acceptCount = 0; // 审查通过 + double refuseCount = 0; // 审查退回 + double taskTerminationCount = 0; // 任务终止 + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + if(CollectionUtils.isNotEmpty(pciEos)){ + List notStart = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(pciEo.getFlowStatus(),CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List toBeSubmitted = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List toBeReviewed = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List accept = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List refuse = pciEos.stream().filter(pciEo -> { + boolean flag = ( + StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + notStartCount = notStart.size(); + toBeSubmittedCount = toBeSubmitted.size(); + toBeReviewedCount = toBeReviewed.size(); + acceptCount = accept.size(); + refuseCount = refuse.size(); + + count = notStartCount + toBeSubmittedCount + toBeReviewedCount + acceptCount + refuseCount; + // 计算百分比 + percentage = acceptCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + + projectScheduleExportMap.put("notStartCount",notStartCount); + projectScheduleExportMap.put("toBeSubmittedCount",toBeSubmittedCount); + projectScheduleExportMap.put("toBeReviewedCount",toBeReviewedCount); + projectScheduleExportMap.put("accept",acceptCount); + projectScheduleExportMap.put("refuse",refuseCount); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } + + @Override + public Map groupByCertificationProgress(List pciEos) { + Map result = new HashMap<>(); + Map projectScheduleExportMap = new HashMap<>(); + + double notStartCount = 0; // 待开始 + double inProgressCount = 0; // 进行中 + double testPassedCount = 0; // 实验通过 + double testFailedCount = 0; // 实验失败 + double notSubmitCount = 0; // 部件报告未上传 + double reportSubmitCount = 0; // 部件报告已上传 + double storedCount = 0; // 部件报告已入库 + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + + if(CollectionUtils.isNotEmpty(pciEos)){ + // 未开始 + List notStartPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.NOT_START.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + notStartCount = (double) notStartPciEoList.size(); + + // 进行中 + List inProgressPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.IN_PROGRESS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + inProgressCount = (double) inProgressPciEoList.size(); + + // 实验通过 + List testPassedPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_PASSED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + testPassedCount = (double) testPassedPciEoList.size(); + + // 实验失败 + List testFailedPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.TEST_FAILED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + testFailedCount = (double) testFailedPciEoList.size(); + + // 部件报告未提交 + List notSubmitPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_NOT_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + notSubmitCount = (double) notSubmitPciEoList.size(); + + // 部件报告已提交 + List reportSubmitPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + reportSubmitCount = (double) reportSubmitPciEoList.size(); + + // 部件报告已入库 + List storedPciEoList = pciEos.stream().filter(data -> { + boolean flag = ( + StringUtils.equals(data.getCertificationProgress(),CertificationProgressEnum.COMPONENT_REPORT_HAS_BEEN_STORED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + storedCount = (double) storedPciEoList.size(); + + count = notStartCount + inProgressCount + testPassedCount + testFailedCount + testFailedCount + notSubmitCount + reportSubmitCount + storedCount; + // 计算百分比 + percentage = testPassedCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + projectScheduleExportMap.put("notStartCount",notStartCount); + projectScheduleExportMap.put("inProgressCount",inProgressCount); + projectScheduleExportMap.put("testPassedCount",testPassedCount); + projectScheduleExportMap.put("testFailedCount",testFailedCount); + projectScheduleExportMap.put("notSubmitCount",notSubmitCount); + projectScheduleExportMap.put("reportSubmitCount",reportSubmitCount); + projectScheduleExportMap.put("storedCount",storedCount); + projectScheduleExportMap.put("count",count); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index f346ee4ed..c75184a8d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -124,10 +124,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; -import java.text.Collator; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.text.*; import java.util.List; import java.util.*; import java.util.stream.Collectors; @@ -147,6 +144,8 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic @Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl implements IProjectLawsInventoryEOService { + private static DecimalFormat df = new DecimalFormat("#.00"); + private static String percentSign = "%"; @Autowired private ProjectLibraryBaseMapper projectLibraryBaseMapper; @@ -12880,4 +12879,353 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl groupByFGRwqrStatus(List pliEos) { + Map result = new HashMap<>(); + + Map projectScheduleExportMap = new HashMap<>(); + Map toBeReleasedMap = new HashMap<>(); + Map toBeVerifiedMap = new HashMap<>(); + Map toBeConfirmedMap = new HashMap<>(); + Map acceptMap = new HashMap<>(); + Map refuseMap = new HashMap<>(); + + double toBeReleasedCount = 0; + double toBeVerifiedCount = 0; + double toBeConfirmedCount = 0; + double acceptCount = 0; + double refuseCount = 0; + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + if(CollectionUtils.isNotEmpty(pliEos)){ + List designToBeReleased = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List verifyToBeReleased = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + toBeReleasedMap.put("designToBeReleased",designToBeReleased); + toBeReleasedMap.put("verifyToBeReleased",verifyToBeReleased); + + List designToBeVerified = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List verifyToBeVerified = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + toBeVerifiedMap.put("designToBeVerified",designToBeVerified); + toBeVerifiedMap.put("verifyToBeVerified",verifyToBeVerified); + + List designToBeConfirmed = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List verifyToBeConfirmed = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + toBeConfirmedMap.put("designToBeConfirmed",designToBeConfirmed); + toBeConfirmedMap.put("verifyToBeConfirmed",verifyToBeConfirmed); + + List designAccept = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List verifyAccept = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + acceptMap.put("designAccept",designAccept); + acceptMap.put("verifyAccept",verifyAccept); + + List designRefuse = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + List verifyRefuse = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + refuseMap.put("designRefuse",designRefuse); + refuseMap.put("verifyRefuse",verifyRefuse); + + toBeReleasedCount = designToBeReleased.size() + verifyToBeReleased.size(); + toBeVerifiedCount = designToBeVerified.size() + verifyToBeVerified.size(); + toBeConfirmedCount = designToBeConfirmed.size() + verifyToBeConfirmed.size(); + acceptCount = designAccept.size() + verifyAccept.size(); + refuseCount = designRefuse.size() + verifyRefuse.size(); + count = toBeReleasedCount + toBeVerifiedCount + toBeConfirmedCount + acceptCount + refuseCount; + // 计算百分比 + percentage = acceptCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + result.put(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue(),toBeReleasedMap); + result.put(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue(),toBeVerifiedMap); + result.put(ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue(),toBeConfirmedMap); + result.put(ComplianceFlowStatusEnum.CONFORMITY.getValue(),acceptMap); + result.put(ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue(),refuseMap); + + projectScheduleExportMap.put("toBeReleased",toBeReleasedCount); + projectScheduleExportMap.put("toBeVerified",toBeVerifiedCount); + projectScheduleExportMap.put("toBeConfirmed",toBeConfirmedCount); + projectScheduleExportMap.put("accept",acceptCount); + projectScheduleExportMap.put("refuse",refuseCount); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } + + @Override + public Map groupByDesignStatus(List pliEos) { + Map result = new HashMap<>(); + + Map projectScheduleExportMap = new HashMap<>(); + + double notStartCount = 0; // 未发起 + double toBeSubmittedCount = 0; // 待提交 + double toBeReviewedCount = 0; // 待审查 + double complianceCount = 0; // 符合 + double nonComplianceCount = 0; // 不符合 + double toBeTrackedCount = 0; // 待追踪 + double notInvolvedCount = 0; // 不涉及 + double taskTerminationCount = 0; // 任务终止 + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + if(CollectionUtils.isNotEmpty(pliEos)){ + List designNotStart = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + || StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designToBeSubmitted = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designToBeReviewed = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designCompliance = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designNonCompliance = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designToBeTracked = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List designNotInvolved = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List taskTermination = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getDesignFlowStatus(),ComplianceFlowStatusEnum.TERMINATION_OF_TASK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + notStartCount = designNotStart.size(); + toBeSubmittedCount = designToBeSubmitted.size(); + toBeReviewedCount = designToBeReviewed.size(); + complianceCount = designCompliance.size(); + nonComplianceCount = designNonCompliance.size(); + toBeTrackedCount = designToBeTracked.size(); + notInvolvedCount = designNotInvolved.size(); + taskTerminationCount = taskTermination.size(); + count = notStartCount + toBeSubmittedCount + toBeReviewedCount + complianceCount + nonComplianceCount + toBeTrackedCount + notInvolvedCount + taskTerminationCount; + // 计算百分比 + percentage = complianceCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + + projectScheduleExportMap.put("notStart",notStartCount); + projectScheduleExportMap.put("toBeSubmitted",toBeSubmittedCount); + projectScheduleExportMap.put("toBeReviewed",toBeReviewedCount); + projectScheduleExportMap.put("compliance",complianceCount); + projectScheduleExportMap.put("nonCompliance",nonComplianceCount); + projectScheduleExportMap.put("toBeTracked",toBeTrackedCount); + projectScheduleExportMap.put("notInvolved",notInvolvedCount); + projectScheduleExportMap.put("taskTermination",taskTerminationCount); + projectScheduleExportMap.put("count",count); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } + + @Override + public Map groupByVerifyStatus(List pliEos) { + Map result = new HashMap<>(); + + Map projectScheduleExportMap = new HashMap<>(); + + double notStartCount = 0; // 未发起 + double toBeSubmittedCount = 0; // 待提交 + double toBeReviewedCount = 0; // 待审查 + double complianceCount = 0; // 符合 + double nonComplianceCount = 0; // 不符合 + double toBeTrackedCount = 0; // 待追踪 + double notInvolvedCount = 0; // 不涉及 + double taskTerminationCount = 0; // 任务终止 + double count = 0; + // 计算百分比 + double percentage = 0; + String percentageStr = "0"; + if(CollectionUtils.isNotEmpty(pliEos)){ + List verifyNotStart = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.DUTY_PERSON_REJECTED.getValue()) + || StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.REGULATORY_ENGINEER_RETURNS.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyToBeSubmitted = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyToBeReviewed = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyCompliance = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyNonCompliance = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyToBeTracked = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List verifyNotInvolved = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + List taskTermination = pliEos.stream().filter(pliEo -> { + boolean flag = ( + StringUtils.equals(pliEo.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TERMINATION_OF_TASK.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + + notStartCount = verifyNotStart.size(); + toBeSubmittedCount = verifyToBeSubmitted.size(); + toBeReviewedCount = verifyToBeReviewed.size(); + complianceCount = verifyCompliance.size(); + nonComplianceCount = verifyNonCompliance.size(); + toBeTrackedCount = verifyToBeTracked.size(); + notInvolvedCount = verifyNotInvolved.size(); + taskTerminationCount = taskTermination.size(); + count = notStartCount + toBeSubmittedCount + toBeReviewedCount + complianceCount + nonComplianceCount + toBeTrackedCount + notInvolvedCount + taskTerminationCount; + // 计算百分比 + percentage = complianceCount / count * 100; + percentageStr = percentage != 0 ? df.format(percentage) : "0"; + } + + projectScheduleExportMap.put("notStart",notStartCount); + projectScheduleExportMap.put("toBeSubmitted",toBeSubmittedCount); + projectScheduleExportMap.put("toBeReviewed",toBeReviewedCount); + projectScheduleExportMap.put("compliance",complianceCount); + projectScheduleExportMap.put("nonCompliance",nonComplianceCount); + projectScheduleExportMap.put("toBeTracked",toBeTrackedCount); + projectScheduleExportMap.put("notInvolved",notInvolvedCount); + projectScheduleExportMap.put("taskTermination",taskTerminationCount); + projectScheduleExportMap.put("count",count); + projectScheduleExportMap.put("percentage",percentageStr + percentSign); + result.put("projectScheduleExportMap",projectScheduleExportMap); + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 796352687..71dd57ef4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -1345,7 +1345,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl params, List targetMarketList, ProjectLibraryBase projectLibraryBase) { + public String getMarket(Map params, List targetMarketList, ProjectLibraryBase projectLibraryBase) { List dictModelList = new ArrayList<>(); for (String s : projectLibraryBase.getTargetMarket().split(",")) { List dictModelListTemp = targetMarketList.stream() diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index 170c0f48e..c8bc99b02 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -1,33 +1,52 @@ package com.jero.modules.project.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.project.entity.ConditionAssessmentEO; -import com.jero.modules.project.entity.ProjectLawsInventoryEO; -import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.project.entity.ProjectTaskInventoryEO; +import com.jero.common.util.DateUtils; +import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; +import com.jero.modules.cert.collect.entity.ParamsManifestEO; +import com.jero.modules.cert.collect.enums.CollectManifestStatisticsStateEnum; +import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; +import com.jero.modules.cert.collect.service.IParamsManifestEOService; +import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.*; import com.jero.modules.project.mapper.ProjectUserPermissionMapper; import com.jero.modules.project.service.IConditionAssessmentEOService; +import com.jero.modules.project.service.IProjectCertificationInventoryEOService; +import com.jero.modules.project.service.IProjectLibraryStatisticsService; import com.jero.modules.project.service.IProjectStatusBoardService; import com.jero.modules.project.vo.TimeNodeVO; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.mapper.SysRoleMapper; import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import lombok.SneakyThrows; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -39,6 +58,8 @@ import java.util.stream.Collectors; */ @Service public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService { + private static DecimalFormat df = new DecimalFormat("#.00"); + private static String percentSign = "%"; @Autowired private ProjectTaskPlanningServiceImpl projectTaskPlanningService; @Autowired @@ -59,6 +80,14 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService private IProjectUserBrandService projectUserBrandService; @Autowired private ISysUserService sysUserService; + @Autowired + private IProjectCertificationInventoryEOService projectCertificationInventoryEOService; + @Autowired + private IParamsManifestEOService paramsManifestEOService; + @Autowired + private IParamsCollectManifestEOService paramsCollectManifestEOService; + @Autowired + private IProjectLibraryStatisticsService projectLibraryStatisticsService; /** @@ -508,4 +537,601 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService } + @Override + public void exportXls(HttpServletResponse response, HttpServletRequest request,ProjectLibraryBase projectLibraryBase) { + String fileName = ""; + String cut = projectLibraryBase.getCut(); + OutputStream ops = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + List plbEoList = this.projectLibraryBaseService.getList(projectLibraryBase); + List dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("region"); + for (ProjectLibraryBase libraryBase : plbEoList) { + targetMarket(projectLibraryBase, dictItemList, libraryBase); + } + List pliEoList = this.projectLawsInventoryEOService.list(); + List pciEoList = this.projectCertificationInventoryEOService.list(); + List ptpEoList = this.projectTaskPlanningService.list(); + List pmEoList = this.paramsManifestEOService.list(); + List pcmEoList = this.paramsCollectManifestEOService.getList(null); + + this.exportCrossProjectProgress(workbook,projectLibraryBase,plbEoList,pliEoList,pciEoList,pmEoList,pcmEoList,ptpEoList); + this.exportOverviewCrossProjectProgress(workbook,projectLibraryBase,plbEoList,pliEoList,pciEoList,pmEoList,pcmEoList,ptpEoList); + try { + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + ops = response.getOutputStream(); + workbook.write(ops); + ops.flush(); + }catch (IOException ex){ + ex.printStackTrace(); + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + }finally { + IOUtils.closeQuietly(ops); + } + } + + /** + * 导出跨项目进度 + * @param workbook + * @param projectLibraryBase + * @param plbEoList + * @param pliEoList + * @param pciEoList + * @param pmEoList + * @param pcmEoList + * @param ptpEoList + */ + private void exportCrossProjectProgress(HSSFWorkbook workbook, + ProjectLibraryBase projectLibraryBase, + List plbEoList, + List pliEoList, + List pciEoList, + List pmEoList, + List pcmEoList, + List ptpEoList) { + String cut = projectLibraryBase.getCut(); + String sheetName = "项目进度"; + String firstTitle = "项目," + + "法规任务确认," + + "设计符合性确认," + + "验证符合性确认," + + "认证任务确认," + + "Pre-Homo确认," + + "认证进度," + + "参数收集"; + String secondTitle = "待发布,待校核,待确认,接受,拒绝,完成度,责任确认日期," + + "未发起,待提交,待审查,符合,不符合,待追踪,不涉及,任务终止,完成度,设计核查日期," + + "未发起,待提交,待审查,符合,不符合,待追踪,不涉及,任务终止,完成度,验证核查日期," + + "待发布,待校核,待确认,接受,拒绝,完成度,责任确认日期," + + "未发起,待提交,待审查,审查通过,审查退回,完成度,认证开始日期," + + "待开始,进行中,实验通过,实验失败,部件报告未提交,部件报告已提交,部件报告已入库,完成度,认证提交时间," + + "未开始,收集中,已提交,已同步至上报库,完成度,认证提交时间"; + if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.EN.getValue())){ + sheetName = "Project Progress"; + firstTitle = "Project," + + "Confirmation of regulatory tasks," + + "Confirmation of design compliance," + + "Verification of compliance confirmation," + + "Certification task confirmation," + + "Pre Homo confirmation," + + "Certification progress," + + "Parameter collection"; + secondTitle = "To be released,To be verified,To be confirmed,Accept,Refuse,Completion degree,Responsibility confirmation date," + + "Not initiated,To be submitted,Pending review,Conform to,Non Conformance,To be tracked,Not involved,Task Termination,Completion degree,Design verification date," + + "Not initiated,To be submitted,Pending review,Conform to,Non Conformance,To be tracked,Not involved,Task Termination,Completion degree,Verification verification date," + + "To be released,To be verified,To be confirmed,Accept,Refuse,Completion degree,Responsibility confirmation date," + + "Not initiated,To be submitted,Pending review,Review passed,Review return,Completion degree,Certification start date," + + "To begin,In progress,Experiment passed,Experimental failure,Component report not submitted,Component report submitted,Component report has been stored,Completion degree,Certification submission time," + + "Not started,Collecting,Submitted,Synchronized to the upper report library,Completion degree,Certification submission time"; + } + HSSFSheet sheet = workbook.createSheet(sheetName); + + CellRangeAddress region1 = new CellRangeAddress(0, 1, 0, 0); + sheet.addMergedRegion(region1); + CellRangeAddress region6 = new CellRangeAddress(0, 0, 1, 7); + sheet.addMergedRegion(region6); + CellRangeAddress region7 = new CellRangeAddress(0, 0, 8, 17); + sheet.addMergedRegion(region7); + CellRangeAddress region8 = new CellRangeAddress(0, 0, 18, 27); + sheet.addMergedRegion(region8); + CellRangeAddress region9 = new CellRangeAddress(0, 0, 28, 34); + sheet.addMergedRegion(region9); + CellRangeAddress region10 = new CellRangeAddress(0, 0, 35, 41); + sheet.addMergedRegion(region10); + CellRangeAddress region11 = new CellRangeAddress(0, 0, 42, 50); + sheet.addMergedRegion(region11); + CellRangeAddress region12 = new CellRangeAddress(0, 0, 51, 56); + sheet.addMergedRegion(region12); + + String[] firstTitleArr = firstTitle.split(","); + String[] secondTitleArr = secondTitle.split(","); + Row firstRow = sheet.createRow(0); + Row secondRow = sheet.createRow(1); + + CellStyle cellStyleTitle = workbook.createCellStyle(); + cellStyleTitle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 + cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 + for (int i = 0; i <= 56; i++){ + sheet.setColumnWidth(i, 4000); + Cell firstRowCell = firstRow.createCell(i); + firstRowCell.setCellStyle(cellStyleTitle); + if(i == 0){ + firstRowCell.setCellValue(firstTitleArr[0]); + }else if(i == 1){ + firstRowCell.setCellValue(firstTitleArr[1]); + }else if(i == 8){ + firstRowCell.setCellValue(firstTitleArr[2]); + }else if(i == 18){ + firstRowCell.setCellValue(firstTitleArr[3]); + }else if(i == 28){ + firstRowCell.setCellValue(firstTitleArr[4]); + }else if(i == 35){ + firstRowCell.setCellValue(firstTitleArr[5]); + }else if(i == 42){ + firstRowCell.setCellValue(firstTitleArr[6]); + }else if(i == 51){ + firstRowCell.setCellValue(firstTitleArr[7]); + } + if(i >= 1){ + Cell secondRowCell = secondRow.createCell(i); + secondRowCell.setCellValue(secondTitleArr[i-1]); + } + } + + this.exportCrossProjectProgressSetData(plbEoList, sheet,pliEoList,pciEoList,pmEoList,pcmEoList,projectLibraryBase,ptpEoList); + } + + /** + * 导出跨项目进度-设置数据 + * @param plbEoList + * @param sheet + * @param pliEoList + * @param pciEoList + * @param pmEoList + * @param pcmEoList + * @param projectLibraryBase + * @param ptpEoList + */ + private void exportCrossProjectProgressSetData(List plbEoList, + HSSFSheet sheet, + List pliEoList, + List pciEoList, + List pmEoList, + List pcmEoList, + ProjectLibraryBase projectLibraryBase, + List ptpEoList) { + int dataIndex = 2; + for (ProjectLibraryBase plbEo : plbEoList) { + Row dataRow = sheet.createRow(dataIndex); + dataRow.createCell(0).setCellValue(plbEo.getShowName()); + + List ptpEoListTemp = ptpEoList.stream().filter(ptpEo -> StringUtils.equals(ptpEo.getProjectId(), plbEo.getId())).collect(Collectors.toList()); + String legalTaskConfirmationStr = ""; + String designDeadlineStr = ""; + String verifyDeadlineStr = ""; + String attestationStartTimeStr = ""; + String certificationSubmissionStr = ""; + if(CollectionUtils.isNotEmpty(ptpEoListTemp)){ + Date legalTaskConfirmation = ptpEoListTemp.get(0).getLegalTaskConfirmation(); + if (ObjectUtils.isNotEmpty(legalTaskConfirmation)) { + legalTaskConfirmationStr = DateUtils.formatDate(legalTaskConfirmation); + } + Date designDeadline = ptpEoListTemp.get(0).getDesignDeadline(); + if (ObjectUtils.isNotEmpty(designDeadline)) { + designDeadlineStr = DateUtils.formatDate(designDeadline); + } + Date verifyDeadline = ptpEoListTemp.get(0).getVerifyDeadline(); + if (ObjectUtils.isNotEmpty(verifyDeadline)) { + verifyDeadlineStr = DateUtils.formatDate(verifyDeadline); + } + Date attestationStartTime = ptpEoListTemp.get(0).getAttestationStartTime(); + if (ObjectUtils.isNotEmpty(attestationStartTime)) { + attestationStartTimeStr = DateUtils.formatDate(attestationStartTime); + } + Date certificationSubmission = ptpEoListTemp.get(0).getCertificationSubmission(); + if (ObjectUtils.isNotEmpty(certificationSubmission)) { + certificationSubmissionStr = DateUtils.formatDate(certificationSubmission); + } + } + List pliEos = pliEoList.stream().filter(pliEo -> StringUtils.equals(pliEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + Map fgRwqrMap = this.projectLawsInventoryEOService.groupByFGRwqrStatus(pliEos); + Map fgRwqrProjectScheduleExportMap = (Map) fgRwqrMap.get("projectScheduleExportMap"); + double fgrqqrToBeReleased = (double) fgRwqrProjectScheduleExportMap.get("toBeReleased"); + double fgrqqrToBeVerified = (double) fgRwqrProjectScheduleExportMap.get("toBeVerified"); + double fgrqqrToBeConfirmed = (double) fgRwqrProjectScheduleExportMap.get("toBeConfirmed"); + double fgrqqrAccept = (double) fgRwqrProjectScheduleExportMap.get("accept"); + double fgrqqrRefuse = (double) fgRwqrProjectScheduleExportMap.get("refuse"); + String fgrqqrPercentage = (String) fgRwqrProjectScheduleExportMap.get("percentage"); + dataRow.createCell(1).setCellValue(fgrqqrToBeReleased); + dataRow.createCell(2).setCellValue(fgrqqrToBeVerified); + dataRow.createCell(3).setCellValue(fgrqqrToBeConfirmed); + dataRow.createCell(4).setCellValue(fgrqqrAccept); + dataRow.createCell(5).setCellValue(fgrqqrRefuse); + dataRow.createCell(6).setCellValue(fgrqqrPercentage); + dataRow.createCell(7).setCellValue(legalTaskConfirmationStr); + + Map designMap = this.projectLawsInventoryEOService.groupByDesignStatus(pliEos); + Map designMapProjectScheduleExportMap = (Map) designMap.get("projectScheduleExportMap"); + double designNotStart = (double) designMapProjectScheduleExportMap.get("notStart"); + double designToBeSubmitted = (double) designMapProjectScheduleExportMap.get("toBeSubmitted"); + double designToBeReviewed = (double) designMapProjectScheduleExportMap.get("toBeReviewed"); + double designCompliance = (double) designMapProjectScheduleExportMap.get("compliance"); + double designNonCompliance = (double) designMapProjectScheduleExportMap.get("nonCompliance"); + double designToBeTracked = (double) designMapProjectScheduleExportMap.get("toBeTracked"); + double designNotInvolved = (double) designMapProjectScheduleExportMap.get("notInvolved"); + double designTaskTermination = (double) designMapProjectScheduleExportMap.get("taskTermination"); + // double designCount = (double) designMapProjectScheduleExportMap.get("count"); + String designPercentage = (String) designMapProjectScheduleExportMap.get("percentage"); + dataRow.createCell(8).setCellValue(designNotStart); + dataRow.createCell(9).setCellValue(designToBeSubmitted); + dataRow.createCell(10).setCellValue(designToBeReviewed); + dataRow.createCell(11).setCellValue(designCompliance); + dataRow.createCell(12).setCellValue(designNonCompliance); + dataRow.createCell(13).setCellValue(designToBeTracked); + dataRow.createCell(14).setCellValue(designNotInvolved); + dataRow.createCell(15).setCellValue(designTaskTermination); + dataRow.createCell(16).setCellValue(designPercentage); + dataRow.createCell(17).setCellValue(designDeadlineStr); + + Map verifyMap = this.projectLawsInventoryEOService.groupByVerifyStatus(pliEos); + Map verifyMapProjectScheduleExportMap = (Map) verifyMap.get("projectScheduleExportMap"); + double verifyNotStart = (double) verifyMapProjectScheduleExportMap.get("notStart"); + double verifyToBeSubmitted = (double) verifyMapProjectScheduleExportMap.get("toBeSubmitted"); + double verifyToBeReviewed = (double) verifyMapProjectScheduleExportMap.get("toBeReviewed"); + double verifyCompliance = (double) verifyMapProjectScheduleExportMap.get("compliance"); + double verifyNonCompliance = (double) verifyMapProjectScheduleExportMap.get("nonCompliance"); + double verifyToBeTracked = (double) verifyMapProjectScheduleExportMap.get("toBeTracked"); + double verifyNotInvolved = (double) verifyMapProjectScheduleExportMap.get("notInvolved"); + double verifyTaskTermination = (double) verifyMapProjectScheduleExportMap.get("taskTermination"); + double verifyCount = (double) verifyMapProjectScheduleExportMap.get("count"); + String verifyPercentage = (String) verifyMapProjectScheduleExportMap.get("percentage"); + dataRow.createCell(18).setCellValue(verifyNotStart); + dataRow.createCell(19).setCellValue(verifyToBeSubmitted); + dataRow.createCell(20).setCellValue(verifyToBeReviewed); + dataRow.createCell(21).setCellValue(verifyCompliance); + dataRow.createCell(22).setCellValue(verifyNonCompliance); + dataRow.createCell(23).setCellValue(verifyToBeTracked); + dataRow.createCell(24).setCellValue(verifyNotInvolved); + dataRow.createCell(25).setCellValue(verifyTaskTermination); + dataRow.createCell(26).setCellValue(verifyPercentage); + dataRow.createCell(27).setCellValue(verifyDeadlineStr); + + List pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + Map rzRwqrMap = this.projectCertificationInventoryEOService.groupByFGRwqrStatus(pciEos); + Map rzRwqrProjectScheduleExportMap = (Map) rzRwqrMap.get("projectScheduleExportMap"); + double rzRqqrToBeReleased = (double) rzRwqrProjectScheduleExportMap.get("toBeReleased"); + double rzRqqrToBeVerified = (double) rzRwqrProjectScheduleExportMap.get("toBeVerified"); + double rzRqqrToBeConfirmed = (double) rzRwqrProjectScheduleExportMap.get("toBeConfirmed"); + double rzRqqrAccept = (double) rzRwqrProjectScheduleExportMap.get("accept"); + double rzRqqrRefuse = (double) rzRwqrProjectScheduleExportMap.get("refuse"); + String rzRqqrPercentage = (String) rzRwqrProjectScheduleExportMap.get("percentage"); + dataRow.createCell(28).setCellValue(rzRqqrToBeReleased); + dataRow.createCell(29).setCellValue(rzRqqrToBeVerified); + dataRow.createCell(30).setCellValue(rzRqqrToBeConfirmed); + dataRow.createCell(31).setCellValue(rzRqqrAccept); + dataRow.createCell(32).setCellValue(rzRqqrRefuse); + dataRow.createCell(33).setCellValue(rzRqqrPercentage); + dataRow.createCell(34).setCellValue(legalTaskConfirmationStr); + + Map preHomoMap = this.projectCertificationInventoryEOService.groupByPreHomoStatus(pciEos); + Map preHomoProjectScheduleExportMap = (Map) preHomoMap.get("projectScheduleExportMap"); + double preHomoNotStartCount = (double) preHomoProjectScheduleExportMap.get("notStartCount"); + double preHomoToBeSubmittedCount = (double) preHomoProjectScheduleExportMap.get("toBeSubmittedCount"); + double preHomoToBeReviewedCount = (double) preHomoProjectScheduleExportMap.get("toBeReviewedCount"); + double preHomoAccept = (double) preHomoProjectScheduleExportMap.get("accept"); + double preHomoRefuse = (double) preHomoProjectScheduleExportMap.get("refuse"); + String preHomoPercentage = (String) preHomoProjectScheduleExportMap.get("percentage"); + dataRow.createCell(35).setCellValue(preHomoNotStartCount); + dataRow.createCell(36).setCellValue(preHomoToBeSubmittedCount); + dataRow.createCell(37).setCellValue(preHomoToBeReviewedCount); + dataRow.createCell(38).setCellValue(preHomoAccept); + dataRow.createCell(39).setCellValue(preHomoRefuse); + dataRow.createCell(40).setCellValue(preHomoPercentage); + dataRow.createCell(41).setCellValue(attestationStartTimeStr); + + Map certificationProgressMap = this.projectCertificationInventoryEOService.groupByCertificationProgress(pciEos); + Map certificationProgressMapProjectScheduleExportMap = (Map) certificationProgressMap.get("projectScheduleExportMap"); + double certificationProgressNotStartCount = (double) certificationProgressMapProjectScheduleExportMap.get("notStartCount"); + double certificationProgressInProgressCount = (double) certificationProgressMapProjectScheduleExportMap.get("inProgressCount"); + double certificationProgressTestPassedCount = (double) certificationProgressMapProjectScheduleExportMap.get("testPassedCount"); + double certificationProgressTestFailedCount = (double) certificationProgressMapProjectScheduleExportMap.get("testFailedCount"); + double certificationProgressNotSubmitCount = (double) certificationProgressMapProjectScheduleExportMap.get("notSubmitCount"); + double certificationProgressReportSubmitCount = (double) certificationProgressMapProjectScheduleExportMap.get("reportSubmitCount"); + double certificationProgressStoredCount = (double) certificationProgressMapProjectScheduleExportMap.get("storedCount"); + // String certificationProgressCount = (String) certificationProgressMapProjectScheduleExportMap.get("count"); + String certificationProgressPercentage = (String) certificationProgressMapProjectScheduleExportMap.get("percentage"); + dataRow.createCell(42).setCellValue(certificationProgressNotStartCount); + dataRow.createCell(43).setCellValue(certificationProgressInProgressCount); + dataRow.createCell(44).setCellValue(certificationProgressTestPassedCount); + dataRow.createCell(45).setCellValue(certificationProgressTestFailedCount); + dataRow.createCell(46).setCellValue(certificationProgressNotSubmitCount); + dataRow.createCell(47).setCellValue(certificationProgressReportSubmitCount); + dataRow.createCell(48).setCellValue(certificationProgressStoredCount); + dataRow.createCell(49).setCellValue(certificationProgressPercentage); + dataRow.createCell(50).setCellValue(certificationSubmissionStr); + + + List pmEos = pmEoList.stream().filter(pmEo -> { + return StringUtils.equals(pmEo.getProjectId(), plbEo.getId()); + }).collect(Collectors.toList()); + + double notStartAmount = 0; + double collectingAmount = 0; + double submitAmount = 0; + double syncReporAmount = 0; + String parameterCollectingPercentageStr = "0"; + if(CollectionUtils.isNotEmpty(pmEos)){ + List pmEoIdList = pmEos.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); + + List pcmEos = pcmEoList.stream().filter(pcmEo -> { + boolean flag = false; + for (String pmEoId : pmEoIdList) { + if (StringUtils.equals(pmEoId, pcmEo.getParamsManifestId())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + + Map parameterCollectingMap = this.projectLibraryStatisticsService.getParameterCollectingStatisticsGroupByTerritory(pcmEos,null); + Map notStartMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.NOT_START.getValue()); + notStartAmount = (double) notStartMap.get("amount"); + Map collectingMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.COLLECTING.getValue()); + collectingAmount = (double) collectingMap.get("amount"); + Map submitMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SUBMIT.getValue()); + submitAmount = (double) submitMap.get("amount"); + Map syncReporMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SYNC_REPORT.getValue()); + syncReporAmount = (double) syncReporMap.get("amount"); + + double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount; + double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100; + parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) : "0"; + } + dataRow.createCell(51).setCellValue(notStartAmount); + dataRow.createCell(52).setCellValue(collectingAmount); + dataRow.createCell(53).setCellValue(submitAmount); + dataRow.createCell(54).setCellValue(syncReporAmount); + dataRow.createCell(55).setCellValue(parameterCollectingPercentageStr + percentSign); + dataRow.createCell(56).setCellValue(certificationSubmissionStr); + dataIndex ++; + } + } + + /** + * 导出跨项目进度概览 + * @param workbook + * @param projectLibraryBase + * @param plbEoList + * @param pliEoList + * @param pciEoList + * @param pmEoList + * @param pcmEoList + * @param ptpEoList + */ + private void exportOverviewCrossProjectProgress(HSSFWorkbook workbook, + ProjectLibraryBase projectLibraryBase, + List plbEoList, + List pliEoList, + List pciEoList, + List pmEoList, + List pcmEoList, + List ptpEoList) { + String cut = projectLibraryBase.getCut(); + String sheetName = "项目进度概览"; + String firstTitle = "项目,R&H Studio,法规符合性管理,认证活动管理"; + String secondTitle = ",,法规任务确认,设计符合性,验证符合性,认证任务确认,Pre-Homo确认,认证参数收集,认证进度"; + if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.EN.getValue())){ + sheetName = "Overview of project progress"; + firstTitle = "Project,R&H Studio,Regulatory compliance management,Certification Activity Management"; + secondTitle = ",,Confirmation of regulatory tasks," + + "Design compliance," + + "Verify compliance," + + "Certification task confirmation," + + "Pre Homo confirmation," + + "Authentication parameter collection," + + "Certification progress"; + } + HSSFSheet sheet = workbook.createSheet(sheetName); + CellRangeAddress region1 = new CellRangeAddress(0, 1, 0, 0); + sheet.addMergedRegion(region1); + CellRangeAddress region2 = new CellRangeAddress(0, 1, 1, 1); + sheet.addMergedRegion(region2); + CellRangeAddress region3 = new CellRangeAddress(0, 0, 2, 4); + sheet.addMergedRegion(region3); + CellRangeAddress region4 = new CellRangeAddress(0, 0, 5, 8); + sheet.addMergedRegion(region4); + + String[] firstTitleArr = firstTitle.split(","); + String[] secondTitleArr = secondTitle.split(","); + Row firstRow = sheet.createRow(0); + Row secondRow = sheet.createRow(1); + + CellStyle cellStyleTitle = workbook.createCellStyle(); + cellStyleTitle.setAlignment(HorizontalAlignment.CENTER); + cellStyleTitle.setVerticalAlignment(VerticalAlignment.CENTER); + for (int i = 0; i <= 8; i++){ + sheet.setColumnWidth(i, 4000); + Cell firstRowCell = firstRow.createCell(i); + firstRowCell.setCellStyle(cellStyleTitle); + if(i == 0){ + firstRowCell.setCellValue(firstTitleArr[0]); + }else if(i == 1){ + firstRowCell.setCellValue(firstTitleArr[1]); + }else if(i == 2){ + firstRowCell.setCellValue(firstTitleArr[2]); + }else if(i == 5){ + firstRowCell.setCellValue(firstTitleArr[3]); + } + + if(i >= 2){ + Cell secondRowCell = secondRow.createCell(i); + secondRowCell.setCellStyle(cellStyleTitle); + secondRowCell.setCellValue(secondTitleArr[i]); + } + } + this.exportOverviewCrossProjectProgressSetData(plbEoList, sheet,pliEoList,pciEoList,pmEoList,pcmEoList,projectLibraryBase,ptpEoList,cellStyleTitle); + } + + /** + * 导出跨项目进度概览-设置数据 + * @param plbEoList + * @param sheet + * @param pliEoList + * @param pciEoList + * @param pmEoList + * @param pcmEoList + * @param projectLibraryBase + * @param ptpEoList + * @param cellStyleTitle + */ + private void exportOverviewCrossProjectProgressSetData(List plbEoList, + HSSFSheet sheet, + List pliEoList, + List pciEoList, + List pmEoList, + List pcmEoList, + ProjectLibraryBase projectLibraryBase, + List ptpEoList, + CellStyle cellStyleTitle) { + int dataIndex = 2; + for (ProjectLibraryBase plbEo : plbEoList) { + List ptpEoListTemp = ptpEoList.stream().filter(ptpEo -> StringUtils.equals(ptpEo.getProjectId(), plbEo.getId())).collect(Collectors.toList()); + String legalTaskConfirmationStr = ""; + String designDeadlineStr = ""; + String verifyDeadlineStr = ""; + String attestationStartTimeStr = ""; + String certificationSubmissionStr = ""; + if(CollectionUtils.isNotEmpty(ptpEoListTemp)){ + Date legalTaskConfirmation = ptpEoListTemp.get(0).getLegalTaskConfirmation(); + if (ObjectUtils.isNotEmpty(legalTaskConfirmation)) { + legalTaskConfirmationStr = DateUtils.formatDate(legalTaskConfirmation); + } + Date designDeadline = ptpEoListTemp.get(0).getDesignDeadline(); + if (ObjectUtils.isNotEmpty(designDeadline)) { + designDeadlineStr = DateUtils.formatDate(designDeadline); + } + Date verifyDeadline = ptpEoListTemp.get(0).getVerifyDeadline(); + if (ObjectUtils.isNotEmpty(verifyDeadline)) { + verifyDeadlineStr = DateUtils.formatDate(verifyDeadline); + } + Date attestationStartTime = ptpEoListTemp.get(0).getAttestationStartTime(); + if (ObjectUtils.isNotEmpty(attestationStartTime)) { + attestationStartTimeStr = DateUtils.formatDate(attestationStartTime); + } + Date certificationSubmission = ptpEoListTemp.get(0).getCertificationSubmission(); + if (ObjectUtils.isNotEmpty(certificationSubmission)) { + certificationSubmissionStr = DateUtils.formatDate(certificationSubmission); + } + } + + List pliEos = pliEoList.stream().filter(pliEo -> StringUtils.equals(pliEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + Map fgRwqrMap = this.projectLawsInventoryEOService.groupByFGRwqrStatus(pliEos); + Map fgRwqrProjectScheduleExportMap = (Map) fgRwqrMap.get("projectScheduleExportMap"); + String fgrqqrPercentage = (String) fgRwqrProjectScheduleExportMap.get("percentage"); + + Map designMap = this.projectLawsInventoryEOService.groupByDesignStatus(pliEos); + Map designMapProjectScheduleExportMap = (Map) designMap.get("projectScheduleExportMap"); + String designPercentage = (String) designMapProjectScheduleExportMap.get("percentage"); + + Map verifyMap = this.projectLawsInventoryEOService.groupByVerifyStatus(pliEos); + Map verifyMapProjectScheduleExportMap = (Map) verifyMap.get("projectScheduleExportMap"); + String verifyPercentage = (String) verifyMapProjectScheduleExportMap.get("percentage"); + + List pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList()); + Map rzRwqrMap = this.projectCertificationInventoryEOService.groupByFGRwqrStatus(pciEos); + Map rzRwqrProjectScheduleExportMap = (Map) rzRwqrMap.get("projectScheduleExportMap"); + String rzRqqrPercentage = (String) rzRwqrProjectScheduleExportMap.get("percentage"); + + Map preHomoMap = this.projectCertificationInventoryEOService.groupByPreHomoStatus(pciEos); + Map preHomoProjectScheduleExportMap = (Map) preHomoMap.get("projectScheduleExportMap"); + String preHomoPercentage = (String) preHomoProjectScheduleExportMap.get("percentage"); + + List pmEos = pmEoList.stream().filter(pmEo -> { + return StringUtils.equals(pmEo.getProjectId(), plbEo.getId()); + }).collect(Collectors.toList()); + + String parameterCollectingPercentageStr = "0" + percentSign; + if(CollectionUtils.isNotEmpty(pmEos)){ + List pmEoIdList = pmEos.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); + + List pcmEos = pcmEoList.stream().filter(pcmEo -> { + boolean flag = false; + for (String pmEoId : pmEoIdList) { + if (StringUtils.equals(pmEoId, pcmEo.getParamsManifestId())) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + + Map parameterCollectingMap = this.projectLibraryStatisticsService.getParameterCollectingStatisticsGroupByTerritory(pcmEos,null); + Map notStartMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.NOT_START.getValue()); + double notStartAmount = (double) notStartMap.get("amount"); + Map collectingMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.COLLECTING.getValue()); + double collectingAmount = (double) collectingMap.get("amount"); + Map submitMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SUBMIT.getValue()); + double submitAmount = (double) submitMap.get("amount"); + Map syncReporMap = (Map) parameterCollectingMap.get(CollectManifestStatisticsStateEnum.SYNC_REPORT.getValue()); + double syncReporAmount = (double) syncReporMap.get("amount"); + + double parameterCollectingCount = notStartAmount + collectingAmount + submitAmount + syncReporAmount; + double parameterCollectingPercentage = (syncReporAmount / parameterCollectingCount) * 100; + parameterCollectingPercentageStr = (parameterCollectingPercentage != 0 && (syncReporAmount !=0 )) ? df.format(parameterCollectingPercentage) + percentSign : "0" + percentSign; + } + + Map certificationProgressMap = this.projectCertificationInventoryEOService.groupByCertificationProgress(pciEos); + Map certificationProgressMapProjectScheduleExportMap = (Map) certificationProgressMap.get("projectScheduleExportMap"); + String certificationProgressPercentage = (String) certificationProgressMapProjectScheduleExportMap.get("percentage"); + + CellRangeAddress regionCell1 = new CellRangeAddress(dataIndex, dataIndex + 1, 0, 0); + sheet.addMergedRegion(regionCell1); + CellRangeAddress regionCell2 = new CellRangeAddress(dataIndex, dataIndex + 1, 1, 1); + sheet.addMergedRegion(regionCell2); + Row dataRow = sheet.createRow(dataIndex); + Row dataRow2 = sheet.createRow(dataIndex + 1); + + for (int i = 0; i < 9; i++) { + sheet.setColumnWidth(i, 4000); + Cell dataRowCell = dataRow.createCell(i); + dataRowCell.setCellStyle(cellStyleTitle); + Cell dataRow2Cell = dataRow2.createCell(i); + dataRow2Cell.setCellStyle(cellStyleTitle); + if(i == 0){ + dataRowCell.setCellValue(plbEo.getShowName()); + }else if(i==1){ + dataRowCell.setCellValue(plbEo.getStudioEngineerName()); + }else if(i==2){ + dataRowCell.setCellValue(legalTaskConfirmationStr); + dataRow2Cell.setCellValue(fgrqqrPercentage); + }else if(i==3){ + dataRowCell.setCellValue(designDeadlineStr); + dataRow2Cell.setCellValue(designPercentage); + }else if(i==4){ + dataRowCell.setCellValue(verifyDeadlineStr); + dataRow2Cell.setCellValue(verifyPercentage); + }else if(i==5){ + dataRowCell.setCellValue(legalTaskConfirmationStr); + dataRow2Cell.setCellValue(rzRqqrPercentage); + }else if(i==6){ + dataRowCell.setCellValue(attestationStartTimeStr); + dataRow2Cell.setCellValue(preHomoPercentage); + }else if(i==7){ + dataRowCell.setCellValue(attestationStartTimeStr); + dataRow2Cell.setCellValue(parameterCollectingPercentageStr); + }else if(i==8){ + dataRowCell.setCellValue(certificationSubmissionStr); + dataRow2Cell.setCellValue(certificationProgressPercentage); + } + } + dataIndex += 2; + } + } + } From ece7f89b11574e999b4744f7ff8fca93849a149f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=B5=A9?= Date: Sat, 6 May 2023 18:30:10 +0800 Subject: [PATCH 40/40] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=BA=93=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/service/impl/BussDocumentLibraryEOServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 180b20758..a01f25fa6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -4303,7 +4303,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl