Merge remote-tracking branch 'origin/master'
This commit is contained in:
+1
@@ -141,6 +141,7 @@ public class ShiroConfig {
|
||||
|
||||
filterChainDefinitionMap.put("/project/projectLawsInventoryEO/processCall", "anon"); // 项目库-法规清单 工作流处理数据接口排除
|
||||
filterChainDefinitionMap.put("/project/projectTaskInventoryEO/processCall", "anon"); // 项目库-任务清单 工作流处理数据接口排除
|
||||
filterChainDefinitionMap.put("/wkflow/processHistoryEO/processCall", "anon"); // 流程历史 工作流处理数据接口排除
|
||||
filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口
|
||||
|
||||
// 添加自己的过滤器并且取名为jwt
|
||||
|
||||
+13
-9
@@ -2,21 +2,25 @@ package com.jero.modules.dummy.enums;
|
||||
|
||||
|
||||
public enum DummyInventoryBaseFieldEnum {
|
||||
TITLE("标题","title"),
|
||||
SUBTITLE("子标题","subtitle"),
|
||||
WVTA_ID("WVTA ID","wvta_id"),
|
||||
SHI4_YONG4_FAN4_WEI2("适用范围","apply_scope"),
|
||||
XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1("新车型实施日期","xin1_che1_xing2_shi2_shi1_ri4_qi1"),
|
||||
IMPLEMENT_TIME("在产车实施日期","implement_time"),
|
||||
ATTESTATION_TYPE("认证类型","attestation_type"),
|
||||
TECHNOLOGY_TERRITORY("技术领域","technology_territory"),
|
||||
DUTY_TERRITORY("责任领域","duty_territory"),
|
||||
IMPLEMENT_TYPE("实施类别","implement_type"),
|
||||
ATTESTATION_TYPE("认证类型","attestation_type"),
|
||||
ATTESTATION_RANK("认证级别","attestation_rank"),
|
||||
IMPLEMENT_TYPE("实施类别","implement_type"),
|
||||
REGION("适用地区","region"),
|
||||
APPLICABLE_SUPPLEMENT("适用增补件","applicable_supplement"),
|
||||
REMARK("备注","remark"),
|
||||
|
||||
DELIVERABLE_TEMPLATE("交付物类型","deliverable_template"),
|
||||
FA1_QI3_REN2("发起人","fa1_qi3_ren2"),
|
||||
ZE2_REN2_REN2("责任人","ze2_ren4_ren2"),
|
||||
SHI4_YONG4_FAN4_WEI2("适用范围","apply_scope"),
|
||||
REGION("适用地区","region"),
|
||||
XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1("新车型实施日期","xin1_che1_xing2_shi2_shi1_ri4_qi1"),
|
||||
IMPLEMENT_TIME("在产车实施日期","implement_time"),
|
||||
WVTA_ID("WVTA ID","wvta_id"),
|
||||
SUBTITLE("子标题","subtitle"),
|
||||
REMARK("备注","remark"),
|
||||
|
||||
DESIGN_DELIVERABLE_TYPE("设计符合性确认-交付物类型","deliverable_template"),
|
||||
DESIGN_DELIVERABLE_TEMPLATE("设计符合性确认-交付物模板","design_deliverable_template"),
|
||||
DESIGN_INITIATOR("设计符合性确认-发起人","fa1_qi3_ren2"),
|
||||
|
||||
+116
-45
@@ -428,6 +428,22 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
public void disposeData(List<DummyInventoryInfoEO> records) {
|
||||
Set<String> technologyTerritorySet = new HashSet<>();
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : records) {
|
||||
//子标题
|
||||
if (StringUtils.isBlank(dummyInventoryInfoEO.getSubtitle())) {
|
||||
dummyInventoryInfoEO.setSubtitle("空");
|
||||
}
|
||||
//WVTA ID
|
||||
if (StringUtils.isBlank(dummyInventoryInfoEO.getWvtaId())) {
|
||||
dummyInventoryInfoEO.setWvtaId("空");
|
||||
}
|
||||
//备注
|
||||
if (StringUtils.isBlank(dummyInventoryInfoEO.getRemark())) {
|
||||
dummyInventoryInfoEO.setRemark("空");
|
||||
}
|
||||
//适用增补件
|
||||
if (StringUtils.isBlank(dummyInventoryInfoEO.getApplicableSupplement())) {
|
||||
dummyInventoryInfoEO.setApplicableSupplement("空");
|
||||
}
|
||||
//技术领域
|
||||
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())) {
|
||||
List<String> list = Arrays.asList(dummyInventoryInfoEO.getTechnologyTerritory().split(","));
|
||||
@@ -540,7 +556,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
dummyInventoryInfoEO.setImplementTimeString("空");
|
||||
}
|
||||
|
||||
|
||||
//交付物类型
|
||||
List<SysDictItem> deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseFieldEnum.DELIVERABLE_TEMPLATE.getValue());
|
||||
//设计符合性确认-交付物类型
|
||||
@@ -685,13 +700,13 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
|
||||
//设置维护清单的新增消息
|
||||
if (StringUtils.isNotBlank(addSerialNumber)) {
|
||||
contentInfo += row + ". " + "This virtual list has been added serial number : " + addSerialNumber + ".\r\n";
|
||||
contentInfo += row + ". " + "This virtual list has been added Number : " + addSerialNumber + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
|
||||
//设置维护清单的删除消息
|
||||
if (StringUtils.isNotBlank(deleteSerialNumber)) {
|
||||
contentInfo += row + ". " + "This virtual list has been deleted serial number : " + deleteSerialNumber + ".\r\n";
|
||||
contentInfo += row + ". " + "This virtual list has been deleted Number : " + deleteSerialNumber + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
|
||||
@@ -700,41 +715,29 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
for (Map<String, String> infoDiff : infoDiffList) {
|
||||
if (infoDiff.size() > 1) {
|
||||
int infoDiffRow = 1;
|
||||
contentInfo += row + ". The serial Number " + infoDiff.get("serialNumber") + " has been updated as follows : " + "\r\n";
|
||||
//技术领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("technologyTerritoryName"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("technologyTerritoryName").split("\\|"));
|
||||
contentInfo += row + ". The Number " + infoDiff.get("serialNumber") + " has been updated as follows : " + "\r\n";
|
||||
//标题
|
||||
if (StringUtils.isNotBlank(infoDiff.get("title"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("title").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Technology territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
contentInfo += "(" + infoDiffRow + "). Title has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
contentLog += DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//新车型实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String").split(","));
|
||||
//子标题
|
||||
if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("subtitle").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). The implementation date of new model has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
contentInfo += "(" + infoDiffRow + "). Sub-Title has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//在产车实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementTimeString"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementTimeString").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Implement time has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
contentLog += DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//WVTA ID
|
||||
@@ -749,30 +752,45 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
contentLog += DummyInventoryBaseFieldEnum.WVTA_ID.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//子标题
|
||||
if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("subtitle").split(","));
|
||||
//适用范围applyScope 多选
|
||||
if (StringUtils.isNotBlank(infoDiff.get("applyScope"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("applyScope").split("\\|"));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Subtitle has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
contentInfo += "(" + infoDiffRow + "). Apply Scope has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.SUBTITLE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
} else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//实施类别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementType").split(","));
|
||||
|
||||
//新车型实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1String").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Implement type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
contentInfo += "(" + infoDiffRow + "). The implementation date of new model has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
contentLog += DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//在产车实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementTimeString"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementTimeString").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Implement time has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//认证类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("attestationType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("attestationType").split(","));
|
||||
@@ -785,6 +803,33 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
contentLog += DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//技术领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("technologyTerritoryName"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("technologyTerritoryName").split("\\|"));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Technology territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//责任领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|"));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Duty territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
} else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//认证级别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("attestationRank"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("attestationRank").split(","));
|
||||
@@ -797,20 +842,45 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
contentLog += DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//责任领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split("\\|"));
|
||||
// List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split(","));
|
||||
|
||||
//实施类别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Duty territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
contentInfo += "(" + infoDiffRow + "). Implement type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
} else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//适用地区region 多选
|
||||
if (StringUtils.isNotBlank(infoDiff.get("region"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("region").split("\\|"));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Region has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
} else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.REGION.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//适用增补件applicableSupplement
|
||||
if (StringUtils.isNotBlank(infoDiff.get("applicableSupplement"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("applicableSupplement").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
if (StringUtils.isBlank(contentLog)) {
|
||||
contentInfo += "(" + infoDiffRow + "). Applicable Supplement has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
} else{
|
||||
contentLog += DummyInventoryBaseFieldEnum.APPLICABLE_SUPPLEMENT.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
//备注
|
||||
if (StringUtils.isNotBlank(infoDiff.get("remark"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("remark").split(","));
|
||||
@@ -823,6 +893,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
contentLog += DummyInventoryBaseFieldEnum.REMARK.getName() + "由" + infoDiffOld + "改为" + infoDiffNew + ",";
|
||||
}
|
||||
}
|
||||
|
||||
//设计符合性确认-交付物类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("designDeliverableType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("designDeliverableType").split(","));
|
||||
@@ -974,7 +1045,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
if(StringUtils.isNotBlank(contentLog)) {
|
||||
contentInfo = contentLog;
|
||||
}
|
||||
contentInfo.substring(0, contentInfo.length() - 1);
|
||||
contentInfo = contentInfo.substring(0, contentInfo.length() - 1);
|
||||
return contentInfo;
|
||||
}
|
||||
}
|
||||
|
||||
+41
-57
@@ -17,7 +17,6 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO;
|
||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryInfoEOEn;
|
||||
import com.jero.modules.dummy.entity.DummyLogEO;
|
||||
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
|
||||
import com.jero.modules.dummy.mapper.DummyInventoryInfoEOMapper;
|
||||
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
|
||||
@@ -95,21 +94,6 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
return pageInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置更新log
|
||||
*
|
||||
*/
|
||||
private void updateLog(String contentLog,String baseId) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (StringUtils.isNotBlank(contentLog)) {
|
||||
DummyLogEO dummyLogEO = new DummyLogEO();
|
||||
dummyLogEO.setDummyInventoryBaseId(baseId);
|
||||
dummyLogEO.setLogContent(contentLog);
|
||||
dummyLogEO.setCreateBy(sysUser.getUsername());
|
||||
dummyLogEOService.add(dummyLogEO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -165,7 +149,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String username = sysUser.getUsername();
|
||||
String serialNumber = list.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
|
||||
String contentLog = username+"向清单中添加了标准\""+serialNumber+"\"";
|
||||
updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId());
|
||||
dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,7 +167,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
//更新log
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String username = sysUser.getUsername();
|
||||
String contentLog = username+"编辑了清单中的\""+dummyInventoryInfoEO.getSerialNumber()+"\",";
|
||||
String contentLog = username+"编辑了清单中的\"" + dummyInventoryInfoEO.getSerialNumber() + "\"标准:";
|
||||
List<DummyInventoryInfoEO> infoEOList = new ArrayList<>();
|
||||
infoEOList.add(dummyInventoryInfoEO);
|
||||
//查询数据库里原来的数据
|
||||
@@ -202,7 +186,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
infoDiffList.add(infoDiff);
|
||||
contentLog = dummyInventoryBaseEOService.setContentInfo(null,null,infoDiffList,null,null,contentLog);
|
||||
|
||||
updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId());
|
||||
dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId());
|
||||
|
||||
}
|
||||
|
||||
@@ -251,7 +235,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId();
|
||||
String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
|
||||
String contentLog = username+"删除了清单中的\""+serialNumber+"\"标准";
|
||||
updateLog(contentLog, projectId);
|
||||
dummyLogEOService.updateLog(contentLog, projectId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -304,7 +288,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId();
|
||||
String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
|
||||
String contentLog = username+"复制了\""+serialNumber+"\"";
|
||||
updateLog(contentLog, projectId);
|
||||
dummyLogEOService.updateLog(contentLog, projectId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,7 +411,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){
|
||||
dummyInventoryInfoEOTemp.setImplementTime(dummyInventoryInfoEO.getImplementTime());
|
||||
if (info.getImplementTime() == null){
|
||||
setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String());
|
||||
setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString());
|
||||
}else {
|
||||
if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) {
|
||||
setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString());
|
||||
@@ -439,7 +423,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
this.updateBatchById(dummyInventoryInfoEOList);
|
||||
|
||||
contentLog = contentLogBuilder.substring(0, contentLogBuilder.length() - 1);
|
||||
updateLog(contentLog, projectId);
|
||||
dummyLogEOService.updateLog(contentLog, projectId);
|
||||
}
|
||||
}
|
||||
public StringBuilder setUpdateContentLog(StringBuilder contentLogBuilder,String fieldName,String oldValue,String newValue){
|
||||
@@ -468,10 +452,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
"设计符合性确认,Pre-homo确认,验证符合性确认";
|
||||
titleTwo = "交付物类型,交付物模板,发起人,责任人,交付物类型,交付物模板,发起人,责任人,交付物类型,交付物模板,发起人,责任人";
|
||||
}else{
|
||||
titleOne = "*serial number,subtitle,implementation category," +
|
||||
"WVTA ID,certification type," +
|
||||
"*certification level," +"applicable supplement,"+
|
||||
"*area of responsibility,remarks," +
|
||||
titleOne = "*Number,Sub-Title,Usage," +
|
||||
"WVTA ID,Certification Type," +
|
||||
"*Certification Level," +"Applicable Supplement,"+
|
||||
"*Responsible Field,Comments," +
|
||||
"design compliance check,pre-homo check,validation compliance chech";
|
||||
titleTwo = "type of deliverables,deliverable template,initiator,person liable," +
|
||||
"type of deliverables,deliverable template,initiator,person liable," +
|
||||
@@ -484,7 +468,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
index = list.indexOf("备注") + 1;
|
||||
}else{
|
||||
index = list.indexOf("remarks") + 1;
|
||||
index = list.indexOf("Comments") + 1;
|
||||
}
|
||||
|
||||
//创建临时文件夹
|
||||
@@ -541,13 +525,13 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
"5.编号,子标题,WVTA ID,备注,填写文本内容\n" +
|
||||
"6.交付物模板字段为文件属性,填写时需要在本文件同级目录下以标准号为名称建立文件夹,并在文件夹下放置文件,假设在AAA标准号下放置了B.docx,则应填写AAA/B.docx";
|
||||
}else{
|
||||
explain = "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";
|
||||
explain = "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.Responsible Field, 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.Number,Sub-Title,WVTA ID,Comments,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";
|
||||
}
|
||||
|
||||
|
||||
@@ -605,7 +589,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
*/
|
||||
private void treeDict(DummyInventoryInfoEO dummyInventoryInfoEO, List<DummyInventoryInfoEO> dummyInventoryInfoEOList) {
|
||||
Set<String> technologyTerritorySet = new HashSet<>();
|
||||
// Set<String> correspondingStandardSet = new HashSet<>();
|
||||
Set<String> correspondingStandardSet = new HashSet<>();
|
||||
List<String> deliverableList = new ArrayList<>();
|
||||
if(dummyInventoryInfoEOList.size() != 0){
|
||||
for (DummyInventoryInfoEO record : dummyInventoryInfoEOList) {
|
||||
@@ -747,10 +731,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
title = "*编号,子标题,实施类别,WVTA ID,认证类型,*认证级别,适用增补件,*责任领域,备注," +
|
||||
"设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人";
|
||||
}else{
|
||||
title = "*serial number,subtitle,implementation category," +
|
||||
"WVTA ID,certification type," +
|
||||
"*certification level," +"applicable supplement,"+
|
||||
"*area of responsibility,remarks," +
|
||||
title = "*Number,Sub-Title,Usage," +
|
||||
"WVTA ID,Certification Type," +
|
||||
"*Certification Level," +"Applicable Supplement,"+
|
||||
"*Responsible Field,Comments," +
|
||||
"design type of deliverables,design deliverable template,design initiator,design person liable," +
|
||||
"pre type of deliverables,pre deliverable template,pre initiator,pre person liable," +
|
||||
"verify type of deliverables,verify deliverable template,verify initiator,verify person liable";
|
||||
@@ -1042,7 +1026,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String verifyDeliverableTemplate = dummyInventoryInfoEO.getVerifyDeliverableTemplate();
|
||||
|
||||
//编号(输入框必填)
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "serial number");
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "Number");
|
||||
|
||||
//子标题
|
||||
if(StringUtils.isNotBlank(subtitle)){
|
||||
@@ -1083,30 +1067,30 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
|
||||
|
||||
//实施类别(单选不必填)
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, implementType,msgList,"实施类别","implementation category","implement_type");
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, implementType,msgList,"实施类别","Usage","implement_type");
|
||||
if(StringUtils.isNotBlank(value)){
|
||||
dummyInventoryInfoEO.setImplementType(value);
|
||||
}
|
||||
|
||||
//认证类型(单选不必填)
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationType,msgList,"认证类型","certification type","attestation_type");
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationType,msgList,"认证类型","Certification Type","attestation_type");
|
||||
if(StringUtils.isNotBlank(value)){
|
||||
dummyInventoryInfoEO.setAttestationType(value);
|
||||
}
|
||||
|
||||
//认证级别(单选必填)
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, attestationRank,"认证级别","certification level");
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, attestationRank,"认证级别","Certification Level");
|
||||
if(flag){
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationRank,msgList,"认证级别","certification level","attestation_rank");
|
||||
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationRank,msgList,"认证级别","Certification Level","attestation_rank");
|
||||
if(StringUtils.isNotBlank(value)){
|
||||
dummyInventoryInfoEO.setAttestationRank(value);
|
||||
}
|
||||
}
|
||||
|
||||
//责任领域(多选必填)
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, dutyTerritory,"责任领域","area of responsibility");
|
||||
flag = must(dummyInventoryInfoEO, errorMsg, msgList, dutyTerritory,"责任领域","Responsible Field");
|
||||
if(flag){
|
||||
value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, dutyTerritory,msgList,"责任领域","area of responsibility","duty_territory");
|
||||
value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory");
|
||||
if(StringUtils.isNotBlank(value)){
|
||||
dummyInventoryInfoEO.setDutyTerritory(value);
|
||||
}
|
||||
@@ -1209,8 +1193,8 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String serialNumber = serialNumberBuilder.substring(0, serialNumberBuilder.length() - 1);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String username = sysUser.getUsername();
|
||||
String contentLog = username+"向清单中添加了标准\""+serialNumber+"\"";
|
||||
updateLog(contentLog, dataList.get(0).getDummyInventoryBaseId());
|
||||
String contentLog = username+"向清单中导入了\""+serialNumber+"\"标准";
|
||||
dummyLogEOService.updateLog(contentLog, dataList.get(0).getDummyInventoryBaseId());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1458,23 +1442,23 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
case "验证责任人": return "verifyDuty";
|
||||
|
||||
|
||||
case "*serial number": return "serialNumber";
|
||||
case "*Number": return "serialNumber";
|
||||
case "title": return "title";
|
||||
case "subtitle": return "subtitle";
|
||||
case "Sub-Title": return "subtitle";
|
||||
// case "适用范围": return "shi4Yong4Fan4Wei2";
|
||||
// case "状态": return "state";
|
||||
// case "对应标准": return "correspondingStandard";
|
||||
case "implementation category": return "implementType";
|
||||
case "Usage": return "implementType";
|
||||
// case "新车实施日期": return "xin1Che1Xing2Shi2Shi1Ri4Qi1";
|
||||
// case "在产车实施日期": return "implementTime";
|
||||
// case "WVTA ID": return "wvtaId";
|
||||
case "certification type": return "attestationType";
|
||||
case "*certification level": return "attestationRank";
|
||||
case "responsibility": return "applicableSupplement";
|
||||
case "Certification Type": return "attestationType";
|
||||
case "*Certification Level": return "attestationRank";
|
||||
case "Applicable Supplement": return "applicableSupplement";
|
||||
// case "技术领域": return "technologyTerritory";
|
||||
case "*area of responsibility": return "dutyTerritory";
|
||||
case "*Responsible Field": return "dutyTerritory";
|
||||
// case "适用地区": return "region";
|
||||
case "remarks": return "remark";
|
||||
case "Comments": return "remark";
|
||||
case "design type of deliverables": return "designDeliverableType";
|
||||
case "design deliverable template": return "designDeliverableTemplate";
|
||||
case "design initiator": return "designInitiator";
|
||||
|
||||
+20
-2
@@ -1,12 +1,16 @@
|
||||
package com.jero.modules.dummy.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.dummy.entity.DummyLogEO;
|
||||
import com.jero.modules.dummy.mapper.DummyLogEOMapper;
|
||||
import com.jero.modules.dummy.service.IDummyLogEOService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 虚拟清单log表
|
||||
@@ -16,6 +20,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
*/
|
||||
@Service
|
||||
public class DummyLogEOServiceImpl extends ServiceImpl<DummyLogEOMapper, DummyLogEO> implements IDummyLogEOService {
|
||||
/**
|
||||
* 设置更新log
|
||||
*
|
||||
*/
|
||||
public void updateLog(String contentLog,String baseId) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (StringUtils.isNotBlank(contentLog)) {
|
||||
DummyLogEO dummyLogEO = new DummyLogEO();
|
||||
dummyLogEO.setDummyInventoryBaseId(baseId);
|
||||
dummyLogEO.setLogContent(contentLog);
|
||||
dummyLogEO.setCreateBy(sysUser.getUsername());
|
||||
add(dummyLogEO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
|
||||
@@ -39,7 +39,8 @@ public class ListDiff <T> {
|
||||
// v2String = new StringBuilder("null");
|
||||
// }
|
||||
if(f.getName().contains("erritory") || f.getName().contains("emplate")
|
||||
|| f.getName().equals(("shi4Yong4Fan4Wei2")) || f.getName().equals("region")){
|
||||
|| f.getName().equals(("shi4Yong4Fan4Wei2")) || f.getName().equals("region")
|
||||
|| f.getName().equals("applyScope")){
|
||||
result.put(f.getName(), v1String.append("|").append(v2String).toString());
|
||||
}else {
|
||||
//
|
||||
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
package com.jero.modules.project.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
|
||||
import com.jero.modules.project.service.IProjectLawsInventoryLogEOService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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 javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 项目库-法规清单更新log表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-17
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="项目库-法规清单更新log表")
|
||||
@RestController
|
||||
@RequestMapping("/project/projectLawsInventoryLogEO")
|
||||
@Slf4j
|
||||
public class ProjectLawsInventoryLogEOController extends JeroController<ProjectLawsInventoryLogEO, IProjectLawsInventoryLogEOService> {
|
||||
@Autowired
|
||||
private IProjectLawsInventoryLogEOService projectLawsInventoryLogEOService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-分页列表查询")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-分页列表查询", notes="项目库-法规清单更新log表-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(ProjectLawsInventoryLogEO projectLawsInventoryLogEO,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ProjectLawsInventoryLogEO> queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryLogEO, req.getParameterMap());
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
Page<ProjectLawsInventoryLogEO> page = new Page<ProjectLawsInventoryLogEO>(pageNo, pageSize);
|
||||
IPage<ProjectLawsInventoryLogEO> pageList = projectLawsInventoryLogEOService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-列表查询")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-列表查询", notes="项目库-法规清单更新log表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<ProjectLawsInventoryLogEO>> queryList() {
|
||||
List<ProjectLawsInventoryLogEO> list = projectLawsInventoryLogEOService.queryList();
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-添加")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-添加", notes="项目库-法规清单更新log表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@Validated @RequestBody ProjectLawsInventoryLogEO projectLawsInventoryLogEO) {
|
||||
projectLawsInventoryLogEOService.add(projectLawsInventoryLogEO);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-编辑")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-编辑", notes="项目库-法规清单更新log表-编辑")
|
||||
@PutMapping(value = "/edit")
|
||||
public Result<?> edit(@Validated @RequestBody ProjectLawsInventoryLogEO projectLawsInventoryLogEO) {
|
||||
projectLawsInventoryLogEOService.editById(projectLawsInventoryLogEO);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-通过id删除")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-通过id删除", notes="项目库-法规清单更新log表-通过id删除")
|
||||
@DeleteMapping(value = "/delete")
|
||||
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||
projectLawsInventoryLogEOService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-批量删除")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-批量删除", notes="项目库-法规清单更新log表-批量删除")
|
||||
@DeleteMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||
this.projectLawsInventoryLogEOService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-法规清单更新log表-通过id查询")
|
||||
@ApiOperation(value="项目库-法规清单更新log表-通过id查询", notes="项目库-法规清单更新log表-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
ProjectLawsInventoryLogEO projectLawsInventoryLogEO = projectLawsInventoryLogEOService.queryById(id);
|
||||
if(projectLawsInventoryLogEO==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
return Result.OK(projectLawsInventoryLogEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param projectLawsInventoryLogEO
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, ProjectLawsInventoryLogEO projectLawsInventoryLogEO) {
|
||||
return super.exportXls(request, projectLawsInventoryLogEO, ProjectLawsInventoryLogEO.class, "项目库-法规清单更新log表");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
return super.importExcel(request, response, ProjectLawsInventoryLogEO.class);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -29,7 +29,7 @@ import java.util.Map;
|
||||
* @Date: 2022-04-11
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="项目库-项目库-相关人员维护表")
|
||||
@Api(tags="项目库-相关人员维护表")
|
||||
@RestController
|
||||
@RequestMapping("/project/projectRelatedPersonnel")
|
||||
@Slf4j
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ public class ProjectStatusBoardController {
|
||||
@ApiOperation(value="时间轴列表", notes="时间轴列表")
|
||||
@GetMapping(value = "/timelineList")
|
||||
public Result<?> timelineList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) {
|
||||
List<List<TimeNodeVO>> result = iProjectStatusBoardService.timelineList(projectLibraryBase, req);
|
||||
List<Map<String,Object>> result = iProjectStatusBoardService.timelineList(projectLibraryBase, req);
|
||||
if(result==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public class ProjectStatusBoardController {
|
||||
@AutoLog(value = "时间轴列")
|
||||
@ApiOperation(value="时间轴列", notes="时间轴列")
|
||||
@GetMapping(value = "/timeline")
|
||||
public Result<?> timeline(Date startTime,Date endTime) {
|
||||
public Result<?> timeline(String startTime,String endTime) {
|
||||
List<String> timeline = iProjectStatusBoardService.timeline(startTime, endTime);
|
||||
return Result.OK(timeline);
|
||||
}
|
||||
|
||||
+3
-3
@@ -74,14 +74,14 @@ public class ProjectTaskInventoryDetailEOController extends JeroController<Proje
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param projectTaskInventoryDetailEO
|
||||
* @param projectTaskInventoryDetailEOList
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-任务清单明细表-添加")
|
||||
@ApiOperation(value="项目库-任务清单明细表-添加", notes="项目库-任务清单明细表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@Validated @RequestBody ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO) {
|
||||
projectTaskInventoryDetailEOService.add(projectTaskInventoryDetailEO);
|
||||
public Result<?> add(@Validated @RequestBody List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList) {
|
||||
projectTaskInventoryDetailEOService.add(projectTaskInventoryDetailEOList);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
|
||||
+37
-7
@@ -1,18 +1,21 @@
|
||||
package com.jero.modules.project.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
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 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.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.Date;
|
||||
|
||||
|
||||
/**
|
||||
@@ -118,6 +121,8 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "新车型实施日期")
|
||||
private Date xin1Che1Xing2Shi2Shi1Ri4Qi1;
|
||||
@TableField(exist = false)
|
||||
private String xin1Che1Xing2Shi2Shi1Ri4Qi1String;
|
||||
|
||||
/**在产车实施日期*/
|
||||
@Excel(name = "在产车实施日期", width = 20, format = "yyyy-MM-dd")
|
||||
@@ -125,6 +130,8 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "在产车实施日期")
|
||||
private Date implementTime;
|
||||
@TableField(exist = false)
|
||||
private String implementTimeString;
|
||||
|
||||
/**认证类型*/
|
||||
@Excel(name = "认证类型", width = 20,dicCode ="attestation_type")
|
||||
@@ -138,6 +145,10 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@Dict(dicCode ="attestation_rank")
|
||||
private String attestationRank;
|
||||
|
||||
//适用增补件
|
||||
@Excel(name = "适用增补件", width = 20)
|
||||
private String applicableSupplement;
|
||||
|
||||
/**WVTA ID*/
|
||||
@Excel(name = "WVTA ID", width = 20)
|
||||
@ApiModelProperty(value = "WVTA ID")
|
||||
@@ -230,6 +241,12 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "设计符合性确认-截止时间")
|
||||
private Date designDueDate;
|
||||
@TableField(exist = false)
|
||||
private String designDueDateString;
|
||||
|
||||
//交付物说明
|
||||
@Excel(name = "设计符合性确认-交付物说明", width = 20)
|
||||
private String designRemark;
|
||||
|
||||
/**prehomo确认-交付物类型*/
|
||||
@Excel(name = "prehomo确认-交付物类型", width = 20,dicCode ="deliverable_template")
|
||||
@@ -280,6 +297,12 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "prehomo确认-截止时间")
|
||||
private Date prehomoDueDate;
|
||||
@TableField(exist = false)
|
||||
private String prehomoDueDateString;
|
||||
|
||||
//prehomo确认-交付物说明
|
||||
@Excel(name = "prehomo确认-交付物说明", width = 20)
|
||||
private String prehomoRemark;
|
||||
|
||||
/**验证符合性确认-交付物类型*/
|
||||
@Excel(name = "验证符合性确认-交付物类型", width = 20,dicCode ="deliverable_template")
|
||||
@@ -330,7 +353,12 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "验证符合性确认-截止时间")
|
||||
private Date verifyDueDate;
|
||||
@TableField(exist = false)
|
||||
private String verifyDueDateString;
|
||||
|
||||
//验证备注
|
||||
@Excel(name = "验证符合性确认-交付物说明", width = 20)
|
||||
private String verifyRemark;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "角色代码")
|
||||
@@ -386,4 +414,6 @@ public class ProjectLawsInventoryEO implements Serializable {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "调取虚拟清单,虚拟清单中维护数据为空时,进行二次确认")
|
||||
private String flag;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.jero.modules.project.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
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;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 项目库-法规清单更新log表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-17
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("project_laws_inventory_log")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="project_laws_inventory_log对象", description="项目库-法规清单更新log表")
|
||||
public class ProjectLawsInventoryLogEO 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;
|
||||
|
||||
/**项目id*/
|
||||
@Excel(name = "项目id", width = 15)
|
||||
@ApiModelProperty(value = "项目id")
|
||||
private String projectLibraryId;
|
||||
|
||||
/**log内容*/
|
||||
@Excel(name = "log内容", width = 15)
|
||||
@ApiModelProperty(value = "log内容")
|
||||
private String logContent;
|
||||
|
||||
}
|
||||
+6
@@ -95,4 +95,10 @@ public class ProjectLibraryBase implements Serializable {
|
||||
/**中英切换标志*/
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String startTime;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String endTime;
|
||||
}
|
||||
|
||||
+3
@@ -116,4 +116,7 @@ public class ProjectTaskInventoryDetailEO implements Serializable {
|
||||
/**用户名*/
|
||||
@TableField(exist = false)
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty(value = "工程交付说明")
|
||||
private String deliveryInstructions;
|
||||
}
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.jero.modules.project.enums;
|
||||
|
||||
public enum ProjectInventoryFieldEnum {
|
||||
SUBTITLE("子标题","subtitle"),
|
||||
WVTA_ID("WVTA ID","wvta_id"),
|
||||
TECHNOLOGY_TERRITORY("技术领域","technology_territory"),
|
||||
DUTY_TERRITORY("责任领域","duty_territory"),
|
||||
REGULATION_OWNER_NAME("法规工程师名称","regulation_owner_name"),
|
||||
HOMOLOGATION_ENGINEER_NAME("认证工程师名称","homologation_engineer_name"),
|
||||
ENGINEERING_INTERFACE_PERSON_NAME("工程接口人名称","engineering_interface_personName"),
|
||||
IMPLEMENT_TYPE("实施类别","implement_type"),
|
||||
ATTESTATION_TYPE("认证类型","attestation_type"),
|
||||
ATTESTATION_RANK("认证级别","attestation_rank"),
|
||||
XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1("新车型实施日期","xin1_che1_xing2_shi2_shi1_ri4_qi1"),
|
||||
IMPLEMENT_TIME("在产车实施日期","implement_time"),
|
||||
REGION("适用地区","region"),
|
||||
REMARK("备注","remark"),
|
||||
DESIGN_DUE_DATE("设计符合性确认-截止时间","designDueDate"),
|
||||
PREHOMO_DUE_DATE("Pre-Homo确认-截止时间","prehomoDueDate"),
|
||||
VERIFY_DUE_DATE("验证符合性确认-截止时间","verifyDueDate"),
|
||||
|
||||
DELIVERABLE_TEMPLATE("交付物类型","deliverable_template"),
|
||||
FA1_QI3_REN2("发起人","fa1_qi3_ren2"),
|
||||
ZE2_REN2_REN2("责任人","ze2_ren4_ren2"),
|
||||
|
||||
DESIGN_DELIVERABLE_TYPE("设计符合性确认-交付物类型","deliverable_template"),
|
||||
DESIGN_DELIVERABLE_TEMPLATE("设计符合性确认-交付物模板","design_deliverable_template"),
|
||||
DESIGN_INITIATOR("设计符合性确认-发起人","fa1_qi3_ren2"),
|
||||
DESIGN_DUTY("设计符合性确认-责任人","ze2_ren4_ren2"),
|
||||
|
||||
PREHOMO_DELIVERABLE_TYPE("prehomo确认-交付物类型","deliverable_template"),
|
||||
PREHOMO_DELIVERABLE_TEMPLATE("prehomo确认-交付物模板","prehomo_deliverable_template"),
|
||||
PREHOMO_INITIATOR("prehomo确认-发起人","fa1_qi3_ren2"),
|
||||
PREHOMO_DUTY("prehomo确认-责任人","ze2_ren4_ren2"),
|
||||
|
||||
VERIFY_DELIVERABLE_TYPE("验证符合性确认-交付物类型","deliverable_template"),
|
||||
VERIFY_DELIVERABLE_TEMPLATE("验证符合性确认-交付物模板","verify_deliverable_template"),
|
||||
VERIFY_INITIATOR("验证符合性确认-发起人","fa1_qi3_ren2"),
|
||||
VERIFY_DUTY("验证符合性确认-责任人","ze2_ren4_ren2"),
|
||||
|
||||
;
|
||||
String name;
|
||||
String value;
|
||||
|
||||
ProjectInventoryFieldEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.jero.modules.project.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
|
||||
|
||||
/**
|
||||
* @Description: 项目库-法规清单更新log表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-17
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ProjectLawsInventoryLogEOMapper extends BaseMapper<ProjectLawsInventoryLogEO> {
|
||||
|
||||
}
|
||||
+4
@@ -40,6 +40,10 @@
|
||||
<result column="verify_duty" property="verifyDuty" />
|
||||
<result column="verify_due_date" property="verifyDueDate" />
|
||||
<result column="region" property="region" />
|
||||
<result column="applicable_supplement" property="applicableSupplement" />
|
||||
<result column="verify_remark" property="verifyRemark" />
|
||||
<result column="prehomo_remark" property="prehomoRemark" />
|
||||
<result column="design_remark" property="designRemark" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getlistingToConfirmStatistics" resultType="hashmap">
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
<?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.ProjectLawsInventoryLogEOMapper">
|
||||
<resultMap id="ProjectLawsInventoryLogEOResultMap" type="com.jero.modules.project.entity.ProjectLawsInventoryLogEO">
|
||||
<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="project_library_id" property="projectLibraryId" />
|
||||
<result column="log_content" property="logContent" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.jero.modules.project.service;
|
||||
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 项目库-法规清单更新log表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-17
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IProjectLawsInventoryLogEOService extends IService<ProjectLawsInventoryLogEO> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
void add(ProjectLawsInventoryLogEO projectLawsInventoryLogEO);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
void editById(ProjectLawsInventoryLogEO projectLawsInventoryLogEO);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ProjectLawsInventoryLogEO queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ProjectLawsInventoryLogEO> queryList();
|
||||
}
|
||||
+2
-2
@@ -21,9 +21,9 @@ public interface IProjectStatusBoardService {
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
List<List<TimeNodeVO>> timelineList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req);
|
||||
List<Map<String,Object>> timelineList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req);
|
||||
|
||||
List<String> timeline(Date startTime, Date endTime);
|
||||
List<String> timeline(String startTime, String endTime);
|
||||
|
||||
/**
|
||||
* 项目状态进度
|
||||
|
||||
+2
-2
@@ -16,10 +16,10 @@ public interface IProjectTaskInventoryDetailEOService extends IService<ProjectTa
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param projectTaskInventoryDetailEO
|
||||
* @param projectTaskInventoryDetailEOList
|
||||
* @return
|
||||
*/
|
||||
void add(ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO);
|
||||
void add(List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
|
||||
+733
-88
File diff suppressed because it is too large
Load Diff
+107
@@ -0,0 +1,107 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
|
||||
import com.jero.modules.project.mapper.ProjectLawsInventoryLogEOMapper;
|
||||
import com.jero.modules.project.service.IProjectLawsInventoryLogEOService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 项目库-法规清单更新log表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-17
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class ProjectLawsInventoryLogEOServiceImpl extends ServiceImpl<ProjectLawsInventoryLogEOMapper, ProjectLawsInventoryLogEO> implements IProjectLawsInventoryLogEOService {
|
||||
/**
|
||||
* 设置更新log
|
||||
*
|
||||
*/
|
||||
public void updateLog(String contentLog,String projectLibraryId) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (StringUtils.isNotBlank(contentLog)) {
|
||||
ProjectLawsInventoryLogEO projectLawsInventoryLogEO = new ProjectLawsInventoryLogEO();
|
||||
projectLawsInventoryLogEO.setProjectLibraryId(projectLibraryId);
|
||||
projectLawsInventoryLogEO.setLogContent(contentLog);
|
||||
projectLawsInventoryLogEO.setCreateBy(sysUser.getUsername());
|
||||
add(projectLawsInventoryLogEO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void add(ProjectLawsInventoryLogEO projectLawsInventoryLogEO) {
|
||||
Date now = new Date();
|
||||
projectLawsInventoryLogEO.setCreateTime(now);
|
||||
projectLawsInventoryLogEO.setUpdateTime(now);
|
||||
save(projectLawsInventoryLogEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param projectLawsInventoryLogEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void editById(ProjectLawsInventoryLogEO projectLawsInventoryLogEO) {
|
||||
Date now = new Date();
|
||||
projectLawsInventoryLogEO.setUpdateTime(now);
|
||||
saveOrUpdate(projectLawsInventoryLogEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过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 ProjectLawsInventoryLogEO queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ProjectLawsInventoryLogEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
}
|
||||
+9
-9
@@ -507,9 +507,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
explainInfo = "filling explanation\n" +
|
||||
"1.import data starts at the third 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" +
|
||||
"3.Certification Type,Certification Level,Usage,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" +
|
||||
"4.Responsible Field, 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.Number,Sub-Title,WVTA ID,Comments,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);
|
||||
@@ -617,9 +617,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
explainInfo = "filling explanation\n" +
|
||||
"1.import data starts at the third 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" +
|
||||
"3.Certification Type,Certification Level,Usage,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" +
|
||||
"4.Responsible Field, 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.Number,Sub-Title,WVTA ID,Comments,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);
|
||||
@@ -683,9 +683,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
explainInfo = "filling explanation\n" +
|
||||
"1.import data starts at the third 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" +
|
||||
"3.Certification Type,Certification Level,Usage,type of deliverables,initiator,person liable,Fields are radio attributes that must match the corresponding field option in the system\n" +
|
||||
"4.Responsible Field, 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.Number,Sub-Title,WVTA ID,Comments,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";
|
||||
}
|
||||
List<String> titleOneList = Arrays.asList(titleOne.split(","));
|
||||
|
||||
+56
-10
@@ -18,8 +18,10 @@ import com.jero.modules.project.service.IProjectStatusBoardService;
|
||||
import com.jero.modules.project.vo.TimeNodeVO;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -60,20 +62,63 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public List<List<TimeNodeVO>> timelineList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) {
|
||||
public List<Map<String,Object>> timelineList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) {
|
||||
|
||||
// QueryWrapper<ProjectLibraryBase> queryWrapper = QueryGenerator.initQueryWrapper(projectLibraryBase, req.getParameterMap());
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
//项目库信息
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.getList(projectLibraryBase);
|
||||
List<List<TimeNodeVO>> result = new ArrayList<>();
|
||||
List<List<TimeNodeVO>> list = new ArrayList<>();
|
||||
List<Map<String,Object>> result = new ArrayList<>();
|
||||
|
||||
if(projectLibraryBaseList.size() != 0){
|
||||
//项目库id
|
||||
List<String> projectLibraryBaseIdList = projectLibraryBaseList.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList());
|
||||
|
||||
//时间轴数据
|
||||
result = projectTaskPlanningService.queryByProjectId(StringUtils.join(projectLibraryBaseIdList, ","), projectLibraryBase.getCut());
|
||||
int index = 0;
|
||||
list = projectTaskPlanningService.queryByProjectId(StringUtils.join(projectLibraryBaseIdList, ","), projectLibraryBase.getCut());
|
||||
//时间段筛选,过滤数据
|
||||
String startTime = projectLibraryBase.getStartTime();
|
||||
String endTime = projectLibraryBase.getEndTime();
|
||||
List<List<TimeNodeVO>> listNew = new ArrayList<>();
|
||||
if(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime)){
|
||||
for (List<TimeNodeVO> timeNodeVOS : list) {
|
||||
List<TimeNodeVO> timeNodeVOList = new ArrayList<>();
|
||||
for (TimeNodeVO timeNodeVO : timeNodeVOS) {
|
||||
Date time = timeNodeVO.getTime();
|
||||
if(time.after(sdf.parse(startTime)) && time.before(sdf.parse(endTime))){
|
||||
TimeNodeVO timeNodeVOTemp = new TimeNodeVO();
|
||||
BeanUtils.copyProperties(timeNodeVO,timeNodeVOTemp);
|
||||
timeNodeVOTemp.setTime(time);
|
||||
timeNodeVOList.add(timeNodeVOTemp);
|
||||
}
|
||||
}
|
||||
if(timeNodeVOList.size() != 0){
|
||||
listNew.add(timeNodeVOList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (ProjectLibraryBase libraryBase : projectLibraryBaseList) {
|
||||
Map<String,Object> mapList = new HashMap<>();
|
||||
List<List<TimeNodeVO>> collect = new ArrayList<>();
|
||||
if(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime)){
|
||||
collect = listNew.stream().filter(e -> libraryBase.getId().equals(e.get(0).getProjectId())).collect(Collectors.toList());
|
||||
}else{
|
||||
collect = list.stream().filter(e -> libraryBase.getId().equals(e.get(0).getProjectId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
if(collect.size() != 0){
|
||||
index ++;
|
||||
mapList.put("index",index);
|
||||
mapList.put("projectName",libraryBase.getProjectName());
|
||||
mapList.put("data",collect);
|
||||
result.add(mapList);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -357,27 +402,28 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
}
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public List<String> timeline(Date startTime, Date endTime) {
|
||||
public List<String> timeline(String startTime, String endTime) {
|
||||
List<String> result = new ArrayList<String>();
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
Calendar calendarBefore = Calendar.getInstance();
|
||||
if(ObjectUtils.isNotEmpty(startTime)){
|
||||
calendarBefore.setTime(startTime);
|
||||
calendarBefore.setTime(sdf.parse(startTime));
|
||||
}else{
|
||||
calendarBefore.setTime(new Date());
|
||||
calendarBefore.add(Calendar.MONTH, -6);
|
||||
}
|
||||
calendarBefore.add(Calendar.MONTH, -6);
|
||||
Date dateBefore = calendarBefore.getTime();
|
||||
|
||||
Calendar calendarAfter = Calendar.getInstance();
|
||||
|
||||
if(ObjectUtils.isNotEmpty(endTime)){
|
||||
calendarAfter.setTime(endTime);
|
||||
calendarAfter.setTime(sdf.parse(endTime));
|
||||
}else{
|
||||
calendarAfter.setTime(new Date());
|
||||
calendarAfter.add(Calendar.MONTH, +5);
|
||||
}
|
||||
calendarAfter.add(Calendar.MONTH, +5);
|
||||
Date dateAfter = calendarAfter.getTime();
|
||||
|
||||
Calendar min = Calendar.getInstance();
|
||||
|
||||
+20
-4
@@ -52,12 +52,28 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl<Project
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param projectTaskInventoryDetailEO
|
||||
* @param projectTaskInventoryDetailEOList
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void add(ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO) {
|
||||
if(StringUtils.isNotEmpty(projectTaskInventoryDetailEO.getUserIds())){
|
||||
public void add(List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList) {
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
|
||||
for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : projectTaskInventoryDetailEOList) {
|
||||
userIdList.add(projectTaskInventoryDetailEO.getUserId());
|
||||
}
|
||||
|
||||
//先删后加,确保一个用户只有一个任务。
|
||||
QueryWrapper<ProjectTaskInventoryDetailEO> deleteWrapper = new QueryWrapper<>();
|
||||
deleteWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,projectTaskInventoryDetailEOList.get(0).getActiProcInstId());
|
||||
deleteWrapper.lambda().in(ProjectTaskInventoryDetailEO::getUserId,userIdList);
|
||||
this.baseMapper.delete(deleteWrapper);
|
||||
|
||||
super.saveBatch(projectTaskInventoryDetailEOList);
|
||||
sendMessage(projectTaskInventoryDetailEOList.get(0),userIdList);
|
||||
}
|
||||
/*if(StringUtils.isNotEmpty(projectTaskInventoryDetailEO.getUserIds())){
|
||||
Date now = new Date();
|
||||
projectTaskInventoryDetailEO.setCreateTime(now);
|
||||
projectTaskInventoryDetailEO.setUpdateTime(now);
|
||||
@@ -84,7 +100,7 @@ public class ProjectTaskInventoryDetailEOServiceImpl extends ServiceImpl<Project
|
||||
|
||||
sendMessage(projectTaskInventoryDetailEO,userIdList);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+7
@@ -125,6 +125,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
listConfirmationVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
listConfirmationVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(listConfirmationVO);
|
||||
}
|
||||
|
||||
@@ -145,6 +146,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else {
|
||||
legalTaskConfirmationVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
legalTaskConfirmationVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(legalTaskConfirmationVO);
|
||||
}
|
||||
|
||||
@@ -165,6 +167,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
designDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
designDeadlineVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(designDeadlineVO);
|
||||
}
|
||||
|
||||
@@ -185,6 +188,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
prehomoDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
prehomoDeadlineVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(prehomoDeadlineVO);
|
||||
}
|
||||
|
||||
@@ -205,6 +209,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
attestationStartTimeVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
attestationStartTimeVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(attestationStartTimeVO);
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getAttestationEndTime())) {
|
||||
@@ -224,6 +229,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
attestationEndTimeVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
attestationEndTimeVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(attestationEndTimeVO);
|
||||
}
|
||||
|
||||
@@ -244,6 +250,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
}else{
|
||||
verifyDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
verifyDeadlineVO.setProjectId(projectTaskPlanning.getProjectId());
|
||||
timeNodeVOS.add(verifyDeadlineVO);
|
||||
}
|
||||
// 排序
|
||||
|
||||
@@ -10,6 +10,7 @@ public class TimeNodeVO implements Comparator<TimeNodeVO> {
|
||||
private String name;
|
||||
private Date time;
|
||||
private String status;
|
||||
private String projectId;
|
||||
|
||||
@Override
|
||||
public int compare(TimeNodeVO o1, TimeNodeVO o2) {
|
||||
|
||||
+185
@@ -0,0 +1,185 @@
|
||||
package com.jero.modules.wkflow.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
|
||||
import com.jero.modules.wkflow.service.IProcessHistoryEOService;
|
||||
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-18
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="流程历史表")
|
||||
@RestController
|
||||
@RequestMapping("/wkflow/processHistoryEO")
|
||||
@Slf4j
|
||||
public class ProcessHistoryEOController extends JeroController<ProcessHistoryEO, IProcessHistoryEOService> {
|
||||
@Autowired
|
||||
private IProcessHistoryEOService processHistoryEOService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "流程历史表-分页列表查询")
|
||||
@ApiOperation(value="流程历史表-分页列表查询", notes="流程历史表-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(ProcessHistoryEO processHistoryEO,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ProcessHistoryEO> queryWrapper = QueryGenerator.initQueryWrapper(processHistoryEO, req.getParameterMap());
|
||||
Page<ProcessHistoryEO> page = new Page<ProcessHistoryEO>(pageNo, pageSize);
|
||||
IPage<ProcessHistoryEO> pageList = processHistoryEOService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "流程历史表-列表查询")
|
||||
@ApiOperation(value="流程历史表-列表查询", notes="流程历史表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<ProcessHistoryEO>> queryList(@RequestParam Map<String,Object> params) {
|
||||
List<ProcessHistoryEO> list = processHistoryEOService.queryList(params);
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "流程历史表-添加")
|
||||
@ApiOperation(value="流程历史表-添加", notes="流程历史表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@Validated @RequestBody ProcessHistoryEO processHistoryEO) {
|
||||
processHistoryEOService.add(processHistoryEO);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "流程历史表-编辑")
|
||||
@ApiOperation(value="流程历史表-编辑", notes="流程历史表-编辑")
|
||||
@PutMapping(value = "/edit")
|
||||
public Result<?> edit(@Validated @RequestBody ProcessHistoryEO processHistoryEO) {
|
||||
processHistoryEOService.editById(processHistoryEO);
|
||||
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) {
|
||||
processHistoryEOService.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.processHistoryEOService.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) {
|
||||
ProcessHistoryEO processHistoryEO = processHistoryEOService.queryById(id);
|
||||
if(processHistoryEO==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
return Result.OK(processHistoryEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param processHistoryEO
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, ProcessHistoryEO processHistoryEO) {
|
||||
return super.exportXls(request, processHistoryEO, ProcessHistoryEO.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, ProcessHistoryEO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 流程调用接口
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-任务清单表-流程调用")
|
||||
@ApiOperation(value="项目库-任务清单表-流程调用", notes="项目库-任务清单表-流程调用")
|
||||
@PostMapping(value = "/processCall")
|
||||
public Result<?> processCall(@RequestBody JSONObject jsonObject){
|
||||
return this.processHistoryEOService.processCall(jsonObject);
|
||||
}
|
||||
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
package com.jero.modules.wkflow.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
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;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 流程历史表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-18
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("process_history")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="process_history对象", description="流程历史表")
|
||||
public class ProcessHistoryEO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String id;
|
||||
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**创建日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private Date createTime;
|
||||
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**更新日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新日期")
|
||||
private Date updateTime;
|
||||
|
||||
/**所属部门*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String sysOrgCode;
|
||||
|
||||
/**流程实例id*/
|
||||
@Excel(name = "流程实例id", width = 15)
|
||||
@ApiModelProperty(value = "流程实例id")
|
||||
private String actiProcInstId;
|
||||
|
||||
/**操作节点*/
|
||||
@Excel(name = "操作节点", width = 15)
|
||||
@ApiModelProperty(value = "操作节点")
|
||||
private String taskDefinitionKey;
|
||||
|
||||
/**操作人*/
|
||||
@Excel(name = "操作人", width = 15)
|
||||
@ApiModelProperty(value = "操作人")
|
||||
private String operatorPersonId;
|
||||
|
||||
/**操作结果*/
|
||||
@Excel(name = "操作结果", width = 15)
|
||||
@ApiModelProperty(value = "操作结果")
|
||||
private String operatorResult;
|
||||
|
||||
/**意见*/
|
||||
@Excel(name = "意见", width = 15)
|
||||
@ApiModelProperty(value = "意见")
|
||||
private String approvalOpinion;
|
||||
|
||||
/**操作结果,页面展示字段**/
|
||||
@TableField(exist = false)
|
||||
private String reviewResult;
|
||||
|
||||
/**用户账号,页面展示字段**/
|
||||
@TableField(exist = false)
|
||||
private String assignee;;
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.wkflow.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 流程历史表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-18
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ProcessHistoryEOMapper extends BaseMapper<ProcessHistoryEO> {
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<?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.wkflow.mapper.ProcessHistoryEOMapper">
|
||||
<resultMap id="ProcessHistoryEOResultMap" type="com.jero.modules.wkflow.entity.ProcessHistoryEO">
|
||||
<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="acti_proc_inst_id" property="actiProcInstId" />
|
||||
<result column="task_definition_key" property="taskDefinitionKey" />
|
||||
<result column="operator_person_id" property="operatorPersonId" />
|
||||
<result column="operator_result" property="operatorResult" />
|
||||
<result column="approval_opinion" property="approvalOpinion" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.jero.modules.wkflow.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 流程历史表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-18
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IProcessHistoryEOService extends IService<ProcessHistoryEO> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
void add(ProcessHistoryEO processHistoryEO);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
void editById(ProcessHistoryEO processHistoryEO);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ProcessHistoryEO queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ProcessHistoryEO> queryList(Map<String,Object> params);
|
||||
|
||||
/**
|
||||
* 流程调用
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
Result<?> processCall(JSONObject jsonObject);
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
package com.jero.modules.wkflow.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.project.enums.OperatorTypeEnum;
|
||||
import com.jero.modules.project.enums.RequestSourceEnum;
|
||||
import com.jero.modules.project.enums.ReviewResultEnum;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
|
||||
import com.jero.modules.wkflow.mapper.ProcessHistoryEOMapper;
|
||||
import com.jero.modules.wkflow.service.IProcessHistoryEOService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
/**
|
||||
* @Description: 流程历史表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-05-18
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class ProcessHistoryEOServiceImpl extends ServiceImpl<ProcessHistoryEOMapper, ProcessHistoryEO> implements IProcessHistoryEOService {
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void add(ProcessHistoryEO processHistoryEO) {
|
||||
Date now = new Date();
|
||||
processHistoryEO.setCreateTime(now);
|
||||
processHistoryEO.setUpdateTime(now);
|
||||
save(processHistoryEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param processHistoryEO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void editById(ProcessHistoryEO processHistoryEO) {
|
||||
Date now = new Date();
|
||||
processHistoryEO.setUpdateTime(now);
|
||||
saveOrUpdate(processHistoryEO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过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 ProcessHistoryEO queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ProcessHistoryEO> queryList(Map<String,Object> params) {
|
||||
String cut = (String) params.get("cut");
|
||||
String actiProcInstId = (String) params.get("actiProcInstId");
|
||||
if(StringUtils.isEmpty(actiProcInstId)){
|
||||
throw new JeroBootException("流程实例id不能为空!");
|
||||
}
|
||||
|
||||
QueryWrapper<ProcessHistoryEO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(ProcessHistoryEO::getActiProcInstId,actiProcInstId);
|
||||
List<ProcessHistoryEO> processHistoryEOList = this.baseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(processHistoryEOList)){
|
||||
disposeData(processHistoryEOList,cut);
|
||||
}
|
||||
|
||||
return processHistoryEOList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据
|
||||
* @param datas
|
||||
* @param cut
|
||||
*/
|
||||
public void disposeData(List<ProcessHistoryEO> datas,String cut){
|
||||
if(CollectionUtils.isNotEmpty(datas)){
|
||||
List<String> userIdList = new ArrayList<>();
|
||||
for (ProcessHistoryEO data : datas) {
|
||||
if(StringUtils.isNotEmpty(data.getOperatorPersonId())){
|
||||
userIdList.add(data.getOperatorPersonId());
|
||||
}
|
||||
}
|
||||
|
||||
List<SysUser> sysUserList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(userIdList)){
|
||||
sysUserList = sysUserService.querySysUserListByIdList(userIdList);
|
||||
}
|
||||
|
||||
for (ProcessHistoryEO data : datas) {
|
||||
if(StringUtils.isNotEmpty(data.getOperatorResult())){
|
||||
data.setReviewResult(ReviewResultEnum.getTextByValue(data.getOperatorResult(),cut));
|
||||
}
|
||||
if(StringUtils.isNotEmpty(data.getOperatorPersonId()) && CollectionUtils.isNotEmpty(sysUserList)){
|
||||
SysUser userInfo = sysUserList.stream().filter(sysUser -> sysUser.getId().equals(data.getOperatorPersonId())).collect(Collectors.toList()).get(0);
|
||||
data.setAssignee(userInfo.getUsername());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> processCall(JSONObject jsonObject) {
|
||||
String requestSource = jsonObject.getString("requestSource");
|
||||
if(StringUtils.isEmpty(requestSource)){
|
||||
throw new JeroBootException("请求来源不能为空!");
|
||||
}
|
||||
if(!StringUtils.equals(requestSource, RequestSourceEnum.WORK_FLOW.getValue())){
|
||||
throw new JeroBootException("来源有误,没有权限调用该接口!");
|
||||
}
|
||||
String operatorType = jsonObject.getString("operatorType");
|
||||
if(StringUtils.isEmpty(operatorType)){
|
||||
throw new JeroBootException("操作类型不能为空!");
|
||||
}
|
||||
|
||||
if(StringUtils.equals(operatorType, OperatorTypeEnum.ADD.getValue())){
|
||||
JSONArray processHistoryEOArray = jsonObject.getJSONArray("processHistoryEOList");
|
||||
List<ProcessHistoryEO> processHistoryEOList = new ArrayList<>();
|
||||
ProcessHistoryEO processHistoryEO = null;
|
||||
for (Object processHistory : processHistoryEOArray) {
|
||||
processHistoryEO = JSONObject.parseObject(JSONObject.toJSONString(processHistory), ProcessHistoryEO.class);
|
||||
processHistoryEOList.add(processHistoryEO);
|
||||
}
|
||||
this.saveBatch(processHistoryEOList);
|
||||
}
|
||||
return new Result<>().success("调用成功!");
|
||||
}
|
||||
}
|
||||
Generated
+15
@@ -34,6 +34,7 @@
|
||||
"vue": "^2.6.10",
|
||||
"vue-area-linkage": "^5.1.0",
|
||||
"vue-cropper": "^0.5.4",
|
||||
"vue-draggable-resizable": "^2.1.0",
|
||||
"vue-i18n": "^8.26.8",
|
||||
"vue-loader": "^15.7.0",
|
||||
"vue-ls": "^3.2.0",
|
||||
@@ -19415,6 +19416,15 @@
|
||||
"resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.6.tgz",
|
||||
"integrity": "sha512-54Z/AipXDBcE5nzJweTM+BryzSAcC0FCTMQLvLt6f4XanP4AWB3mPkQw3PG3NRICo7knljHO+N+pjZxYAKoTLQ=="
|
||||
},
|
||||
"node_modules/vue-draggable-resizable": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-draggable-resizable/-/vue-draggable-resizable-2.1.0.tgz",
|
||||
"integrity": "sha512-DQe5JjiqPjndc3XZkkZAMVygMlJ4TLcpMWM78IkizHeJBfX5Ki6OKZPxrT+HE7w/12d+OfWom5Y5phYcrwCzqg==",
|
||||
"engines": {
|
||||
"node": ">= 4.0.0",
|
||||
"npm": ">= 3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-eslint-parser": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz",
|
||||
@@ -37285,6 +37295,11 @@
|
||||
"resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.5.6.tgz",
|
||||
"integrity": "sha512-54Z/AipXDBcE5nzJweTM+BryzSAcC0FCTMQLvLt6f4XanP4AWB3mPkQw3PG3NRICo7knljHO+N+pjZxYAKoTLQ=="
|
||||
},
|
||||
"vue-draggable-resizable": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-draggable-resizable/-/vue-draggable-resizable-2.1.0.tgz",
|
||||
"integrity": "sha512-DQe5JjiqPjndc3XZkkZAMVygMlJ4TLcpMWM78IkizHeJBfX5Ki6OKZPxrT+HE7w/12d+OfWom5Y5phYcrwCzqg=="
|
||||
},
|
||||
"vue-eslint-parser": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz",
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"vue": "^2.6.10",
|
||||
"vue-area-linkage": "^5.1.0",
|
||||
"vue-cropper": "^0.5.4",
|
||||
"vue-draggable-resizable": "^2.1.0",
|
||||
"vue-i18n": "^8.26.8",
|
||||
"vue-loader": "^15.7.0",
|
||||
"vue-ls": "^3.2.0",
|
||||
|
||||
@@ -707,6 +707,7 @@ module.exports = {
|
||||
uploadTime: 'Upload time',
|
||||
enclosure: 'enclosure',
|
||||
// 认证
|
||||
configurationInformation: 'configuration Information',
|
||||
modifyprojectInterfacePerson: 'modify project Interface Person',
|
||||
operatethisbutton: 'You do not have permission to operate this button',
|
||||
ParameterLibrary: 'Parameter Library',
|
||||
@@ -779,7 +780,7 @@ module.exports = {
|
||||
feedbackFromTheEngineer: 'Feedback from the Engineer',
|
||||
completedBy: 'Completed by',
|
||||
completedTime: 'Completed time',
|
||||
replyFromProjectContactPerson: 'Reply from project contact person',
|
||||
replyFromProjectContactPerson: 'Responsible Persons reply',
|
||||
answer: 'answer',
|
||||
distributionEngineer: 'Distribution Engineer',
|
||||
reminderHandling: 'Reminder handling',
|
||||
@@ -834,5 +835,9 @@ module.exports = {
|
||||
verificationComplianceConfirmationProgress: 'Verification compliance confirmation progress',
|
||||
totalTable: 'Total',
|
||||
newlyAdded: 'Newly Added',
|
||||
applicableSupplement: 'Applicable Supplement'
|
||||
applicableSupplement: 'Applicable Supplement',
|
||||
taskDescription:'Task description',
|
||||
descriptionDeliverables:'Description of deliverables',
|
||||
startMonth:'Start Month',
|
||||
endMonth:'End Month',
|
||||
}
|
||||
@@ -717,6 +717,7 @@ module.exports = {
|
||||
uploadTime: '上传时间',
|
||||
enclosure: '附件',
|
||||
// 认证
|
||||
configurationInformation: '配置信息',
|
||||
modifyprojectInterfacePerson: '修改工程接口人',
|
||||
operatethisbutton: '没有权限操作此按钮',
|
||||
ParameterLibrary: '参数库',
|
||||
@@ -787,7 +788,7 @@ module.exports = {
|
||||
feedbackFromTheEngineer: '工程师反馈意见',
|
||||
completedBy: '填写人',
|
||||
completedTime: '填写时间',
|
||||
replyFromProjectContactPerson: '工程接口人回复',
|
||||
replyFromProjectContactPerson: '责任人回复',
|
||||
answer: '回复',
|
||||
distributionEngineer: '分发工程师',
|
||||
reminderHandling: '提醒办理',
|
||||
@@ -839,5 +840,9 @@ module.exports = {
|
||||
preHomeConfirmProgress: 'Pre-Home确认进度',
|
||||
verificationComplianceConfirmationProgress: '验证符合性确认进度',
|
||||
totalTable: '总数',
|
||||
applicableSupplement: '适用增补件'
|
||||
applicableSupplement: '适用增补件',
|
||||
taskDescription: '任务说明',
|
||||
descriptionDeliverables:'交付物说明',
|
||||
startMonth:'开始日期',
|
||||
endMonth:'结束日期',
|
||||
}
|
||||
@@ -10,9 +10,13 @@
|
||||
:data-source="dataSource"
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
:components="components"
|
||||
@change="tableOnChange"
|
||||
@onHeaderRow='onHeaderRow'
|
||||
>
|
||||
<span slot="titleName" slot-scope="text">
|
||||
<span style='padding-right: 20px'>{{ text.sortOrder }} </span><a-button @click='onClickSee(text)'>查看</a-button>
|
||||
</span>
|
||||
<span slot="operationbtn" slot-scope="record">
|
||||
<!-- 待发起收集 1-->
|
||||
<!-- 待工程接口人处理 2-->
|
||||
@@ -54,20 +58,6 @@
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
<span slot="operation" slot-scope="record">
|
||||
<a v-for="(ol,index) in OperationList"
|
||||
@click="OperationClick(ol,record)">
|
||||
<span v-if="ol.text == $t('CancelCollection')" v-has="ol.has" class="text">
|
||||
{{!record.collectFlag || record.collectFlag == 0 ? $t('Collection') :$t('CancelCollection')}}
|
||||
</span>
|
||||
<span v-else-if="ol.text == $t('CancelSubscribe')" v-has="ol.has" class="text">
|
||||
{{!record.subscribeFlag || record.subscribeFlag == 0 ? $t('subscribe') :$t('CancelSubscribe')}}
|
||||
</span>
|
||||
<span v-else v-has="ol.has" class="text">
|
||||
{{ol.text}}
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
<span slot="detailClick" slot-scope="text,record">
|
||||
<collection-type :detailDate='text' />
|
||||
</span>
|
||||
@@ -105,6 +95,40 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 配置信息--->
|
||||
<a-modal v-model="areaVisibleView" :title="$t('configurationInformation')" width='550px' :footer="null">
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('configurationName')">{{$t('configurationName')}}:</span>
|
||||
<span class="text-field-right"
|
||||
>{{configDetail.configName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('Model')">{{$t('Model')}}:</span>
|
||||
<span class="text-field-right"
|
||||
>{{configDetail.carType}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('electricMachinery')">{{$t('electricMachinery')}}:</span>
|
||||
<span class="text-field-right"
|
||||
>{{configDetail.motor}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('Version')">{{$t('Version')}}:</span>
|
||||
<span class="text-field-right"
|
||||
>{{configDetail.version}}</span>
|
||||
</div>
|
||||
<div class="text-field">
|
||||
<span class="text-field-left" :title="$t('Battery')">{{$t('Battery')}}:</span>
|
||||
<span class="text-field-right"
|
||||
>{{configDetail.battery}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -115,6 +139,7 @@ import CollectionType from '@/components/CollectionType'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import axios from 'axios'
|
||||
import Vue from 'vue'
|
||||
import VueDraggableResizable from 'vue-draggable-resizable'
|
||||
export default {
|
||||
name: 'index',
|
||||
props: {
|
||||
@@ -135,9 +160,48 @@ export default {
|
||||
}
|
||||
},
|
||||
components: {
|
||||
CollectionType
|
||||
CollectionType,
|
||||
VueDraggableResizable
|
||||
},
|
||||
data() {
|
||||
this.components = {
|
||||
header: {
|
||||
cell: (h, props, children) => {
|
||||
const { key, ...restProps } = props
|
||||
|
||||
// 此处的this.columns 是定义的table的表头属性变量
|
||||
|
||||
const col = this.columns.find((col) => {
|
||||
const k = col.dataIndex || col.key
|
||||
return k === key
|
||||
})
|
||||
|
||||
if (!col || !col.width) {
|
||||
return h('th', { ...restProps }, [...children])
|
||||
}
|
||||
|
||||
const dragProps = {
|
||||
key: col.dataIndex || col.key,
|
||||
class: 'table-draggable-handle',
|
||||
attrs: {
|
||||
w: 10,
|
||||
x: col.width,
|
||||
z: 1,
|
||||
axis: 'x',
|
||||
draggable: true,
|
||||
resizable: false,
|
||||
},
|
||||
on: {
|
||||
dragging: (x, y) => {
|
||||
col.width = Math.max(x, 1)
|
||||
},
|
||||
},
|
||||
}
|
||||
const drag = h('vue-draggable-resizable', { ...dragProps })
|
||||
return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag])
|
||||
},
|
||||
},
|
||||
}
|
||||
return {
|
||||
token:Vue.ls.get(ACCESS_TOKEN),
|
||||
jsonBody: [],
|
||||
@@ -177,11 +241,44 @@ export default {
|
||||
querySdtList: [], // 工程接口人
|
||||
Dateline: {},
|
||||
getquerySdtId: '', // 当前工程接口人的id
|
||||
areaVisibleView: false, // 查看配置得弹框
|
||||
configDetail: {}, // 查看配置得详细信息
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
// 查看配置详细信息
|
||||
onClickSee(val) {
|
||||
let _this = this
|
||||
this.areaVisibleView = true
|
||||
axios({
|
||||
url: `/jero-boot/params/config/getById?id=${val.sortColumn.dataIndex}`,
|
||||
method: 'get',
|
||||
transformRequest: [function (data) {
|
||||
let ret = ''
|
||||
for (let it in data) {
|
||||
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
|
||||
}
|
||||
return ret
|
||||
}],
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'X-Access-Token':_this.token
|
||||
}
|
||||
})
|
||||
.then( (res) =>{
|
||||
console.log(res)
|
||||
if (res.data.success) {
|
||||
this.configDetail = res.data.result
|
||||
}else{
|
||||
_this.$message.warning(res.data.result)
|
||||
}
|
||||
})
|
||||
.catch( (error) =>{
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
// 获取工程接口人
|
||||
getquerySdtList(record) {
|
||||
// 当前工程接口人的id
|
||||
@@ -274,34 +371,36 @@ export default {
|
||||
var jsonHead = res.result
|
||||
this.columns = []
|
||||
jsonHead.forEach((res, index) => {
|
||||
this.columns.push({
|
||||
title: res.db_field_txt,
|
||||
dataIndex: res.db_field_name,
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
sorter: res.sort
|
||||
})
|
||||
if (res.type) {
|
||||
this.columns[index].scopedSlots = {
|
||||
customRender: 'detailClick'
|
||||
// 配置列
|
||||
if(res.type) {
|
||||
this.columns.push({
|
||||
dataIndex: res.db_field_name,
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
sorter: res.sort,
|
||||
sortOrder: res.db_field_txt
|
||||
})
|
||||
this.columns[index].scopedSlots = {
|
||||
customRender: 'detailClick',
|
||||
title: 'titleName'
|
||||
}
|
||||
// 非配置列
|
||||
} else {
|
||||
this.columns.push({
|
||||
title: res.db_field_txt,
|
||||
dataIndex: res.db_field_name,
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
sorter: res.sort
|
||||
})
|
||||
if(res.click) {
|
||||
// 工程接口人列表修改
|
||||
this.columns[index].scopedSlots = {
|
||||
customRender: 'operationbtn'
|
||||
}
|
||||
}
|
||||
}
|
||||
if(res.click) {
|
||||
// 工程接口人列表修改
|
||||
this.columns[index].scopedSlots = {
|
||||
customRender: 'operationbtn'
|
||||
}
|
||||
}
|
||||
})
|
||||
if (this.showAction) {
|
||||
this.columns.push({
|
||||
title: this.$t('operation'),
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: width,
|
||||
scopedSlots: { customRender: 'operation' }
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -382,6 +481,37 @@ export default {
|
||||
.ant-table td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.content-text {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.text-field {
|
||||
width: 50%;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
.text-field-left {
|
||||
width: 100px;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #6F7385;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
.text-field-right {
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
color: #040B29;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.box {
|
||||
@@ -398,4 +528,20 @@ export default {
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.table-draggable-handle {
|
||||
/* width: 10px !important; */
|
||||
height: 100% !important;
|
||||
left: auto !important;
|
||||
right: -5px;
|
||||
cursor: col-resize;
|
||||
touch-action: none;
|
||||
border: none;
|
||||
position: absolute;
|
||||
transform: none !important;
|
||||
bottom: 0;
|
||||
}
|
||||
.resize-table-th {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -56,7 +56,9 @@ import '@/assets/less/JAreaLinkage.less'
|
||||
import VueAreaLinkage from 'vue-area-linkage'
|
||||
import '@/components/jero/JVxeTable/install'
|
||||
import '@/components/JVxeCells/install'
|
||||
|
||||
// 挂载全局使用的方法
|
||||
import VueDraggableResizable from 'vue-draggable-resizable'
|
||||
Vue.component('vue-draggable-resizable', VueDraggableResizable)
|
||||
Vue.config.productionTip = false
|
||||
Vue.use(Storage, config.storageOptions)
|
||||
Vue.use(Antd)
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-content">
|
||||
<!-- v-if="$route.query.TaskKey == 'zrrclrw'"-->
|
||||
<div class="operator-text"
|
||||
v-if="$route.query.TaskKey == 'zrrclrw'"
|
||||
@click="distributionEngineerClick($t('distributionEngineer'))">
|
||||
<a-icon type="audit"/>
|
||||
{{ $t('distributionEngineer') }}
|
||||
@@ -18,6 +18,10 @@
|
||||
<a-icon type="sound"/>
|
||||
{{ $t('reminderHandling') }}
|
||||
</div>
|
||||
<a class="text"
|
||||
@click="detailsClick()">
|
||||
{{$t('details')}}
|
||||
</a>
|
||||
<div class="operator-text"
|
||||
v-if="$route.query.TaskKey == 'zrrclrw' || $route.query.TaskKey == 'dreDispose'"
|
||||
@click="distributionEngineerClick($t('addFeedback'))">
|
||||
@@ -89,6 +93,23 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="title == $t('distributionEngineer')">
|
||||
<div v-if="formInline.userName">
|
||||
<div class="box-title-text" v-for="item in formInline.userName.split(',')">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="item">{{item}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="engineerFeedbackContent">
|
||||
<a-textarea
|
||||
:placeholder="$t('PleaseEnter')+$t('feedbackFromTheEngineer')"
|
||||
:disabled="false"
|
||||
v-model="formInline.engineerFeedbackContent" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="title == $t('addFeedback') || title == $t('edit')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -324,6 +345,18 @@
|
||||
fixed: 'left',
|
||||
customRender: (text, record, index) => `${index + 1}`
|
||||
},
|
||||
{
|
||||
title: this.$t('completedBy'),
|
||||
dataIndex: 'createBy',
|
||||
ellipsis: true,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: this.$t('completedTime'),
|
||||
dataIndex: 'createTime',
|
||||
ellipsis: true,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: this.$t('feedbackFromTheEngineer'),
|
||||
dataIndex: 'engineerFeedbackContent',
|
||||
@@ -337,18 +370,6 @@
|
||||
ellipsis: true,
|
||||
scopedSlots: { customRender: 'Deliverables' }
|
||||
},
|
||||
{
|
||||
title: this.$t('completedBy'),
|
||||
dataIndex: 'createBy',
|
||||
ellipsis: true,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: this.$t('completedTime'),
|
||||
dataIndex: 'createTime',
|
||||
ellipsis: true,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: this.$t('replyFromProjectContactPerson'),
|
||||
dataIndex: 'engineeringInterfacePersonReply',
|
||||
@@ -499,7 +520,7 @@
|
||||
})
|
||||
},
|
||||
detailsClick(val) {
|
||||
this.formInlineDetails = val
|
||||
this.formInlineDetails = val || {}
|
||||
this.visibleDetails = true
|
||||
},
|
||||
PersonnelSelectionChange(value, id) {
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
projectInformationId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
queryProject: {
|
||||
type: Object,
|
||||
default: {}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -60,6 +64,9 @@
|
||||
getAction(this.url.urlFrom, { id: this.projectInformationId }).then((res) => {
|
||||
if (res.success) {
|
||||
this.queryForm = res.result[0] || {}
|
||||
if (this.queryProject) {
|
||||
this.queryForm = { ...this.queryForm, ...this.queryProject }
|
||||
}
|
||||
} else {
|
||||
this.queryForm = {}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
dataSource: [],
|
||||
loading: false,
|
||||
reviewResult: {
|
||||
'launch':this.$t('Launch'),
|
||||
'launch': this.$t('Launch'),
|
||||
'Compliance': this.$t('accord'),
|
||||
'Non-Compliance': this.$t('nonConformity'),
|
||||
'To be tracked': this.$t('Tracked'),
|
||||
@@ -81,10 +81,9 @@
|
||||
methods: {
|
||||
getList() {
|
||||
let query = {
|
||||
prcId: this.$route.query.actiProcInstId,
|
||||
prcType: this.$route.query.flowType
|
||||
actiProcInstId: this.$route.query.actiProcInstId
|
||||
}
|
||||
getAction('/workFlow/queryProcessHistoryByPrcId', query).then((res) => {
|
||||
getAction('/wkflow/processHistoryEO/list', query).then((res) => {
|
||||
this.dataSource = res
|
||||
})
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
:projectInformationList="projectInformationList"
|
||||
:url="url"
|
||||
:projectInformationId="this.queryBy.projectLibraryId"
|
||||
:queryProject="queryProject"
|
||||
/>
|
||||
<standardContent
|
||||
v-if="isDisplay"
|
||||
@@ -85,45 +86,7 @@
|
||||
title: this.$t('targetMarket'),
|
||||
value: 'targetMarket_dictText'
|
||||
},
|
||||
{
|
||||
title: this.$t('projectStatus'),
|
||||
value: 'projectStatus_dictText'
|
||||
},
|
||||
{
|
||||
title: this.$t('StudioEngineer'),
|
||||
value: 'studioEngineerName'
|
||||
},
|
||||
{
|
||||
title: this.$t('certifiedEngineer'),
|
||||
value: 'certificationEngineerName'
|
||||
},
|
||||
{},
|
||||
{
|
||||
title: this.$t('DigitalPlatform'),
|
||||
value: 'digitalPlatform_dictText'
|
||||
},
|
||||
{
|
||||
title: this.$t('ModelPlatform'),
|
||||
value: 'vehiclePlatform_dictText'
|
||||
},
|
||||
{},
|
||||
{
|
||||
title: this.$t('IPDInformation'),
|
||||
value: 'ipdInfo',
|
||||
type: 1
|
||||
},
|
||||
{
|
||||
title: this.$t('certificationProgram'),
|
||||
value: 'attestationPlan',
|
||||
type: 1
|
||||
},
|
||||
{
|
||||
title: this.$t('dehicleDevelopmentPlan'),
|
||||
value: 'vehicleDevelopmentPlan',
|
||||
type: 1
|
||||
}
|
||||
],
|
||||
standardContentList: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
value: 'serialNumber'
|
||||
@@ -133,13 +96,15 @@
|
||||
value: 'title'
|
||||
},
|
||||
{
|
||||
title: this.$t('subtitle'),
|
||||
value: 'subtitle'
|
||||
title: this.$t('applicableSupplement'),
|
||||
value: 'applicableSupplement'
|
||||
},
|
||||
{
|
||||
title: this.$t('correspondingStandard'),
|
||||
value: 'correspondingStandard'
|
||||
},
|
||||
title: this.$t('remarks'),
|
||||
value: 'remark'
|
||||
}
|
||||
],
|
||||
standardContentList: [
|
||||
{
|
||||
title: this.$t('Sponsor'),
|
||||
value: this.$route.query.Sponsor
|
||||
@@ -149,14 +114,9 @@
|
||||
value: this.$route.query.personLiable
|
||||
},
|
||||
{
|
||||
title: this.$t('regulatoryEngineer'),
|
||||
value: 'regulationOwnerName'
|
||||
title: this.$t('cutoffTime'),
|
||||
value: this.$route.query.DueDate
|
||||
},
|
||||
{
|
||||
title: this.$t('certifiedEngineer'),
|
||||
value: 'homologationEngineerName'
|
||||
},
|
||||
{},
|
||||
{
|
||||
title: this.$t('typeOfDeliverables'),
|
||||
value: this.$route.query.typeOfDeliverables
|
||||
@@ -166,13 +126,10 @@
|
||||
value: this.$route.query.deliverableTemplate,
|
||||
type: 2
|
||||
},
|
||||
{},
|
||||
{
|
||||
title: this.$t('technicalEvaluationResults'),
|
||||
value: 'technicalEvaluationResults'
|
||||
},
|
||||
{
|
||||
title: this.$t('remarks'),
|
||||
value: 'remark'
|
||||
title: this.$t('taskDescription'),
|
||||
value: this.$route.query.remarks
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
</div>
|
||||
<!-- 添加--->
|
||||
<a-modal v-model="areaVisible" :title="$t('ParameterLibrary')" width='750px' :footer="null">
|
||||
<parameter-library v-if='areaVisible' :paramsManifest='paramsManifest'/>
|
||||
<parameter-library-add v-if='areaVisible' :paramsManifest='paramsManifest'/>
|
||||
</a-modal>
|
||||
<!-- 冻结配置--->
|
||||
<a-modal v-model="areaVisibleFreeze" :title="$t('FreezeConfiguration')" width='750px' :footer="null">
|
||||
@@ -208,7 +208,7 @@
|
||||
<script>
|
||||
import TableCollection from '@/components/tableCollection/index'
|
||||
import { getAction,postAction } from '../../../api/manage'
|
||||
import ParameterLibrary from '@/components/ParameterLibrary/index'
|
||||
import ParameterLibraryAdd from '@/components/ParameterLibraryAdd/index'
|
||||
import axios from 'axios'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import Vue from 'vue'
|
||||
@@ -216,7 +216,7 @@ export default {
|
||||
name: 'ParameterItemCollectionList',
|
||||
components:{
|
||||
TableCollection,
|
||||
ParameterLibrary
|
||||
ParameterLibraryAdd
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
|
||||
@@ -289,6 +289,8 @@
|
||||
personLiable: 'designDutyName',
|
||||
typeOfDeliverables: 'designDeliverableType_dictText',
|
||||
deliverableTemplate: 'designDeliverableTemplate',
|
||||
DueDate: 'designDueDate',
|
||||
remarks: 'designRemark',
|
||||
projectName: this.$route.query.projectName,
|
||||
projectNameId: this.$route.query.projectNameId,
|
||||
primaryKeyId: val.designTaskDetailId
|
||||
@@ -309,6 +311,8 @@
|
||||
personLiable: 'prehomoDutyName',
|
||||
typeOfDeliverables: 'prehomoDeliverableType_dictText',
|
||||
deliverableTemplate: 'prehomoDeliverableTemplate',
|
||||
DueDate: 'prehomoDueDate',
|
||||
remarks: 'prehomoRemark',
|
||||
projectName: this.$route.query.projectName,
|
||||
projectNameId: this.$route.query.projectNameId,
|
||||
primaryKeyId: val.prehomoTaskDetailId
|
||||
@@ -329,6 +333,8 @@
|
||||
personLiable: 'verifyDutyName',
|
||||
typeOfDeliverables: 'verifyDeliverableType_dictText',
|
||||
deliverableTemplate: 'verifyDeliverableTemplate',
|
||||
DueDate: 'verifyDueDate',
|
||||
remarks: 'verifyRemark',
|
||||
projectName: this.$route.query.projectName,
|
||||
projectNameId: this.$route.query.projectNameId,
|
||||
primaryKeyId: val.verifyTaskDetailId
|
||||
|
||||
@@ -72,17 +72,24 @@
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
<!-- 参数模板-->
|
||||
<a-modal v-model="areaVisible" :title="$t('parameterTemplate')" width='750px' :footer="null">
|
||||
<parameter-template v-if='areaVisible' @areaVisible='handleCancel' :templateTitle='templatetitle'
|
||||
:selectedRowKeyS='selectedRowKeys' :rowId='rowId' :version='version' :projectId='this.$route.query.id'></parameter-template>
|
||||
<parameter-template-add v-if='areaVisible' @areaVisible='handleCancel' :templateTitle='templatetitle'
|
||||
:selectedRowKeyS='selectedRowKeys' :rowId='rowId' :version='version' :projectId='this.$route.query.id'></parameter-template-add>
|
||||
</a-modal>
|
||||
<!-- 配置-->
|
||||
<configure ref="configureRef" :url='url' :itemId='itemId'/>
|
||||
<!-- 历史版本-->
|
||||
<a-modal v-model="historicalVisible" :title="$t('historicalVersion')" width='750px' :footer="null">
|
||||
<historical-version v-if='historicalVisible' ></historical-version>
|
||||
</a-modal>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ImportFile from '@/components/ImportFile/index'
|
||||
import ParameterTemplate from '../dialog/ParameterTemplate'
|
||||
import ParameterTemplateAdd from '../dialog/ParameterTemplateAdd'
|
||||
import HistoricalVersion from '../dialog/historicalVersion'
|
||||
import { getAction,postAction } from '../../../api/manage'
|
||||
import Configure from '../dialog/configure'
|
||||
import axios from 'axios'
|
||||
@@ -91,8 +98,9 @@
|
||||
name: 'TaskParameterCollection',
|
||||
components:{
|
||||
ImportFile,
|
||||
ParameterTemplate,
|
||||
Configure
|
||||
ParameterTemplateAdd,
|
||||
Configure,
|
||||
HistoricalVersion
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
@@ -165,7 +173,8 @@
|
||||
templatetitleId: '',
|
||||
rowId: '',
|
||||
version: 0,
|
||||
itemId: ''
|
||||
itemId: '',
|
||||
historicalVisible: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@@ -201,7 +210,8 @@
|
||||
},
|
||||
//
|
||||
historicalVersion() {
|
||||
|
||||
this.historicalVisible = true
|
||||
console.log('历史版本。。。。')
|
||||
},
|
||||
// 配置
|
||||
configure(item) {
|
||||
|
||||
@@ -281,6 +281,20 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('applicableSupplement')">{{$t('applicableSupplement')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="applicableSupplement">
|
||||
<a-input class="box-input"
|
||||
:disabled="false"
|
||||
v-model="formInline.applicableSupplement"
|
||||
:placeholder="$t('PleaseEnter')+$t('applicableSupplement')"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
@@ -418,6 +432,23 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-text" :prop="'designRemark'">
|
||||
<a-textarea
|
||||
style="width: 100%"
|
||||
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
|
||||
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.designRemark ? true : false"
|
||||
v-model="formInline.designRemark" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div class="header-text">
|
||||
{{$t('PrehomoConfirmation')}}
|
||||
</div>
|
||||
@@ -540,6 +571,23 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-text" :prop="'prehomoRemark'">
|
||||
<a-textarea
|
||||
style="width: 100%"
|
||||
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
|
||||
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoRemark ? true : false"
|
||||
v-model="formInline.prehomoRemark" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div class="header-text">
|
||||
{{$t('verificationAndConformityconfirmation')}}
|
||||
</div>
|
||||
@@ -660,6 +708,23 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-text" :prop="'verifyRemark'">
|
||||
<a-textarea
|
||||
style="width: 100%"
|
||||
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
|
||||
:disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.verifyRemark ? true : false"
|
||||
v-model="formInline.verifyRemark" :rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
<div class="drawer-bootom-button">
|
||||
@@ -711,6 +776,34 @@
|
||||
message: this.$t('remarks') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
applicableSupplement: [
|
||||
{
|
||||
max: 100,
|
||||
message: this.$t('applicableSupplement') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
designRemark: [
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
verifyRemark: [
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
prehomoRemark: [
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('descriptionDeliverables') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
},
|
||||
formInline: {},
|
||||
@@ -1219,7 +1312,7 @@
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index:100;
|
||||
z-index: 100;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
padding: 10px 16px;
|
||||
text-align: right;
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
{{ $t('deleteLib') }}
|
||||
</a>
|
||||
<!-- <a class="text-operation" @click="resultReportedClick(record)">{{$t('resultReported')}}</a>-->
|
||||
<!-- <a @click="addProcess(record)">发起</a>-->
|
||||
<!-- <a @click="addProcess(record)">发起</a>-->
|
||||
</span>
|
||||
<span slot="titleName" slot-scope="text,record" :title="text">
|
||||
{{ text && text.length > 10 ? text.slice(0, 9) + '...' : text }}
|
||||
@@ -418,6 +418,13 @@
|
||||
width: 180,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
},
|
||||
{
|
||||
title: this.$t('applicableSupplement'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'applicableSupplement',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
},
|
||||
{
|
||||
title: 'WVTA ID',
|
||||
align: 'center',
|
||||
@@ -1457,12 +1464,14 @@
|
||||
color: #040B29;
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
.itemModelComment{
|
||||
|
||||
.itemModelComment {
|
||||
width: calc(100% - 64px);
|
||||
display: inline-block;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.title-text-Comment{
|
||||
|
||||
.title-text-Comment {
|
||||
width: 74px;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
@@ -1497,7 +1506,8 @@
|
||||
padding: 0;
|
||||
border-top: none;
|
||||
}
|
||||
.itemModelComment .ant-form-item-control-wrapper{
|
||||
|
||||
.itemModelComment .ant-form-item-control-wrapper {
|
||||
width: 100% !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,265 @@
|
||||
<template>
|
||||
<div class='diolag-area'>
|
||||
<a-table
|
||||
class='table-area'
|
||||
ref='table'
|
||||
size='middle'
|
||||
rowKey='id'
|
||||
:columns='columns'
|
||||
:dataSource='areaTable'
|
||||
:pagination='false'
|
||||
:loading='loading'
|
||||
:scroll='{x: 600}'
|
||||
@change='handleTableChange'>
|
||||
<a slot='name' slot-scope='text'>{{ text }}</a>
|
||||
<span slot='action' slot-scope='text, record'>
|
||||
<a class='action-edit' @click='editArea(record.id)' v-has="'area:edit'">{{ $t('edit') }}</a>
|
||||
<a style='color:red' href='javascript:;' @click=' deleteArea(record.id)'
|
||||
v-has="'area:delete'">{{ $t('delete') }}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div class='drawer-bootom-button'>
|
||||
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
|
||||
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
|
||||
|
||||
export default {
|
||||
name: 'diolagArea',
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
title: this.$t('add'),
|
||||
total: 0,
|
||||
selectedRowKeysDate: {},
|
||||
loading: false,
|
||||
editId: '',
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('VersionNumber'),
|
||||
dataIndex: 'region_dictText',
|
||||
key: 'showArea',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'center',
|
||||
dataIndex: 'paramsTemplateName',
|
||||
ellipsis: true
|
||||
}
|
||||
],
|
||||
newVisible: false,
|
||||
areaTable: [],
|
||||
flag: false, //表单提交标识
|
||||
spinLoading: false,
|
||||
confirmLoading: false,
|
||||
templatetitle: '',
|
||||
selectedRowKeys: []
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.loadData()
|
||||
},
|
||||
methods: {
|
||||
loadData() {
|
||||
this.loading = true
|
||||
let params = {
|
||||
...this.form
|
||||
}
|
||||
getAction(`params/manifest/getParamsTemplateList`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.areaTable = [...res.result]
|
||||
this.total = res.result.total
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
searchQuery() {
|
||||
this.loadData()
|
||||
},
|
||||
searchReset() {
|
||||
this.form = {}
|
||||
this.loadData()
|
||||
},
|
||||
handleCancel() {
|
||||
this.$emit('areaVisible', false)
|
||||
},
|
||||
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
|
||||
this.selectedRowKeysDate = selectedRowKeysDate
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
},
|
||||
handleTableChange(val) {
|
||||
},
|
||||
showModal() {
|
||||
this.title = this.$t('add')
|
||||
this.newVisible = true
|
||||
this.form = {}
|
||||
},
|
||||
//新增
|
||||
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
|
||||
})
|
||||
} 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
|
||||
})
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
cancelModel() {
|
||||
this.newVisible = false
|
||||
this.$refs.ruleForm.resetFields()
|
||||
},
|
||||
//删除按钮
|
||||
deleteArea(val) {
|
||||
this.$confirm({
|
||||
title: this.$t('confirmDeletion'),
|
||||
content: '',
|
||||
onOk:
|
||||
async () => {
|
||||
getAction(`tag/onlCgformArea/delete`, { id: val }).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
if (this.areaTable.length == 1 && this.queryParams.pageNo != 1) {
|
||||
this.queryParams.pageNo = this.queryParams.pageNo - 1
|
||||
}
|
||||
this.loadData()
|
||||
} else {
|
||||
// this.$message.warning(res.message)
|
||||
if (res.message == '该展示区域有关联数据,无法删除!') {
|
||||
this.$message.warning(this.$t('noDelete'))
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
//编辑按钮
|
||||
editArea(val) {
|
||||
this.title = this.$t('edit')
|
||||
this.newVisible = true
|
||||
let params = {
|
||||
id: val
|
||||
}
|
||||
getAction(`tag/onlCgformArea/queryById`, params).then((res) => {
|
||||
if (res.success) {
|
||||
this.form = { ...res.result }
|
||||
// this.$emit('updateOk',res.result)
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
templateTitle(val) {
|
||||
this.templatetitle = val
|
||||
},
|
||||
selectedRowKeyS(val) {
|
||||
this.selectedRowKeys = val
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='less' scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.diolag-area {
|
||||
.table-area {
|
||||
margin: 20px 0;
|
||||
|
||||
.action-edit {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.table-del {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
.drawer-bootom-button{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
<style lang='less'>
|
||||
.area-module {
|
||||
.ant-modal-wrap {
|
||||
.ant-modal {
|
||||
.ant-modal-content {
|
||||
.ant-modal-footer {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -32,8 +32,27 @@
|
||||
</div>
|
||||
<div class="box-top">
|
||||
<span class="box-top-text">{{$t('regulatoryCertificationTaskPlan')}}</span>
|
||||
<span style="float: right" class="box-top-text-right">
|
||||
<a-range-picker
|
||||
:placeholder="[this.$t('startMonth'), this.$t('endMonth')]"
|
||||
format="YYYY-MM"
|
||||
v-model="getTime"
|
||||
:mode="mode2"
|
||||
:open="open"
|
||||
@openChange="openChange"
|
||||
@panelChange="panelChange"
|
||||
@change="hodeChange"
|
||||
>
|
||||
<div slot="renderExtraFooter" style="width: 100%;display: block">
|
||||
<div style="text-align: right;width: 100%">
|
||||
<a @click="okChange">{{$t('determine')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</a-range-picker>
|
||||
</span>
|
||||
<div class="box-top-content">
|
||||
<div id="main"></div>
|
||||
<div class="axis-tip"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-bottom">
|
||||
@@ -85,6 +104,7 @@
|
||||
<script>
|
||||
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||
import * as echarts from 'echarts'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
name: 'index',
|
||||
@@ -93,8 +113,13 @@
|
||||
queryParam: {},
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
open: false,
|
||||
getTime: [],
|
||||
mode2: ['month', 'month'],
|
||||
url: {
|
||||
list: '/project/ProjectStatusBoardController/scheduleInfoList'
|
||||
list: '/project/ProjectStatusBoardController/scheduleInfoList',
|
||||
timeline: '/project/ProjectStatusBoardController/timeline',
|
||||
timelineList: '/project/ProjectStatusBoardController/timelineList'
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
@@ -152,40 +177,104 @@
|
||||
width: 440,
|
||||
scopedSlots: { title: 'verificationComplianceReviewTitle' }
|
||||
}
|
||||
]
|
||||
],
|
||||
startTime: undefined,
|
||||
endTime: undefined
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.getEcharts()
|
||||
this.getTimeline()
|
||||
},
|
||||
methods: {
|
||||
getEcharts() {
|
||||
getTimeline() {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime
|
||||
}
|
||||
getAction(this.url.timeline, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.getTimelineList(res.result)
|
||||
}
|
||||
})
|
||||
},
|
||||
openChange(val) {
|
||||
this.open = val
|
||||
},
|
||||
okChange() {
|
||||
this.open = false
|
||||
this.getTimeline()
|
||||
},
|
||||
hodeChange() {
|
||||
this.getTime = []
|
||||
this.startTime = undefined
|
||||
this.endTime = undefined
|
||||
this.getTimeline()
|
||||
},
|
||||
panelChange(value, mode) {
|
||||
this.getTime = value
|
||||
this.startTime = moment(value[0]).format('YYYY-MM')
|
||||
this.endTime = moment(value[1]).format('YYYY-MM')
|
||||
},
|
||||
getTimelineList(time) {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime
|
||||
}
|
||||
getAction(this.url.timelineList, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.getEcharts(time, res.result)
|
||||
}
|
||||
})
|
||||
},
|
||||
getEcharts(timeList, timeData) {
|
||||
|
||||
var chartDom = document.getElementById('main')
|
||||
var myChart = echarts.init(chartDom)
|
||||
var option
|
||||
|
||||
// prettier-ignore
|
||||
const hours = [
|
||||
'12a', '1a', '2a', '3a', '4a', '5a', '6a',
|
||||
'12a', '1a', '2a', '3a', '4a', '5a', '6a'
|
||||
]
|
||||
const days = [
|
||||
'Saturday', 'Friday', 'Thursday',
|
||||
'Wednesday', 'Tuesday', 'Monday', 'Sunday'
|
||||
]
|
||||
const data = [
|
||||
[0, 0, 14], [0, 1, 5], [0, 2, 5], [0, 3, 5], [0, 4, 5], [0, 5, 5], [0, 6, 5], [0, 7, 5],
|
||||
[1, 0, 5], [1, 2, 5], [1, 3, 5], [1, 4, 5], [1, 5, 5], [1, 6, 5], [1, 7, 5], [1, 1, 5],
|
||||
[2, 0, 14], [2, 1, 14], [2, 2, 14], [2, 3, 14], [2, 4, 14], [2, 5, 14], [2, 6, 14], [2, 7, 14],
|
||||
[3, 0, 14], [3, 1, 14], [3, 2, 14], [3, 3, 14], [3, 4, 14], [3, 5, 14], [3, 6, 14], [3, 7, 14],
|
||||
[4, 0, 14], [4, 1, 14], [4, 2, 14], [4, 3, 14], [4, 4, 14], [4, 5, 14], [4, 6, 14], [4, 7, 14],
|
||||
[5, 0, 14], [5, 1, 14], [5, 2, 14], [5, 3, 14], [5, 4, 14], [5, 5, 14], [5, 6, 14], [5, 7, 14],
|
||||
[6, 0, 14], [6, 1, 14], [6, 2, 14], [6, 3, 14], [6, 4, 14], [6, 5, 14], [6, 6, 14], [6, 7, 14],
|
||||
[6, 8, 14], [6, 9, 14], [6, 10, 14], [6, 11, 14], [6, 12, 14], [6, 13, 14], [6, 14, 14], [6, 15, 14]
|
||||
].map(function(item) {
|
||||
return [item[1], item[0], item[2]]
|
||||
})
|
||||
let list = []
|
||||
let listTime = []
|
||||
for (let i = 0; i < timeList.length; i++) {
|
||||
for (let j = 0; j < 31; j++) {
|
||||
let num
|
||||
if ((j + 1) < 10) {
|
||||
num = '0' + (j + 1)
|
||||
} else {
|
||||
num = (j + 1)
|
||||
}
|
||||
listTime.push(timeList[i])
|
||||
list.push(timeList[i] + '-' + num)
|
||||
}
|
||||
}
|
||||
const hours = listTime
|
||||
const days = []
|
||||
let content = []
|
||||
if (timeData && timeData.length > 0) {
|
||||
timeData.forEach(res => {
|
||||
days.push(res.projectName)
|
||||
content.push(res.data[0])
|
||||
})
|
||||
}
|
||||
let timeDataList = []
|
||||
let data = []
|
||||
for (let j = 0; j < content.length; j++) {
|
||||
for (let k = 0; k < content[j].length; k++) {
|
||||
content[j][k].index = j
|
||||
timeDataList.push(content[j][k])
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
for (let j = 0; j < timeDataList.length; j++) {
|
||||
let time = JSON.stringify(timeDataList[j].time).slice(1, 11)
|
||||
if (time == list[i]) {
|
||||
data.push([i, timeDataList[j].index, 14, j])
|
||||
}
|
||||
}
|
||||
}
|
||||
let num = timeList.length * 3
|
||||
if (num < 31) {
|
||||
num = 31
|
||||
}
|
||||
option = {
|
||||
legend: {
|
||||
data: ['Punch Card'],
|
||||
@@ -195,18 +284,15 @@
|
||||
position: 'top',
|
||||
formatter: function(params) {
|
||||
return (
|
||||
params.value[2] +
|
||||
' commits in ' +
|
||||
hours[params.value[0]] +
|
||||
' of ' +
|
||||
days[params.value[1]]
|
||||
timeDataList[params.value[3]].name + '<br/>' +
|
||||
timeDataList[params.value[3]].time.slice(0, 11)
|
||||
)
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
top: 0,
|
||||
left: 2,
|
||||
right: 20,
|
||||
right: 40,
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
@@ -222,8 +308,7 @@
|
||||
position: 'top',
|
||||
axisLabel: {
|
||||
showMinLabel: true,
|
||||
showMaxLabel: true,
|
||||
interval: 2,
|
||||
interval: num,
|
||||
textStyle: {
|
||||
fontFamily: 'Blue Sky Noto',
|
||||
color: '#000F16',
|
||||
@@ -246,13 +331,24 @@
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
scale: true,
|
||||
triggerEvent: true,
|
||||
axisLabel: {
|
||||
textStyle: {
|
||||
fontFamily: 'Blue Sky Noto',
|
||||
color: '#000F16',
|
||||
fontSize: '16'
|
||||
},
|
||||
margin: 50
|
||||
margin: 50,
|
||||
formatter: function(params) {
|
||||
var val = ''
|
||||
if (params.length > 8) {
|
||||
val = params.substr(0, 8) + '...'
|
||||
return val
|
||||
} else {
|
||||
return params
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
series: [
|
||||
@@ -270,6 +366,20 @@
|
||||
}
|
||||
|
||||
option && myChart.setOption(option)
|
||||
myChart.on('mouseover', 'yAxis.category', function(e) {
|
||||
console.log(e)
|
||||
let axisTip = document.querySelector('.axis-tip')
|
||||
console.log(axisTip)
|
||||
axisTip.innerText = e.value
|
||||
axisTip.style.left = 100 + 'px'
|
||||
axisTip.style.top = (e.event.event.y) - 180 + 'px'
|
||||
axisTip.style.display = 'block'
|
||||
})
|
||||
myChart.on('mouseout', 'yAxis.category', function(e) {
|
||||
let axisTip = document.querySelector('.axis-tip')
|
||||
axisTip.innerText = ''
|
||||
axisTip.style.display = 'none'
|
||||
})
|
||||
},
|
||||
searchQuery() {
|
||||
this.getList()
|
||||
@@ -293,7 +403,12 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.box-top-text-right .ant-calendar-picker-input {
|
||||
height: 38px;
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
@@ -350,4 +465,24 @@
|
||||
width: 100%;
|
||||
height: 200%;
|
||||
}
|
||||
|
||||
.axis-tip {
|
||||
display: none;
|
||||
position: absolute;
|
||||
padding: 5px 5px;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
color: #575757;
|
||||
background: #ffffff;
|
||||
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.box-top-text-right {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
height: 38px;
|
||||
width: 300px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user