Commit 1c3228eb authored by hanson.yao's avatar hanson.yao

convert wtPart

parent b9cc5ffb
package com.yonde.common;
import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.part.WTPart;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.session.SessionServerHelper;
import wt.util.WTException;
import wt.vc.views.View;
import wt.vc.views.ViewHelper;
import wt.vc.views.ViewReference;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
public class DemoUtil implements RemoteAccess {
public static WTPart getPartByNumberAndView(String number, String viewStr, boolean accessControlled) throws WTException {
WTPart part = null;
try {
number = number.toUpperCase();
if (!RemoteMethodServer.ServerFlag) {
return (WTPart) RemoteMethodServer.getDefault().invoke("getPartByNumberAndView", DemoUtil.class.getName(),
null, new Class[]{String.class, String.class, boolean.class}, new Object[]{number, viewStr, accessControlled});
} else {
boolean enforce = SessionServerHelper.manager.setAccessEnforced(accessControlled);
try {
QuerySpec querySpec = new QuerySpec(WTPart.class);
SearchCondition searchCondition = new SearchCondition(WTPart.class, WTPart.NUMBER, SearchCondition.LIKE, number.toUpperCase(), false);
querySpec.appendWhere(searchCondition, new int[]{0});
querySpec.appendAnd();
querySpec.appendWhere(new SearchCondition(WTPart.class, WTPart.LATEST_ITERATION, SearchCondition.IS_TRUE), new int[]{0});
querySpec.appendAnd();
querySpec.appendOpenParen();
View view = ViewHelper.service.getView(viewStr);
querySpec.appendWhere(new SearchCondition(WTPart.class, WTPart.VIEW + "."
+ ViewReference.KEY, SearchCondition.EQUAL, PersistenceHelper
.getObjectIdentifier(view)), new int[]{0});
querySpec.appendOr();
querySpec.appendWhere(new SearchCondition(WTPart.class, WTPart.VIEW, true), new int[]{0});
querySpec.appendCloseParen();
QueryResult queryResult = PersistenceHelper.manager.find(querySpec);
if (queryResult.hasMoreElements()) {
part = (WTPart) queryResult.nextElement();
}
if(part!=null){
System.out.println("--------Part info-----");
System.out.println("----partNumber-----"+part.getNumber());
System.out.println("----creatorName-----"+part.getCreatorName());
System.out.println("----------------------");
}
} finally {
SessionServerHelper.manager.setAccessEnforced(enforce);
}
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return part;
}
}
......@@ -3,7 +3,6 @@ package com.yonde.common;
import com.ptc.core.meta.common.TypeIdentifier;
import com.ptc.core.meta.common.TypeIdentifierHelper;
import com.ptc.windchill.enterprise.copy.server.CoreMetaUtility;
import com.yonde.part.vo.DxPart;
import org.apache.log4j.Logger;
import wt.fc.*;
import wt.fc.collections.WTValuedHashMap;
......@@ -13,11 +12,12 @@ import wt.inf.container.WTContainerRef;
import wt.log4j.LogR;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.org.WTUser;
import wt.part.*;
import wt.part.PartType;
import wt.part.QuantityUnit;
import wt.part.Source;
import wt.part.WTPart;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.session.SessionHelper;
import wt.session.SessionServerHelper;
import wt.type.TypedUtility;
import wt.util.WTException;
......@@ -26,14 +26,12 @@ import wt.vc.views.View;
import wt.vc.views.ViewHelper;
import wt.vc.views.ViewReference;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Locale;
public class PartUtil implements RemoteAccess, Serializable {
public class PartUtil implements RemoteAccess {
private static Logger logger = LogR.getLogger(PartUtil.class.getName());
private static final ReferenceFactory RF = new ReferenceFactory();
......@@ -44,73 +42,6 @@ public class PartUtil implements RemoteAccess, Serializable {
public static String FOLDER = "FOLDER";
public static DxPart getPartByNumber(String number, boolean accessControlled) throws WTException {
DxPart dxPart = new DxPart();
try {
number = number.toUpperCase();
if (!RemoteMethodServer.ServerFlag) {
return (DxPart) RemoteMethodServer.getDefault().invoke("getPartByNumber", PartUtil.class.getName(), null, new Class[]{String.class, boolean.class}, new Object[]{number, accessControlled});
} else {
boolean enforce = SessionServerHelper.manager.setAccessEnforced(accessControlled);
try {
WTPartMaster partMaster = null;
QuerySpec querySpec = new QuerySpec(WTPartMaster.class);
SearchCondition searchCondition = new SearchCondition(WTPartMaster.class, WTPartMaster.NUMBER,
SearchCondition.EQUAL, number, false);
querySpec.appendSearchCondition(searchCondition);
QueryResult queryResult = PersistenceHelper.manager.find(querySpec);
while (queryResult.hasMoreElements()) {
partMaster = (WTPartMaster) queryResult.nextElement();
QueryResult queryResult2 = VersionControlHelper.service.allVersionsOf(partMaster);
if (queryResult2.hasMoreElements()) {
System.out.println("wt part find end start convert to dxPart");
WTPart wtPart = (WTPart) queryResult2.nextElement();
dxPart.setAuthKeys("");
dxPart.setOperator("");
dxPart.setName(wtPart.getName());
dxPart.setNumber(wtPart.getNumber());
dxPart.setId(PartUtil.getWTObjectOid(wtPart));
dxPart.setState(wtPart.getState().getState().getDisplay(Locale.CHINA));
dxPart.setSubTypeName(PartUtil.getWTObjectSubType(wtPart).getTypename());
System.out.println("------888");
dxPart.setDefaultUnit(wtPart.getDefaultUnit().getDisplay(Locale.CHINESE));
dxPart.setSubTypeDisplayName(wtPart.getDisplayIdentity().getDisplayType().getLocalizedMessage(Locale.CHINESE));
System.out.println("------999");
dxPart.setMasterId(new ReferenceFactory().getReferenceString(ObjectReference.newObjectReference((wtPart.getMaster().getPersistInfo().getObjectIdentifier()))));
System.out.println("------1");
//RemoteMethodServer aa = RemoteMethodServer.getDefault();
//aa.setUserName("wcadmin");
//aa.setPassword("wcadmin");
//System.out.println("------2");
System.out.println(SessionHelper.manager.getPrincipal());
System.out.println("------3");
System.out.println(SessionHelper.getPrincipal());
WTUser create = (WTUser) (wtPart.getCreator().getObject());
String creator = String.format("%s(%s)", create.getFullName(), create.getName());
WTUser modify = (WTUser) (wtPart.getModifier().getObject());
String modifier = String.format("%s(%s)", modify.getFullName(), modify.getName());
dxPart.setCreator(creator);
dxPart.setModifier(modifier);
}
}
} finally {
SessionServerHelper.manager.setAccessEnforced(enforce);
}
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println("dxPart====" + dxPart);
return dxPart;
}
public static WTPart getPartByNumberAndView(String number, String viewStr, boolean accessControlled) throws WTException {
WTPart part = null;
try {
......@@ -139,18 +70,28 @@ public class PartUtil implements RemoteAccess, Serializable {
if (queryResult.hasMoreElements()) {
part = (WTPart) queryResult.nextElement();
}
if(part!=null){
System.out.println("--------Part info-----");
System.out.println("----partNumber-----"+part.getNumber());
System.out.println("----creatorName-----"+part.getCreatorName());
System.out.println("----------------------");
}
} finally {
SessionServerHelper.manager.setAccessEnforced(enforce);
}
}
} catch (RemoteException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
} catch (InvocationTargetException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
}
return part;
}
public static WTPart createPart(String number, String name, HashMap attributes, WTContainerRef containerRef) {
try {
if (!RemoteMethodServer.ServerFlag) {
......@@ -201,7 +142,7 @@ public class PartUtil implements RemoteAccess, Serializable {
part_source = Source.toSource(partSource);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
part_source = Source.MAKE;
}
......@@ -214,7 +155,7 @@ public class PartUtil implements RemoteAccess, Serializable {
part_assembly = PartType.toPartType(partAssembly);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
part_assembly = PartType.SEPARABLE;
}
......@@ -227,7 +168,7 @@ public class PartUtil implements RemoteAccess, Serializable {
part_view = ViewHelper.service.getView(partView);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
part_view = ViewHelper.service.getView("Design");
}
......@@ -279,7 +220,7 @@ public class PartUtil implements RemoteAccess, Serializable {
part = (WTPart) PersistenceHelper.manager.save(part);
part = (WTPart) PersistenceHelper.manager.refresh(part);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
......@@ -333,7 +274,7 @@ public class PartUtil implements RemoteAccess, Serializable {
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
SessionServerHelper.manager.setAccessEnforced(enforce);
......@@ -365,7 +306,7 @@ public class PartUtil implements RemoteAccess, Serializable {
/**
* 获取对象的OR oid
* 获取对象的类型
*/
public static TypeIdentifier getWTObjectSubType(WTObject obj) {
try {
......
package com.yonde.part.controller;
import com.yonde.part.service.impl.PartServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/part")
public class DxPartController {
@Autowired
PartServiceImpl partService;
@GetMapping(value = "/search")
public Object getPartByNumber(@RequestParam String number) throws Exception {
return partService.getPartByNumber(number);
}
}
package com.yonde.part.controller;
import com.yonde.part.service.impl.DemoService;
import com.yonde.part.service.PartService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/demo")
public class DemoController {
@GetMapping(value = "/part")
public void getPartByNumber(@RequestParam String number,@RequestParam String view) throws Exception {
DemoService.getPartByNumber(number,view);
@RequestMapping(value = "/part")
public class PartController {
@GetMapping
public Object getPartByNumber(@RequestParam String number, @RequestParam String view) throws Exception {
return PartService.getPartByNumber(number, view);
}
}
package com.yonde.part.service;
public interface PartService {
Object getPartByNumber(String number) throws Exception;
import com.yonde.common.DateTimeUtil;
import com.yonde.common.PartUtil;
import com.yonde.part.vo.DxPart;
import org.springframework.stereotype.Service;
import wt.fc.ObjectReference;
import wt.fc.Persistable;
import wt.fc.ReferenceFactory;
import wt.org.WTUser;
import wt.part.WTPart;
import wt.util.WTException;
import wt.vc.wip.WorkInProgressHelper;
import java.util.Locale;
@Service
public class PartService {
public static DxPart getPartByNumber(String number, String view) throws WTException {
boolean accessControlled = false;
DxPart dxPart = new DxPart();
WTPart wtPart = PartUtil.getPartByNumberAndView(number, view, accessControlled);
if (wtPart != null) {
WTUser creat = ((WTUser) wtPart.getCreator().getObject());
dxPart.setCreator(String.format("%s(%s)", creat.getFullName(), creat.getName()));
WTUser modify = ((WTUser) wtPart.getModifier().getObject());
dxPart.setModifier(String.format("%s(%s)", modify.getFullName(), modify.getName()));
System.out.println("-----getPartByNumber----1");
dxPart.setName(wtPart.getName());
dxPart.setNumber(wtPart.getNumber());
System.out.println("-----getPartByNumber----2");
dxPart.setEndItem(wtPart.isEndItem());
System.out.println("-----getPartByNumber----3");
dxPart.setLatest(wtPart.isLatestIteration());
System.out.println("-----getPartByNumber----4");
dxPart.setId(PartUtil.getWTObjectOid(wtPart));
System.out.println("-----getPartByNumber----5");
dxPart.setState(wtPart.getState().getState().getDisplay(Locale.CHINA));
dxPart.setSubTypeName(PartUtil.getWTObjectSubType(wtPart).getTypename());
dxPart.setDefaultUnit(wtPart.getDefaultUnit().getDisplay(Locale.CHINESE));
dxPart.setMasterId(new ReferenceFactory().getReferenceString(ObjectReference.newObjectReference((wtPart.getMaster().getPersistInfo().getObjectIdentifier()))));
//dxPart.setSubTypeDisplayName(wtPart.getDisplayIdentity().getDisplayType().getLocalizedMessage(Locale.CHINESE));
System.out.println("-----getPartByNumber----6");
//WTOrganization organization = wtPart.getOrganization();
System.out.println("-----getPartByNumber----7");
//String referenceString = new ReferenceFactory().getReferenceString(ObjectReference.newObjectReference((organization.getPersistInfo().getObjectIdentifier())));
System.out.println("-----getPartByNumber----8");
//dxPart.setOriginId(referenceString);
System.out.println("-----getPartByNumber----9");
dxPart.setCheckOuted(WorkInProgressHelper.isCheckedOut(wtPart));
System.out.println("-----getPartByNumber----10");
dxPart.setModifyTime(DateTimeUtil.timeStampToString(wtPart.getModifyTimestamp()));
System.out.println("-----getPartByNumber----11");
dxPart.setCreateTime(DateTimeUtil.timeStampToString(wtPart.getCreateTimestamp()));
System.out.println("-----getPartByNumber----12");
Persistable object = wtPart.getLocker().getObject();
if (object != null) {
WTUser locker = ((WTUser) object);
dxPart.setLockNote(wtPart.getLockNote());
dxPart.setLockDate(DateTimeUtil.timeStampToString(wtPart.getLockDate()));
dxPart.setLocker(String.format("%s(%s)", locker.getFullName(), locker.getName()));
}
dxPart.setVersion(wtPart.getVersionIdentifier().getValue());
dxPart.setIteration(wtPart.getIterationIdentifier().getValue());
//dxPart.setSubTypeDisplayName(TypedUtility.getTypeIdentifier(wtPart).getTypename());
}
return dxPart;
}
}
package com.yonde.part.service.impl;
import com.yonde.common.DemoUtil;
import com.yonde.common.PartUtil;
import org.springframework.stereotype.Service;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.part.WTPart;
import wt.util.WTException;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
@Service
public class DemoService {
public static void getPartByNumber(String number,String view) throws InvocationTargetException, RemoteException, WTException {
boolean accessControlled = false;
WTPart part = DemoUtil.getPartByNumberAndView(number,view,accessControlled);
System.out.println("--------2Part info2-----");
System.out.println("----partNumber2-----"+part.getNumber());
System.out.println("----creatorName2-----"+part.getCreatorName());
System.out.println("-----------2-----------");
}
}
package com.yonde.part.service.impl;
import com.yonde.common.PartUtil;
import com.yonde.part.service.PartService;
import org.springframework.stereotype.Service;
/**
* Created on 2022/12/15
*
* @author
*/
@Service
public class PartServiceImpl implements PartService {
@Override
public Object getPartByNumber(String number) throws Exception {
return PartUtil.getPartByNumber(number, false);
}
}
This diff is collapsed.
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