Merge remote-tracking branch 'origin/master'
This commit is contained in:
-9
@@ -628,15 +628,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
}
|
||||
}else {//没有订阅用户
|
||||
//没有订阅用户,发布时,不发送消息
|
||||
if(InventoryStateEnum.ISSUE.getValue().equals(state)) {
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
throw new JeroBootException("该虚拟清单未被订阅,消息发送失败");
|
||||
}else{
|
||||
throw new JeroBootException("The virtual list has not been subscribed, and the message sending failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//拼接维护清单的消息
|
||||
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
package com.jero.modules.project.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.project.entity.ConditionAssessmentEO;
|
||||
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
||||
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: 任务清单-项目状态评估表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="任务清单-项目状态评估表")
|
||||
@RestController
|
||||
@RequestMapping("/project/projectTaskInventoryConditionAssessmentEO")
|
||||
@Slf4j
|
||||
public class ConditionAssessmentEOController extends JeroController<ConditionAssessmentEO, IConditionAssessmentEOService> {
|
||||
@Autowired
|
||||
private IConditionAssessmentEOService conditionAssessmentEOService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param projectTaskInventoryConditionAssessmentEO
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-分页列表查询")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-分页列表查询", notes="任务清单-项目状态评估表-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(ConditionAssessmentEO projectTaskInventoryConditionAssessmentEO,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ConditionAssessmentEO> queryWrapper = QueryGenerator.initQueryWrapper(projectTaskInventoryConditionAssessmentEO, req.getParameterMap());
|
||||
Page<ConditionAssessmentEO> page = new Page<ConditionAssessmentEO>(pageNo, pageSize);
|
||||
IPage<ConditionAssessmentEO> pageList = conditionAssessmentEOService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-列表查询")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-列表查询", notes="任务清单-项目状态评估表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<ConditionAssessmentEO>> queryList() {
|
||||
List<ConditionAssessmentEO> list = conditionAssessmentEOService.queryList();
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param conditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-添加")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-添加", notes="任务清单-项目状态评估表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@Validated @RequestBody ConditionAssessmentEO conditionAssessmentEO) {
|
||||
conditionAssessmentEOService.add(conditionAssessmentEO);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param conditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-编辑")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-编辑", notes="任务清单-项目状态评估表-编辑")
|
||||
@PutMapping(value = "/edit")
|
||||
public Result<?> edit(@Validated @RequestBody ConditionAssessmentEO conditionAssessmentEO) {
|
||||
conditionAssessmentEOService.editById(conditionAssessmentEO);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-通过id删除")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-通过id删除", notes="任务清单-项目状态评估表-通过id删除")
|
||||
@DeleteMapping(value = "/delete")
|
||||
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||
conditionAssessmentEOService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-批量删除")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-批量删除", notes="任务清单-项目状态评估表-批量删除")
|
||||
@DeleteMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||
this.conditionAssessmentEOService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-通过id查询")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-通过id查询", notes="任务清单-项目状态评估表-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
ConditionAssessmentEO projectTaskInventoryConditionAssessmentEO = conditionAssessmentEOService.queryById(id);
|
||||
if(projectTaskInventoryConditionAssessmentEO==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
return Result.OK(projectTaskInventoryConditionAssessmentEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param conditionAssessmentEO
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, ConditionAssessmentEO conditionAssessmentEO) {
|
||||
return super.exportXls(request, conditionAssessmentEO, ConditionAssessmentEO.class, "任务清单-项目状态评估表");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
return super.importExcel(request, response, ConditionAssessmentEO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加或修改
|
||||
*
|
||||
* @param conditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "任务清单-项目状态评估表-添加或修改")
|
||||
@ApiOperation(value="任务清单-项目状态评估表-添加或修改", notes="任务清单-项目状态评估表-添加或修改")
|
||||
@PostMapping(value = "/addOrUpdate")
|
||||
public Result<?> addOrUpdate(@Validated @RequestBody ConditionAssessmentEO conditionAssessmentEO) {
|
||||
return conditionAssessmentEOService.addOrUpdate(conditionAssessmentEO);
|
||||
}
|
||||
|
||||
}
|
||||
+32
-5
@@ -1,6 +1,5 @@
|
||||
package com.jero.modules.project.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
@@ -16,6 +15,8 @@ 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.List;
|
||||
|
||||
/**
|
||||
* @description
|
||||
@@ -45,8 +46,9 @@ public class NcrTrackController {
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
IPage<NcrTrackVO> pageList = iNcrTrackService.getPageInfo(ncrTrackVO,pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
List<NcrTrackVO> pageInfo = iNcrTrackService.getPageInfo(ncrTrackVO);
|
||||
Page pages = iNcrTrackService.getPages(pageNo, pageSize, pageInfo);
|
||||
return Result.OK(ncrTrackVO.getCut(),pages);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,8 +67,33 @@ public class NcrTrackController {
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
IPage<NcrTrackVO> pageList = iNcrTrackService.getPageInfo(ncrTrackVO,pageNo, pageSize);
|
||||
return Result.OK(pageList);
|
||||
List<NcrTrackVO> pageInfo = iNcrTrackService.getPageInfo(ncrTrackVO);
|
||||
Page pages = iNcrTrackService.getPages(pageNo, pageSize, pageInfo);
|
||||
return Result.OK(pages);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param request
|
||||
* @param ncrTrackVO
|
||||
*/
|
||||
@RequestMapping(value = "/exportData")
|
||||
public void exportData(HttpServletResponse response,
|
||||
HttpServletRequest request,
|
||||
NcrTrackVO ncrTrackVO) {
|
||||
iNcrTrackService.exportData(response,request, ncrTrackVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目详情中未符合项导出数据
|
||||
* @param request
|
||||
* @param ncrTrackVO
|
||||
*/
|
||||
@RequestMapping(value = "/exportDataInfo")
|
||||
public void exportDataInfo(HttpServletResponse response,
|
||||
HttpServletRequest request,
|
||||
NcrTrackVO ncrTrackVO) {
|
||||
iNcrTrackService.exportData(response,request, ncrTrackVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+8
-22
@@ -2,11 +2,9 @@ package com.jero.modules.project.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||
import com.jero.modules.project.util.ExcelLangUtils;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -15,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -140,18 +137,13 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
|
||||
@AutoLog(value = "项目库-相关人员维护表-导出excel")
|
||||
@ApiOperation(value="项目库-相关人员维护表-导出excel", notes="项目库-相关人员维护表-导出excel")
|
||||
@GetMapping(value = "/exportXls", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public ModelAndView exportXls(HttpServletRequest request,@RequestParam(name="id") String id,
|
||||
@RequestParam(name="projectId") String projectId,
|
||||
@RequestParam(name="cut") String cut)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
public void exportXls(@RequestParam(name="id") String id,
|
||||
@RequestParam(name="projectId") String projectId,
|
||||
@RequestParam(name="cut") String cut,
|
||||
HttpServletResponse response, HttpServletRequest request) throws Exception {
|
||||
//获取导出的数据
|
||||
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelService.disposeExportXls(id, projectId);
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "相关人员名单", cut);
|
||||
}else{
|
||||
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "List of relevant personnel", cut);
|
||||
}
|
||||
|
||||
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelService.disposeExportXls(id, projectId,cut);
|
||||
projectRelatedPersonnelService.exportDataToXls(cut,response,request,records);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -160,14 +152,8 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
|
||||
@AutoLog(value = "项目库-相关人员维护表-导出excel模板")
|
||||
@ApiOperation(value="项目库-相关人员维护表-导出excel模板", notes="项目库-相关人员维护表-导出excel模板")
|
||||
@GetMapping(value = "/exportTemplate", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public ModelAndView exportTemplate(HttpServletRequest request,@RequestParam(name="cut",required=true) String cut)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
//return projectRelatedPersonnelService.setExporTemplate(request, ProjectRelatedPersonnel.class, "相关人员名单",cut);
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
return projectRelatedPersonnelService.setExporTemplate(request, ExcelLangUtils.chooseLang(ProjectRelatedPersonnel.class, CutEnum.CN.getValue()), "相关人员名单", cut);
|
||||
}else{
|
||||
return projectRelatedPersonnelService.setExporTemplate(request, ExcelLangUtils.chooseLang(ProjectRelatedPersonnel.class, CutEnum.EN.getValue()), "List of relevant personnel", cut);
|
||||
}
|
||||
public void exportTemplate(ProjectRelatedPersonnel projectRelatedPersonnel, HttpServletResponse response, HttpServletRequest request) throws Exception {
|
||||
projectRelatedPersonnelService.exportTemplate(projectRelatedPersonnel,response,request);
|
||||
}
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
package com.jero.modules.project.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
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: 任务清单-项目状态评估表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("project_task_inventory_condition_assessment")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="project_task_inventory_condition_assessment对象", description="任务清单-项目状态评估表")
|
||||
public class ConditionAssessmentEO 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 java.util.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 java.util.Date updateTime;
|
||||
|
||||
/**所属部门*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String sysOrgCode;
|
||||
|
||||
/**评估状态*/
|
||||
@Excel(name = "评估状态", width = 15)
|
||||
@ApiModelProperty(value = "评估状态")
|
||||
private String conditionAssessment;
|
||||
|
||||
/**备注*/
|
||||
@Excel(name = "备注", width = 15)
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**法规清单id*/
|
||||
@Excel(name = "法规清单id", width = 15)
|
||||
@ApiModelProperty(value = "法规清单id")
|
||||
private String projectLawsInventoryId;
|
||||
|
||||
/**角色编码 1:法规工程师 、2:认证工程师*/
|
||||
@Excel(name = "角色编码 1:法规工程师 、2:认证工程师", width = 15)
|
||||
@ApiModelProperty(value = "角色编码 1:法规工程师 、2:认证工程师")
|
||||
private String roleCode;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
}
|
||||
+56
-5
@@ -39,30 +39,30 @@ public class ProjectRelatedPersonnel implements Serializable {
|
||||
private java.lang.String projectId;
|
||||
|
||||
/**责任领域*/
|
||||
@Excel(name = "责任领域,dutyTerritory", width = 15,orderNum = "1",dicCode = "duty_territory")
|
||||
@Excel(name = "责任领域,Responsible Field", width = 15,orderNum = "1",dicCode = "duty_territory")
|
||||
@Dict(dicCode = "duty_territory")
|
||||
private java.lang.String dutyTerritory;
|
||||
|
||||
/**法规工程师*/
|
||||
private java.lang.String lawEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "法规工程师,lawEngineerName", width = 15,orderNum = "2")
|
||||
@Excel(name = "法规工程师,Regulation Engineer", width = 15,orderNum = "2")
|
||||
private java.lang.String lawEngineerName;
|
||||
|
||||
/**工程接口人*/
|
||||
private java.lang.String engineeringInterfacePerson;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "工程接口人,engineeringInterfacePersonName", width = 15,orderNum = "3")
|
||||
@Excel(name = "工程接口人,Engineering Interface", width = 15,orderNum = "3")
|
||||
private java.lang.String engineeringInterfacePersonName;
|
||||
|
||||
/**认证工程师*/
|
||||
private java.lang.String certificationEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "认证工程师,certificationEngineerName", width = 15,orderNum = "4")
|
||||
@Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4")
|
||||
private java.lang.String certificationEngineerName;
|
||||
|
||||
/**备注*/
|
||||
@Excel(name = "备注,remark", width = 15,orderNum = "5")
|
||||
@Excel(name = "备注,Comments", width = 15,orderNum = "5")
|
||||
private java.lang.String remark;
|
||||
|
||||
/**创建人*/
|
||||
@@ -89,3 +89,54 @@ public class ProjectRelatedPersonnel implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
}
|
||||
/* *//**责任领域*//*
|
||||
@Excel(name = "责任领域,Responsible Field", width = 15,orderNum = "1",dicCode = "duty_territory")
|
||||
@Dict(dicCode = "duty_territory")
|
||||
private java.lang.String dutyTerritory;
|
||||
|
||||
*//**法规工程师*//*
|
||||
private java.lang.String lawEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "法规工程师,Regulation Engineer", width = 15,orderNum = "2")
|
||||
private java.lang.String lawEngineerName;
|
||||
|
||||
*//**工程接口人*//*
|
||||
private java.lang.String engineeringInterfacePerson;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "工程接口人,Engineering Interface", width = 15,orderNum = "3")
|
||||
private java.lang.String engineeringInterfacePersonName;
|
||||
|
||||
*//**认证工程师*//*
|
||||
private java.lang.String certificationEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "认证工程师,Homologation Engineer", width = 15,orderNum = "4")
|
||||
private java.lang.String certificationEngineerName;
|
||||
|
||||
*//**备注*//*
|
||||
@Excel(name = "备注,Comments", width = 15,orderNum = "5")
|
||||
private java.lang.String remark;
|
||||
|
||||
*//**创建人*//*
|
||||
private java.lang.String createBy;
|
||||
|
||||
*//**创建日期*//*
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date createTime;
|
||||
|
||||
*//**更新人*//*
|
||||
private java.lang.String updateBy;
|
||||
|
||||
*//**更新日期*//*
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date updateTime;
|
||||
|
||||
*//**所属部门*//*
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String sysOrgCode;
|
||||
|
||||
*//**中英切换标志*//*
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
}*/
|
||||
|
||||
+4
@@ -251,4 +251,8 @@ public class ProjectTaskInventoryEO implements Serializable {
|
||||
private String verifySendMsgFlag;
|
||||
/**验证符合性流程-结束当天发送消息标识0未发 1已发**/
|
||||
private String verifySendMsgCurrentFlag;
|
||||
|
||||
/**项目状态评估备注**/
|
||||
@TableField(exist = false)
|
||||
private String projectStatusAssessRemark;
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,9 +7,9 @@ import org.apache.commons.lang.StringUtils;
|
||||
* 设计符合性确认流程状态枚举类
|
||||
*/
|
||||
public enum DesignComplianceStatusEnum {
|
||||
TO_SUBMIT("待提交","to submit"),
|
||||
TO_REVIEW("待审查","to review"),
|
||||
REVIEW_COMPLETED("审查完成","review completed"),
|
||||
TO_SUBMIT("待提交","To submit"),
|
||||
TO_REVIEW("待审查","To approve"),
|
||||
REVIEW_COMPLETED("审查完成","Complete"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -14,8 +14,8 @@ public enum InventoryAffirmStatusEnum {
|
||||
|
||||
NOT_STARTED("未发起","Not started"),
|
||||
LIST_TO_CONFIRM("待确认","List to confirm"),
|
||||
ACCEPTED("接受","accepted"),
|
||||
REJECTED("拒绝","rejected"),
|
||||
ACCEPTED("接受","Accepted"),
|
||||
REJECTED("拒绝","Rejected"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
+7
-7
@@ -1,13 +1,13 @@
|
||||
package com.jero.modules.project.enums;
|
||||
|
||||
public enum ProjectTaskPlanningNameEnum {
|
||||
LIST_CONFIRMATION("法规清单确认","listConfirmation"),
|
||||
LEGAL_TASK_CONFIRMATION("法规任务确认","legalTaskConfirmation"),
|
||||
DESIGN_DEADLINE("设计符合性确认截止时间","designDeadline"),
|
||||
PREHOMO_DEADLINE("PreHomo确认截止时间","prehomoDeadline"),
|
||||
ATTESTATION_START_TIME("认证开始","attestationStartTime"),
|
||||
ATTESTATION_END_TIME("认证结束","attestationEndTime"),
|
||||
VERIFY_DEADLINE("验证符合性确认截止时间","verifyDeadline"),
|
||||
LIST_CONFIRMATION("法规清单确认"," Confirmation of regulations list"),
|
||||
LEGAL_TASK_CONFIRMATION("法规任务确认","Regulatory task confirmation"),
|
||||
DESIGN_DEADLINE("设计符合性确认","Design Compliance Check"),
|
||||
PREHOMO_DEADLINE("PreHomo确认","Pre-homo Check"),
|
||||
ATTESTATION_START_TIME("认证开始","Certification start"),
|
||||
ATTESTATION_END_TIME("认证结束"," Certification end\n"),
|
||||
VERIFY_DEADLINE("验证符合性确认截止时间","Verification compliance confirmation deadline"),
|
||||
|
||||
;
|
||||
String name;
|
||||
|
||||
+7
-7
@@ -7,13 +7,13 @@ import com.jero.common.constant.enums.CutEnum;
|
||||
* 审查结果枚举类
|
||||
*/
|
||||
public enum ReviewResultEnum {
|
||||
LAUNCH("发起","launch"),
|
||||
TO_BE_CONFIRMED("待确认","to be confirmed"),
|
||||
CONFORMITY("符合","conformity"),
|
||||
INCONFORMITY("不符合","inconformity"),
|
||||
TO_TRACK("待追踪","to track"),
|
||||
UNINVOLVED("不涉及","uninvolved"),
|
||||
TERMINATION_OF_TASK("任务终止","termination of task")
|
||||
LAUNCH("发起","Launch"),
|
||||
TO_BE_CONFIRMED("待确认","No rating"),
|
||||
CONFORMITY("符合","Compliance"),
|
||||
INCONFORMITY("不符合","Non-Compliance"),
|
||||
TO_TRACK("待追踪","To be tracked"),
|
||||
UNINVOLVED("不涉及","NA"),
|
||||
TERMINATION_OF_TASK("任务终止","Termination of task")
|
||||
;
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -15,8 +15,8 @@ public enum TaskAffirmStatusEnum {
|
||||
*/
|
||||
NOT_STARTED("未发起","Not started"),
|
||||
LIST_TO_CONFIRM("待确认","List to confirm"),
|
||||
ACCEPTED("接受","accepted"),
|
||||
REJECTED("拒绝","rejected"),
|
||||
ACCEPTED("接受","Accepted"),
|
||||
REJECTED("拒绝","Rejected"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.project.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.jero.modules.project.entity.ConditionAssessmentEO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 任务清单-项目状态评估表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ConditionAssessmentEOMapper extends BaseMapper<ConditionAssessmentEO> {
|
||||
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.project.mapper.ConditionAssessmentEOMapper">
|
||||
<resultMap id="ProjectTaskInventoryConditionAssessmentEOResultMap" type="com.jero.modules.project.entity.ConditionAssessmentEO">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="sys_org_code" property="sysOrgCode" />
|
||||
<result column="condition_assessment" property="conditionAssessment" />
|
||||
<result column="remark" property="remark" />
|
||||
<result column="project_laws_inventory_id" property="projectLawsInventoryId" />
|
||||
<result column="role_code" property="roleCode" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+8
-6
@@ -2,6 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.project.mapper.NcrTrackMapper">
|
||||
<resultMap id="NcrTrackVOResultMap" type="com.jero.modules.project.vo.NcrTrackVO">
|
||||
<id column="id" property="id" />
|
||||
<id column="serial_number" property="serialNumber" />
|
||||
<result column="title" property="title" />
|
||||
<result column="duty_territory" property="dutyTerritory" />
|
||||
@@ -19,13 +20,14 @@
|
||||
<result column="design_flow_task_status" property="designFlowTaskStatus" />
|
||||
<result column="prehomo_flow_task_status" property="prehomoFlowTaskStatus" />
|
||||
<result column="verify_flow_task_status" property="verifyFlowTaskStatus" />
|
||||
<result column="create_time" property="createTime" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="getInfoList" resultMap="NcrTrackVOResultMap">
|
||||
SELECT
|
||||
pni.project_name,plb.target_market,
|
||||
pli.serial_number,pli.title,pli.duty_territory,
|
||||
pli.id,pli.serial_number,pli.title,pli.duty_territory,pli.create_time,
|
||||
pti.design_flow_task_status,pti.prehomo_flow_task_status,pti.verify_flow_task_status,pti.design_p_id,pti.prehomo_p_id,pti.verify_p_id,
|
||||
pli.design_initiator_id,pli.design_duty_id,pli.prehomo_initiator_id,pli.prehomo_duty_id,pli.verify_initiator_id,pli.verify_duty_id
|
||||
|
||||
@@ -40,25 +42,25 @@
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.serialNumber != null and ncrTrackVO.serialNumber != ''">
|
||||
pli.serial_number =#{ncrTrackVO.serialNumber}
|
||||
pli.serial_number like concat(concat('%',#{ncrTrackVO.serialNumber}),'%')
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.title != null and ncrTrackVO.title != ''">
|
||||
pli.title =#{ncrTrackVO.title}
|
||||
pli.title like concat(concat('%',#{ncrTrackVO.title}),'%')
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.dutyTerritory != null and ncrTrackVO.dutyTerritory != ''">
|
||||
pli.duty_territory =#{ncrTrackVO.dutyTerritory}
|
||||
pli.duty_territory like concat(concat('%',#{ncrTrackVO.dutyTerritory}),'%')
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.projectName != null and ncrTrackVO.projectName != ''">
|
||||
pni.project_name =#{ncrTrackVO.projectName}
|
||||
and
|
||||
</if>
|
||||
<if test="ncrTrackVO.problemType != null and ncrTrackVO.problemType != ''">
|
||||
<!--<if test="ncrTrackVO.problemType != null and ncrTrackVO.problemType != ''">
|
||||
(pti.design_flow_task_status =#{ncrTrackVO.problemType} or pti.prehomo_flow_task_status =#{ncrTrackVO.problemType} or pti.verify_flow_task_status =#{ncrTrackVO.problemType})
|
||||
and
|
||||
</if>
|
||||
</if>-->
|
||||
<if test="ncrTrackVO.initiator != null and ncrTrackVO.initiator != ''">
|
||||
(pli.design_initiator_id =#{ncrTrackVO.initiator} or pli.prehomo_initiator_id =#{ncrTrackVO.initiator} or pli.verify_initiator_id =#{ncrTrackVO.initiator})
|
||||
and
|
||||
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.jero.modules.project.service;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.ConditionAssessmentEO;
|
||||
import com.jero.modules.project.entity. ConditionAssessmentEO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 任务清单-项目状态评估表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IConditionAssessmentEOService extends IService<ConditionAssessmentEO> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param ConditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
void add(ConditionAssessmentEO ConditionAssessmentEO);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param ConditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
void editById(ConditionAssessmentEO ConditionAssessmentEO);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ConditionAssessmentEO queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List< ConditionAssessmentEO> queryList();
|
||||
|
||||
/**
|
||||
* 任务清单-项目状态评估表-添加或修改
|
||||
* @param ConditionAssessmentEO
|
||||
*/
|
||||
Result<?> addOrUpdate(ConditionAssessmentEO ConditionAssessmentEO);
|
||||
|
||||
/**
|
||||
* 获取项目状态评估
|
||||
* @param projectLawsInventoryId
|
||||
* @param roleCode
|
||||
* @return
|
||||
*/
|
||||
ConditionAssessmentEO getProjectStatusAssess(String projectLawsInventoryId, String roleCode, LoginUser currentUser);
|
||||
}
|
||||
+12
-4
@@ -1,9 +1,13 @@
|
||||
package com.jero.modules.project.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.project.vo.NcrTrackVO;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* @date 2022/5/11 9:24
|
||||
@@ -11,7 +15,11 @@ import com.jero.modules.project.vo.NcrTrackVO;
|
||||
*/
|
||||
public interface INcrTrackService extends IService<NcrTrackVO> {
|
||||
|
||||
IPage<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO);
|
||||
|
||||
Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list);
|
||||
|
||||
void exportData(HttpServletResponse response,
|
||||
HttpServletRequest request,
|
||||
NcrTrackVO ncrTrackVO);
|
||||
}
|
||||
|
||||
+3
-4
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -71,13 +70,13 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
|
||||
Map<String,Object> queryPersonByProjectId(String projectId, String dutyTerritory);
|
||||
|
||||
/**处理导出数据*/
|
||||
List<ProjectRelatedPersonnel> disposeExportXls(String id,String projectId);
|
||||
List<ProjectRelatedPersonnel> disposeExportXls(String id,String projectId,String cut);
|
||||
|
||||
/**导出excel*/
|
||||
ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList, Class<ProjectRelatedPersonnel> clazz, String title,String cut);
|
||||
void exportDataToXls(String cut, HttpServletResponse response, HttpServletRequest request, List<ProjectRelatedPersonnel> dataList);
|
||||
|
||||
/**设置导出模板*/
|
||||
ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title,String cut);
|
||||
void exportTemplate(ProjectRelatedPersonnel projectRelatedPersonnel, HttpServletResponse response, HttpServletRequest request);
|
||||
|
||||
Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz, String projectId,String cut);
|
||||
|
||||
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.ConditionAssessmentEO;
|
||||
import com.jero.modules.project.enums.ProjectRoleEnum;
|
||||
import com.jero.modules.project.mapper.ConditionAssessmentEOMapper;
|
||||
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
/**
|
||||
* @Description: 任务清单-项目状态评估表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-12
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class ConditionAssessmentEOServiceImpl extends ServiceImpl<ConditionAssessmentEOMapper,ConditionAssessmentEO> implements IConditionAssessmentEOService {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param conditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void add(ConditionAssessmentEO conditionAssessmentEO) {
|
||||
Date now = new Date();
|
||||
conditionAssessmentEO.setCreateTime(now);
|
||||
conditionAssessmentEO.setUpdateTime(now);
|
||||
save(conditionAssessmentEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param conditionAssessmentEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void editById(ConditionAssessmentEO conditionAssessmentEO) {
|
||||
Date now = new Date();
|
||||
conditionAssessmentEO.setUpdateTime(now);
|
||||
saveOrUpdate(conditionAssessmentEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ConditionAssessmentEO queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ConditionAssessmentEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> addOrUpdate(ConditionAssessmentEO conditionAssessmentEO) {
|
||||
List<String> roleCodeList = new ArrayList<>();
|
||||
List<ConditionAssessmentEO> list = new ArrayList<>();
|
||||
|
||||
if(StringUtils.equals(conditionAssessmentEO.getRoleCode(), ProjectRoleEnum.REGULATI_ENGINEER.getValue())){
|
||||
roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
|
||||
list.add(conditionAssessmentEO);
|
||||
}else if(StringUtils.equals(conditionAssessmentEO.getRoleCode(), ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())){
|
||||
roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
|
||||
list.add(conditionAssessmentEO);
|
||||
}else if(StringUtils.equals(conditionAssessmentEO.getRoleCode(), ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue())){
|
||||
roleCodeList.add(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
|
||||
roleCodeList.add(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
|
||||
|
||||
ConditionAssessmentEO regulatiEngineer = new ConditionAssessmentEO();
|
||||
BeanUtils.copyProperties(conditionAssessmentEO, regulatiEngineer);
|
||||
regulatiEngineer.setRoleCode(ProjectRoleEnum.REGULATI_ENGINEER.getValue());
|
||||
|
||||
ConditionAssessmentEO homologationEngineer = new ConditionAssessmentEO();
|
||||
BeanUtils.copyProperties(conditionAssessmentEO, homologationEngineer);
|
||||
homologationEngineer.setRoleCode(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue());
|
||||
|
||||
list.add(regulatiEngineer);
|
||||
list.add(homologationEngineer);
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
QueryWrapper<ConditionAssessmentEO> deleteWrapper = new QueryWrapper<>();
|
||||
deleteWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,conditionAssessmentEO.getProjectLawsInventoryId());
|
||||
deleteWrapper.lambda().in(ConditionAssessmentEO::getRoleCode,roleCodeList);
|
||||
this.baseMapper.delete(deleteWrapper);
|
||||
|
||||
saveBatch(list);
|
||||
}
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目状态评估
|
||||
* @param projectLawsInventoryId
|
||||
* @param roleCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ConditionAssessmentEO getProjectStatusAssess(String projectLawsInventoryId, String roleCode,LoginUser currentUser) {
|
||||
ConditionAssessmentEO result = null;
|
||||
|
||||
QueryWrapper<ConditionAssessmentEO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,projectLawsInventoryId);
|
||||
|
||||
if(StringUtils.equals(roleCode,ProjectRoleEnum.REGULATI_ENGINEER.getValue()) || StringUtils.equals(roleCode,ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())){
|
||||
queryWrapper.lambda().eq(ConditionAssessmentEO::getCreateBy,currentUser.getUsername());
|
||||
}
|
||||
|
||||
List<ConditionAssessmentEO> projectTaskInventoryConditionAssessmentEOList = this.baseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryConditionAssessmentEOList)){
|
||||
|
||||
if(projectTaskInventoryConditionAssessmentEOList.size()>1){
|
||||
// 匿名比较器排序
|
||||
Collections.sort(projectTaskInventoryConditionAssessmentEOList, new Comparator<ConditionAssessmentEO>() {
|
||||
@Override
|
||||
public int compare(ConditionAssessmentEO p1, ConditionAssessmentEO p2) {
|
||||
return p1.getConditionAssessment().compareTo(p2.getConditionAssessment());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
result = projectTaskInventoryConditionAssessmentEOList.get(0);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+104
-18
@@ -1,27 +1,36 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
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.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.project.enums.ReviewResultEnum;
|
||||
import com.jero.modules.project.mapper.NcrTrackMapper;
|
||||
import com.jero.modules.project.service.INcrTrackService;
|
||||
import com.jero.modules.project.vo.NcrTrackInfoVO;
|
||||
import com.jero.modules.project.vo.NcrTrackVO;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -36,9 +45,11 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
private NcrTrackMapper ncrTrackMapper;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
@Value(value = "${jero.path.upload}")
|
||||
private String uploadpath;
|
||||
|
||||
@Override
|
||||
public IPage<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO, Integer pageNo, Integer pageSize) {
|
||||
public List<NcrTrackVO> getPageInfo(NcrTrackVO ncrTrackVO) {
|
||||
if(StringUtils.isNotBlank(ncrTrackVO.getSerialNumber())){
|
||||
ncrTrackVO.setSerialNumber(ncrTrackVO.getSerialNumber().replace("*",""));
|
||||
}
|
||||
@@ -76,10 +87,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
String designFlowTaskStatusName = "";
|
||||
//pre问题类型
|
||||
String prehomoFlowTaskStatus = trackVO.getPrehomoFlowTaskStatus();
|
||||
String prehomoFlowTaskStatusName = trackVO.getPrehomoFlowTaskStatus();
|
||||
String prehomoFlowTaskStatusName = "";
|
||||
//验证问题类型
|
||||
String verifyFlowTaskStatus = trackVO.getVerifyFlowTaskStatus();
|
||||
String verifyFlowTaskStatusName = trackVO.getVerifyFlowTaskStatus();
|
||||
String verifyFlowTaskStatusName = "";
|
||||
|
||||
|
||||
if (StringUtils.isNotBlank(designFlowTaskStatus)) {
|
||||
@@ -103,7 +114,9 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
trackVO.getDesignInitiatorId(),
|
||||
trackVO.getDesignDutyId(),
|
||||
designName,
|
||||
sysUserList);
|
||||
sysUserList,
|
||||
trackVO.getId(),
|
||||
trackVO.getCreateTime());
|
||||
trackVOList.add(ncrTrackVOTemp);
|
||||
}
|
||||
//PreHomo确认
|
||||
@@ -117,7 +130,9 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
trackVO.getPrehomoInitiatorId(),
|
||||
trackVO.getPrehomoDutyId(),
|
||||
prehomoName,
|
||||
sysUserList);
|
||||
sysUserList,
|
||||
trackVO.getId(),
|
||||
trackVO.getCreateTime());
|
||||
trackVOList.add(ncrTrackVOTemp);
|
||||
}
|
||||
//验证符合性确认
|
||||
@@ -131,19 +146,43 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
trackVO.getVerifyInitiatorId(),
|
||||
trackVO.getVerifyDutyId(),
|
||||
verifyName,
|
||||
sysUserList);
|
||||
sysUserList,
|
||||
trackVO.getId(),
|
||||
trackVO.getCreateTime());
|
||||
trackVOList.add(ncrTrackVOTemp);
|
||||
}
|
||||
}
|
||||
//流程类型数据过滤
|
||||
if(StringUtils.isNotBlank(ncrTrackVO.getFlowType())){
|
||||
trackVOList = trackVOList.stream().filter(e->ncrTrackVO.getFlowType().equals(e.getFlowType())).collect(Collectors.toList());
|
||||
}
|
||||
//问题类型数据过滤
|
||||
if(StringUtils.isNotBlank(ncrTrackVO.getProblemType())){
|
||||
trackVOList = trackVOList.stream().filter(e->ncrTrackVO.getProblemType().equals(e.getProblemType())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Page pages = getPages(pageNo, pageSize, trackVOList);
|
||||
|
||||
return pages;
|
||||
List<NcrTrackVO> trackVOListTemp = new ArrayList<>();
|
||||
List<NcrTrackVO> ncrTrackVOList = ncrTrackVO.getNcrTrackVOList();
|
||||
//导出数据过滤(列表中选取多条进行导出的时候,用id和流程类型作为条件进行数据过滤)
|
||||
if(ObjectUtils.allNotNull(ncrTrackVOList)){
|
||||
for (NcrTrackVO trackVO : ncrTrackVOList) {
|
||||
List<NcrTrackVO> collect = trackVOList.stream()
|
||||
.filter(e -> trackVO.getId().equals(e.getId()) && trackVO.getFlowType().equals(e.getFlowType()))
|
||||
.collect(Collectors.toList());
|
||||
if(collect.size() != 0){
|
||||
trackVOListTemp.addAll(collect);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(trackVOListTemp.size() != 0){
|
||||
return trackVOListTemp;
|
||||
}else{
|
||||
return trackVOList;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String cut(NcrTrackVO trackVO,String designFlowTaskStatus,String flowTaskStatusName) {
|
||||
if(CutEnum.CN.getValue().equals(trackVO.getCut())){
|
||||
if(ReviewResultEnum.INCONFORMITY.getValue().equals(designFlowTaskStatus)){
|
||||
@@ -161,7 +200,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
return flowTaskStatusName;
|
||||
}
|
||||
|
||||
private Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list){
|
||||
public Page getPages(Integer currentPage, Integer pageSize, List<NcrTrackVO> list){
|
||||
Page page =new Page();
|
||||
if(list==null){
|
||||
return null;
|
||||
@@ -197,7 +236,10 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
String initiator,
|
||||
String duty,
|
||||
String name,
|
||||
List<SysUser> sysUserList){
|
||||
List<SysUser> sysUserList,
|
||||
String id,
|
||||
Date createTime){
|
||||
String uuid = UUID.randomUUID().toString().replace("-", "");
|
||||
String initiatorTemp ="";
|
||||
String dutyTemp ="";
|
||||
if(StringUtils.isNotBlank(initiator)){
|
||||
@@ -213,6 +255,9 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
}
|
||||
}
|
||||
NcrTrackVO ncrTrackVO = new NcrTrackVO();
|
||||
ncrTrackVO.setId(id);
|
||||
ncrTrackVO.setUuid(uuid);
|
||||
ncrTrackVO.setCreateTime(createTime);
|
||||
ncrTrackVO.setSerialNumber(serialNumber);//编号
|
||||
ncrTrackVO.setTitle(title);//标题
|
||||
if(StringUtils.isNotBlank(flowType)){
|
||||
@@ -223,7 +268,48 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
ncrTrackVO.setProblemType(problemType);//问题类型
|
||||
ncrTrackVO.setInitiator(initiatorTemp);//发起人
|
||||
ncrTrackVO.setDuty(dutyTemp);//责任人
|
||||
|
||||
return ncrTrackVO;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param response
|
||||
* @param request
|
||||
* @param ncrTrackVO
|
||||
*/
|
||||
@Override
|
||||
public void exportData(HttpServletResponse response, HttpServletRequest request, NcrTrackVO ncrTrackVO) {
|
||||
try {
|
||||
//导出的数据
|
||||
List<NcrTrackVO> dataList = getPageInfo(ncrTrackVO);
|
||||
List<NcrTrackInfoVO> dataInfoList = new ArrayList<>();
|
||||
response.setContentType("application/force-download");
|
||||
Workbook workbook = new XSSFWorkbook();
|
||||
OutputStream excelOS = response.getOutputStream();;
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
//项目详情中的导出(没有相关项目字段)
|
||||
if(StringUtils.isBlank(ncrTrackVO.getProjectLibraryId())){
|
||||
workbook = ExcelExportUtil.exportExcel(exportParams, NcrTrackVO.class, dataList);
|
||||
}else{
|
||||
for (NcrTrackVO trackVO : dataList) {
|
||||
NcrTrackInfoVO ncrTrackInfoVO = new NcrTrackInfoVO();
|
||||
BeanUtils.copyProperties(trackVO,ncrTrackInfoVO);
|
||||
dataInfoList.add(ncrTrackInfoVO);
|
||||
}
|
||||
workbook = ExcelExportUtil.exportExcel(exportParams, NcrTrackInfoVO.class, dataInfoList);
|
||||
}
|
||||
workbook.write(excelOS);
|
||||
excelOS.flush();
|
||||
} catch (IOException e) {
|
||||
if(CutEnum.CN.getValue().equals(ncrTrackVO.getCut())){
|
||||
throw new JeroBootException("下载文件失败");
|
||||
}else{
|
||||
throw new JeroBootException("Failed to download file");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1131,7 +1131,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
throw new JeroBootException("id不能为空");
|
||||
}
|
||||
String cut = (String) params.get("cut");
|
||||
String operatorType = (String) params.get("operatorType");
|
||||
//String operatorType = (String) params.get("operatorType");
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = new ArrayList<>();
|
||||
|
||||
+229
-70
@@ -1,5 +1,7 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -11,7 +13,7 @@ import com.jero.modules.enums.DictCodeEnum;
|
||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
|
||||
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||
import com.jero.modules.project.util.ExcelLangUtils;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysDictItemMapper;
|
||||
import com.jero.modules.system.mapper.SysDictMapper;
|
||||
@@ -20,21 +22,28 @@ import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.util.StringUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
|
||||
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
|
||||
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.HorizontalAlignment;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -62,6 +71,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
private SysDictMapper sysDictMapper;
|
||||
@Autowired
|
||||
private SysDictItemMapper sysDictItemMapper;
|
||||
|
||||
@Value(value = "${jero.path.upload}")
|
||||
private String uploadpath;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -158,14 +171,19 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
public List<ProjectRelatedPersonnel> queryPageList(String projectId) {
|
||||
//查询数据
|
||||
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId);
|
||||
//查询数据里的责任领域
|
||||
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList());
|
||||
//查标签内容里的责任领域数据
|
||||
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
//没有数据->新增所有责任领域,查询
|
||||
if(CollectionUtils.isEmpty(result)){
|
||||
//查标签内容里的责任领域数据
|
||||
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
//新建相关人员表里的责任领域数据
|
||||
if(result.size() != sysDictItemValueList.size()){
|
||||
|
||||
//更新相关人员表里的责任领域数据
|
||||
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
|
||||
for (String sysDictItemValue : sysDictItemValueList) {
|
||||
setDutyTerritoryValue(sysDictItemValue,projectId);
|
||||
if(!dutyTerritory.contains(sysDictItemValue)) {
|
||||
setDutyTerritoryValue(sysDictItemValue, projectId);
|
||||
}
|
||||
}
|
||||
}
|
||||
//重新查询列表
|
||||
@@ -384,7 +402,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
|
||||
/**处理导出数据*/
|
||||
@Override
|
||||
public List<ProjectRelatedPersonnel> disposeExportXls(String id,String projectId){
|
||||
public List<ProjectRelatedPersonnel> disposeExportXls(String id,String projectId,String cut){
|
||||
List<ProjectRelatedPersonnel> records=null;
|
||||
|
||||
if(StringUtils.isNotBlank(id)) {//多个id
|
||||
@@ -392,9 +410,10 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
//id有值,按id查
|
||||
if (id.contains(",")) {//多个id
|
||||
List<String> idList = Arrays.asList(id.split(","));
|
||||
for (String midId : idList) {
|
||||
records = queryById(midId);
|
||||
}
|
||||
QueryWrapper<ProjectRelatedPersonnel> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("id",idList);
|
||||
records = list(queryWrapper);
|
||||
|
||||
} else {//1个id
|
||||
records = queryById(id);
|
||||
}
|
||||
@@ -402,85 +421,224 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
records=queryPageList(projectId);
|
||||
}
|
||||
//id无值,传全部
|
||||
disposeDutyTerritory(records,cut);
|
||||
return records;
|
||||
}
|
||||
public void disposeDutyTerritory(List<ProjectRelatedPersonnel> records,String cut) {
|
||||
//查标签内容里的责任领域数据
|
||||
List<SysDictItem> sysDictItemValueList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
if (CollectionUtils.isNotEmpty(records)) {
|
||||
List<String> dutyTerritory = new ArrayList<>();
|
||||
for (ProjectRelatedPersonnel projectRelatedPersonnel : records) {
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
dutyTerritory = sysDictItemValueList.stream().filter(f -> f.getItemValue().equals(projectRelatedPersonnel.getDutyTerritory())).map(e -> e.getItemText()).collect(Collectors.toList());
|
||||
} else {
|
||||
dutyTerritory = sysDictItemValueList.stream().filter(f -> f.getItemValue().equals(projectRelatedPersonnel.getDutyTerritory())).map(e -> e.getEnName()).collect(Collectors.toList());
|
||||
}
|
||||
projectRelatedPersonnel.setDutyTerritory(dutyTerritory.get(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 根据查到的数据,导出excel
|
||||
*
|
||||
* @param request
|
||||
*/@Override
|
||||
public ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList,
|
||||
Class<ProjectRelatedPersonnel> clazz, String title,String cut) {
|
||||
// Step.1 组装查询条件
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// Step.2 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
ExportParams exportParams=null;
|
||||
*/
|
||||
@Override
|
||||
public void exportDataToXls(String cut, HttpServletResponse response, HttpServletRequest request, List<ProjectRelatedPersonnel> dataList) {
|
||||
OutputStream os = null;
|
||||
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||
String fileOriName = "法规清单导入模板.xls";
|
||||
String filePath = uploadpath + File.separator + fileOriName;
|
||||
try {
|
||||
//中英切换
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
exportParams=new ExportParams(title , null, title);
|
||||
mv.addObject(NormalExcelConstants.CLASS, ExcelLangUtils.chooseLang(clazz, CutEnum.CN.getValue()));
|
||||
}
|
||||
else {
|
||||
exportParams=new ExportParams(title , null, title);
|
||||
mv.addObject(NormalExcelConstants.CLASS, ExcelLangUtils.chooseLang(clazz, CutEnum.EN.getValue()));
|
||||
String titleOne = "";
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
titleOne = "*责任领域,*法规工程师,*工程接口人,*认证工程师,备注";
|
||||
}else{
|
||||
titleOne = "*Responsible Field,*Regulation Engineer,*Engineering Interface,*Homologation Engineer,Comments";
|
||||
}
|
||||
|
||||
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
//创建临时文件夹
|
||||
File nowFile = new File(filePath);
|
||||
if (nowFile.exists()) {
|
||||
nowFile.delete();
|
||||
}
|
||||
nowFile.mkdirs();
|
||||
HSSFSheet sheet = workbook.createSheet("虚拟清单导入模板");
|
||||
sheet.setDefaultColumnWidth(16);//列宽
|
||||
HSSFCellStyle cellStyle = workbook.createCellStyle();
|
||||
cellStyle.setWrapText(true);//自动换行
|
||||
cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
|
||||
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中
|
||||
|
||||
HSSFCellStyle cellStyleTemp = workbook.createCellStyle();
|
||||
cellStyleTemp.setWrapText(true);//自动换行
|
||||
|
||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, dataList);
|
||||
return mv;
|
||||
}catch(Exception e){
|
||||
throw new JeroBootException("出现异常,请重新登录");
|
||||
int startLine = 0;
|
||||
int endLine = 4;
|
||||
//合并单元格
|
||||
CellRangeAddress region1 =
|
||||
new CellRangeAddress(1, 1, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
sheet.addMergedRegion(region1);
|
||||
|
||||
String explainInfo= null;
|
||||
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
explainInfo = "填写说明\n" +
|
||||
"1.导入数据从第四行开始\n" +
|
||||
"2.所有带*号的字段必须填写\n"+
|
||||
"3.认证类型,认证级别,实施类别,交付物类型,发起人,责任人,字段是单选属性,必须和系统中的对应字段选项相匹配\n" +
|
||||
"4.责任领域,字段是多选属性,必须和系统中的对应字段选项相匹配,填写多个时采用英文或中文逗号分割\n" +
|
||||
"5.编号,子标题,WVTA ID,备注,填写文本内容\n" +
|
||||
"6.交付物模板字段为文件属性,填写时需要在本文件同级目录下以标准号为名称建立文件夹,并在文件夹下放置文件,假设在AAA标准号下放置了B.docx,则应填写AAA/B.docx";
|
||||
}else{
|
||||
explainInfo = "filling explanation\n" +
|
||||
"1.import data starts at the fourth line\n" +
|
||||
"2.all fields marked with * must be filled in\n"+
|
||||
"3.certification type,certification level,implementation category,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" +
|
||||
"4.area of responsibility, field is a multi-select attribute and must match the corresponding field in the system. If multiple fields are filled in, separate them by commas (,)\n" +
|
||||
"5.serial number,subtitle,WVTA ID,remarks,Fill in the text\n" +
|
||||
"6.deliverable template,When filling in the field, you need to create a folder in the directory of the same level as the file with the name of the standard number and place the file in the folder. If b. diocx is stored under the AAA standard number, enter AAA/B. diocx";
|
||||
}
|
||||
HSSFRichTextString explain=new HSSFRichTextString(explainInfo);
|
||||
|
||||
//表头
|
||||
Row row = sheet.createRow(0);//开始创建标题行
|
||||
String[] headerArr = titleOne.split(",");
|
||||
for (int m = 0; m < headerArr.length; m++) {
|
||||
row.createCell(m).setCellValue(headerArr[m]);
|
||||
}
|
||||
|
||||
Row rowExplain = sheet.createRow(1);
|
||||
short height = (short) (7 * 252);
|
||||
rowExplain.setHeight((short) height);
|
||||
Cell cell = rowExplain.createCell(0);
|
||||
cell.setCellValue(explain);
|
||||
cell.setCellStyle(cellStyleTemp);
|
||||
|
||||
//设置导出数据
|
||||
if(CollectionUtils.isNotEmpty(dataList)) {
|
||||
for (int j = 2; j < dataList.size()+2; j++) {
|
||||
Row dataRow = sheet.createRow(j);
|
||||
dataRow.createCell(0).setCellValue(dataList.get(j - 2).getDutyTerritory());
|
||||
dataRow.createCell(1).setCellValue(dataList.get(j - 2).getLawEngineerName());
|
||||
dataRow.createCell(2).setCellValue(dataList.get(j - 2).getEngineeringInterfacePersonName());
|
||||
dataRow.createCell(3).setCellValue(dataList.get(j - 2).getCertificationEngineerName());
|
||||
dataRow.createCell(4).setCellValue(dataList.get(j - 2).getRemark());
|
||||
|
||||
}
|
||||
}
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment; filename=\"" + fileOriName + ".xls");
|
||||
response.setContentType("application/force-download");
|
||||
response.flushBuffer();
|
||||
os = response.getOutputStream();
|
||||
workbook.write(os);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new JeroBootException("下载文件失败,请重试");
|
||||
} finally {
|
||||
IOUtils.closeQuietly(os);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出excel模板
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title,String cut){
|
||||
List<ProjectRelatedPersonnel> records=new ArrayList<>();
|
||||
// ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel();
|
||||
// Step.1 组装查询条件
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
ExportParams exportParams=null;
|
||||
// Step.2 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
public void exportTemplate(ProjectRelatedPersonnel projectRelatedPersonnel, HttpServletResponse response, HttpServletRequest request) {
|
||||
OutputStream os = null;
|
||||
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||
String fileOriName = "法规清单导入模板.xls";
|
||||
String filePath = uploadpath + File.separator + fileOriName;
|
||||
try {
|
||||
//中英切换模板
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
//projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getName());
|
||||
exportParams=new ExportParams(title , null, title);
|
||||
String titleOne = "";
|
||||
if(CutEnum.CN.getValue().equals(projectRelatedPersonnel.getCut())){
|
||||
titleOne = "*责任领域,*法规工程师,*工程接口人,*认证工程师,备注";
|
||||
}else{
|
||||
//projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getValue());
|
||||
exportParams=new ExportParams(title , null, title);
|
||||
titleOne = "*Responsible Field,*Regulation Engineer,*Engineering Interface,*Homologation Engineer,Comments";
|
||||
}
|
||||
//查标签内容里的责任领域数据
|
||||
List<String> dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
//新建相关人员表里的责任领域数据
|
||||
if (CollectionUtils.isNotEmpty(dictItemNameList)) {
|
||||
for (String dictItemName : dictItemNameList) {
|
||||
ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel();
|
||||
projectRelatedPersonnel.setDutyTerritory(dictItemName);
|
||||
records.add(projectRelatedPersonnel);
|
||||
}
|
||||
|
||||
//创建临时文件夹
|
||||
File nowFile = new File(filePath);
|
||||
if (nowFile.exists()) {
|
||||
nowFile.delete();
|
||||
}
|
||||
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(NormalExcelConstants.CLASS, clazz);//!!!!这里设置中英切换
|
||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST,records);
|
||||
return mv;
|
||||
}catch(Exception e){
|
||||
throw new JeroBootException("出现异常,请重新登录");
|
||||
nowFile.mkdirs();
|
||||
HSSFSheet sheet = workbook.createSheet("虚拟清单导入模板");
|
||||
sheet.setDefaultColumnWidth(16);//列宽
|
||||
HSSFCellStyle cellStyle = workbook.createCellStyle();
|
||||
cellStyle.setWrapText(true);//自动换行
|
||||
cellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中
|
||||
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中
|
||||
|
||||
HSSFCellStyle cellStyleTemp = workbook.createCellStyle();
|
||||
cellStyleTemp.setWrapText(true);//自动换行
|
||||
|
||||
int startLine = 0;
|
||||
int endLine = 4;
|
||||
//合并单元格
|
||||
CellRangeAddress region1 =
|
||||
new CellRangeAddress(1, 1, startLine, endLine); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
sheet.addMergedRegion(region1);
|
||||
|
||||
String explainInfo= null;
|
||||
|
||||
if(CutEnum.CN.getValue().equals(projectRelatedPersonnel.getCut())){
|
||||
explainInfo = "填写说明\n" +
|
||||
"1.导入数据从第四行开始\n" +
|
||||
"2.所有带*号的字段必须填写\n"+
|
||||
"3.认证类型,认证级别,实施类别,交付物类型,发起人,责任人,字段是单选属性,必须和系统中的对应字段选项相匹配\n" +
|
||||
"4.责任领域,字段是多选属性,必须和系统中的对应字段选项相匹配,填写多个时采用英文或中文逗号分割\n" +
|
||||
"5.编号,子标题,WVTA ID,备注,填写文本内容\n" +
|
||||
"6.交付物模板字段为文件属性,填写时需要在本文件同级目录下以标准号为名称建立文件夹,并在文件夹下放置文件,假设在AAA标准号下放置了B.docx,则应填写AAA/B.docx";
|
||||
}else{
|
||||
explainInfo = "filling explanation\n" +
|
||||
"1.import data starts at the fourth line\n" +
|
||||
"2.all fields marked with * must be filled in\n"+
|
||||
"3.certification type,certification level,implementation category,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" +
|
||||
"4.area of responsibility, field is a multi-select attribute and must match the corresponding field in the system. If multiple fields are filled in, separate them by commas (,)\n" +
|
||||
"5.serial number,subtitle,WVTA ID,remarks,Fill in the text\n" +
|
||||
"6.deliverable template,When filling in the field, you need to create a folder in the directory of the same level as the file with the name of the standard number and place the file in the folder. If b. diocx is stored under the AAA standard number, enter AAA/B. diocx";
|
||||
}
|
||||
HSSFRichTextString explain=new HSSFRichTextString(explainInfo);
|
||||
|
||||
//表头
|
||||
Row row = sheet.createRow(0);//开始创建标题行
|
||||
String[] headerArr = titleOne.split(",");
|
||||
for (int m = 0; m < headerArr.length; m++) {
|
||||
row.createCell(m).setCellValue(headerArr[m]);
|
||||
}
|
||||
|
||||
Row rowExplain = sheet.createRow(1);
|
||||
short height = (short) (7 * 252);
|
||||
rowExplain.setHeight((short) height);
|
||||
Cell cell = rowExplain.createCell(0);
|
||||
cell.setCellValue(explain);
|
||||
cell.setCellStyle(cellStyleTemp);
|
||||
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment; filename=\"" + fileOriName + ".xls");
|
||||
response.setContentType("application/force-download");
|
||||
response.flushBuffer();
|
||||
os = response.getOutputStream();
|
||||
workbook.write(os);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new JeroBootException("下载文件失败,请重试");
|
||||
} finally {
|
||||
IOUtils.closeQuietly(os);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导入excel数据
|
||||
*
|
||||
@@ -543,7 +701,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
|
||||
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
|
||||
//查标签内容里的责任领域数据
|
||||
//List<String> dictItemNameList = sysDictMapper.queryDictNameByCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
if(!sysDictItemValueList.contains(projectRelatedPersonnel.getDutyTerritory())){
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
@@ -628,7 +785,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
|
||||
//工程接口人
|
||||
List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>();
|
||||
List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(projectRelatedPersonnel.getEngineeringInterfacePersonName())){
|
||||
List<String> engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(","));
|
||||
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList) && StringUtils.isNotBlank(engineeringInterfacePersonNameList.get(0))) {
|
||||
@@ -788,4 +945,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
return certificationEngineerUsers;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+13
-1
@@ -10,6 +10,7 @@ import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.*;
|
||||
import com.jero.modules.project.enums.*;
|
||||
import com.jero.modules.project.mapper.*;
|
||||
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
||||
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
|
||||
import com.jero.modules.project.util.SendMessageUtils;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
@@ -52,6 +53,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Autowired
|
||||
private IConditionAssessmentEOService conditionAssessmentEOService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -77,7 +80,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
public void editById(ProjectTaskInventoryEO projectTaskInventoryEO) {
|
||||
Date now = new Date();
|
||||
projectTaskInventoryEO.setUpdateTime(now);
|
||||
saveOrUpdate(projectTaskInventoryEO);
|
||||
this.baseMapper.updateById(projectTaskInventoryEO);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -322,6 +325,9 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
boolean isHomologationEngineer = StringUtils.equals(projectTaskInventoryEO.getHomologationEngineerId(),currentUser.getId());
|
||||
//是否是studio
|
||||
boolean isStudio = StringUtils.equals(ProjectRoleEnum.STUDIO_ENGINEER.getValue(),String.valueOf(isProjectRole));
|
||||
if(isStudio){
|
||||
roleCode = ProjectRoleEnum.STUDIO_ENGINEER.getValue();
|
||||
}
|
||||
if(isRegulationOwner){
|
||||
roleCode = ProjectRoleEnum.REGULATI_ENGINEER.getValue();
|
||||
}
|
||||
@@ -332,6 +338,12 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
roleCode = ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue();
|
||||
}
|
||||
|
||||
ConditionAssessmentEO projectStatusAssess = conditionAssessmentEOService.getProjectStatusAssess(projectTaskInventoryEO.getProjectLawsInventoryId(),roleCode,currentUser);
|
||||
if(projectStatusAssess != null){
|
||||
projectTaskInventoryEO.setProjectStatusAssess(projectStatusAssess.getConditionAssessment());
|
||||
projectTaskInventoryEO.setProjectStatusAssessRemark(projectStatusAssess.getRemark());
|
||||
}
|
||||
|
||||
projectTaskInventoryEO.setRoleCode(roleCode);
|
||||
|
||||
String designPid = "";
|
||||
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
package com.jero.modules.project.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 项目详情中--项目未符合项跟踪(用于区分导出(项目详情中的未符合项导出没有相关项目字段))
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-04-29
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class NcrTrackInfoVO implements Serializable {
|
||||
|
||||
|
||||
private String id;
|
||||
|
||||
private String uuid;
|
||||
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private java.util.Date createTime;
|
||||
|
||||
//中英文切换
|
||||
private String cut;
|
||||
|
||||
//编号
|
||||
@Excel(name = "编号", width = 20)
|
||||
private String serialNumber;
|
||||
|
||||
//标题
|
||||
@Excel(name = "标题", width = 20)
|
||||
private String title;
|
||||
|
||||
//责任领域 duty_territory
|
||||
@Dict(dicCode ="duty_territory")
|
||||
@Excel(name = "责任领域", width = 20,dicCode ="duty_territory")
|
||||
private String dutyTerritory;
|
||||
|
||||
//流程类型
|
||||
@Excel(name = "流程类型", width = 20)
|
||||
private String flowType;
|
||||
|
||||
//目标市场
|
||||
private String targetMarket;
|
||||
|
||||
//问题类型
|
||||
@Excel(name = "问题类型", width = 20)
|
||||
private String problemType;
|
||||
|
||||
//发起人
|
||||
@Excel(name = "发起人", width = 20)
|
||||
private String initiator;
|
||||
|
||||
//责任人
|
||||
@Excel(name = "责任人", width = 20)
|
||||
private String duty;
|
||||
|
||||
//项目id
|
||||
private String projectLibraryId;
|
||||
//项目id
|
||||
private String inconformity;
|
||||
//项目id
|
||||
private String track;
|
||||
|
||||
//设计符合性确认 design_p_id
|
||||
private String designPId;
|
||||
//PreHomo确认 prehomo_p_id
|
||||
private String prehomoPId;
|
||||
//验证符合性确认 verify_p_id
|
||||
private String verifyPId;
|
||||
|
||||
|
||||
|
||||
//设计发起人 design_initiator_id
|
||||
private String designInitiatorId;
|
||||
//pre发起人 prehomo_initiator_id
|
||||
private String prehomoInitiatorId;
|
||||
//验证发起人 verify_initiator_id
|
||||
private String verifyInitiatorId;
|
||||
|
||||
|
||||
//设计责任人 design_duty_id
|
||||
private String designDutyId;
|
||||
//pre责任人 prehomo_duty_id
|
||||
private String prehomoDutyId;
|
||||
//验证责任人 verify_duty_id
|
||||
private String verifyDutyId;
|
||||
|
||||
|
||||
//设计问题类型 design_flow_task_status
|
||||
private String designFlowTaskStatus;
|
||||
//pre问题类型 prehomo_flow_task_status
|
||||
private String prehomoFlowTaskStatus;
|
||||
//验证问题类型 verify_flow_task_status
|
||||
private String verifyFlowTaskStatus;
|
||||
|
||||
private List<NcrTrackVO> ncrTrackVOList;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+30
-4
@@ -1,15 +1,20 @@
|
||||
package com.jero.modules.project.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 法规清单评论表
|
||||
* @Description: 项目未符合项跟踪
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-04-29
|
||||
* @Version: V1.0
|
||||
@@ -19,35 +24,54 @@ import java.io.Serializable;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class NcrTrackVO implements Serializable {
|
||||
|
||||
|
||||
private String id;
|
||||
|
||||
//用于导出时勾选数据
|
||||
private String uuid;
|
||||
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private java.util.Date createTime;
|
||||
|
||||
//中英文切换
|
||||
private String cut;
|
||||
|
||||
//编号
|
||||
@Excel(name = "编号", width = 20)
|
||||
private String serialNumber;
|
||||
|
||||
//标题
|
||||
@Excel(name = "标题", width = 20)
|
||||
private String title;
|
||||
|
||||
//流程类型
|
||||
private String flowType;
|
||||
|
||||
//责任领域 duty_territory
|
||||
@Dict(dicCode ="duty_territory")
|
||||
@Excel(name = "责任领域", width = 20,dicCode ="duty_territory")
|
||||
private String dutyTerritory;
|
||||
|
||||
//流程类型
|
||||
@Excel(name = "流程类型", width = 20)
|
||||
private String flowType;
|
||||
|
||||
//相关项目
|
||||
@Excel(name = "相关项目", width = 20)
|
||||
private String projectName;
|
||||
|
||||
//目标市场
|
||||
private String targetMarket;
|
||||
|
||||
//问题类型
|
||||
@Excel(name = "问题类型", width = 20)
|
||||
private String problemType;
|
||||
|
||||
//发起人
|
||||
@Excel(name = "发起人", width = 20)
|
||||
private String initiator;
|
||||
|
||||
//责任人
|
||||
@Excel(name = "责任人", width = 20)
|
||||
private String duty;
|
||||
|
||||
//项目id
|
||||
@@ -89,6 +113,8 @@ public class NcrTrackVO implements Serializable {
|
||||
//验证问题类型 verify_flow_task_status
|
||||
private String verifyFlowTaskStatus;
|
||||
|
||||
private List<NcrTrackVO> ncrTrackVOList;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -480,10 +480,10 @@ module.exports = {
|
||||
feedback: 'feedback',
|
||||
approvalHistory: 'cpproval history',
|
||||
cannotExceed500characters: 'cannot exceed 500 characters',
|
||||
accord: 'conformity',
|
||||
nonConformity: 'non conformity',
|
||||
Tracked: 'to be tracked',
|
||||
notInvolved: 'Not involved',
|
||||
accord: 'Compliance',
|
||||
nonConformity: 'Non-Compliance',
|
||||
Tracked: 'To be tracked',
|
||||
notInvolved: 'NA',
|
||||
Operator: 'operator',
|
||||
role: 'role',
|
||||
operationContent: 'operation content',
|
||||
@@ -786,10 +786,10 @@ module.exports = {
|
||||
adopt: 'adopt',
|
||||
reviewedByThePersonInCharge: 'Reviewed by the person in charge',
|
||||
onlyDeleted: 'Only data whose list confirmation status is not initiated or rejected can be deleted',
|
||||
experimentPassed: 'Experiment passed',
|
||||
experimentFailed: 'Experiment failed',
|
||||
toBeStarted: 'To be started',
|
||||
inProgress: 'In Progress',
|
||||
experimentPassed: 'Test passed',
|
||||
experimentFailed: 'Test failed',
|
||||
toBeStarted: 'Not start',
|
||||
inProgress: 'In progress',
|
||||
green: 'green',
|
||||
red: 'red',
|
||||
blue: 'blue',
|
||||
@@ -808,4 +808,13 @@ module.exports = {
|
||||
pleaseConformityVerification:'Please complete the data of Conformity verification',
|
||||
virtualListDetails:'Virtual list details',
|
||||
maintainVirtualList:'Maintain virtual list',
|
||||
reasonsForRejection:'Reasons for rejection',
|
||||
inconformity:'Non-Compliance',
|
||||
toTrack:'To be tracked',
|
||||
Launch:'Launch',
|
||||
maintainProgress:'Maintain',
|
||||
redSchedule:'Red: not in conformity, and there is no acceptable scheme and schedule',
|
||||
yellowSchedule:'Yellow: non conformance / to be tracked, with acceptable scheme and schedule',
|
||||
greenRequirements:'Green: confirm that it meets or meets the current requirements',
|
||||
blueUndeterminedState:'Blue: undetermined state',
|
||||
}
|
||||
@@ -813,4 +813,13 @@ module.exports = {
|
||||
pleaseConformityVerification: '请补全验证符合性确认的数据',
|
||||
virtualListDetails:'虚拟清单详情',
|
||||
maintainVirtualList:'维护虚拟清单',
|
||||
reasonsForRejection:'驳回原因',
|
||||
inconformity:'不符合',
|
||||
toTrack:'待追踪',
|
||||
Launch:'发起',
|
||||
maintainProgress:'维护进度',
|
||||
redSchedule:'红:不符合,且无可接受的方案和时间表',
|
||||
yellowSchedule:'黄:不符合/待追踪,有可接受的方案和时间表',
|
||||
greenRequirements:'绿:确认符合或满足当前要求',
|
||||
blueUndeterminedState:'蓝:未判断状态',
|
||||
}
|
||||
@@ -46,8 +46,8 @@
|
||||
<div v-if='item.type==="file"'>
|
||||
<a-button type="primary" class="button-text inputWid"
|
||||
@click="clickButtonToUpload('fileTemplateConnectId')">
|
||||
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
|
||||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
{{ (item.controlValue === 'null' || item.controlValue === '' ||
|
||||
item.controlValue == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -104,8 +104,8 @@
|
||||
<div v-if='item.type==="file"'>
|
||||
<a-button type="primary" class="button-text inputWid"
|
||||
@click="clickButtonToUpload('fileTemplateConnectId')">
|
||||
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
|
||||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
{{ (item.controlValue === 'null' || item.controlValue === '' ||
|
||||
item.controlValue == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -125,8 +125,8 @@
|
||||
<div v-if='item.type==="file"'>
|
||||
<a-button type="primary" class="button-text inputWid"
|
||||
@click="clickButtonToUpload('fileTemplateConnectId')">
|
||||
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
|
||||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
{{ (item.controlValue === 'null' || item.controlValue === '' ||
|
||||
item.controlValue == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -146,8 +146,8 @@
|
||||
<div v-if='item.type==="file"'>
|
||||
<a-button type="primary" class="button-text inputWid"
|
||||
@click="clickButtonToUpload('fileTemplateConnectId')">
|
||||
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
|
||||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
{{ (item.controlValue === 'null' || item.controlValue === '' ||
|
||||
item.controlValue == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -173,8 +173,8 @@
|
||||
<div v-if='item.type==="file"'>
|
||||
<a-button type="primary" class="button-text inputWid"
|
||||
@click="clickButtonToUpload('fileTemplateConnectId')">
|
||||
{{ (formInline.fileTemplateConnectId === 'null' || formInline.fileTemplateConnectId === '' ||
|
||||
formInline.fileTemplateConnectId == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
{{ (item.controlValue === 'null' || item.controlValue === '' ||
|
||||
item.controlValue == null) ? $t('clickUpload') : $t('viewUploadedFiles')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -209,8 +209,27 @@ export default {
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
uploadSuccess() {
|
||||
console.log('pppp')
|
||||
uploadSuccess(data) {
|
||||
let attIdList = []
|
||||
if(data && data.length>0){
|
||||
data.map(item => {
|
||||
attIdList.push(item.id || data.name)
|
||||
})
|
||||
this.detailDate.list.forEach((item, index) => {
|
||||
if(item.type === 'file') {
|
||||
item.controlValue = attIdList.join(',')
|
||||
}
|
||||
})
|
||||
/** 赋值给当前对应的表单文件 */
|
||||
// this.formInline[this.uploadName] = attIdList.join(',')
|
||||
// this.formInline = { ...this.formInline }
|
||||
// console.log('form',this.formInline)
|
||||
}else{
|
||||
// this.formInline[this.uploadName]=''
|
||||
// this.formInline = { ...this.formInline }
|
||||
// console.log('form',this.formInline)
|
||||
|
||||
}
|
||||
},
|
||||
clickButtonToUpload() {
|
||||
this.$refs.uploadFile.visible = true
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
<a-col :span='9'>
|
||||
<a-form-model-item ref='region' :label="$t('NiONumber')" prop='region'>
|
||||
<a-input
|
||||
v-model='form.paramsTemplateName' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />
|
||||
v-model='form.nioNumber' :placeholder="$t('pleaseEnter')+$t('NiONumber')" />
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
<a-col :span='9'>
|
||||
<a-form-model-item ref='paramsTemplateName' :label="$t('ParameterName')" prop='paramsTemplateName'>
|
||||
<a-input
|
||||
v-model='form.paramsTemplateName' :placeholder="$t('pleaseEnter')+$t('ParameterName')" />
|
||||
v-model='form.paramsName' :placeholder="$t('pleaseEnter')+$t('ParameterName')" />
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
<a-col :span='6'>
|
||||
@@ -31,7 +31,7 @@
|
||||
<a-col :span='9'>
|
||||
<a-form-model-item ref='region' :label="$t('areaOfResponsibility')" prop='region'>
|
||||
<a-form-model-item class='itemModel' prop='region'>
|
||||
<j-dict-select-tag class='box-input' v-model='form.region'
|
||||
<j-dict-select-tag class='box-input' v-model='form.dutyTerritory'
|
||||
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange='false' :dictCode="'duty_territory'" />
|
||||
@@ -83,26 +83,24 @@ export default {
|
||||
loading: false,
|
||||
editId: '',
|
||||
columns: [
|
||||
// {
|
||||
// title: this.$t('NiONumber'),
|
||||
// dataIndex: 'region_dictText',
|
||||
// key: 'showArea',
|
||||
// align: 'center',
|
||||
// ellipsis: true
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('ParameterName'),
|
||||
// align: 'center',
|
||||
// dataIndex: 'paramsTemplateName',
|
||||
// ellipsis: true
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('areaOfResponsibility'),
|
||||
// dataIndex: 'region_dictText',
|
||||
// key: 'showArea',
|
||||
// align: 'center',
|
||||
// ellipsis: true
|
||||
// }
|
||||
{
|
||||
title: this.$t('NiONumber'),
|
||||
dataIndex: 'nioNumber',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('ParameterName'),
|
||||
align: 'center',
|
||||
dataIndex: 'paramsName',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
dataIndex: 'dutyTerritory_dictText',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
}
|
||||
],
|
||||
newVisible: false,
|
||||
labelCol: {
|
||||
@@ -152,7 +150,6 @@ export default {
|
||||
getAction(`params/collectManifest/paramsInfoList`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.areaTable = [...res.result]
|
||||
this.total = res.result.total
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
@@ -184,63 +181,30 @@ export default {
|
||||
handleSubmit() {
|
||||
if (this.selectedRowKeys.length == 0) {
|
||||
this.$message.warning(this.$t('pleaseSelectData'))
|
||||
} else if (this.selectedRowKeys.length > 1) {
|
||||
this.$message.warning(this.$t('OnlyOneSelected'))
|
||||
} else {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.flag = true
|
||||
this.spinLoading = true
|
||||
// 新增編輯之前 判断 标题唯一
|
||||
getAction(`params/manifest/verifyTitle?projectId=${this.$route.query.id}
|
||||
&title=${this.templatetitle}`, {})
|
||||
.then(res => {
|
||||
if (res.success) {
|
||||
let postDate = {
|
||||
title: this.templatetitle,
|
||||
paramsTemplateId: this.rowId || this.selectedRowKeysDate[0].id,
|
||||
paramsTemplatePublishVersion: this.version || this.selectedRowKeysDate[0].version,
|
||||
projectId: this.projectId
|
||||
}
|
||||
if (this.rowId) {
|
||||
//编辑
|
||||
postAction(`params/manifest/edit`, postDate).then(res => {
|
||||
if (res.success) {
|
||||
this.newVisible = false
|
||||
this.$emit('areaVisible', false)
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}
|
||||
).finally(() => {
|
||||
this.flag = false
|
||||
this.spinLoading = false
|
||||
this.newVisible = false
|
||||
})
|
||||
//新增
|
||||
let postDate = {
|
||||
paramsInfoPublishEOList: this.selectedRowKeysDate,
|
||||
paramsManifestId: this.paramsManifest.id,
|
||||
projectId: this.$route.query.id
|
||||
}
|
||||
postAction(`params/collectManifest/add`, postDate).then(res => {
|
||||
if (res.success) {
|
||||
this.newVisible = false
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
} else {
|
||||
//新增
|
||||
postAction(`params/manifest/add`, postDate).then(res => {
|
||||
if (res.success) {
|
||||
this.newVisible = false
|
||||
this.$emit('areaVisible', false)
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}
|
||||
).finally(() => {
|
||||
this.flag = false
|
||||
this.spinLoading = false
|
||||
this.newVisible = false
|
||||
})
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
).finally(() => {
|
||||
this.flag = false
|
||||
this.spinLoading = false
|
||||
this.newVisible = false
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
@change="tableOnChange"
|
||||
@onHeaderRow='onHeaderRow'
|
||||
>
|
||||
<span slot="operation" slot-scope="record">
|
||||
<a v-for="(ol,index) in OperationList"
|
||||
@@ -76,13 +77,8 @@ export default {
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
|
||||
getTextWith(text, fontStyle) {
|
||||
// var canvas = document.createElement('canvas')
|
||||
// var context = canvas.getContext('2d')
|
||||
// context.font = fontStyle || '14px' // 设置字体样式
|
||||
// var dimension = context.measureText(text)
|
||||
// return dimension.width + 40
|
||||
onHeaderRow(column, index) {
|
||||
console.log(column, index)
|
||||
},
|
||||
getData() {
|
||||
let params = {
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:columns="columns"
|
||||
@customHeaderRow='customHeaderRow'
|
||||
>
|
||||
<!-- @change="tableOnChange"-->
|
||||
<span slot="projectName" slot-scope="text,record">
|
||||
@@ -152,12 +153,12 @@ export default {
|
||||
{
|
||||
title: this.$t('ParameterName'),
|
||||
align: 'center',
|
||||
dataIndex: 'paramsName'
|
||||
dataIndex: 'paramsName',
|
||||
},
|
||||
{
|
||||
title: this.$t('ParameterDescription'),
|
||||
align: 'center',
|
||||
dataIndex: 'description'
|
||||
dataIndex: 'description',
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
@@ -185,14 +186,12 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// tableOnChange(pagination, filters, sorter) {
|
||||
// console.log(pagination,'pagination')
|
||||
// console.log(filters,'filters')
|
||||
// console.log(sorter,'sorter')
|
||||
// // this.orderBy = sorter.order == 'ascend' ? '1' : '2'
|
||||
// // this.orderByField = sorter.columnKey
|
||||
// this.getList()
|
||||
// },
|
||||
customHeaderRow(val,kk) {
|
||||
console.log(val,kk)
|
||||
},
|
||||
onClick(val,kk) {
|
||||
console.log(val,kk)
|
||||
},
|
||||
//导出
|
||||
handleExport() {
|
||||
let _tt = {
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
:disabled="$route.query.TaskKey == 'fqrsh'?true:false"
|
||||
class="box-input"
|
||||
v-model="formInline.reviewResult">
|
||||
<a-radio value="conformity">
|
||||
<a-radio value="Compliance">
|
||||
{{$t('accord')}}
|
||||
</a-radio>
|
||||
<a-radio value="inconformity">
|
||||
<a-radio value="Non-Compliance">
|
||||
{{$t('nonConformity')}}
|
||||
</a-radio>
|
||||
<a-radio value="to track">
|
||||
<a-radio value="To be tracked">
|
||||
{{$t('Tracked')}}
|
||||
</a-radio>
|
||||
<a-radio value="uninvolved">
|
||||
<a-radio value="NA">
|
||||
{{$t('notInvolved')}}
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
|
||||
@@ -34,10 +34,12 @@
|
||||
dataSource: [],
|
||||
loading: false,
|
||||
reviewResult: {
|
||||
'conformity': this.$t('accord'),
|
||||
'inconformity': this.$t('nonConformity'),
|
||||
'to track': this.$t('Tracked'),
|
||||
'uninvolved': this.$t('notInvolved')
|
||||
'launch':this.$t('Launch'),
|
||||
'Compliance': this.$t('accord'),
|
||||
'Non-Compliance': this.$t('nonConformity'),
|
||||
'To be tracked': this.$t('Tracked'),
|
||||
'NA': this.$t('notInvolved'),
|
||||
'No rating': this.$t('toBeConfirmed')
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
},
|
||||
isAdopt() {
|
||||
if (this.$route.query.TaskKey == 'fqrsh') {
|
||||
if (this.queryBy.reviewResult == 'conformity' || this.queryBy.reviewResult == 'uninvolved') {
|
||||
if (this.queryBy.reviewResult == 'Compliance' || this.queryBy.reviewResult == 'NA') {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -225,7 +225,7 @@
|
||||
terminationProcess(operatorTime) {
|
||||
this.textLoading = this.$t('terminationProcessing')
|
||||
this.loading = true
|
||||
this.queryBy.reviewResult = 'termination of task'
|
||||
this.queryBy.reviewResult = 'Termination of task'
|
||||
this.completeTask({ flag: 2, operatorTime: operatorTime })
|
||||
},
|
||||
adopt(operatorTime) {
|
||||
@@ -240,10 +240,10 @@
|
||||
sendBack(operatorTime) {
|
||||
this.textLoading = this.$t('Returning')
|
||||
this.loading = true
|
||||
if (this.queryBy.reviewResult == 'inconformity' || this.queryBy.reviewResult == 'to track') {
|
||||
if (this.queryBy.reviewResult == 'Non-Compliance' || this.queryBy.reviewResult == 'To be tracked') {
|
||||
|
||||
} else {
|
||||
this.queryBy.reviewResult = 'to be confirmed'
|
||||
this.queryBy.reviewResult = 'No rating'
|
||||
}
|
||||
this.completeTask({ flag: 1, operatorTime: operatorTime })
|
||||
},
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="doc-detail">
|
||||
<!-- 认证参数收集——清单信息-->
|
||||
<div class="Virtual-detail-header" style="position: fixed;top: 0">
|
||||
<div class="Virtual-detail-title">
|
||||
<span style="line-height: 74px;display: inline-block;float: left">
|
||||
@@ -98,6 +99,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.textColor()
|
||||
// 清单信息
|
||||
this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-page-search-wrapper">
|
||||
<!-- 认证参数收集-参数项收集清单-10控件-->
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
@@ -119,10 +120,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%">
|
||||
<!-- 表格-->
|
||||
<!-- 表格-10控件-->
|
||||
<table-collection ref="CollectionTabel" :url='url' :paramsManifest='paramsManifest' @rowValue='rowValue' @value='value'/>
|
||||
</div>
|
||||
<!-- 添加 -->
|
||||
<!-- 添加--->
|
||||
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='750px' :footer="null">
|
||||
<parameter-library v-if='areaVisible' :paramsManifest='paramsManifest'/>
|
||||
</a-modal>
|
||||
@@ -228,9 +229,6 @@ export default {
|
||||
},
|
||||
mounted() {},
|
||||
methods:{
|
||||
addselectedRowKeys() {
|
||||
console.log('llll')
|
||||
},
|
||||
// 表格所选中得行内容
|
||||
rowValue(val) {
|
||||
this.selectedRowKeysValue = val
|
||||
@@ -275,7 +273,7 @@ export default {
|
||||
|
||||
},
|
||||
handleCody() {
|
||||
|
||||
console.log(this.paramsManifest,'paramsManifestparamsManifestparamsManifestparamsManifest')
|
||||
},
|
||||
searchQuery() {
|
||||
this.pageNo = 1
|
||||
@@ -294,7 +292,7 @@ export default {
|
||||
content: _this.$t('ConfirmBatchDeletion'),
|
||||
onOk() {
|
||||
axios({
|
||||
url: '/jero-boot/params/paramsInfo/deleteBatch',
|
||||
url: '/jero-boot/params/collectManifest/deleteBatch',
|
||||
method: 'post',
|
||||
data: param,
|
||||
transformRequest: [function (data) {
|
||||
@@ -334,7 +332,10 @@ export default {
|
||||
SizeChange() {
|
||||
|
||||
},
|
||||
}
|
||||
},
|
||||
// watch: {
|
||||
//
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -67,7 +67,9 @@
|
||||
<div class="content" v-if="result.designTaskStatus" @click="verifyTaskClick(result,1,false)">
|
||||
<span class="box-content">{{$t('Deadline')}}: {{result.designDueDate}}</span><br/>
|
||||
<span class="box-content">{{$t('ProcessStatus')}}: {{result.designStatus}}</span><br/>
|
||||
<span class="box-content-color" :class="color[result.designFlowTaskStatus]">
|
||||
<span class="box-content-color"
|
||||
:style="{'width':long=='zh-cn'?'78px' : '138px'}"
|
||||
:class="color[result.designFlowTaskStatus]">
|
||||
{{statusText[result.designFlowTaskStatus]}}
|
||||
</span>
|
||||
</div>
|
||||
@@ -79,7 +81,9 @@
|
||||
<div class="content" v-if="result.prehomoTaskStatus" @click="verifyTaskClick(result,2,false)">
|
||||
<span class="box-content">{{$t('Deadline')}}: {{result.prehomoDueDate}}</span><br/>
|
||||
<span class="box-content">{{$t('ProcessStatus')}}: {{result.prehomoStatus}}</span><br/>
|
||||
<span class="box-content-color" :class="color[result.prehomoFlowTaskStatus]">
|
||||
<span class="box-content-color"
|
||||
:style="{'width':long=='zh-cn'?'78px' : '138px'}"
|
||||
:class="color[result.prehomoFlowTaskStatus]">
|
||||
{{statusText[result.prehomoFlowTaskStatus]}}
|
||||
</span>
|
||||
</div>
|
||||
@@ -91,7 +95,9 @@
|
||||
<div class="content" v-if="result.verifyTaskStatus" @click="verifyTaskClick(result,3,false)">
|
||||
<span class="box-content">{{$t('Deadline')}}: {{result.verifyDueDate}}</span><br/>
|
||||
<span class="box-content">{{$t('ProcessStatus')}}: {{result.verifyStatus}}</span><br/>
|
||||
<span class="box-content-color" :class="color[result.verifyFlowTaskStatus]">
|
||||
<span class="box-content-color"
|
||||
:style="{'width':long=='zh-cn'?'78px' : '138px'}"
|
||||
:class="color[result.verifyFlowTaskStatus]">
|
||||
{{statusText[result.verifyFlowTaskStatus]}}
|
||||
</span>
|
||||
</div>
|
||||
@@ -100,19 +106,24 @@
|
||||
</div>
|
||||
</div>
|
||||
<div slot="CertificationProgress" slot-scope="text,result">
|
||||
<span class="box-content-Progress box-content-cou" @click="CertificationProgressClick(result)">
|
||||
实验通过
|
||||
<span class="box-content-Progress box-content-cou"
|
||||
:style="{'width':long=='zh-cn'?'88px' : '108px'}"
|
||||
:class="CertificationColor[result.certificationProgress]"
|
||||
@click="CertificationProgressClick(result)"
|
||||
>
|
||||
{{result.certificationProgress_dictText ? result.certificationProgress_dictText : $t('maintainProgress')}}
|
||||
</span>
|
||||
</div>
|
||||
<div slot="CurrentProjectStatusEvaluation" slot-scope="text,result">
|
||||
<div class="Current-color box-content-cou" @click="CurrentProjectClick(result)">
|
||||
<div class="Current-color-box"></div>
|
||||
<div class="Current-color box-content-cou" :style="{'background':CurrentColor[result.projectStatusAssess]}"
|
||||
@click="CurrentProjectClick(result)">
|
||||
<div class="Current-color-box" :style="{'background':CurrentColorBox[result.projectStatusAssess]}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</a-table>
|
||||
</div>
|
||||
<certificationDirectory :url="url" ref="certificationDirectoryRef"/>
|
||||
<TaskListModel ref="TaskListModelRef"/>
|
||||
<TaskListModel @TaskListModelList="TaskListModelList" ref="TaskListModelRef"/>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
@@ -143,30 +154,34 @@
|
||||
title: this.$t('standardInformation'),
|
||||
align: 'center',
|
||||
dataIndex: 'standard',
|
||||
width: 200,
|
||||
width: 202,
|
||||
scopedSlots: { customRender: 'standardInformation' }
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'areaOfResponsibility',
|
||||
scopedSlots: { customRender: 'areaOfResponsibility' }
|
||||
},
|
||||
{
|
||||
title: this.$t('confirmationOfDesignConformity'),
|
||||
align: 'center',
|
||||
width: 240,
|
||||
dataIndex: 'confirmationOfDesignConformity',
|
||||
scopedSlots: { customRender: 'confirmationOfDesignConformity' }
|
||||
},
|
||||
{
|
||||
title: this.$t('PrehomoConfirmation'),
|
||||
align: 'center',
|
||||
width: 240,
|
||||
dataIndex: 'PrehomoConfirmation',
|
||||
scopedSlots: { customRender: 'PrehomoConfirmation' }
|
||||
},
|
||||
{
|
||||
title: this.$t('verificationAndConformityconfirmation'),
|
||||
align: 'center',
|
||||
width: 240,
|
||||
dataIndex: 'verificationAndConformityconfirmation',
|
||||
scopedSlots: { customRender: 'verificationAndConformityconfirmation' }
|
||||
},
|
||||
@@ -192,30 +207,49 @@
|
||||
'showData': '展示数据'
|
||||
},
|
||||
color: {
|
||||
'conformity': 'accordColor',
|
||||
'inconformity': 'nonConformityColor',
|
||||
'to track': 'TrackedColor',
|
||||
'uninvolved': 'notInvolvedColor',
|
||||
'to be confirmed': 'submittedColor'
|
||||
'Compliance': 'accordColor',
|
||||
'Non-Compliance': 'nonConformityColor',
|
||||
'To be tracked': 'TrackedColor',
|
||||
'NA': 'notInvolvedColor',
|
||||
'No rating': 'submittedColor'
|
||||
},
|
||||
statusText: {
|
||||
'conformity': this.$t('accord'),
|
||||
'inconformity': this.$t('nonConformity'),
|
||||
'to track': this.$t('Tracked'),
|
||||
'uninvolved': this.$t('notInvolved'),
|
||||
'to be confirmed': this.$t('toBeConfirmed')
|
||||
'Compliance': this.$t('accord'),
|
||||
'Non-Compliance': this.$t('nonConformity'),
|
||||
'To be tracked': this.$t('Tracked'),
|
||||
'NA': this.$t('notInvolved'),
|
||||
'No rating': this.$t('toBeConfirmed')
|
||||
},
|
||||
CertificationColor: {
|
||||
'Test passed': 'accordColor',
|
||||
'Test failed': 'nonConformityColor',
|
||||
'In progress': 'TrackedColor',
|
||||
'NA': 'notInvolvedColor',
|
||||
'Not start': 'submittedColor'
|
||||
},
|
||||
|
||||
queryParam: {},
|
||||
CurrentColor: {
|
||||
'1': '#f3dddd',
|
||||
'2': '#f6ebdb',
|
||||
'3': '#dbf6e2'
|
||||
},
|
||||
CurrentColorBox: {
|
||||
'1': '#E83030',
|
||||
'2': '#FDA71C',
|
||||
'3': '#26BD4B'
|
||||
},
|
||||
url: {
|
||||
list: '/project/projectTaskInventoryEO/list'
|
||||
},
|
||||
loading: false,
|
||||
dataSource: []
|
||||
dataSource: [],
|
||||
long: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.long = localStorage.getItem('language') || 'zh-cn'
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
@@ -329,6 +363,9 @@
|
||||
CurrentProjectClick(val) {
|
||||
let item = JSON.parse(JSON.stringify(val))
|
||||
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentProjectStatusEvaluation'))
|
||||
},
|
||||
TaskListModelList() {
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -391,6 +428,7 @@
|
||||
position: relative;
|
||||
display: block;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.content {
|
||||
@@ -445,7 +483,7 @@
|
||||
}
|
||||
|
||||
.box-content-color {
|
||||
width: 78px;
|
||||
width: 138px;
|
||||
height: 32px;
|
||||
display: inline-block;
|
||||
border-radius: 4px;
|
||||
@@ -454,6 +492,17 @@
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.box-content-Progress {
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 32px;
|
||||
border-radius: 4px;
|
||||
background: #dbf6e2;
|
||||
color: #26BD4B;
|
||||
}
|
||||
|
||||
.accordColor {
|
||||
background: #dbf6e2;
|
||||
color: #26BD4B;
|
||||
@@ -485,7 +534,7 @@
|
||||
height: 28px;
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
background: #dcf7e3;
|
||||
background: #ddf3f4;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
@@ -493,7 +542,7 @@
|
||||
display: inline-block;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background: #26BD4B;
|
||||
background: #00B3BE;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
@@ -501,16 +550,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.box-content-Progress {
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 32px;
|
||||
border-radius: 4px;
|
||||
background: #dbf6e2;
|
||||
color: #26BD4B;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.box-input .ant-select-selection {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<a-modal
|
||||
:title="title"
|
||||
:width="600"
|
||||
:width="700"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
:maskClosable="false"
|
||||
@@ -10,57 +10,38 @@
|
||||
>
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<div class="headerText" v-if="title == $t('CurrentProjectStatusEvaluation')">
|
||||
{{this.$t('redSchedule')}}<br/>
|
||||
{{this.$t('yellowSchedule')}}<br/>
|
||||
{{this.$t('greenRequirements')}}<br/>
|
||||
{{this.$t('blueUndeterminedState')}}
|
||||
</div>
|
||||
<a-col :span="24" v-if="title == $t('CertificationProgress')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('CertificationProgress')">{{$t('CertificationProgress')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="certificationProgress">
|
||||
<a-select v-model="formInline.certificationProgress"
|
||||
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')">
|
||||
<a-select-option :key="1" :value="1">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('experimentPassed') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="2" :value="2">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('experimentFailed') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="3" :value="3">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('toBeStarted') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="4" :value="4">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('inProgress') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="5" :value="5">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('notInvolved') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
<a-form-model-item class="itemModel" :prop="!disabled?'certificationProgress':''">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.certificationProgress"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('certificationProgress')"
|
||||
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'certification_progress'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
<a-col :span="24" v-if="title == $t('CertificationProgress')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="certificationProgressRemark">
|
||||
<a-form-model-item class="itemModel" :prop="!disabled?'certificationProgressRemark':''">
|
||||
<a-textarea
|
||||
:placeholder="$t('PleaseEnter')+$t('remarks')"
|
||||
:disabled="false"
|
||||
:disabled="disabled"
|
||||
v-model="formInline.certificationProgressRemark" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -69,32 +50,34 @@
|
||||
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('CurrentProjectStatusEvaluation')">{{$t('CurrentProjectStatusEvaluation')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="remarks">
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('CurrentProjectStatusEvaluation')">
|
||||
<a-select-option :key="1" :value="1">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('green') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="2" :value="2">
|
||||
<a-form-model-item class="itemModel" prop="conditionAssessment">
|
||||
<a-select
|
||||
:disabled="disabled"
|
||||
v-model="formInline.conditionAssessment"
|
||||
:placeholder="$t('PleaseSelect')+$t('CurrentProjectStatusEvaluation')">
|
||||
<a-select-option :value="'1'">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('red') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="3" :value="3">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('blue') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :key="4" :value="4">
|
||||
<a-select-option :value="'2'">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('yellow') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option :value="'3'">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('green') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<!-- <a-select-option :key="3" :value="3">-->
|
||||
<!-- <span style="display: inline-block;width: 100%">-->
|
||||
<!-- {{ $t('blue') }}-->
|
||||
<!-- </span>-->
|
||||
<!-- </a-select-option>-->
|
||||
</a-select>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -103,14 +86,13 @@
|
||||
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('remarks')">{{$t('remarks')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="remarks">
|
||||
<a-form-model-item class="itemModel" prop="remark">
|
||||
<a-textarea
|
||||
:placeholder="$t('remarks')"
|
||||
:disabled="false"
|
||||
:disabled="disabled"
|
||||
v-model="formInline.remark" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -121,6 +103,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { postAction, putAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'TaskListModel',
|
||||
data() {
|
||||
@@ -129,7 +113,12 @@
|
||||
rules: {},
|
||||
title: this.$t('CertificationProgress'),
|
||||
visible: false,
|
||||
confirmLoading: false
|
||||
confirmLoading: false,
|
||||
disabled: false,
|
||||
url: {
|
||||
edit: '/project/projectTaskInventoryEO/edit',
|
||||
addOrUpdate: '/project/projectTaskInventoryConditionAssessmentEO/addOrUpdate'
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -137,15 +126,76 @@
|
||||
},
|
||||
methods: {
|
||||
getData(val, title) {
|
||||
this.formInline = {}
|
||||
this.visible = true
|
||||
this.title = title
|
||||
if (title == this.$t('CurrentProjectStatusEvaluation')) {
|
||||
val.remark = val.projectStatusAssessRemark || ''
|
||||
val.conditionAssessment = val.projectStatusAssess || ''
|
||||
if (val.roleCode == '2' || val.roleCode == '4' || val.roleCode == '1') {
|
||||
this.disabled = false
|
||||
} else {
|
||||
this.disabled = true
|
||||
}
|
||||
} else {
|
||||
if (val.roleCode == '2' || val.roleCode == '4') {
|
||||
this.disabled = false
|
||||
} else {
|
||||
this.disabled = true
|
||||
}
|
||||
}
|
||||
this.formInline = val
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
})
|
||||
},
|
||||
handleInput(value) {
|
||||
this.$nextTick(() => {
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.validateField([value])
|
||||
})
|
||||
},
|
||||
handleOk() {
|
||||
|
||||
if (this.disabled) {
|
||||
this.visible = false
|
||||
return
|
||||
}
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
let query = {}
|
||||
let url = ''
|
||||
let Action
|
||||
if (this.title == this.$t('CertificationProgress')) {
|
||||
query = {
|
||||
id: this.formInline.id,
|
||||
certificationProgress: this.formInline.certificationProgress,
|
||||
certificationProgressRemark: this.formInline.certificationProgressRemark
|
||||
}
|
||||
url = this.url.edit
|
||||
Action = putAction
|
||||
} else {
|
||||
query = {
|
||||
roleCode: this.formInline.roleCode,
|
||||
remark: this.formInline.remark,
|
||||
conditionAssessment: this.formInline.conditionAssessment,
|
||||
projectLawsInventoryId: this.formInline.projectLawsInventoryId
|
||||
}
|
||||
url = this.url.addOrUpdate
|
||||
Action = postAction
|
||||
}
|
||||
this.confirmLoading = true
|
||||
Action(url, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.visible = false
|
||||
this.confirmLoading = false
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
this.$emit('TaskListModelList')
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
this.confirmLoading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -191,4 +241,10 @@
|
||||
.title-text-text {
|
||||
margin-top: 9px;
|
||||
}
|
||||
|
||||
.headerText {
|
||||
margin-left: 30px;
|
||||
color: #040B29;
|
||||
font-weight: 400;
|
||||
}
|
||||
</style>
|
||||
@@ -141,7 +141,7 @@
|
||||
{{ $t('edit') }}
|
||||
</a>
|
||||
<a class="text-operation"
|
||||
v-if="(record.inventoryAffirmStatus == 'Not started' || record.inventoryAffirmStatus == 'rejected') && record.roleCode == 0"
|
||||
v-if="(record.inventoryAffirmStatus == 'Not started' || record.inventoryAffirmStatus == 'Rejected') && record.roleCode == 0"
|
||||
@click="deleteLib(record)">
|
||||
{{ $t('deleteLib') }}
|
||||
</a>
|
||||
@@ -266,6 +266,35 @@
|
||||
</span>
|
||||
</a-table>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
:title="$t('reasonsForRejection')"
|
||||
:width="500"
|
||||
:visible="visibleComment"
|
||||
:confirm-loading="confirmLoadingComment"
|
||||
:maskClosable="false"
|
||||
@ok="handleOkComment"
|
||||
@cancel="handleCancelComment"
|
||||
>
|
||||
<a-form-model :model="formInlineComment" class="formAdd" :rules="rulesComment" ref="ruleFormComment">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text-index">
|
||||
<div class="title-text-Comment">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('reasonsForRejection')">{{$t('reasonsForRejection')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModelComment" :prop="'commentContent'">
|
||||
<a-textarea
|
||||
style="width: 100%"
|
||||
:placeholder="$t('PleaseEnter')+$t('reasonsForRejection')"
|
||||
:disabled="false"
|
||||
v-model="formInlineComment.commentContent" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-modal>
|
||||
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
|
||||
</a-card>
|
||||
</template>
|
||||
@@ -555,9 +584,21 @@
|
||||
}
|
||||
],
|
||||
visibleFile: false,
|
||||
formInlineComment: {},
|
||||
rulesComment: {
|
||||
commentContent: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('reasonsForRejection') + this.$t('cannotEmpty'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
},
|
||||
timeName: '',
|
||||
visibleComment: false,
|
||||
dataSourceFile: [],
|
||||
confirmLoading: false,
|
||||
confirmLoadingComment: false,
|
||||
queryParamQuery: {},
|
||||
isDisplay: true,
|
||||
selectedRowKeys: [],
|
||||
@@ -711,7 +752,7 @@
|
||||
if (this.dataSource && this.dataSource.length > 0) {
|
||||
let isTrue
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
if (this.dataSource[i].taskAffirmStatus == 'accepted' && this.dataSource[i].inventoryAffirmStatus == 'accepted') {
|
||||
if (this.dataSource[i].taskAffirmStatus == 'Accepted' && this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
@@ -735,7 +776,7 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'rejected') {
|
||||
if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
@@ -843,7 +884,7 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'rejected') &&
|
||||
if ((this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
|
||||
isTrue = true
|
||||
} else {
|
||||
@@ -871,8 +912,8 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'rejected') &&
|
||||
this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'accepted') {
|
||||
if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
if ((this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
|
||||
&& this.dataSource[i].verifyInitiatorId && this.dataSource[i].verifyDeliverableType) ||
|
||||
(!this.dataSource[i].verifyDueDate && !this.dataSource[i].verifyDutyId
|
||||
@@ -1063,17 +1104,48 @@
|
||||
this.$confirm({
|
||||
content: num == 0 ? _this.$t('confirmSubmit') : _this.$t('confirmOverrule'),
|
||||
onOk() {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys))
|
||||
_this.getRowKeys(selectedRowKeys, function() {
|
||||
_this.updateStatusBatch(num, selectedRowKeys)
|
||||
})
|
||||
if (num == 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys))
|
||||
_this.getRowKeys(selectedRowKeys, function() {
|
||||
_this.updateStatusBatch(num, selectedRowKeys)
|
||||
})
|
||||
} else {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys))
|
||||
_this.getRowKeys(selectedRowKeys, function() {
|
||||
_this.visibleComment = true
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
},
|
||||
|
||||
handleOkComment() {
|
||||
this.$refs.ruleFormComment.validate(valid => {
|
||||
if (valid) {
|
||||
let url = '/project/projectCommentEO/add'
|
||||
let query = {
|
||||
commentContent: this.formInlineComment.commentContent,
|
||||
projectLibraryId: this.$route.query.id
|
||||
}
|
||||
this.confirmLoadingComment = true
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
this.updateStatusBatch(1, selectedRowKeys)
|
||||
postAction(url, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.visibleComment = false
|
||||
this.confirmLoadingComment = false
|
||||
} else {
|
||||
this.confirmLoadingComment = false
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancelComment() {
|
||||
this.visibleComment = false
|
||||
},
|
||||
handleCancel() {
|
||||
this.formInline = {}
|
||||
this.visible = false
|
||||
@@ -1385,6 +1457,24 @@
|
||||
color: #040B29;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
.itemModelComment{
|
||||
width: calc(100% - 64px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.title-text-Comment{
|
||||
width: 74px;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin-right: 16px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
height: 42px;
|
||||
line-height: 48px;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.box-input .ant-select-selection {
|
||||
@@ -1407,4 +1497,7 @@
|
||||
padding: 0;
|
||||
border-top: none;
|
||||
}
|
||||
.itemModelComment .ant-form-item-control-wrapper{
|
||||
width: 100% !important;
|
||||
}
|
||||
</style>
|
||||
@@ -39,6 +39,12 @@
|
||||
</span>
|
||||
</a-row>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div @click="handleExport" class="operator-text">
|
||||
<a-icon type="export" :rotate="-90"/>
|
||||
{{ $t('export') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a-table
|
||||
ref="table"
|
||||
@@ -116,7 +122,8 @@
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
url: {
|
||||
page: '/project/ncrTrackController/queryPageInfo'
|
||||
page: '/project/ncrTrackController/queryPageInfo',
|
||||
exportData: '/project/ncrTrackController/exportDataInfo'
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -142,11 +149,18 @@
|
||||
this.pageSize = pageSize
|
||||
this.getList()
|
||||
},
|
||||
handleExport() {
|
||||
let query = {
|
||||
...this.queryParam,
|
||||
projectLibraryId: this.$route.query.id
|
||||
}
|
||||
downloadFile(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect)
|
||||
},
|
||||
getList() {
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
projectLibraryId:this.$route.query.id,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
...this.queryParam
|
||||
}
|
||||
this.loading = true
|
||||
|
||||
@@ -87,12 +87,12 @@
|
||||
class="box-input"
|
||||
v-model="queryParam.problemType"
|
||||
:placeholder="$t('PleaseSelect')+$t('problemType')">
|
||||
<a-select-option value="inconformity">
|
||||
<a-select-option :value="$t('inconformity')">
|
||||
<span class="itemOption">
|
||||
{{ $t('nonConformity') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<a-select-option value="to track">
|
||||
<a-select-option :value="$t('toTrack')">
|
||||
<span class="itemOption">
|
||||
{{ $t('Tracked') }}
|
||||
</span>
|
||||
@@ -203,18 +203,18 @@
|
||||
dataIndex: 'title',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
align: 'center',
|
||||
dataIndex: 'dutyTerritory_dictText',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('ProcessType'),
|
||||
align: 'center',
|
||||
dataIndex: 'flowType',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
align: 'center',
|
||||
dataIndex: 'dutyTerritory_dictText',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('RelatedItems'),
|
||||
align: 'center',
|
||||
@@ -244,7 +244,8 @@
|
||||
url: {
|
||||
page: '/project/ncrTrackController/queryPage',
|
||||
exportData: '/project/ncrTrackController/exportData'
|
||||
}
|
||||
},
|
||||
content: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -269,7 +270,20 @@
|
||||
this.getList()
|
||||
},
|
||||
onSelectChange(value) {
|
||||
this.content = []
|
||||
this.selectedRowKeys = value
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
this.dataSource.forEach(res => {
|
||||
this.selectedRowKeys.forEach(val => {
|
||||
if (res.id == val) {
|
||||
this.content.push({
|
||||
id: res.id,
|
||||
flowType: res.flowType
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
searchReset() {
|
||||
this.pageNo = 1
|
||||
@@ -304,10 +318,9 @@
|
||||
})
|
||||
},
|
||||
handleExport() {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
let query = {
|
||||
...this.queryParam,
|
||||
ids: selectedRowKeys.join(',')
|
||||
ncrTrackVOList: this.content
|
||||
}
|
||||
downloadFile(this.url.exportData, this.$t('NonConformance') + '.xls', query, this.Deselect)
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user