Commit 28ec9090 authored by shyWang's avatar shyWang

PDM前端改造

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