Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
wangzhijiang
2023-03-17 14:13:37 +08:00
20 changed files with 1782 additions and 480 deletions
@@ -36,4 +36,14 @@ public interface ISysDictItemService extends IService<SysDictItem> {
void setEditOrderNum(SysDictItem sysDictItem); void setEditOrderNum(SysDictItem sysDictItem);
String disposeShowDictItemValue(List<SysDictItem> sysDictItems,String fieldValues,String cut,String dicCode); String disposeShowDictItemValue(List<SysDictItem> sysDictItems,String fieldValues,String cut,String dicCode);
/**
* 导入时将item_text处置为item_value存入
* @param sysDictItems
* @param fieldTexts
* @param cut
* @param dicCode
* @return
*/
String disposeShowDictItemText(List<SysDictItem> sysDictItems,String fieldTexts,String cut,String dicCode);
} }
@@ -183,4 +183,52 @@ public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDi
} }
return result; return result;
} }
/**
* 导入时将item_text处置为item_value存入
* @param sysDictItems
* @param fieldTexts
* @param cut
* @param dicCode
* @return
*/
@Override
public String disposeShowDictItemText(List<SysDictItem> sysDictItems, String fieldTexts, String cut, String dicCode) {
String result = "";
List<SysDictItem> sysDictItemList = sysDictItems.stream().filter(e -> {
boolean flag = false;
if(StringUtils.equals(e.getDictCode(),dicCode)){
flag = true;
}
return flag;
}).distinct().collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(sysDictItemList)){
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
result = sysDictItemList.stream().filter(e -> {
boolean flag = false;
List<String> fieldTextStrList = Arrays.asList(fieldTexts.split(","));
for (String fieldTextStr : fieldTextStrList) {
if(StringUtils.equals(fieldTextStr,e.getItemText())){
flag = true;
break;
}
}
return flag;
}).map(SysDictItem::getItemValue).collect(Collectors.joining(","));
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
result = sysDictItemList.stream().filter(e -> {
boolean flag = false;
List<String> fieldTextStrList = Arrays.asList(fieldTexts.split(","));
for (String fieldTextStr : fieldTextStrList) {
if(StringUtils.equals(fieldTextStr,e.getItemText())){
flag = true;
break;
}
}
return flag;
}).map(SysDictItem::getItemValue).collect(Collectors.joining(","));
}
}
return result;
}
} }
@@ -99,5 +99,7 @@ public interface BussDocumentLibraryEOMapper extends BaseMapper<BussDocumentLibr
@Param("id") String id ); @Param("id") String id );
List<Map<String, Object>> queryListByIds(@Param("ids") String ids); List<Map<String, Object>> queryListByIds(@Param("ids") String ids);
BussDocumentLibraryEO getBySerialNumber(@Param("serialNumber") String serialNumber);
} }
@@ -115,4 +115,9 @@
#{item} #{item}
</foreach> </foreach>
</select> </select>
<select id="getBySerialNumber" resultType="com.jero.modules.document.entity.BussDocumentLibraryEO">
select * from buss_document_library
where serial_number =#{serialNumber}
</select>
</mapper> </mapper>
@@ -225,4 +225,11 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
String sqlJoint(List<QueryConditionVO> queryConditionVOList); String sqlJoint(List<QueryConditionVO> queryConditionVOList);
int updateES(); int updateES();
/**
* 根据serialNumber获取BussDumentLibrar对象
* @param serialNumber
* @return
*/
BussDocumentLibraryEO getBySerialNumber(String serialNumber);
} }
@@ -6632,4 +6632,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return count; return count;
} }
@Override
public BussDocumentLibraryEO getBySerialNumber(String serialNumber) {
BussDocumentLibraryEO bySerialNumber = bussDocumentLibraryEOMapper.getBySerialNumber(serialNumber);
return bySerialNumber;
}
} }
@@ -21,6 +21,7 @@ import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -257,6 +258,34 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
projectCertificationInventoryEOService.exportTemplate(projectCertificationInventoryEO,response,request); projectCertificationInventoryEOService.exportTemplate(projectCertificationInventoryEO,response,request);
} }
/**
* 导入数据
*
* @param file
* @param projectCertificationInventoryEO
* @return
*/
@ApiOperation(value="项目库-认证清单表-导入数据", notes="项目库-认证清单表-导入数据")
@RequestMapping(value = "/importData", method = RequestMethod.POST)
public Result<?> importData(@RequestParam(value = "file", required = false) MultipartFile file,
ProjectCertificationInventoryEO projectCertificationInventoryEO) {
projectCertificationInventoryEOService.importData(file,projectCertificationInventoryEO);
return Result.OK("导入成功");
}
/**
* 导出数据
* @param request
* @param projectCertificationInventoryEO
*/
@ApiOperation(value="项目库-认证清单表-导出数据", notes="项目库-认证清单表-导出数据")
@RequestMapping(value = "/exportData",method = RequestMethod.GET)
// @RequiresPermissions("projectLawsInventory:exportData")
public void exportData(HttpServletResponse response,
HttpServletRequest request,
ProjectCertificationInventoryEO projectCertificationInventoryEO) {
projectCertificationInventoryEOService.exportData(response,request, projectCertificationInventoryEO);
}
@AutoLog(value = "项目库-认证清单表-调取添加") @AutoLog(value = "项目库-认证清单表-调取添加")
@ApiOperation(value="项目库-认证清单表-调取添加", notes="项目库-认证清单表-调取添加") @ApiOperation(value="项目库-认证清单表-调取添加", notes="项目库-认证清单表-调取添加")
@PostMapping(value = "/callAdd") @PostMapping(value = "/callAdd")
@@ -3,6 +3,8 @@ package com.jero.modules.project.entity;
import java.io.Serializable; import java.io.Serializable;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@@ -36,110 +38,110 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**主键*/ /**主键*/
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
private java.lang.String id; private String id;
/**创建人*/ /**创建人*/
@ApiModelProperty(value = "创建人") @ApiModelProperty(value = "创建人")
private java.lang.String createBy; private String createBy;
/**创建日期*/ /**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期") @ApiModelProperty(value = "创建日期")
private java.util.Date createTime; private Date createTime;
/**更新人*/ /**更新人*/
@ApiModelProperty(value = "更新人") @ApiModelProperty(value = "更新人")
private java.lang.String updateBy; private String updateBy;
/**更新日期*/ /**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期") @ApiModelProperty(value = "更新日期")
private java.util.Date updateTime; private Date updateTime;
/**所属部门*/ /**所属部门*/
@ApiModelProperty(value = "所属部门") @ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode; private String sysOrgCode;
/**类别*/ /**类别*/
@Excel(name = "类别", width = 15) @Excel(name = "类别", width = 15)
@ApiModelProperty(value = "类别") @ApiModelProperty(value = "类别")
private java.lang.String category; private String category;
/**检验项目*/ /**检验项目*/
@Excel(name = "检验项目", width = 15) @Excel(name = "检验项目", width = 15)
@ApiModelProperty(value = "检验项目") @ApiModelProperty(value = "检验项目")
private java.lang.String inspectionItem; private String inspectionItem;
/**配置项*/ /**配置项*/
@Excel(name = "配置项", width = 15) @Excel(name = "配置项", width = 15)
@ApiModelProperty(value = "配置项") @ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4") @Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private java.lang.String configItem; private String configItem;
/**WVTA ID*/ /**WVTA ID*/
@Excel(name = "WVTA ID", width = 15) @Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID") @ApiModelProperty(value = "WVTA ID")
private java.lang.String wvtaId; private String wvtaId;
/**标准编号*/ /**标准编号*/
@Excel(name = "标准编号", width = 15) @Excel(name = "*标准编号", width = 15)
@ApiModelProperty(value = "标准编号") @ApiModelProperty(value = "标准编号")
private java.lang.String serialNumber; private String serialNumber;
/**责任领域*/ /**责任领域*/
@Excel(name = "责任领域", width = 15)
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory; private String dutyTerritory;
/**责任领域名称**/ /**责任领域名称**/
@Excel(name = "*责任领域", width = 15)
@TableField(exist = false) @TableField(exist = false)
private String dutyTerritoryName; private String dutyTerritoryName;
/**责任领域名称-英文**/ /**责任领域名称-英文**/
@TableField(exist = false) @TableField(exist = false)
private String dutyTerritoryNameEn; private String dutyTerritoryNameEn;
/**交付物*/ /**工程接口人*/
@Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private java.lang.String deliverable;
/**文档库id*/
@Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private java.lang.String bussDocumentLibraryId;
/**工程接口人*/
@Excel(name = "工程接口人", width = 15)
@ApiModelProperty(value = "工程接口人") @ApiModelProperty(value = "工程接口人")
private java.lang.String sdt; private String sdt;
/**工程接口人名称**/ /**工程接口人名称**/
@TableField(exist = false) @Excel(name = "工程接口人", width = 15)
@TableField(exist = false)
private String sdtName; private String sdtName;
/**责任人*/ /**责任人*/
@Excel(name = "责任人", width = 15)
@ApiModelProperty(value = "责任人") @ApiModelProperty(value = "责任人")
private java.lang.String dutyPerson; private String dutyPerson;
/**责任人名称**/ /**责任人名称**/
@Excel(name = "责任人", width = 15)
@TableField(exist = false) @TableField(exist = false)
private String dutyPersonName; private String dutyPersonName;
/**交付物类型*/ /**交付物类型*/
@Excel(name = "交付物类型", width = 15)
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType; private String deliverableType;
// 交付物类型名称 // 交付物类型名称
@Excel(name = "交付物类型", width = 15)
@TableField(exist = false) @TableField(exist = false)
private String deliverableTypeName; private String deliverableTypeName;
// 交付物类型名称-英文 // 交付物类型名称-英文
@TableField(exist = false) @TableField(exist = false)
private String deliverableTypeNameEn; private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付物模板*/ /**交付物模板*/
@Excel(name = "交付物模板", width = 15) // @Excel(name = "交付物模板", width = 15)
@ApiModelProperty(value = "交付物模板") @ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate; private String deliverableTemplate;
/**交付物模板名称**/ /**交付物模板名称**/
@TableField(exist = false) @TableField(exist = false)
private String deliverableTemplateName; private String deliverableTemplateName;
@@ -147,48 +149,48 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**交付结果*/ /**交付结果*/
@Excel(name = "交付结果", width = 15) @Excel(name = "交付结果", width = 15)
@ApiModelProperty(value = "交付结果") @ApiModelProperty(value = "交付结果")
private java.lang.String deliveryResult; private String deliveryResult;
/**截止日期*/ /**截止日期*/
@Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd") @Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期") @ApiModelProperty(value = "截止日期")
private java.util.Date endTime; private Date endTime;
/**流程状态*/ /**流程状态*/
@Excel(name = "流程状态", width = 15)
@ApiModelProperty(value = "流程状态") @ApiModelProperty(value = "流程状态")
private java.lang.String flowStatus; private String flowStatus;
// 流程状态展示名称 // 流程状态展示名称
@Excel(name = "流程状态", width = 15)
@TableField(exist = false) @TableField(exist = false)
private String flowStatusName; private String flowStatusName;
/**报告编号*/ /**报告编号*/
@Excel(name = "报告编号", width = 15) @Excel(name = "报告编号", width = 15)
@ApiModelProperty(value = "报告编号") @ApiModelProperty(value = "报告编号")
private java.lang.String reportNumber; private String reportNumber;
/**产品型号*/ /**产品型号*/
@Excel(name = "产品型号", width = 15) @Excel(name = "产品型号", width = 15)
@ApiModelProperty(value = "产品型号") @ApiModelProperty(value = "产品型号")
private java.lang.String productModel; private String productModel;
/**生产企业名称*/ /**生产企业名称*/
@Excel(name = "生产企业名称", width = 15) @Excel(name = "生产企业名称", width = 15)
@ApiModelProperty(value = "生产企业名称") @ApiModelProperty(value = "生产企业名称")
private java.lang.String productionEnterpriseName; private String productionEnterpriseName;
/**认证进度*/ /**认证进度*/
@Excel(name = "认证进度", width = 15) @Excel(name = "认证进度", width = 15)
@ApiModelProperty(value = "认证进度") @ApiModelProperty(value = "认证进度")
private java.lang.String certificationProgress; private String certificationProgress;
/**认证进度展示名称**/ /**认证进度展示名称**/
@TableField(exist = false) @TableField(exist = false)
private String certificationProgress_dictText; private String certificationProgress_dictText;
@Excel(name = "认证进度备注", width = 15) // @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注") @ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark; private String certificationProgressRemark;
@@ -208,4 +210,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**值类型,对应SysCategoryValueTypeEnum中value**/ /**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false) @TableField(exist = false)
private String valueType; private String valueType;
@TableField(exist = false)
private String excelName;
} }
@@ -0,0 +1,207 @@
package com.jero.modules.project.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
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 com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory对象", description="项目库-认证清单表")
public class ProjectCertificationInventoryEOEn implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.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 java.lang.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 java.lang.String sysOrgCode;
/**类别*/
@Excel(name = "Category", width = 15)
@ApiModelProperty(value = "类别")
private java.lang.String category;
/**检验项目*/
@Excel(name = "Inspection Items", width = 15)
@ApiModelProperty(value = "检验项目")
private java.lang.String inspectionItem;
/**配置项*/
@Excel(name = "Configuration Item", width = 15)
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private java.lang.String configItem;
/**WVTA ID*/
@Excel(name = "WVTA ID", width = 15)
@ApiModelProperty(value = "WVTA ID")
private java.lang.String wvtaId;
/**标准编号*/
@Excel(name = "*Standard No", width = 15)
@ApiModelProperty(value = "标准编号")
private java.lang.String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory;
/**责任领域名称**/
@Excel(name = "*Responsible Field", width = 15)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**工程接口人*/
@ApiModelProperty(value = "工程接口人")
private java.lang.String sdt;
/**工程接口人名称**/
@Excel(name = "Eng. Interface", width = 15)
@TableField(exist = false)
private String sdtName;
/**责任人*/
@ApiModelProperty(value = "责任人")
private java.lang.String dutyPerson;
/**责任人名称**/
@Excel(name = "Assignee", width = 15)
@TableField(exist = false)
private String dutyPersonName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType;
// 交付物类型名称
@Excel(name = "Deliverable Type", width = 15)
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private java.lang.String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private java.lang.String bussDocumentLibraryId;
/**交付物模板*/
// @Excel(name = "交付物模板", width = 15)
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
private String deliverableTemplateName;
/**交付结果*/
@Excel(name = "Deliverables Result", width = 15)
@ApiModelProperty(value = "交付结果")
private java.lang.String deliveryResult;
/**截止日期*/
@Excel(name = "Due Date", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private java.util.Date endTime;
/**流程状态*/
@ApiModelProperty(value = "流程状态")
private java.lang.String flowStatus;
// 流程状态展示名称
@Excel(name = "Process Status", width = 15)
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
@Excel(name = "Report No", width = 15)
@ApiModelProperty(value = "报告编号")
private java.lang.String reportNumber;
/**产品型号*/
@Excel(name = "Product Model", width = 15)
@ApiModelProperty(value = "产品型号")
private java.lang.String productModel;
/**生产企业名称*/
@Excel(name = "Name Of Manufacturer", width = 15)
@ApiModelProperty(value = "生产企业名称")
private java.lang.String productionEnterpriseName;
/**认证进度*/
@Excel(name = "Homologation Progress", width = 15)
@ApiModelProperty(value = "认证进度")
private java.lang.String certificationProgress;
/**认证进度展示名称**/
@TableField(exist = false)
private String certificationProgress_dictText;
// @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark;
/**项目库id*/
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String ids;
@TableField(exist = false)
private String roleCode;
}
@@ -11,6 +11,7 @@ import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysRole; import com.jero.modules.system.entity.SysRole;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO; import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -93,6 +94,15 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
*/ */
void disposeData(List<ProjectCertificationInventoryEO> datas, String cut); void disposeData(List<ProjectCertificationInventoryEO> datas, String cut);
/**
* 导入时的数据处理
* @param datas
* @param cut
*/
void importDisposeData(List<ProjectCertificationInventoryEO> datas, String cut);
String getTreeNameImport(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList);
String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList); String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList);
/** /**
@@ -185,6 +195,21 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
*/ */
Result<?> callAdd(JSONObject json); Result<?> callAdd(JSONObject json);
/**
* 导入数据
* @param file
* @param projectCertificationInventoryEO
*/
void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* projectCertificationInventoryEO
* @param response
* @param request
* @param projectCertificationInventoryEO
*/
void exportData(HttpServletResponse response, HttpServletRequest request, ProjectCertificationInventoryEO projectCertificationInventoryEO);
/** /**
* 引用交付物 * 引用交付物
* @param json * @param json
+11 -1
View File
@@ -1511,5 +1511,15 @@ module.exports = {
dateofproduction:'Date of production', dateofproduction:'Date of production',
VINcodelist:'VIN code list', VINcodelist:'VIN code list',
VINcodeupload:'VIN code upload', VINcodeupload:'VIN code upload',
Tasknode:'Task Node',
Taskresponsibilityrecognition:'Task responsibility recognition',
uploadattachment:'Upload attachment',
Processhistory:'Process history',
resultofhandling:'Result of handling',
Listoftreatableregulations:'List of treatable regulations',
Listofuntractableregulations:'List of untractable regulations',
project:'Project',
Categoryofdeliverables:'Category of deliverables',
Taskconfirmationresult:'Task confirmation result',
Compliancetaskhandling:'Compliance task handling'
} }
+11
View File
@@ -1613,4 +1613,15 @@ module.exports = {
dateofproduction:'生产日期', dateofproduction:'生产日期',
VINcodelist:'VIN码清单', VINcodelist:'VIN码清单',
VINcodeupload:'VIN码上传', VINcodeupload:'VIN码上传',
Tasknode:'任务节点',
Taskresponsibilityrecognition:'任务责任确认',
uploadattachment:'上传附件',
Processhistory:'流程历史',
resultofhandling:'处理结果',
Listoftreatableregulations:'可处理法规列表',
Listofuntractableregulations:'不可处理法规列表',
project:'项目',
Categoryofdeliverables:"交付物类别",
Taskconfirmationresult:'任务确认结果',
Compliancetaskhandling:'符合性任务办理'
} }
@@ -57,6 +57,10 @@
projectLibraryId: { projectLibraryId: {
type: String, type: String,
default: '' default: ''
},
authDummyInventoryBaseId: {
type: String,
default: ''
} }
}, },
data() { data() {
@@ -76,7 +80,10 @@
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&paramsTemplateId=' + this.paramsTemplateId return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&paramsTemplateId=' + this.paramsTemplateId
} else if (this.projectLibraryId) { } else if (this.projectLibraryId) {
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&projectLibraryId=' + this.projectLibraryId return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&projectLibraryId=' + this.projectLibraryId
} else if (this.authDummyInventoryBaseId) {
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&authDummyInventoryBaseId=' + this.authDummyInventoryBaseId
} }
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut
} }
}, },
@@ -567,15 +567,16 @@
}, },
url: { url: {
list: '/project/projectCertificationInventoryEO/page', list: '/project/projectCertificationInventoryEO/page',
exportTemplate: '', exportTemplate: '/project/projectCertificationInventoryEO/exportTemplate',
exportData: '', exportData: '/project/projectCertificationInventoryEO/exportData',
deleteBatch: '/project/projectCertificationInventoryEO/deleteBatch', deleteBatch: '/project/projectCertificationInventoryEO/deleteBatch',
setBatch: '/project/projectCertificationInventoryEO/setBatch', setBatch: '/project/projectCertificationInventoryEO/setBatch',
deleteOne: '/project/projectCertificationInventoryEO/delete', deleteOne: '/project/projectCertificationInventoryEO/delete',
AndUserId: '/project/projectLibraryRoleRelEO/queryByProjectLibraryIdAndUserId', AndUserId: '/project/projectLibraryRoleRelEO/queryByProjectLibraryIdAndUserId',
AndUserIdEdit: '/project/projectLibraryRoleRelEO/edit', AndUserIdEdit: '/project/projectLibraryRoleRelEO/edit',
saveBatch: '/project/projectCertificationInventoryEO/saveBatch', saveBatch: '/project/projectCertificationInventoryEO/saveBatch',
questionUrl: '/project/projectCertificationInventoryEO/expediting' questionUrl: '/project/projectCertificationInventoryEO/expediting',
importZipUrl: '/project/projectCertificationInventoryEO/importData',
}, },
dataSource: [], dataSource: [],
roleSwitchingCode: '', roleSwitchingCode: '',
@@ -1296,13 +1297,13 @@
this.visibleRoleSwitching = true this.visibleRoleSwitching = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ruleFormRoleSwitching.clearValidate() this.$refs.ruleFormRoleSwitching.clearValidate()
if (!this.formInlineRoleSwitching.roleSwitchingCode) { if (!this.roleSwitchingCode) {
this.formInlineRoleSwitching.roleSwitchingCode = '0' this.roleSwitchingCode = '0'
} }
if (!(this.roleSwitchingList.some(val => val.roleCode == this.formInlineRoleSwitching.roleSwitchingCode))) { if (!(this.roleSwitchingList.some(val => val.roleCode == this.roleSwitchingCode))) {
this.formInlineRoleSwitching.roleSwitchingCode = this.roleSwitchingList[0] ? this.roleSwitchingList[0].roleCode : '' this.roleSwitchingCode = this.roleSwitchingList[0] ? this.roleSwitchingList[0].roleCode : ''
} }
this.roleSwitchingCode = this.formInlineRoleSwitching.roleSwitchingCode this.formInlineRoleSwitching.roleSwitchingCode = this.roleSwitchingCode
this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching } this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching }
}) })
}, },
@@ -35,48 +35,48 @@
:triggerChange="false" :dictCode="'duty_territory'" /> :triggerChange="false" :dictCode="'duty_territory'" />
</div> </div>
</a-col> </a-col>
<template v-if="toggleSearchStatus"> <!-- <template v-if="toggleSearchStatus">-->
<a-col :md="6" :sm="8"> <!-- <a-col :md="6" :sm="8">-->
<div class="box-title-text"> <!-- <div class="box-title-text">-->
<div class="title-text" :title="$t('listConfirmationStatus')"> <!-- <div class="title-text" :title="$t('listConfirmationStatus')">-->
<span>{{ $t('listConfirmationStatus') }}</span> <!-- <span>{{ $t('listConfirmationStatus') }}</span>-->
</div> <!-- </div>-->
<a-select :placeholder="$t('PleaseSelect')+$t('listConfirmationStatus')" <!-- <a-select :placeholder="$t('PleaseSelect')+$t('listConfirmationStatus')"-->
class="box-input" <!-- class="box-input"-->
allowClear <!-- allowClear-->
:getPopupContainer="triggerNode=> triggerNode.parentNode" <!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
v-model="queryParam.inventoryAffirmStatus"> <!-- v-model="queryParam.inventoryAffirmStatus">-->
<a-select-option v-for="(item, key) in listOptions" <!-- <a-select-option v-for="(item, key) in listOptions"-->
:key="item.key" <!-- :key="item.key"-->
:value="item.value"> <!-- :value="item.value">-->
<span style="display: inline-block;width: 100%" :title=" item.label "> <!-- <span style="display: inline-block;width: 100%" :title=" item.label ">-->
{{ item.label }} <!-- {{ item.label }}-->
</span> <!-- </span>-->
</a-select-option> <!-- </a-select-option>-->
</a-select> <!-- </a-select>-->
</div> <!-- </div>-->
</a-col> <!-- </a-col>-->
<a-col :md="6" :sm="8"> <!-- <a-col :md="6" :sm="8">-->
<div class="box-title-text"> <!-- <div class="box-title-text">-->
<div class="title-text" :title="$t('taskAffirmStatus')"> <!-- <div class="title-text" :title="$t('taskAffirmStatus')">-->
<span>{{ $t('taskAffirmStatus') }}</span> <!-- <span>{{ $t('taskAffirmStatus') }}</span>-->
</div> <!-- </div>-->
<a-select :placeholder="$t('PleaseSelect')+$t('taskAffirmStatus')" <!-- <a-select :placeholder="$t('PleaseSelect')+$t('taskAffirmStatus')"-->
class="box-input" <!-- class="box-input"-->
allowClear <!-- allowClear-->
:getPopupContainer="triggerNode=> triggerNode.parentNode" <!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
v-model="queryParam.taskAffirmStatus"> <!-- v-model="queryParam.taskAffirmStatus">-->
<a-select-option v-for="(item, key) in taskOptions" <!-- <a-select-option v-for="(item, key) in taskOptions"-->
:key="item.key" <!-- :key="item.key"-->
:value="item.value"> <!-- :value="item.value">-->
<span style="display: inline-block;width: 100%" :title=" item.label "> <!-- <span style="display: inline-block;width: 100%" :title=" item.label ">-->
{{ item.label }} <!-- {{ item.label }}-->
</span> <!-- </span>-->
</a-select-option> <!-- </a-select-option>-->
</a-select> <!-- </a-select>-->
</div> <!-- </div>-->
</a-col> <!-- </a-col>-->
</template> <!-- </template>-->
<span style="float: right;overflow: hidden;margin-right: 11px; " class="table-page-search-submitButtons"> <span style="float: right;overflow: hidden;margin-right: 11px; " class="table-page-search-submitButtons">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef" <globalAdvancedQuery ref="globalAdvancedQueryRef"
@@ -85,10 +85,10 @@
<a-button class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button> <a-button class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
<a-button class="box-button" style="margin-left: 8px" <a-button class="box-button" style="margin-left: 8px"
@click="searchReset">{{ $t('reset') }}</a-button> @click="searchReset">{{ $t('reset') }}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px"> <!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
{{ !toggleSearchStatus ? $t('open') : $t('away') }} <!-- {{ !toggleSearchStatus ? $t('open') : $t('away') }}-->
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> <!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />-->
</a> <!-- </a>-->
</a-col> </a-col>
</span> </span>
</a-row> </a-row>
@@ -99,22 +99,22 @@
style="overflow:hidden;margin-bottom: 20px"> style="overflow:hidden;margin-bottom: 20px">
<div style="float: left;margin-bottom: 0px;margin-left: 20px"> <div style="float: left;margin-bottom: 0px;margin-left: 20px">
<!-- 调取--> <!-- 调取-->
<div @click="transferClick" class="operator-text" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0'"> <div @click="transferClick" class="operator-text" v-if="this.roleSwitchingCode == '0'">
<a-icon type="profile" /> <a-icon type="profile" />
{{ $t('Transfer') }} {{ $t('Transfer') }}
</div> </div>
<!-- 带入相关人员--> <!-- 带入相关人员-->
<div class="operator-text" @click="bringInRelevantPersonnelClick" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0'"> <div class="operator-text" @click="bringInRelevantPersonnelClick" v-if="this.roleSwitchingCode == '0'">
<a-icon type="user" /> <a-icon type="user" />
{{ $t('bringInRelevantPersonnel') }} {{ $t('bringInRelevantPersonnel') }}
</div> </div>
<!-- 批量设置--> <!-- 批量设置-->
<div class="operator-text" @click="batSettingClick" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0' || this.formInlineRoleSwitching.roleSwitchingCode == '1'"> <div class="operator-text" @click="batSettingClick" v-if="this.roleSwitchingCode == '0' || this.roleSwitchingCode == '1'">
<a-icon type="setting" /> <a-icon type="setting" />
{{ $t('BatchSetting') }} {{ $t('BatchSetting') }}
</div> </div>
<!-- 列表设置--> <!-- 列表设置-->
<a-popconfirm :visible="customizevisible" overlayClassName="popconfirmmize" placement="bottomRight" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0' || this.formInlineRoleSwitching.roleSwitchingCode == '1'"> <a-popconfirm :visible="customizevisible" overlayClassName="popconfirmmize" placement="bottomRight" v-if="this.roleSwitchingCode == '0' || this.roleSwitchingCode == '1'">
<template slot="title" id="popconfirmmize"> <template slot="title" id="popconfirmmize">
<div style="height:320px;overflow:scroll;overflow-x: auto;"> <div style="height:320px;overflow:scroll;overflow-x: auto;">
<a-checkbox <a-checkbox
@@ -141,9 +141,9 @@
<a-icon type="setting" /> <a-icon type="setting" />
{{ $t('customize') }} {{ $t('customize') }}
</div> </div>
</a-popconfirm v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0' || this.formInlineRoleSwitching.roleSwitchingCode == '1'"> </a-popconfirm>
<!-- 更多--> <!-- 更多-->
<a-popconfirm overlayClassName="popconfirm" placement="bottomRight" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0'"> <a-popconfirm overlayClassName="popconfirm" placement="bottomRight" v-if="this.roleSwitchingCode == '0'">
<template slot="title" id="popconfirm"> <template slot="title" id="popconfirm">
<div style="height:320px;overflow:scroll;overflow-x: auto;"> <div style="height:320px;overflow:scroll;overflow-x: auto;">
<!-- 添加--> <!-- 添加-->
@@ -217,33 +217,33 @@
<!-- {{ $t('customize') }}--> <!-- {{ $t('customize') }}-->
<!-- </div>--> <!-- </div>-->
<div @click="handleExport" v-has="'projectLawsInventory:exportData'" <div @click="handleExport" v-has="'projectLawsInventory:exportData'"
v-if="this.formInlineRoleSwitching.roleSwitchingCode == '1' || this.formInlineRoleSwitching.roleSwitchingCode == '2' || this.formInlineRoleSwitching.roleSwitchingCode == '30' || this.formInlineRoleSwitching.roleSwitchingCode == '31'" v-if="this.roleSwitchingCode == '1' || this.roleSwitchingCode == '2' || this.roleSwitchingCode == '30' || this.roleSwitchingCode == '31'"
class="operator-text"> class="operator-text">
<a-icon type="export" :rotate="-90" /> <a-icon type="export" :rotate="-90" />
{{ $t('export') }} {{ $t('export') }}
</div> </div>
<!-- 发布--> <!-- 发布-->
<div class="operator-text" @click="initiateListConfirmationcClick('清单')" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0'"> <div class="operator-text" @click="initiateListConfirmationcClick('清单')" v-if="this.roleSwitchingCode == '0'">
<a-icon type="solution" /> <a-icon type="solution" />
{{ $t('release') }} {{ $t('release') }}
</div> </div>
<!-- 撤回--> <!-- 撤回-->
<div class="operator-text" @click="withdrawnClick" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0'"> <div class="operator-text" @click="withdrawnClick" v-if="this.roleSwitchingCode == '0'">
<a-icon type="rollback" /> <a-icon type="rollback" />
{{ $t('withdraw') }} {{ $t('withdraw') }}
</div> </div>
<!-- 发起任务--> <!-- 发起任务-->
<div class="operator-text" @click="submitClick(0)" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '1'"> <div class="operator-text" @click="submitClick(0)" v-if="this.roleSwitchingCode == '1'">
<a-icon type="check-circle" /> <a-icon type="check-circle" />
{{ $t('initiateTask') }} {{ $t('initiateTask') }}
</div> </div>
<!-- 退回--> <!-- 退回-->
<div class="operator-text" @click="submitClick(1)" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '1'"> <div class="operator-text" @click="submitClick(1)" v-if="this.roleSwitchingCode == '1'">
<a-icon type="close-circle" /> <a-icon type="close-circle" />
{{ $t('sendBack') }} {{ $t('sendBack') }}
</div> </div>
<!-- 催办--> <!-- 催办-->
<div class="operator-text" @click="questionClick" v-if="this.formInlineRoleSwitching.roleSwitchingCode == '0' || this.formInlineRoleSwitching.roleSwitchingCode == '1' || this.formInlineRoleSwitching.roleSwitchingCode == '30'"> <div class="operator-text" @click="questionClick" v-if="this.roleSwitchingCode == '0' || this.roleSwitchingCode == '1' || this.roleSwitchingCode == '30'">
<a-icon type="sound" /> <a-icon type="sound" />
{{ $t('question') }} {{ $t('question') }}
</div> </div>
@@ -1410,6 +1410,7 @@ export default {
} }
] ]
}, },
roleSwitchingCode:'',
detailedSuccessList: [], detailedSuccessList: [],
detailedWarningList: [], detailedWarningList: [],
rowKeysSuccessList: [], rowKeysSuccessList: [],
@@ -1490,10 +1491,9 @@ export default {
} else { } else {
roleCodeIndex = 4 roleCodeIndex = 4
} }
console.log(this.formInlineRoleSwitching.roleSwitchingCode) if (this.roleSwitchingCode == '11' ||
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.roleSwitchingCode == '12' ||
this.formInlineRoleSwitching.roleSwitchingCode == '12' || this.roleSwitchingCode == '13') {
this.formInlineRoleSwitching.roleSwitchingCode == '13') {
roleCodeIndex = 0 roleCodeIndex = 0
} }
row.roleCodeIndex = roleCodeIndex row.roleCodeIndex = roleCodeIndex
@@ -1543,6 +1543,7 @@ export default {
this.isRoleSwitching = false this.isRoleSwitching = false
} }
} }
this.roleSwitchingCode = this.formInlineRoleSwitching.roleSwitchingCode
this.$emit('getRoleSwitch',this.formInlineRoleSwitching.roleSwitchingCode) this.$emit('getRoleSwitch',this.formInlineRoleSwitching.roleSwitchingCode)
this.getList() this.getList()
// this.JLoading = false // this.JLoading = false
@@ -1569,9 +1570,9 @@ export default {
} else { } else {
roleCodeIndex = 4 roleCodeIndex = 4
} }
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || if (this.roleSwitchingCode == '11' ||
this.formInlineRoleSwitching.roleSwitchingCode == '12' || this.roleSwitchingCode == '12' ||
this.formInlineRoleSwitching.roleSwitchingCode == '13') { this.roleSwitchingCode == '13') {
roleCodeIndex = 0 roleCodeIndex = 0
} }
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
@@ -1613,7 +1614,7 @@ export default {
this.$refs.transferListRef.transferModel() this.$refs.transferListRef.transferModel()
}, },
batSettingClick() { batSettingClick() {
let code = this.formInlineRoleSwitching.roleSwitchingCode let code = this.roleSwitchingCode
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)),code) this.$refs.batSettingRef.edit(JSON.parse(JSON.stringify(this.selectedRowKeys)),code)
} else { } else {
@@ -1844,6 +1845,7 @@ export default {
this.isRoleSwitching = false this.isRoleSwitching = false
} }
} }
this.roleSwitchingCode = this.formInlineRoleSwitching.roleSwitchingCode
this.$message.success(this.$t('OperationSuccessful')) this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false this.confirmLoadingRoleSwitching = false
@@ -1864,12 +1866,13 @@ export default {
this.visibleRoleSwitching = true this.visibleRoleSwitching = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ruleFormRoleSwitching.clearValidate() this.$refs.ruleFormRoleSwitching.clearValidate()
if (!this.formInlineRoleSwitching.roleSwitchingCode) { if (!this.roleSwitchingCode) {
this.formInlineRoleSwitching.roleSwitchingCode = '0' this.roleSwitchingCode = '0'
} }
if (!(this.roleSwitchingList.some(val => val.roleCode == this.formInlineRoleSwitching.roleSwitchingCode))) { if (!(this.roleSwitchingList.some(val => val.roleCode == this.roleSwitchingCode))) {
this.formInlineRoleSwitching.roleSwitchingCode = this.roleSwitchingList[0] ? this.roleSwitchingList[0].roleCode : '' this.roleSwitchingCode = this.roleSwitchingList[0] ? this.roleSwitchingList[0].roleCode : ''
} }
this.formInlineRoleSwitching.roleSwitchingCode = this.roleSwitchingCode
this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching } this.formInlineRoleSwitching = { ...this.formInlineRoleSwitching }
}) })
}, },
@@ -1922,9 +1925,9 @@ export default {
} else { } else {
roleCodeIndex = 4 roleCodeIndex = 4
} }
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || if (this.roleSwitchingCode == '11' ||
this.formInlineRoleSwitching.roleSwitchingCode == '12' || this.roleSwitchingCode == '12' ||
this.formInlineRoleSwitching.roleSwitchingCode == '13') { this.roleSwitchingCode == '13') {
roleCodeIndex = 0 roleCodeIndex = 0
} }
item.roleCodeIndex = roleCodeIndex item.roleCodeIndex = roleCodeIndex
@@ -2076,9 +2079,9 @@ export default {
} else { } else {
roleCode = 4 roleCode = 4
} }
if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.formInlineRoleSwitching.roleSwitchingCode == '12') { if (this.roleSwitchingCode == '11' || this.roleSwitchingCode == '12') {
roleCode = 0 roleCode = 0
} else if (this.formInlineRoleSwitching.roleSwitchingCode == '13') { } else if (this.roleSwitchingCode == '13') {
roleCode = 13 roleCode = 13
} }
let queryParam = JSON.parse(JSON.stringify(this.queryParam)) let queryParam = JSON.parse(JSON.stringify(this.queryParam))
@@ -0,0 +1,212 @@
<template>
<a-drawer
:title="titlename == 1 ? this.$t('Taskresponsibilityrecognition'): this.$t('complianceConfirmation')"
:maskClosable="false"
:width="948"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 20px">
<div class="header-text">
{{$t('Listoftreatableregulations')}}
</div>
<a-table
:pagination="false"
:scroll="{x: '100%'}"
rowKey="id"
:columns="columns">
</a-table>
</div>
<div style="margin-bottom: 20px">
<div class="header-text">
{{$t('Listofuntractableregulations')}}
</div>
<a-table
:pagination="false"
:scroll="{x: '100%'}"
rowKey="id"
:columns="columns">
</a-table>
</div>
<div style="margin-bottom: 40px">
<div class="header-text">
{{titlename == 1 ? this.$t('Taskconfirmationresult'): this.$t('Compliancetaskhandling')}}
</div>
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('resultofhandling')">{{$t('resultofhandling')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-radio-group>
<a-radio value="1">
{{$t('accept')}}
</a-radio>
<a-radio value="2">
{{$t('refuse')}}
</a-radio>
</a-radio-group>
</a-form-model-item>
</div>
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
rows="4"/>
</a-form-model-item>
</div>
<div class="box-title-text" v-if="titlename == 1 ? false:true">
<div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text">{{$t('uploadattachment')}}</a-button>
</a-form-model-item>
</div>
</div>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button type="primary">{{$t('determine')}}</a-button>
</div>
</a-drawer>
</template>
<script>
export default {
name:'confirmationDrawer',
props: {
},
data() {
return {
titlename:'',
allTitle: '',
visible:false,
columns:[
{
title: this.$t('project'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('standard'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 120
},
{
title: this.$t('taskType'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 150
},
{
title: this.$t('Categoryofdeliverables'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 120
},
{
title: this.$t('closingDate'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
]
}
},
methods:{
confirmation(data){
this.visible = true
this.$nextTick(()=>{
this.titlename = data
})
},
handleCancel(){
this.visible = false
this.titlename = ''
}
}
}
</script>
<style scoped>
.header-text {
font-size: 14px;
font-weight: bold;
height: 24px;
margin-bottom: 20px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 88px;
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;
color: #000F16;
}
.title-text-text {
margin-top: 9px;
}
.itemModel {
width: 100%;
display: inline-block;
margin-top: 2px;
margin-bottom: 12px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index: 100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
/*.button-text {*/
/* height: 38px;*/
/* width: calc(100% - 250px);*/
/* line-height: 38px;*/
/* background: #fff;*/
/* border: 1px #00B3BE solid;*/
/* color: #00B3BE;*/
/*}*/
</style>
@@ -10,6 +10,7 @@
rowKey="id" rowKey="id"
:data-source="dataSource" :data-source="dataSource"
:columns="columns" :columns="columns"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
> >
<!-- --> <!-- -->
<span slot="endTime" slot-scope="text,record"> <span slot="endTime" slot-scope="text,record">
@@ -44,20 +45,208 @@
@showSizeChange="SizeChange" @showSizeChange="SizeChange"
/> />
</div> </div>
<a-drawer
:title="title"
:maskClosable="false"
:width="948"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 40px">
<div class="header-text">
{{$t('basicInformation')}}
</div>
<div class="content-text">
<div class="text-field" v-for="(item,index) in projectInformationList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right text-field-right-url"
:title="queryForm[item.value]"
v-if="item.type == 1"
>{{queryForm[item.value]}}</span>
<span class="text-field-right text-field-right-url"
v-else-if="item.type == '4'" :title="queryForm[item.value]"
>{{queryForm[item.value]}}</span>
<span class="text-field-right" v-else :title="queryForm[item.value]"
>{{queryForm[item.value]}}</span>
</div>
</div>
</div>
<div style="margin-bottom: 40px">
<div class="header-text">
{{$t('TaskRequirements')}}
</div>
<div class="content-text">
<div class="text-field" :class="{'text-content-button-one':item.type == 4 ? true :false}"
v-for="(item,index) in standardContentList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right text-field-right-url"
v-if="item.type == 1"
></span>
<span class="text-field-right text-field-right-url"
v-else-if="item.type == '5'"
></span>
<span class="text-field-right text-field-right-url"
v-else-if="item.type == 2"
>{{ $t('viewFile') }}</span>
<span class="text-field-right" v-else
></span>
</div>
</div>
</div>
<div style="margin-bottom: 40px">
<div class="header-text">
{{$t('personLiableConfirm')}}
</div>
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('reviewResults')">{{$t('reviewResults')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-radio-group>
<a-radio value="Compliance">
{{$t('accord')}}
</a-radio>
<a-radio value="Non-Compliance">
{{$t('nonConformity')}}
</a-radio>
<a-radio value="To be tracked">
{{$t('Tracked')}}
</a-radio>
<a-radio value="NA">
{{$t('notInvolved')}}
</a-radio>
<a-radio>
{{$t('turnToDo')}}
</a-radio>
</a-radio-group>
</a-form-model-item>
</div>
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
rows="4"/>
</a-form-model-item>
</div>
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text">{{$t('uploadattachment')}}</a-button>
</a-form-model-item>
</div>
</div>
<div style="margin-bottom: 40px">
<div class="header-text">
{{$t('circulationHistory')}}
</div>
<div class="process-content">
<div style="display: flex;justify-content: space-between">
<div class="process-content-content">
<img src="../../../../assets/wancheng.png" class="process-content-left" alt="">
<img src="../../../../assets/shijian.png" class="process-content-left" alt="">
<img src="../../../../assets/xian.png" class="process-content-left" alt="">
<div class="process-content-right">
<div class="process-content-right-top"></div>
</div>
</div>
</div>
<div class="process-content-right-xian"></div>
</div>
<a-table
:pagination="false"
:scroll="{x: '100%'}"
rowKey="id"
:columns="Historycolumns"
>
</a-table>
</div>
<div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button style="margin-right: .8rem" type="danger">{{$t('sendBack')}}</a-button>
<a-button type="primary">{{$t('adopt')}}</a-button>
</div>
</a-drawer>
</div> </div>
</template> </template>
<script> <script>
import { getAction, postAction, deleteAction } from '@/api/manage' import { getAction, postAction, deleteAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header' import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import confirmationDrawer from './confirmationDrawer'
export default { export default {
name: 'dealtWith', name: 'dealtWith',
mixins:[ResizeHeader, ResizeColumnProvide], components:{
confirmationDrawer
},
mixins:[ResizeHeader, ResizeColumnProvide,],
data() { data() {
return { return {
visible: false,
title:'',
queryForm: {},
dataSource: [], dataSource: [],
loading: false, loading: false,
projectInformationList: [
{
title: this.$t('entryName'),
value: 'projectName'
},
{
title: this.$t('regulationNo'),
value: 'targetMarket_dictText'
},
{
title: this.$t('title'),
value: 'subtitle'
},
{
title: this.$t('subtitle'),
value: 'serialNumber',
type: '4'
},
{
title: this.$t('applicableSupplement'),
value: 'title'
},
],
standardContentList: [
{
title: this.$t('Sponsor'),
value: this.$route.query.Sponsor
},
{
title: this.$t('personLiable'),
value: this.$route.query.personLiable
},
{
title: this.$t('closingDate'),
value: this.$route.query.DueDate
},
{
title: this.$t('typeOfDeliverables'),
value: this.$route.query.typeOfDeliverables
},
{
title: this.$t('deliverableTemplate'),
value: this.$route.query.deliverableTemplate,
type: 2
},
{},
{
title: this.$t('descriptionDeliverables'),
value: this.$route.query.remarks
}
],
columns: [ columns: [
{ {
title: this.$t('RelatedItems'), title: this.$t('RelatedItems'),
@@ -82,6 +271,20 @@
ellipsis: true, ellipsis: true,
width: 170 width: 170
}, },
{
title: this.$t('Tasknode'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{ {
title: this.$t('Sponsor'), title: this.$t('Sponsor'),
align: 'left', align: 'left',
@@ -97,14 +300,14 @@
width: 170, width: 170,
scopedSlots: { customRender: 'endTime' } scopedSlots: { customRender: 'endTime' }
}, },
{ // {
title: this.$t('taskStatus'), // title: this.$t('taskStatus'),
align: 'left', // align: 'left',
dataIndex: 'statusShow', // dataIndex: 'statusShow',
ellipsis: true, // ellipsis: true,
width: 170, // width: 170,
scopedSlots: { customRender: 'taskStatus' } // scopedSlots: { customRender: 'taskStatus' }
}, // },
{ {
title: this.$t('operation'), title: this.$t('operation'),
align: 'left', align: 'left',
@@ -113,14 +316,53 @@
scopedSlots: { customRender: 'operation' } scopedSlots: { customRender: 'operation' }
} }
], ],
Historycolumns: [
{
title: this.$t('Operator'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('Tasknode'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('OperationTime'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('resultofhandling'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 170
},
{
title: this.$t('OperationContent'),
align: 'left',
dataIndex: '',
ellipsis: true,
width: 210
},
],
selectedRowKeys: [], selectedRowKeys: [],
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
total: 0, total: 0,
url: { url: {
list: '/todoCenter/projectProcess/todoTaskList' list: '/todoCenter/projectProcess/todoTaskList',
urlFrom: 'project/projectLibraryBase/queryById',
}, },
queryParam: {} queryParam: {},
regulatoryCertificationTaskPlanList: []
} }
}, },
mounted() { mounted() {
@@ -130,6 +372,10 @@
this.getList() this.getList()
}, },
methods: { methods: {
onSelectChange(value) {
this.selectedRowKeys = value
console.log(this.selectedRowKeys)
},
RelatedItemsClick(item) { RelatedItemsClick(item) {
let newUrl = this.$router.resolve({ let newUrl = this.$router.resolve({
path: '/ProjectDetails', path: '/ProjectDetails',
@@ -223,11 +469,15 @@
primaryKeyId: row.primaryKeyId, primaryKeyId: row.primaryKeyId,
PersonChargeFeedback: row.personChargeFeedback PersonChargeFeedback: row.personChargeFeedback
} }
let newUrl = this.$router.resolve({ // let newUrl = this.$router.resolve({
path: '/taskListProcess', // path: '/taskListProcess',
query: query // query: query
}) // })
window.open(newUrl.href, '_blank') // window.open(newUrl.href, '_blank')
this.visible = true
this.title = this.$t('designComplianceReview')
this.getQueryForm()
} else if (row.flowType == '3') { } else if (row.flowType == '3') {
row.taskId = row.taskId + '' row.taskId = row.taskId + ''
if (row.taskId.length > 30) { if (row.taskId.length > 30) {
@@ -291,11 +541,13 @@
primaryKeyId: row.primaryKeyId, primaryKeyId: row.primaryKeyId,
PersonChargeFeedback: row.personChargeFeedback PersonChargeFeedback: row.personChargeFeedback
} }
let newUrl = this.$router.resolve({ // let newUrl = this.$router.resolve({
path: '/taskListProcess', // path: '/taskListProcess',
query: query // query: query
}) // })
window.open(newUrl.href, '_blank') // window.open(newUrl.href, '_blank')
this.visible = true
this.title = this.$t('verificationComplianceReview')
} }
}, },
searchQuery(value) { searchQuery(value) {
@@ -344,12 +596,28 @@
this.loading = false this.loading = false
} }
}) })
} },
handleCancel() {
this.visible = false
},
getQueryForm() {
getAction(this.url.urlFrom).then((res) => {
if (res.success) {
this.queryForm = res.result[0] || {}
if (this.queryProject) {
this.queryForm = { ...this.queryForm, ...this.queryProject }
console.log(this.queryForm)
}
} else {
this.queryForm = {}
}
})
},
} }
} }
</script> </script>
<style scoped> <style lang="less" scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
.page { .page {
text-align: right; text-align: right;
@@ -359,4 +627,177 @@
.activeRed { .activeRed {
color: red; color: red;
} }
.header-text {
/*font-size: 16px;*/
font-size: 14px;
font-weight: bold;
/*margin-left: 15px;*/
/*border-bottom: 1px #d9d9d9 dashed;*/
/*height: 30px;*/
height: 24px;
/*margin-bottom: 30px;*/
margin-bottom: 20px;
}
.text-field-left {
width: 124px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 24px;
}
.content-text {
width: 100%;
display: flex;
flex-wrap: wrap;
.text-field {
width: 50%;
margin-bottom: 8px;
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
.text-field-right-url {
color: #00B3BE !important;
cursor: pointer;
}
}
}
.itemModel {
width: 100%;
display: inline-block;
margin-top: 2px;
margin-bottom: 12px;
}
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 88px;
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;
color: #000F16;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
//
//.button-text {
// height: 38px;
// width: calc(100% - 250px);
// line-height: 38px;
// background: #fff;
// border: 1px #00B3BE solid;
// color: #00B3BE;
//}
.process-content {
margin-top: 4px;
position: relative;
margin-bottom: 20px;
.process-content-content {
background: #fff;
z-index: 1000;
padding: 0 20px;
.process-content-left {
float: left;
}
.process-content-right {
float: left;
margin-left: 7px;
.process-content-right-top {
font-size: 14px;
font-weight: 400;
color: #040B29;
max-width: 155px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.process-content-right-button {
max-width: 155px;
font-size: 12px;
font-weight: 400;
color: #6F7385;
margin-top: -4px;
}
}
}
.process-content-content:first-child {
padding: 0 20px 0 0;
}
.process-content-content:last-child {
padding: 0 0 0 20px;
}
.process-content-right-xian {
height: 2px;
width: calc(100% - 27px);
background: #E6E6E9;
position: absolute;
top: 16px;
}
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index: 100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style> </style>
@@ -76,11 +76,17 @@
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<div class="table-operator" style="margin-bottom: 8px"> <div class="table-operator" style="margin-bottom: 8px"
<div @click="taskConfirmationHandlingClick" v-if="tabActive == $t('toDoProcess')">
<div @click="TaskresponsibilityrecognitionClick"
class="operator-text"> class="operator-text">
<a-icon type="form"/> <a-icon type="form"/>
{{$t('taskConfirmationHandling')}} {{$t('Taskresponsibilityrecognition')}}
</div>
<div @click="complianceConfirmationClick"
class="operator-text">
<a-icon type="form"/>
{{$t('complianceConfirmation')}}
</div> </div>
</div> </div>
<a-tabs v-model="tabActive" @change="callback"> <a-tabs v-model="tabActive" @change="callback">
@@ -94,6 +100,7 @@
<SentList v-if="tabActive == $t('sentProcess')" ref="SentListRef"/> <SentList v-if="tabActive == $t('sentProcess')" ref="SentListRef"/>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<confirmation-drawer ref="confirmationdrawer"></confirmation-drawer>
</a-card> </a-card>
</template> </template>
@@ -102,16 +109,19 @@
import dealtWith from './components/dealtWith' import dealtWith from './components/dealtWith'
import doneList from './components/doneList' import doneList from './components/doneList'
import SentList from './components/SentList' import SentList from './components/SentList'
import confirmationDrawer from './components/confirmationDrawer'
export default { export default {
name: 'index', name: 'index',
components: { components: {
dealtWith, dealtWith,
doneList, doneList,
SentList SentList,
confirmationDrawer
}, },
data() { data() {
return { return {
title: '',
queryParam: { queryParam: {
projectName:this.$route.query.projectName?this.$route.query.projectName:'' projectName:this.$route.query.projectName?this.$route.query.projectName:''
}, },
@@ -164,6 +174,14 @@
} }
}, },
methods: { methods: {
TaskresponsibilityrecognitionClick() {
this.$refs.confirmationdrawer.confirmation(1)
// this.title = this.$t('Taskresponsibilityrecognition')
},
complianceConfirmationClick() {
this.$refs.confirmationdrawer.confirmation(2)
// this.title = this.$t('complianceConfirmation')
},
callback(value) { callback(value) {
this.tabActive = value this.tabActive = value
}, },
@@ -189,11 +207,11 @@
this.$refs.SentListRef.searchReset() this.$refs.SentListRef.searchReset()
} }
}, },
taskConfirmationHandlingClick() { // taskConfirmationHandlingClick() {
this.$router.push({ // this.$router.push({
path: '/toDoTaskConfirmation' // path: '/toDoTaskConfirmation'
}) // })
} // }
} }
} }
</script> </script>
@@ -86,7 +86,7 @@
<!-- </div>--> <!-- </div>-->
<!-- v-if="isTrue"--> <!-- v-if="isTrue"-->
<div v-if="isTrue" class="operator-text" v-has="'dummyInventoryInfo:importData'" > <div v-if="isTrue" class="operator-text" v-has="'dummyInventoryInfo:importData'" >
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" <ImportFile :url="url" :authDummyInventoryBaseId="$route.query.id" :isTrue="true"
:accept="'.zip'"/> :accept="'.zip'"/>
</div> </div>
<!-- 模板下载--> <!-- 模板下载-->
@@ -266,6 +266,7 @@ export default {
deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除 deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除
editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑 editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑
setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置 setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置
importZipUrl: '/authDummy/authDummyInventoryInfoEO/importData',//导入
number: '/project/projectLawsInventoryEO/list', number: '/project/projectLawsInventoryEO/list',
}, },
queryParam: {}, queryParam: {},
@@ -464,7 +465,7 @@ export default {
...this.queryParam, ...this.queryParam,
...this.queryParamQuery, ...this.queryParamQuery,
ids: selectedRowKeys.join(','), ids: selectedRowKeys.join(','),
dummyInventoryBaseId: this.$route.query.id authDummyInventoryBaseId: this.$route.query.id
} }
downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualAuthenticationList') + '.zip', query, this.Deselect) downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualAuthenticationList') + '.zip', query, this.Deselect)
}, },