Commit 28ec9090 authored by shyWang's avatar shyWang

PDM前端改造

转试图问题处理,分页
parent de1008db
......@@ -43,6 +43,7 @@ import wt.pom.Transaction;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.query.WhereExpression;
import wt.session.SessionContext;
import wt.session.SessionHelper;
import wt.session.SessionServerHelper;
import wt.type.ClientTypedUtility;
......@@ -787,5 +788,25 @@ public class CommonUtil implements RemoteAccess {
}
}
/**
* 初始化上下文
* @param userName
* @throws Exception
*/
public static void initSessionContext(String userName) throws Exception {
SessionContext previous = SessionContext.getContext();
if (ObjectsUtil.isNull(previous)) {
previous = SessionContext.newContext();
previous.register();
}
SessionHelper.manager.setAdministrator();
log.error("login userName====" + userName);
WTUser user = WTUserUtil.getUser(userName);
log.error("login user=====" + user);
if (ObjectsUtil.nonNull(user)) {
SessionHelper.manager.setPrincipal(user.getName());
}
}
}
......@@ -200,11 +200,11 @@ public class DxPartUtil implements RemoteAccess, Serializable {
}
public static WTPart createPart(DxPartVO dxPartVO) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
/* if (!RemoteMethodServer.ServerFlag) {
return (WTPart) RemoteMethodServer.getDefault().invoke("createPart", DxPartUtil.class.getName(), null,
new Class[]{DxPartVO.class},
new Object[]{dxPartVO});
}
}*/
WTPart part = null;
String partSource = "";
String partAssembly = "";
......
......@@ -28,6 +28,7 @@ import wt.vc.Iterated;
import wt.vc.views.View;
import wt.vc.views.ViewHelper;
import wt.vc.wip.WorkInProgressHelper;
import wt.vc.wip.WorkInProgressState;
import java.io.Serializable;
import java.sql.Timestamp;
......@@ -78,6 +79,7 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
new Class[] { SearchQueryCondition.class},
new Object[] { searchQueryCondition});
}
CommonUtil.initSessionContext(null);
boolean enforce = SessionServerHelper.manager.setAccessEnforced(false);
List partList;
List<String> indices = searchQueryCondition.getIndices();
......@@ -96,8 +98,24 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
}*/
QuerySpec querySpec = DxSearchUtil.buildQuerySpec(searchItems, cls);
/* LatestConfigSpec ls = new LatestConfigSpec();
querySpec = ls.appendSearchCriteria(querySpec);*/
// Case 1:检入状态
if (querySpec.getConditionCount() > 0) {
querySpec.appendAnd();
}
querySpec.appendWhere(
WorkInProgressHelper.getSearchCondition(
cls, WorkInProgressState.CHECKED_IN, true),
new int[]{0});
if (CollectionUtils.isNotEmpty(indices)) {
if (querySpec.getConditionCount() > 0) {
querySpec.appendAnd();
}
SearchCondition condition = new SearchCondition(cls, WTAttributeNameIfc.LATEST_ITERATION,
SearchCondition.IS_TRUE);
querySpec.appendWhere(condition, new int[]{0});
}
//创建时间排序
querySpec.appendOrderBy(cls, "thePersistInfo.createStamp", true);
BasicPageableQuerySpec bpqs = new BasicPageableQuerySpec();
bpqs.setPrimaryStatement(querySpec);
logger.error("pageFrom====" + (searchQueryCondition.getPageFrom()-1)*searchQueryCondition.getPageSize());
......@@ -105,10 +123,10 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
bpqs.setOffset((searchQueryCondition.getPageFrom()-1)*searchQueryCondition.getPageSize());
bpqs.setRange(searchQueryCondition.getPageSize());
bpqs.setBackgroundThreadEnabled(false);
QueryResult qr = PersistenceHelper.manager.find(querySpec);
QueryResult qr = PersistenceHelper.manager.find(bpqs);
//LatestConfigSpec lcs = new LatestConfigSpec();
//qr = lcs.process(qr);
logger.error("ResultSize====" + qr.size());
partList = new ArrayList();
while (qr.hasMoreElements()) {
Object element = qr.nextElement();
......@@ -125,6 +143,8 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
} finally {
SessionServerHelper.manager.setAccessEnforced(enforce);
}
logger.error("IdVOList=====" + partList.size());
return partList;
}
......
......@@ -786,6 +786,9 @@ public class IBAUtil {
*/
public static IBAHolder forceSetIBAValues(IBAHolder ibaHolder, Map ibaValues)
throws WTException {
if (ObjectsUtil.isNull(ibaValues)) {
return ibaHolder;
}
Hashtable<Object, Object> table = new Hashtable<Object, Object>();
table.putAll(ibaValues);
return forceSetIBAValues(ibaHolder, table);
......
......@@ -3,12 +3,17 @@ package com.yonde.doc.controller;
import com.alibaba.fastjson.JSON;
import com.yonde.basedata.controller.AbstractBaseController;
import com.yonde.basedata.entity.api.ApiResult;
import com.yonde.common.CommonUtil;
import com.yonde.doc.service.DxDocService;
import com.yonde.doc.vo.DxDocumentVO;
import com.yonde.part.vo.DxPartVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import wt.session.SessionContext;
import wt.session.SessionHelper;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@RestController
......@@ -20,7 +25,7 @@ public class DxDocController extends AbstractBaseController {
@GetMapping({"/version/getWorkingCopy/{id}"})
//@ApiOperation("获取工作副本")
public DxDocumentVO getWorkingCopy(@PathVariable Long id) {
public DxDocumentVO getWorkingCopy(@PathVariable Long id, HttpServletRequest request) {
DxDocumentVO dxDocumentVO = null;
try {
dxDocumentVO = DxDocService.getDxDocWorkingCopy(id);
......@@ -45,11 +50,13 @@ public class DxDocController extends AbstractBaseController {
}
@PostMapping({"/version/{id}/checkout"})
@ResponseBody
//@ApiOperation("获取工作副本")
public DxDocumentVO checkout(@PathVariable Long id) {
public DxDocumentVO checkout(@PathVariable Long id, HttpServletRequest request) {
DxDocumentVO dxDocumentVO = null;
try {
dxDocumentVO = DxDocService.checkout(id, "Dex检出");
String portUserName = request.getHeader("portUserName");
dxDocumentVO = DxDocService.checkout(id, "Dex检出", portUserName);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -73,11 +80,12 @@ public class DxDocController extends AbstractBaseController {
@PostMapping({"/version/{id}/checkin"})
//@ApiOperation("获取工作副本")
public DxDocumentVO checkin(@PathVariable Long id, @RequestBody String node) {
public DxDocumentVO checkin(@PathVariable Long id, @RequestBody String node, HttpServletRequest request) {
System.out.println("check in====" + node);
DxDocumentVO DxDocumentVO = null;
try {
DxDocumentVO = DxDocService.checkin(id, node);
String portUserName = request.getHeader("portUserName");
DxDocumentVO = DxDocService.checkin(id, node, portUserName);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -86,12 +94,13 @@ public class DxDocController extends AbstractBaseController {
//@ApiOperation("深度保存对象")
@PostMapping({"recursion"})
public ApiResult recursionObj(@RequestBody Map entity) {
public ApiResult recursionObj(@RequestBody Map entity, HttpServletRequest request) {
//return ApiResult.ok(this.getService().saveRecursion(entity));
try {
String jsonString = JSON.toJSONString(entity);
DxDocumentVO entityVO = JSON.parseObject(jsonString, DxDocumentVO.class);
entityVO = DxDocService.createDxDoc(entityVO);
String portUserName = request.getHeader("portUserName");
entityVO = DxDocService.createDxDoc(entityVO, portUserName);
return ApiResult.ok(entityVO);
} catch (Exception e) {
e.printStackTrace();
......
......@@ -92,21 +92,22 @@ public class DxDocService implements RemoteAccess {
* @return
* @throws Exception
*/
public static DxDocumentVO checkin(Long id, String checkOutNote) throws Exception {
public static DxDocumentVO checkin(Long id, String checkOutNote, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxDocumentVO) RemoteMethodServer.getDefault().invoke("checkin", DxDocService.class.getName(), null,
new Class[] { Long.class, String.class},
new Object[] { id, checkOutNote});
new Class[] { Long.class, String.class, String.class},
new Object[] { id, checkOutNote, userName});
}
SessionContext previous = SessionContext.newContext();
//SessionContext previous = SessionContext.newContext();
DxDocumentVO dxDocumentVO = null;
try {
SessionHelper.manager.setAdministrator();
//SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
WTDocument docById = DxDocUtil.getDocById(id);
WTDocument checkIn = (WTDocument) DxCommonUtils.checkin(docById, checkOutNote);
dxDocumentVO = new DxDocumentVO(checkIn);
} finally {
SessionContext.setContext(previous);
//SessionContext.setContext(previous);
}
return dxDocumentVO;
......@@ -119,16 +120,17 @@ public class DxDocService implements RemoteAccess {
* @return
* @throws Exception
*/
public static DxDocumentVO checkout(Long id, String checkOutNote) throws Exception {
public static DxDocumentVO checkout(Long id, String checkOutNote, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxDocumentVO) RemoteMethodServer.getDefault().invoke("checkout", DxDocService.class.getName(), null,
new Class[] { Long.class, String.class},
new Object[] { id, checkOutNote});
new Class[] { Long.class, String.class, String.class},
new Object[] { id, checkOutNote, userName});
}
SessionContext previous = SessionContext.newContext();
//SessionContext previous = SessionContext.newContext();
DxDocumentVO dxDocumentVO = null;
try {
SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
//SessionHelper.manager.setAdministrator();
WTDocument docById = DxDocUtil.getDocById(id);
WTDocument checkout = (WTDocument) DxCommonUtils.checkout(docById, checkOutNote);
dxDocumentVO = new DxDocumentVO(checkout);
......@@ -136,7 +138,7 @@ public class DxDocService implements RemoteAccess {
dxDocumentVO.setLockerVO(docById);
}
} finally {
SessionContext.setContext(previous);
//SessionContext.setContext(previous);
}
return dxDocumentVO;
}
......@@ -167,20 +169,21 @@ public class DxDocService implements RemoteAccess {
return dxdocVO;
}
public static DxDocumentVO createDxDoc(DxDocumentVO dxDocumentVO) throws Exception {
public static DxDocumentVO createDxDoc(DxDocumentVO dxDocumentVO, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxDocumentVO) RemoteMethodServer.getDefault().invoke("createDxDoc", DxDocService.class.getName(), null,
new Class[] { DxDocumentVO.class},
new Object[] { dxDocumentVO });
new Class[] { DxDocumentVO.class, String.class},
new Object[] { dxDocumentVO, userName});
}
SessionContext previous = SessionContext.newContext();
//SessionContext previous = SessionContext.newContext();
try {
SessionHelper.manager.setAdministrator();
//SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
logger.error("createDxDoc====" + dxDocumentVO);
WTDocument doc = DxDocUtil.createDoc(dxDocumentVO);
dxDocumentVO = new DxDocumentVO(doc);
} finally {
SessionContext.setContext(previous);
//SessionContext.setContext(previous);
}
return dxDocumentVO;
}
......
......@@ -47,6 +47,7 @@ public class PdmPartBean implements Serializable, Cloneable {
}
public PdmPartBean(WTPartUsageLink usageLink) throws WTException, RemoteException, InvocationTargetException {
WTPart parent = (WTPart)usageLink.getUsedBy();
this.parentNumber = parent.getNumber();
Quantity qt = usageLink.getQuantity();
this.setAmount(qt.getAmount());
this.setUnit(qt.getUnit().toString());
......
......@@ -12,6 +12,7 @@ import com.yonde.part.vo.BOMQueryVO;
import com.yonde.part.vo.DxPartVO;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -54,10 +55,11 @@ public class DxPartController extends AbstractBaseController {
@PostMapping({"/version/{id}/checkout"})
//@ApiOperation("获取工作副本")
public DxPartVO checkout(@PathVariable Long id) {
public DxPartVO checkout(@PathVariable Long id, HttpServletRequest request) {
DxPartVO dxPartVO = null;
try {
dxPartVO = DxPartService.checkout(id, "Dex检出");
String portUserName = request.getHeader("portUserName");
dxPartVO = DxPartService.checkout(id, "Dex检出", portUserName);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -81,11 +83,12 @@ public class DxPartController extends AbstractBaseController {
@PostMapping({"/version/{id}/checkin"})
//@ApiOperation("获取工作副本")
public DxPartVO checkin(@PathVariable Long id, @RequestBody String node) {
public DxPartVO checkin(@PathVariable Long id, @RequestBody String node, HttpServletRequest request) {
System.out.println("check in====" + node);
DxPartVO dxPartVO = null;
try {
dxPartVO = DxPartService.checkin(id, node);
String portUserName = request.getHeader("portUserName");
dxPartVO = DxPartService.checkin(id, node, portUserName);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -149,16 +152,17 @@ public class DxPartController extends AbstractBaseController {
//@ApiOperation("深度保存对象")
@PostMapping({"recursion"})
public ApiResult recursionObj(@RequestBody Map entity) {
public ApiResult recursionObj(@RequestBody Map entity, HttpServletRequest request) {
DxPartVO part = null;
try {
String jsonString = JSON.toJSONString(entity);
DxPartVO entityVO = JSON.parseObject(jsonString, DxPartVO.class);
String portUserName = request.getHeader("portUserName");
if (ObjectsUtil.nonNull(entityVO.getOperator()) && entityVO.getOperator().equals("NO_CHANGE")) {
//更新link
part = DxPartService.updateDxPartUsageLink(entityVO);
} else {
part = DxPartService.createDxPart(entityVO);
part = DxPartService.createDxPart(entityVO, portUserName);
}
return ApiResult.ok(part);
} catch (Exception e) {
......@@ -186,12 +190,13 @@ public class DxPartController extends AbstractBaseController {
@PostMapping({"/version/{id}/convertView"})
//@ApiOperation("转视图")
public ApiResult convertView(@PathVariable Long id) {
public ApiResult convertView(@PathVariable Long id, HttpServletRequest request) {
try {
DxPartService.convertViewAll(id);
String portUserName = request.getHeader("portUserName");
DxPartService.convertViewAll(id, portUserName);
} catch (Exception e) {
e.printStackTrace();
return ApiResult.error("501", "视图转换失败:请先检入BOM数据!", new DxBusinessException("501", e.getLocalizedMessage()));
return ApiResult.error("501", e.getLocalizedMessage(), new DxBusinessException("501", e.getLocalizedMessage()));
}
return ApiResult.ok("转视图成功");
}
......
......@@ -8,6 +8,7 @@ import com.yonde.part.vo.DxPartVO;
import com.yonde.part.vo.DxUsageLinkVO;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -19,12 +20,13 @@ public class DxUsageLinkController extends AbstractBaseController {
//@ApiOperation("深度保存对象")
@PostMapping({"recursion"})
public ApiResult recursionObj(@RequestBody Map entity) {
public ApiResult recursionObj(@RequestBody Map entity, HttpServletRequest request) {
//return ApiResult.ok(this.getService().saveRecursion(entity));
try {
String portUserName = request.getHeader("portUserName");
String jsonString = JSON.toJSONString(entity);
DxUsageLinkVO entityVO = JSON.parseObject(jsonString, DxUsageLinkVO.class);
entityVO = DxPartService.createDxPartUsageLink(entityVO);
entityVO = DxPartService.createDxPartUsageLink(entityVO, portUserName);
return ApiResult.ok(entityVO);
} catch (Exception e) {
e.printStackTrace();
......@@ -41,7 +43,7 @@ public class DxUsageLinkController extends AbstractBaseController {
List<DxUsageLinkVO> entityVOList = JSON.parseArray(jsonString, DxUsageLinkVO.class);
List<DxUsageLinkVO> resultList = new ArrayList<DxUsageLinkVO>();
for (DxUsageLinkVO o : entityVOList) {
DxUsageLinkVO entityVO = DxPartService.createDxPartUsageLink(o);
DxUsageLinkVO entityVO = DxPartService.createDxPartUsageLink(o, null);
resultList.add(entityVO);
}
return ApiResult.ok(resultList);
......
......@@ -20,6 +20,7 @@ import wt.method.RemoteMethodServer;
import wt.part.*;
import wt.session.SessionContext;
import wt.session.SessionHelper;
import wt.session.SessionServerHelper;
import wt.util.WTException;
import wt.vc.views.ViewHelper;
import wt.vc.wip.WorkInProgressHelper;
......@@ -105,21 +106,19 @@ public class DxPartService implements RemoteAccess, Serializable {
* @return
* @throws Exception
*/
public static DxPartVO checkin(Long id, String checkOutNote) throws Exception {
public static DxPartVO checkin(Long id, String checkOutNote, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxPartVO) RemoteMethodServer.getDefault().invoke("checkin", DxPartService.class.getName(), null,
new Class[] { Long.class, String.class},
new Object[] { id, checkOutNote});
new Class[] { Long.class, String.class, String.class},
new Object[] { id, checkOutNote, userName});
}
SessionContext previous = SessionContext.newContext();
DxPartVO dxPartVO = null;
try {
SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
WTPart partById = DxPartUtil.getPartById(id);
WTPart checkIn = (WTPart) DxCommonUtils.checkin(partById, checkOutNote);
dxPartVO = new DxPartVO(checkIn);
} finally {
SessionContext.setContext(previous);
}
return dxPartVO;
......@@ -132,16 +131,15 @@ public class DxPartService implements RemoteAccess, Serializable {
* @return
* @throws Exception
*/
public static DxPartVO checkout(Long id, String checkOutNote) throws Exception {
public static DxPartVO checkout(Long id, String checkOutNote, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxPartVO) RemoteMethodServer.getDefault().invoke("checkout", DxPartService.class.getName(), null,
new Class[] { Long.class, String.class},
new Object[] { id, checkOutNote});
new Class[] { Long.class, String.class, String.class},
new Object[] { id, checkOutNote, userName});
}
SessionContext previous = SessionContext.newContext();
DxPartVO dxPartVO = null;
try {
SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
WTPart partById = DxPartUtil.getPartById(id);
WTPart checkout = (WTPart) DxCommonUtils.checkout(partById, checkOutNote);
dxPartVO = new DxPartVO(checkout);
......@@ -149,7 +147,6 @@ public class DxPartService implements RemoteAccess, Serializable {
dxPartVO.setLockerVO(partById);
}
} finally {
SessionContext.setContext(previous);
}
return dxPartVO;
}
......@@ -287,19 +284,20 @@ public class DxPartService implements RemoteAccess, Serializable {
return nextVersion;
}
public static DxPartVO createDxPart(DxPartVO dxPartVO) throws Exception {
public static DxPartVO createDxPart(DxPartVO dxPartVO, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxPartVO) RemoteMethodServer.getDefault().invoke("createDxPart", DxPartService.class.getName(), null,
new Class[] { DxPartVO.class},
new Object[] { dxPartVO });
new Class[] { DxPartVO.class, String.class},
new Object[] { dxPartVO, userName});
}
SessionContext previous = SessionContext.newContext();
//SessionContext previous = SessionContext.newContext();
try {
SessionHelper.manager.setAdministrator();
//SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
WTPart part = DxPartUtil.createPart(dxPartVO);
dxPartVO = new DxPartVO(part);
} finally {
SessionContext.setContext(previous);
//SessionContext.setContext(previous);
}
return dxPartVO;
}
......@@ -310,20 +308,21 @@ public class DxPartService implements RemoteAccess, Serializable {
* @return
* @throws Exception
*/
public static DxUsageLinkVO createDxPartUsageLink(DxUsageLinkVO dxPartVO) throws Exception {
public static DxUsageLinkVO createDxPartUsageLink(DxUsageLinkVO dxPartVO, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
return (DxUsageLinkVO) RemoteMethodServer.getDefault().invoke("createDxPartUsageLink", DxPartService.class.getName(), null,
new Class[] { DxUsageLinkVO.class},
new Object[] { dxPartVO });
new Class[] { DxUsageLinkVO.class, String.class},
new Object[] { dxPartVO, userName});
}
SessionContext previous = SessionContext.newContext();
boolean enforced = true;
try {
SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
enforced = SessionServerHelper.manager.setAccessEnforced(false);
WTPartUsageLink partLink = DxPartUtil.saveWTPartUsageLink(dxPartVO);
System.out.println("partLink====" + partLink);
dxPartVO = new DxUsageLinkVO(partLink, -1);// 父-子
} finally {
SessionContext.setContext(previous);
SessionServerHelper.manager.setAccessEnforced(enforced);
}
return dxPartVO;
}
......@@ -545,15 +544,17 @@ public class DxPartService implements RemoteAccess, Serializable {
* @return
* @throws Exception
*/
public static void convertViewAll(Long id) throws Exception {
public static void convertViewAll(Long id, String userName) throws Exception {
if (!RemoteMethodServer.ServerFlag) {
RemoteMethodServer.getDefault().invoke("convertViewAll", DxPartService.class.getName(), null,
new Class[] { Long.class},
new Object[] { id});
new Class[] { Long.class, String.class},
new Object[] { id, userName});
return;
}
SessionContext previous = SessionContext.newContext();
//SessionContext previous = SessionContext.newContext();
try {
SessionHelper.manager.setAdministrator();
//SessionHelper.manager.setAdministrator();
CommonUtil.initSessionContext(userName);
WTPart partById = DxPartUtil.getPartById(id);
String viewName = partById.getViewName();
if(!viewName.equalsIgnoreCase("Planning")){
......@@ -586,7 +587,7 @@ public class DxPartService implements RemoteAccess, Serializable {
}
} finally {
SessionContext.setContext(previous);
//SessionContext.setContext(previous);
}
}
......
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