Commit 09bc7ce6 authored by shyWang's avatar shyWang

PDM前端改造

更改相关
parent 766187f2
......@@ -21,11 +21,9 @@ import java.util.Map;
public class AbstractBaseController {
//@ApiOperation("根据模板id查询模板信息,包含模板节点、路径、及节点下的事件 路径下的事件")
@GetMapping({"/findDetail/{id}"})
public ApiResult<LifecycleTemplateVO> findDetail(@PathVariable Long id) {
//return ApiResult.ok(this.getService().findDetail(id));
return ApiResult.ok("");
}
......@@ -54,10 +52,7 @@ public class AbstractBaseController {
}
@DeleteMapping({"/batch/{ids}/{type}"})// id,id2,id3 linkId
//@SubPermission({"remove"})
public ApiResult deleteDxPartUsageLink(@PathVariable("ids") String ids, @PathVariable("type") String type) {
//this.getService().deleteAllIterationFromSameVersion(id);
try {
List<String> idList = new ArrayList<String>();
if (ObjectsUtil.nonNull(ids)) {
......@@ -80,31 +75,6 @@ public class AbstractBaseController {
return ApiResult.error("501", "删除失败", e);
}
}
/* //@ApiOperation("配置规范查询")
@PostMapping({"findBySpec"})
List<DxPartVO> findByConfigSpec(@RequestBody SearchQueryCondition specSearch) {
try {
List<DxPartVO> partVOS = DxPartService.findByConfigSpecSelect(specSearch);
return partVOS;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//@ApiOperation("深度查询")
@PostMapping({"find/recursion"})
List<DxPartVO> findRecursion(@RequestBody SearchQueryCondition specSearch) {
try {
List<DxPartVO> partVOS = DxPartService.findByConfigSpecSelect(specSearch);
return partVOS;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}*/
public SearchItems getPermSearchItems(BaseSearchCondition permSearchParams) {
SearchItems searchItems = new SearchItems();
......
......@@ -2,11 +2,17 @@ package com.yonde.basedata.search;
import com.yonde.basedata.entity.users.DxUserVO;
import com.yonde.basedata.vo.*;
import com.yonde.change.vo.ecn.DxChangeNoticeVo;
import com.yonde.change.vo.ecr.DxChangeRequestVo;
import com.yonde.change.vo.pr.DxProblemReportVo;
import com.yonde.context.vo.DxContextVO;
import com.yonde.doc.vo.DxDocumentVO;
import com.yonde.part.vo.*;
import com.yonde.plan.vo.DxProcessDocDescribeLinkVO;
import com.yonde.plan.vo.DxProcessDocReferenceLinkVO;
import wt.change2.WTChangeIssue;
import wt.change2.WTChangeOrder2;
import wt.change2.WTChangeRequest2;
import wt.clients.beans.query.WTAttribute;
import wt.doc.WTDocument;
import wt.fc.ObjectIdentifier;
......@@ -19,7 +25,9 @@ import wt.util.WTAttributeNameIfc;
import wt.vc.Iterated;
import wt.vc.views.ViewReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SearchOperatorEnumUtil {
......@@ -46,23 +54,43 @@ public class SearchOperatorEnumUtil {
public static final Map<String, String> docSearchItemMap = new HashMap();// 文档搜索条件
public static final Map<String, String> changeSearchItemMap = new HashMap();// 变更搜索条件
public static final Map<Class<?>, Map<String, String>> typeSearchItemMap = new HashMap();// 类型搜索条件映射
public static final Map<Class<?>, String> typeItemMap = new HashMap();// 类型映射
public static final Map<String, Class<?>> typeMap = new HashMap();// 类型映射
public static final Map<String, String> typeStrPrefixMap = new HashMap();// 类型映射
public static final Map<String, String> viewMap = new HashMap();// 视图映射
public static final Map<Class<?>, String> typePrefixMap = new HashMap();// 类型映射
public static final List<String> oidPrefixList = new ArrayList<String>();//PDM类型
static {
initSearchItemMap();
initPartItemMap();
initDocItemMap();
initChangeItemMap();
initTypeItemMap();
initTypeMap();
initViewMap();
initTypePrefixMap();
initOidPrefixList();
}
public static void initOidPrefixList() {
oidPrefixList.add("OR:wt.part.WTPart:");
oidPrefixList.add("OR:wt.doc.WTDocument:");
oidPrefixList.add("OR:wt.change2.WTChangeOrder2:");
oidPrefixList.add("OR:wt.change2.WTChangeRequest2:");
oidPrefixList.add("OR:wt.change2.WTChangeIssue:");
oidPrefixList.add("OR:wt.vc.baseline.ManagedBaseline:");
}
public static void initViewMap() {
......@@ -71,6 +99,16 @@ public class SearchOperatorEnumUtil {
viewMap.put("3", "Manufacture");
}
public static void initTypeMap() {
typeMap.put("DxDocument", WTDocument.class);
typeMap.put("DxPart", WTPart.class);
typeMap.put("DxChangeRequest", WTChangeRequest2.class);
typeMap.put("DxChangeNotice", WTChangeOrder2.class);
typeMap.put("DxDeviation", WTChangeIssue.class);
typeMap.put("DxProblemReport", WTChangeIssue.class);
typeMap.put("DxWaver", WTChangeIssue.class);
}
public static void initTypePrefixMap() {
typePrefixMap.put(DxPartVO.class, "wt.part.WTPart:");
typePrefixMap.put(DxDocumentVO.class, "wt.doc.WTDocument:");
......@@ -87,6 +125,10 @@ public class SearchOperatorEnumUtil {
typeStrPrefixMap.put("com.yonde.dcs.xbom.common.entity.vo.DxPartVO", "wt.part.WTPart:");
typeStrPrefixMap.put("DxPart", "wt.part.WTPart:");
typeStrPrefixMap.put("DxDocument", "wt.doc.WTDocument:");
typeStrPrefixMap.put("com.yonde.dcs.cmt.common.entity.vo.DxChangeRequestVo", "wt.change2.WTChangeRequest2:");
typeStrPrefixMap.put("com.yonde.dcs.cmt.common.entity.vo.DxChangeNoticeVo", "wt.change2.WTChangeOrder2:");
typeStrPrefixMap.put("com.yonde.dcs.cmt.common.entity.vo.DxProblemReportVo", "wt.change2.WTChangeIssue:");
typeStrPrefixMap.put("com.yonde.dcs.document.common.entity.vo.DxDocumentVO", "wt.doc.WTDocument:");
}
......@@ -107,6 +149,10 @@ public class SearchOperatorEnumUtil {
typeItemMap.put(DxProcessDocReferenceLinkVO.class, "com.yonde.dcs.process.common.entity.vo.DxProcessDocReferenceLinkVO");
typeItemMap.put(DxProcessDocDescribeLinkVO.class, "com.yonde.dcs.process.common.entity.vo.DxProcessDocDescribeLinkVO");
typeItemMap.put(DxChangeRequestVo.class, "com.yonde.dcs.cmt.common.entity.vo.DxChangeRequestVo");
typeItemMap.put(DxChangeNoticeVo.class, "com.yonde.dcs.cmt.common.entity.vo.DxChangeNoticeVo");
typeItemMap.put(DxProblemReportVo.class, "com.yonde.dcs.cmt.common.entity.vo.DxProblemReportVo");
//TODO add
}
......@@ -127,8 +173,8 @@ public class SearchOperatorEnumUtil {
+ ViewReference.KEY + "." + ObjectIdentifier.ID);
partSearchItemMap.put(DX_STATE, WTPart.LIFE_CYCLE_STATE);
partSearchItemMap.put(DX_MASTER_ID, Iterated.MASTER_REFERENCE + "." + ObjectReference.KEY + "." + ObjectIdentifier.ID);
docSearchItemMap.put("createTime", WTPart.CREATE_TIMESTAMP);
docSearchItemMap.put("modifyTime", WTPart.MODIFY_TIMESTAMP);
partSearchItemMap.put("createTime", WTPart.CREATE_TIMESTAMP);
partSearchItemMap.put("modifyTime", WTPart.MODIFY_TIMESTAMP);
//部件类型映射
typeSearchItemMap.put(WTPart.class, partSearchItemMap);
......@@ -149,4 +195,19 @@ public class SearchOperatorEnumUtil {
typeSearchItemMap.put(WTDocument.class, docSearchItemMap);
}
public static void initChangeItemMap() {
changeSearchItemMap.put(DX_ID, "thePersistInfo.theObjectIdentifier.id");
changeSearchItemMap.put(DX_NUMBER, WTChangeOrder2.NUMBER);
changeSearchItemMap.put(DX_NAME, WTChangeOrder2.NAME);
changeSearchItemMap.put(DX_STATE, WTChangeOrder2.LIFE_CYCLE_STATE);
changeSearchItemMap.put("createTime", WTChangeOrder2.CREATE_TIMESTAMP);
changeSearchItemMap.put("modifyTime", WTChangeOrder2.MODIFY_TIMESTAMP);
//更改类型映射
typeSearchItemMap.put(WTChangeOrder2.class, changeSearchItemMap);
typeSearchItemMap.put(WTChangeRequest2.class, changeSearchItemMap);
typeSearchItemMap.put(WTChangeIssue.class, changeSearchItemMap);
}
}
......@@ -167,9 +167,12 @@ public class BaseSearchService <V extends IdVO> implements RemoteAccess {
String targetId = fileForm.getTargetId();
String operator = fileForm.getOperator();
String sourceIdType = fileForm.getSourceIdType();
ContentHolder holder = DxDocUtil.getDocById(sourceId);
ContentHolder holder = null;
//DxDocUtil.getDocById(sourceId);
if (StringUtils.isNotEmpty(sourceIdType) && sourceIdType.toLowerCase().contains("part")) {
holder = DxPartUtil.getPartById(sourceId);
} else {
holder = (ContentHolder) RfUtil.getWTObjectById(sourceId);
}
if ("ADD".equalsIgnoreCase(operator)) {
ContentRoleType roleType = ContentRoleType.PRIMARY;
......
......@@ -34,7 +34,7 @@ public class IdVO extends IdOnlyVO implements Serializable {
this.setId(PersistenceHelper.getObjectIdentifier(object).getId());
this.createTime = DateTimeUtil.timeStampToString(object.getCreateTimestamp());
this.modifyTime = DateTimeUtil.timeStampToString(object.getModifyTimestamp());
}finally {
} finally {
SessionContext.setContext(previous);
}
......
package com.yonde.change.controller;
import com.alibaba.fastjson.JSON;
import com.yonde.basedata.controller.AbstractBaseController;
import com.yonde.basedata.entity.api.ApiResult;
import com.yonde.basedata.vo.IdVO;
import com.yonde.change.service.DXChangeOrderService;
import com.yonde.change.vo.DxChangeAffectedDataVo;
import com.yonde.change.vo.DxReportedAgainstVo;
import com.yonde.change.vo.ecn.DxChangeNoticeVo;
import com.yonde.change.vo.ecr.DxChangeRequestVo;
import com.yonde.change.vo.pr.DxProblemReportVo;
import com.yonde.common.ObjectsUtil;
import com.yonde.doc.service.DxDocService;
import com.yonde.doc.vo.DxDocumentVO;
import com.yonde.part.service.DxPartService;
import com.yonde.part.vo.DxPartVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping({"/changeOrder"})
public class DxChangeOrderController {
public class DxChangeOrderController extends AbstractBaseController {
//@ApiOperation("深度保存对象")
@PostMapping({"createPR"})
public ApiResult recursionPR(@RequestBody Map entity, HttpServletRequest request) {
DxPartVO part = null;
DxProblemReportVo pr = null;
try {
String jsonString = JSON.toJSONString(entity);
DxProblemReportVo entityVO = JSON.parseObject(jsonString, DxProblemReportVo.class);
......@@ -34,9 +41,9 @@ public class DxChangeOrderController {
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO);
} else {
//part = DxPartService.createDxPart(entityVO, portUserName);
pr = DXChangeOrderService.createPR(entityVO, portUserName);
}
return ApiResult.ok(part);
return ApiResult.ok(pr);
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error("501", e.getLocalizedMessage(), e);
......@@ -46,7 +53,7 @@ public class DxChangeOrderController {
//@ApiOperation("深度保存对象")
@PostMapping({"createECR"})
public ApiResult recursionECR(@RequestBody Map entity, HttpServletRequest request) {
DxPartVO part = null;
DxChangeRequestVo ecr = null;
try {
String jsonString = JSON.toJSONString(entity);
DxChangeRequestVo entityVO = JSON.parseObject(jsonString, DxChangeRequestVo.class);
......@@ -55,9 +62,9 @@ public class DxChangeOrderController {
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO);
} else {
//part = DxPartService.createDxPart(entityVO, portUserName);
ecr = DXChangeOrderService.createECR(entityVO, portUserName);
}
return ApiResult.ok(part);
return ApiResult.ok(ecr);
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error("501", e.getLocalizedMessage(), e);
......@@ -67,7 +74,7 @@ public class DxChangeOrderController {
//@ApiOperation("深度保存对象")
@PostMapping({"createECN"})
public ApiResult recursionECN(@RequestBody Map entity, HttpServletRequest request) {
DxPartVO part = null;
DxChangeNoticeVo ecn = null;
try {
String jsonString = JSON.toJSONString(entity);
DxChangeNoticeVo entityVO = JSON.parseObject(jsonString, DxChangeNoticeVo.class);
......@@ -76,12 +83,62 @@ public class DxChangeOrderController {
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO);
} else {
//part = DxPartService.createDxPart(entityVO, portUserName);
ecn = DXChangeOrderService.createECN(entityVO, portUserName);
}
return ApiResult.ok(part);
return ApiResult.ok(ecn);
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error("501", e.getLocalizedMessage(), e);
}
}
@GetMapping({"/DxReportedAgainst/search"})
//@ApiOperation("获取PR相关对象")
public List getAffectedDataLink(@RequestParam(value = "targetId", required = false) String targetId, @RequestParam(value = "sourceId", required = false) String sourceId, HttpServletRequest request) {
List<DxReportedAgainstVo> resultList = new ArrayList<DxReportedAgainstVo>();
try {
if (StringUtils.isNotEmpty(sourceId)) {
resultList = DXChangeOrderService.getChangeDataLink(Long.valueOf(sourceId),null);
return resultList;
}
if (StringUtils.isNotEmpty(targetId)) {
resultList = DXChangeOrderService.getAffectedDataLink(Long.valueOf(targetId), "DxProblemReport");
return resultList;
}
} catch (Exception e) {
e.printStackTrace();
}
return resultList;
}
@GetMapping({"/DxChangeAffectedData/search"})
//@ApiOperation("获取更改相关对象")
public List getChangeAffectedDataLink(@RequestParam(value = "targetId", required = false) String targetId, @RequestParam(value = "sourceId", required = false) String sourceId, @RequestParam("sourceIdType") String sourceIdType, HttpServletRequest request) {
List<DxChangeAffectedDataVo> resultList = new ArrayList<DxChangeAffectedDataVo>();
try {
if (StringUtils.isNotEmpty(sourceId)) {
resultList = DXChangeOrderService.getChangeDataLink(Long.valueOf(sourceId),null);
return resultList;
}
if (StringUtils.isNotEmpty(targetId)) {
resultList = DXChangeOrderService.getAffectedDataLink(Long.valueOf(targetId), sourceIdType);
return resultList;
}
} catch (Exception e) {
e.printStackTrace();
}
return resultList;
}
@GetMapping({"/version/getWorkingCopy"})
//@ApiOperation("获取变更对象")
public IdVO getWorkingCopy(@RequestParam("id") Long id, @RequestParam("type") String type, HttpServletRequest request) {
IdVO idVO = null;
try {
idVO = DXChangeOrderService.getWorkingCopyById(id, type);
} catch (Exception e) {
e.printStackTrace();
}
return idVO;
}
}
This diff is collapsed.
package com.yonde.change.vo;
import com.yonde.basedata.vo.IdVO;
import com.yonde.basedata.vo.RevisionControlledVO;
import com.yonde.common.entity.DxIterationVOHolder;
import java.io.Serializable;
/**
* 受影响对象LINK
*/
public class DxChangeAffectedDataVo {
public class DxChangeAffectedDataVo implements Serializable {
private String pboType;
private Long pboId;
......@@ -29,11 +32,32 @@ public class DxChangeAffectedDataVo {
public String displayDxViewName;
private RevisionControlledVO target;
private IdVO source;
private Long sourceId;
private String sourceIdType;
private Long targetId;
private String targetIdType;
public DxChangeAffectedDataVo() {
}
public DxChangeAffectedDataVo(RevisionControlledVO target, IdVO source) {
this.target = target;
this.targetId = target.getId();
this.targetIdType = target.getSubTypeName();
this.source = source;
this.sourceId = source.getId();
this.sourceIdType = source.getSubTypeName();
}
public IdVO getSource() {
return source;
}
public void setSource(IdVO source) {
this.source = source;
}
public String getPboType() {
return pboType;
}
......
......@@ -12,6 +12,24 @@ public class DxChangeAfterDataVo {
private String sourceIdType;
private Long targetId;
private String targetIdType;
private String pboType;
private Long pboId;
public String getPboType() {
return pboType;
}
public void setPboType(String pboType) {
this.pboType = pboType;
}
public Long getPboId() {
return pboId;
}
public void setPboId(Long pboId) {
this.pboId = pboId;
}
public RevisionControlledVO getTarget() {
return target;
......
package com.yonde.change.vo;
import com.yonde.basedata.vo.IdVO;
import java.io.Serializable;
public class DxChangeItemVo extends IdVO implements Serializable {
}
package com.yonde.change.vo;
import com.yonde.basedata.vo.IdVO;
import com.yonde.basedata.vo.RevisionControlledVO;
import com.yonde.change.vo.pr.DxProblemReportVo;
import com.yonde.common.ObjectsUtil;
import java.io.Serializable;
/**
* 受影响对象
* PR Link
*/
public class DxReportedAgainstVo implements Serializable {
public class DxReportedAgainstVo extends IdVO implements Serializable {
private RevisionControlledVO target;
private DxProblemReportVo source;
private Long sourceId;
private String sourceIdType;
private RevisionControlledVO target;//
private Long targetId;
private String targetIdType;
private Long pboId;
private String pboType;
public DxReportedAgainstVo(DxProblemReportVo source, RevisionControlledVO target) {
if (ObjectsUtil.nonNull(source)) {
this.source = source;
this.sourceId = source.getId();
this.sourceIdType = source.getDxClassname().substring(source.getDxClassname().lastIndexOf(".") + 1);
this.id = sourceId;
this.createTime = source.getCreateTime();
this.modifyTime = source.getModifyTime();
}
if (ObjectsUtil.nonNull(target)) {
this.target = target;
this.targetId = target.getId();
this.targetIdType = target.getDxClassname().substring(target.getDxClassname().lastIndexOf(".") + 1);
}
}
public Long getPboId() {
return pboId;
}
public void setPboId(Long pboId) {
this.pboId = pboId;
}
public String getPboType() {
return pboType;
}
public void setPboType(String pboType) {
this.pboType = pboType;
}
public DxProblemReportVo getSource() {
return source;
}
public void setSource(DxProblemReportVo source) {
this.source = source;
}
public RevisionControlledVO getTarget() {
return target;
}
......
package com.yonde.change.vo.ecn;
import com.yonde.basedata.entity.users.DxUserVO;
import com.yonde.basedata.vo.DxOrganizationVO;
import com.yonde.basedata.vo.IdVO;
import com.yonde.basedata.vo.ObjFileLinkVO;
import com.yonde.change.vo.DxChangeAffectedDataVo;
import com.yonde.change.vo.DxChangeAfterDataVo;
import com.yonde.common.ChangeOrderUtil;
import com.yonde.common.DxCommonUtils;
import com.yonde.common.IBAHelper;
import com.yonde.common.ObjectsUtil;
import com.yonde.context.vo.DxContextVO;
import wt.change2.WTChangeOrder2;
import wt.org.WTOrganization;
import wt.util.WTException;
import wt.type.ClientTypedUtility;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;
public class DxChangeNoticeVo extends IdVO implements Serializable {
......@@ -45,10 +47,15 @@ public class DxChangeNoticeVo extends IdVO implements Serializable {
this.number = wtChangeOrder2.getNumber();
this.state = wtChangeOrder2.getState().getState().toString();
WTOrganization organization = wtChangeOrder2.getOrganization();
if (ObjectsUtil.nonNull(organization)) {
this.setDxOrganization(new DxOrganizationVO(organization));
}
this.setDxContext(new DxContextVO(wtChangeOrder2.getContainer()));
this.setModifier(new DxUserVO(wtChangeOrder2.getModifier().getPrincipal()));
this.setCreator(new DxUserVO(wtChangeOrder2.getCreator().getPrincipal()));
this.dynamicAttrs = IBAHelper.getAllIBAValues(wtChangeOrder2);
this.subTypeName = "DxChangeNotice";//TODO 要映射
this.subTypeDisplayName = ClientTypedUtility.getLocalizedTypeName(wtChangeOrder2, Locale.SIMPLIFIED_CHINESE);
this.setObjFileLinks(DxCommonUtils.buildObjFileLinks(wtChangeOrder2));
//ChangeOrderUtil.get
......
package com.yonde.change.vo.ecr;
import com.yonde.basedata.entity.users.DxUserVO;
import com.yonde.basedata.vo.DxDocumentFolderVO;
import com.yonde.basedata.vo.DxOrganizationVO;
import com.yonde.basedata.vo.IdVO;
import com.yonde.basedata.vo.ObjFileLinkVO;
import com.yonde.change.vo.DxChangeAffectedDataVo;
import com.yonde.common.DxCommonUtils;
import com.yonde.common.IBAHelper;
import com.yonde.common.ObjectsUtil;
import com.yonde.context.vo.DxContextVO;
import org.apache.commons.lang.StringUtils;
import wt.change2.WTChangeRequest2;
import wt.org.WTOrganization;
import wt.type.ClientTypedUtility;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;
/**
* ECR
*/
public class DxChangeRequestVo extends IdVO {
public class DxChangeRequestVo extends IdVO implements Serializable {
private String number;
private String name;
......@@ -23,8 +34,111 @@ public class DxChangeRequestVo extends IdVO {
private Long dxOrganizationId;
private String dxOrganizationIdType;
private DxDocumentFolderVO folderVO;
private List<ObjFileLinkVO> objFileLinks;
//受影响对象
private List<DxChangeAffectedDataVo> changeAffectedDatas;
public DxChangeRequestVo(WTChangeRequest2 ecr) throws Exception{
super(ecr);
this.name = ecr.getName();
this.number = ecr.getNumber();
this.state = ecr.getState().getState().getDisplay();
WTOrganization organization = ecr.getOrganization();
if (ObjectsUtil.nonNull(organization)) {
this.setDxOrganization(new DxOrganizationVO(organization));
}
this.setDxContext(new DxContextVO(ecr.getContainer()));
this.subTypeName = "DxChangeRequest";//TODO 要映射
this.subTypeDisplayName = ClientTypedUtility.getLocalizedTypeName(ecr, Locale.SIMPLIFIED_CHINESE);
this.setModifier(new DxUserVO(ecr.getModifier().getPrincipal()));
this.setCreator(new DxUserVO(ecr.getCreator().getPrincipal()));
this.dynamicAttrs = IBAHelper.getAllIBAValues(ecr);
if (StringUtils.isNotEmpty(ecr.getDescription())) {
this.getDynamicAttrs().put("description", ecr.getDescription());
}
this.setObjFileLinks(DxCommonUtils.buildObjFileLinks(ecr));
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public DxContextVO getDxContext() {
return dxContext;
}
public void setDxContext(DxContextVO dxContext) {
this.dxContext = dxContext;
}
public Long getDxContextId() {
return dxContextId;
}
public void setDxContextId(Long dxContextId) {
this.dxContextId = dxContextId;
}
public DxOrganizationVO getDxOrganization() {
return dxOrganization;
}
public void setDxOrganization(DxOrganizationVO dxOrganization) {
this.dxOrganization = dxOrganization;
}
public Long getDxOrganizationId() {
return dxOrganizationId;
}
public void setDxOrganizationId(Long dxOrganizationId) {
this.dxOrganizationId = dxOrganizationId;
}
public String getDxOrganizationIdType() {
return dxOrganizationIdType;
}
public void setDxOrganizationIdType(String dxOrganizationIdType) {
this.dxOrganizationIdType = dxOrganizationIdType;
}
public List<ObjFileLinkVO> getObjFileLinks() {
return objFileLinks;
}
public void setObjFileLinks(List<ObjFileLinkVO> objFileLinks) {
this.objFileLinks = objFileLinks;
}
public List<DxChangeAffectedDataVo> getChangeAffectedDatas() {
return changeAffectedDatas;
}
public void setChangeAffectedDatas(List<DxChangeAffectedDataVo> changeAffectedDatas) {
this.changeAffectedDatas = changeAffectedDatas;
}
}
package com.yonde.change.vo.pr;
import com.yonde.basedata.entity.users.DxUserVO;
import com.yonde.basedata.vo.DxOrganizationVO;
import com.yonde.basedata.vo.IdVO;
import com.yonde.basedata.vo.ObjFileLinkVO;
import com.yonde.change.vo.DxReportedAgainstVo;
import com.yonde.common.DxCommonUtils;
import com.yonde.common.IBAHelper;
import com.yonde.common.ObjectsUtil;
import com.yonde.context.vo.DxContextVO;
import org.apache.commons.lang.StringUtils;
import wt.change2.WTChangeIssue;
import wt.org.WTOrganization;
import wt.type.ClientTypedUtility;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
* PR
*/
public class DxProblemReportVo extends IdVO implements Serializable {
private String name;
private String number;
private String state;
private String problemSource;
private String problemCategory;
private String comments;
......@@ -20,8 +36,112 @@ public class DxProblemReportVo extends IdVO implements Serializable {
private String problemIdentity;
private Short technologyPriority;
private DxContextVO dxContext;
private Long dxContextId;
private DxOrganizationVO dxOrganization;
private Long dxOrganizationId;
private String dxOrganizationIdType;
private List<DxReportedAgainstVo> reportedAgainsts;
private List<ObjFileLinkVO> objFileLinks;
public DxProblemReportVo() {
}
public DxProblemReportVo(WTChangeIssue ifc) throws Exception {
super(ifc);
this.name = ifc.getName();
this.number = ifc.getNumber();
this.state = ifc.getState().getState().toString();
WTOrganization organization = ifc.getOrganization();
if (ObjectsUtil.nonNull(organization)) {
this.setDxOrganization(new DxOrganizationVO(organization));
}
this.setDxContext(new DxContextVO(ifc.getContainer()));
this.subTypeName = "DxProblemReport";//TODO 要映射
this.subTypeDisplayName = ClientTypedUtility.getLocalizedTypeName(ifc, Locale.SIMPLIFIED_CHINESE);
this.setModifier(new DxUserVO(ifc.getModifier().getPrincipal()));
this.setCreator(new DxUserVO(ifc.getCreator().getPrincipal()));
this.dynamicAttrs = IBAHelper.getAllIBAValues(ifc);
if (StringUtils.isNotEmpty(ifc.getDescription())) {
this.getDynamicAttrs().put("description", ifc.getDescription());
}
this.setObjFileLinks(DxCommonUtils.buildObjFileLinks(ifc));
}
public DxContextVO getDxContext() {
return dxContext;
}
public void setDxContext(DxContextVO dxContext) {
this.dxContext = dxContext;
}
public Long getDxContextId() {
return dxContextId;
}
public void setDxContextId(Long dxContextId) {
this.dxContextId = dxContextId;
}
public DxOrganizationVO getDxOrganization() {
return dxOrganization;
}
public void setDxOrganization(DxOrganizationVO dxOrganization) {
this.dxOrganization = dxOrganization;
}
public Long getDxOrganizationId() {
return dxOrganizationId;
}
public void setDxOrganizationId(Long dxOrganizationId) {
this.dxOrganizationId = dxOrganizationId;
}
public String getDxOrganizationIdType() {
return dxOrganizationIdType;
}
public void setDxOrganizationIdType(String dxOrganizationIdType) {
this.dxOrganizationIdType = dxOrganizationIdType;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public List<ObjFileLinkVO> getObjFileLinks() {
return objFileLinks;
}
public void setObjFileLinks(List<ObjFileLinkVO> objFileLinks) {
this.objFileLinks = objFileLinks;
}
public String getProblemSource() {
return problemSource;
}
......
This diff is collapsed.
......@@ -5,7 +5,9 @@ import com.yonde.basedata.search.SearchItem;
import com.yonde.basedata.search.SearchItems;
import com.yonde.basedata.search.SearchOperatorEnumUtil;
import com.yonde.basedata.search.SearchQueryCondition;
import com.yonde.basedata.vo.IdVO;
import com.yonde.change.vo.ecn.DxChangeNoticeVo;
import com.yonde.change.vo.ecr.DxChangeRequestVo;
import com.yonde.change.vo.pr.DxProblemReportVo;
import com.yonde.doc.vo.DxDocumentVO;
import com.yonde.part.vo.DxPartVO;
import org.apache.commons.collections.CollectionUtils;
......@@ -13,6 +15,10 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import wt.change2.VersionableChangeItem;
import wt.change2.WTChangeIssue;
import wt.change2.WTChangeOrder2;
import wt.change2.WTChangeRequest2;
import wt.doc.WTDocument;
import wt.fc.*;
import wt.log4j.LogR;
......@@ -25,6 +31,7 @@ import wt.session.SessionServerHelper;
import wt.util.WTAttributeNameIfc;
import wt.util.WTException;
import wt.vc.Iterated;
import wt.vc.baseline.Baseline;
import wt.vc.views.View;
import wt.vc.views.ViewHelper;
import wt.vc.wip.WorkInProgressHelper;
......@@ -80,7 +87,7 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
List<String> indices = searchQueryCondition.getIndices();
Class cls = WTPart.class;
if (StringUtils.isNotEmpty(searchQueryCondition.getName())) {
cls = WTDocument.class;
cls = SearchOperatorEnumUtil.typeMap.get(searchQueryCondition.getName());
}
try {
//合并查询条件
......@@ -91,13 +98,14 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
//构建查询
QuerySpec querySpec = DxSearchUtil.buildQuerySpec(searchItems, cls);
//通用查询条件
if (!cls.getName().toLowerCase().contains("change")) {
// Case 1:检入状态
if (querySpec.getConditionCount() > 0) {
querySpec.appendAnd();
}
querySpec.appendWhere(
WorkInProgressHelper.getSearchCondition(
cls, WorkInProgressState.CHECKED_IN, true),
cls, WorkInProgressState.WORKING, false),
new int[]{0});
if (CollectionUtils.isNotEmpty(indices)) {
if (querySpec.getConditionCount() > 0) {
......@@ -107,15 +115,22 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
SearchCondition.IS_TRUE);
querySpec.appendWhere(condition, new int[]{0});
}
}
//创建时间排序
querySpec.appendOrderBy(cls, "thePersistInfo.createStamp", true);
//page
int pageFrom = 0;
int pageSize = 9999;
if (ObjectsUtil.nonNull(searchQueryCondition.getPageFrom())) {
pageFrom = searchQueryCondition.getPageFrom() -1;
pageSize = searchQueryCondition.getPageSize();
}
BasicPageableQuerySpec bpqs = new BasicPageableQuerySpec();
bpqs.setPrimaryStatement(querySpec);
logger.error("pageFrom====" + (searchQueryCondition.getPageFrom()-1)*searchQueryCondition.getPageSize());
logger.error("pageSize====" + searchQueryCondition.getPageSize());
bpqs.setOffset((searchQueryCondition.getPageFrom()-1)*searchQueryCondition.getPageSize());
bpqs.setRange(searchQueryCondition.getPageSize());
logger.error("pageFrom====" + pageFrom*pageSize);
logger.error("pageSize====" + pageSize);
bpqs.setOffset(pageFrom*pageSize);
bpqs.setRange(pageSize);
bpqs.setBackgroundThreadEnabled(false);
bpqs.setLimitModeEnabled(true);
//bpqs.setAdvancedQueryEnabled();
......@@ -129,23 +144,43 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
/**
* 生成反馈结果
* @param o
* @param partList
* @param objList
* @param indices
* @throws Exception
*/
public static void buildQueryResult(WTObject o, List partList, List<String> indices) throws Exception {
public static void buildQueryResult(WTObject o, List objList, List<String> indices) throws Exception {
if (o instanceof WTPart) {
WTPart wtPart = (WTPart) o;
DxPartVO dxPartVO = new DxPartVO(wtPart);
partList.add(dxPartVO);
objList.add(dxPartVO);
return;
}
if (o instanceof WTDocument) {
WTDocument document = (WTDocument) o;
DxDocumentVO dxPartVO = new DxDocumentVO(document);
partList.add(dxPartVO);
} else {
//TODO ...other type
objList.add(dxPartVO);
return;
}
if (o instanceof WTChangeOrder2) {
WTChangeOrder2 changeOrder2 = (WTChangeOrder2) o;
DxChangeNoticeVo changeNoticeVo = new DxChangeNoticeVo(changeOrder2);
objList.add(changeNoticeVo);
return;
}
if (o instanceof WTChangeRequest2) {
WTChangeRequest2 changeRequest2 = (WTChangeRequest2) o;
DxChangeRequestVo changeRequestVo = new DxChangeRequestVo(changeRequest2);
objList.add(changeRequestVo);
return;
}
if (o instanceof WTChangeIssue) {
WTChangeIssue issue = (WTChangeIssue) o;
DxProblemReportVo problemReportVo = new DxProblemReportVo(issue);
objList.add(problemReportVo);
return;
}
if (o instanceof Baseline) {
// TODO 基线
}
}
......@@ -255,6 +290,11 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
if (fieldName.toLowerCase().contains("stamp") && ObjectsUtil.nonNull(value)) {
value = Timestamp.valueOf(String.valueOf(value));
}
if (value instanceof Long || fieldName.contains(Iterated.MASTER_REFERENCE) || fieldName.equalsIgnoreCase(WTAttributeNameIfc.ID_NAME)) {
sc = new SearchCondition(clazz, fieldName,
op, Long.valueOf(String.valueOf(value)));
return sc;
}
if (value instanceof String) {
String scVal = String.valueOf(value);
if("LIKE".equalsIgnoreCase(op)) {
......@@ -264,11 +304,6 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
op, scVal);
return sc;
}
if (value instanceof Long || fieldName.contains(Iterated.MASTER_REFERENCE) || fieldName.equalsIgnoreCase(WTAttributeNameIfc.ID_NAME)) {
sc = new SearchCondition(clazz, fieldName,
op, Long.valueOf(String.valueOf(value)));
return sc;
}
if (value instanceof Integer) {
sc = new SearchCondition(clazz, fieldName,
op, Integer.valueOf(String.valueOf(value)));
......
package com.yonde.common;
import com.yonde.basedata.search.SearchOperatorEnumUtil;
import wt.doc.WTDocument;
import wt.fc.PersistenceHelper;
import wt.fc.ReferenceFactory;
import wt.fc.WTObject;
import wt.fc.WTReference;
import wt.fc.*;
import wt.lifecycle.LifeCycleHelper;
import wt.method.RemoteMethodServer;
import wt.part.WTPart;
......@@ -96,6 +94,46 @@ public class RfUtil {
return p;
}
/**
* 通过oid获取WTObject
*
* @param id
* @return
* @throws WTException
* @throws RemoteException
* @throws InvocationTargetException
*/
public static WTObject getWTObjectById(Long id) {
WTObject p = null;
boolean flag = SessionServerHelper.manager.setAccessEnforced(false);
try {
List<String> oidPrefixList = SearchOperatorEnumUtil.oidPrefixList;
for (String prefix: oidPrefixList) {
p = getWTObjectById(id, prefix);
if (ObjectsUtil.nonNull(p)) {
break;
}
}
} finally {
SessionServerHelper.manager.setAccessEnforced(flag);
}
return p;
}
public static WTObject getWTObjectById(Long id, String prefix) {
WTObject p = null;
try {
String oid = prefix + id;
WTReference wtreference = rf.getReference(oid);
if (wtreference != null) {
wtreference.refresh();
p = (WTObject) wtreference.getObject();
}
} catch (WTException e) {
}
return p;
}
/**
* 根据对象oid获取WTReference
*
......
......@@ -758,6 +758,9 @@ public class WorkflowUtil implements RemoteAccess {
try {
WfProcessDefinition processDefinition =
WfDefinerHelper.service.getProcessDefinition(templateName, context_ref);
log.error("===temp Name===" + templateName);
log.error("===context_ref===" + context_ref);
log.error("===processDefinition===" + processDefinition);
wfprocess = WfEngineHelper.service.createProcess(processDefinition, team_spec, context_ref);
wfprocess.setName(processname);
ProcessData processData = wfprocess.getContext();
......
......@@ -32,7 +32,6 @@ public class DxDocController extends AbstractBaseController {
} catch (Exception e) {
e.printStackTrace();
}
return dxDocumentVO;
}
......
......@@ -16,6 +16,7 @@ import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class PdmPartBean implements Serializable, Cloneable {
......@@ -50,7 +51,11 @@ public class PdmPartBean implements Serializable, Cloneable {
this.parentNumber = parent.getNumber();
Quantity qt = usageLink.getQuantity();
this.setAmount(qt.getAmount());
this.setUnit(qt.getUnit().toString());
String unit = qt.getUnit().getDisplay(Locale.SIMPLIFIED_CHINESE);
if ("每个".equals(unit)) {
unit = "个";
}
this.setUnit(unit);
WTPartMaster uses = (WTPartMaster) usageLink.getUses();
WTPart child = PartUtil.getLatestPartByNoViewWithState(uses.getNumber(), parent.getViewName(), null, false);
if (ObjectsUtil.nonNull(child)) {
......
......@@ -63,7 +63,6 @@ public class DxPartController extends AbstractBaseController {
} catch (Exception e) {
e.printStackTrace();
}
return dxPartVO;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment