|
@@ -1,5 +1,9 @@
|
|
|
package com.factory.web.service.impl.pm;
|
|
|
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
+import java.io.ObjectInputStream;
|
|
|
+import java.io.ObjectOutputStream;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
@@ -9,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -18,33 +23,49 @@ import com.factory.base.entity.aggregates.ResponseBean;
|
|
|
import com.factory.base.entity.enumPo.PlanType;
|
|
|
import com.factory.base.entity.po.benteler.BentelerPlan;
|
|
|
import com.factory.base.util.res.ResponseBeanBuilder;
|
|
|
+import com.factory.web.entity.pm.OnsiteApprovalPlan;
|
|
|
+import com.factory.web.entity.pm.OnsiteApprovalTask;
|
|
|
import com.factory.web.entity.pm.OnsiteCalendar;
|
|
|
import com.factory.web.entity.pm.OnsiteItem;
|
|
|
+import com.factory.web.entity.pm.OnsiteItemResult;
|
|
|
+import com.factory.web.entity.pm.OnsitePlanHisBlob;
|
|
|
+import com.factory.web.entity.pm.OnsiteTask;
|
|
|
import com.factory.web.entity.pm.OnsiteTitleBlob;
|
|
|
import com.factory.web.entity.pm.OnsiteWorkshop;
|
|
|
+import com.factory.web.entity.pm.req.AddItemResultReq;
|
|
|
import com.factory.web.entity.pm.req.AddPmPlanReq;
|
|
|
import com.factory.web.entity.pm.req.EditPmPlanReq;
|
|
|
import com.factory.web.entity.pm.req.OnsiteCalendarReq;
|
|
|
import com.factory.web.entity.pm.req.OnsiteItemReq;
|
|
|
import com.factory.web.entity.pm.req.OnsiteWorkshopReq;
|
|
|
import com.factory.web.entity.pm.req.PmPlanPauseFlagReq;
|
|
|
+import com.factory.web.entity.pm.req.SearchApprovalUserReq;
|
|
|
import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
|
|
|
import com.factory.web.entity.pm.req.SearchPmPlanListForPadReq;
|
|
|
import com.factory.web.entity.pm.req.SearchPmPlanListReq;
|
|
|
import com.factory.web.entity.pm.req.SearchPmPlanReq;
|
|
|
+import com.factory.web.entity.pm.req.SearchTaskReq;
|
|
|
import com.factory.web.entity.pm.req.SearchWorkshopReq;
|
|
|
+import com.factory.web.entity.pm.res.ApprovalUserRes;
|
|
|
import com.factory.web.entity.pm.res.PmItemResultListRes;
|
|
|
import com.factory.web.entity.pm.res.PmPlanListForPadRes;
|
|
|
import com.factory.web.entity.pm.res.PmPlanListRes;
|
|
|
import com.factory.web.entity.pm.res.PmPlanRes;
|
|
|
+import com.factory.web.entity.pm.res.PmTaskListRes;
|
|
|
import com.factory.web.mapper.pm.PreventMistakeMapper;
|
|
|
import com.factory.web.service.BentelerPlanService;
|
|
|
+import com.factory.web.service.pm.OnsiteApprovalPlanService;
|
|
|
+import com.factory.web.service.pm.OnsiteApprovalTaskService;
|
|
|
import com.factory.web.service.pm.OnsiteCalendarService;
|
|
|
+import com.factory.web.service.pm.OnsiteItemResultService;
|
|
|
import com.factory.web.service.pm.OnsiteItemService;
|
|
|
+import com.factory.web.service.pm.OnsitePlanHisBlobService;
|
|
|
+import com.factory.web.service.pm.OnsiteTaskService;
|
|
|
import com.factory.web.service.pm.OnsiteTitleBlobService;
|
|
|
import com.factory.web.service.pm.OnsiteWorkshopService;
|
|
|
import com.factory.web.service.pm.PreventMistakeService;
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 防错计划
|
|
|
*
|
|
@@ -73,6 +94,21 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
@Autowired
|
|
|
private OnsiteItemService onsiteItemService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OnsiteItemResultService onsiteItemResultService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OnsiteTaskService onsiteTaskService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OnsiteApprovalTaskService onsiteApprovalTaskService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OnsiteApprovalPlanService onsiteApprovalPlanService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OnsitePlanHisBlobService onsitePlanHisBlobService;
|
|
|
+
|
|
|
/**
|
|
|
* 新建防错计划
|
|
|
*
|
|
@@ -148,6 +184,17 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
|
|
|
+ ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
|
|
|
+ /* 添加计划一级审批 */
|
|
|
+ OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
|
|
|
+ .bentelerPlanId(plan.getId())
|
|
|
+ .approvalLevel(1) // 1级审批
|
|
|
+ .approvalUserId(approvalUserRes.getUserId())
|
|
|
+ .status(0) // 0未审批
|
|
|
+ .build();
|
|
|
+ onsiteApprovalPlanService.save(onsiteApprovalPlan);
|
|
|
+
|
|
|
return ResponseBeanBuilder.ok();
|
|
|
}
|
|
|
|
|
@@ -195,16 +242,61 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
public ResponseBean<PageBean<PmPlanListRes>> getPmPlanList(SearchPmPlanListReq req) {
|
|
|
Page<PmPlanListRes> page = new Page<>(req.getPage(), req.getSize());
|
|
|
Page<PmPlanListRes> listResPage = preventMistakeMapper.getPmPlanList(page, req);
|
|
|
+
|
|
|
+ // TODO 测一下status值是都设置成功
|
|
|
+ SearchPmPlanReq searchPmPlanReq = null;
|
|
|
+ for (PmPlanListRes pmPlan : listResPage.getRecords()) {
|
|
|
+ searchPmPlanReq = new SearchPmPlanReq();
|
|
|
+ searchPmPlanReq.setBentelerPlanId(pmPlan.getBentelerPlanId());
|
|
|
+ List<PmTaskListRes> listRes = this.getTaskList(searchPmPlanReq);
|
|
|
+ int planStatus = 0; // 计划今天的状态,0未完成 1已完成 2待重检
|
|
|
+ int count0 = 0; // 任务的task.getStatus=0初始化
|
|
|
+ int count1 = 0; // 任务的task.getStatus=1待审核状态
|
|
|
+ int count2 = 0; // 任务的task.getStatus=2放行
|
|
|
+ int count3 = 0; // 任务的task.getStatus=3不放行
|
|
|
+ for (PmTaskListRes task : listRes) {
|
|
|
+ if (task.getStatus() == 0) {
|
|
|
+ count0++;
|
|
|
+ } else if (task.getStatus() == 1) {
|
|
|
+ count1++;
|
|
|
+ } else if (task.getStatus() == 2) {
|
|
|
+ count2++;
|
|
|
+ } else if (task.getStatus() == 3) {
|
|
|
+ count3++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count0 > 0 || count1 > 0) {
|
|
|
+ planStatus = 0; // 存在未完成的任务,计划状态0未完成
|
|
|
+ } else if (count2 == listRes.size()) {
|
|
|
+ planStatus = 1; // 所有任务都检查完毕,都放行,计划状态1已完成
|
|
|
+ } else if (count3 > 0) {
|
|
|
+ planStatus = 2; // 所有任务都检查完毕,存在不放行记录,计划状态2待重检
|
|
|
+ }
|
|
|
+
|
|
|
+ pmPlan.setPlanStatus(planStatus);
|
|
|
+ }
|
|
|
+
|
|
|
return ResponseBeanBuilder.ok(listResPage, Function.identity());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 取得防错计划当天任务信息
|
|
|
+ * @param req
|
|
|
+ * @return 防错计划当天任务信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<PmTaskListRes> getTaskList(SearchPmPlanReq req) {
|
|
|
+ List<PmTaskListRes> listRes = preventMistakeMapper.getTaskList(req);
|
|
|
+ return listRes;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 取得防错计划信息
|
|
|
* @param req
|
|
|
* @return 防错计划信息
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseBean<PmPlanRes> getPmPlan(SearchPmPlanReq req) {
|
|
|
+ public PmPlanRes getPmPlan(SearchPmPlanReq req) {
|
|
|
BentelerPlan plan = planService.getById(req.getBentelerPlanId());
|
|
|
PmPlanRes pmPlanRes = new PmPlanRes();
|
|
|
pmPlanRes.setBentelerPlanId(plan.getId());
|
|
@@ -215,6 +307,10 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
.eq(OnsiteCalendar::getBentelerPlanId, plan.getId()));
|
|
|
pmPlanRes.setOnsiteCalendarList(onsiteCalendarList);
|
|
|
|
|
|
+ OnsiteTitleBlob onsiteTitleBlob = onsiteTitleBlobService.getOne(new LambdaQueryWrapper<OnsiteTitleBlob>()
|
|
|
+ .eq(OnsiteTitleBlob::getBentelerPlanId, req.getBentelerPlanId()));
|
|
|
+ pmPlanRes.setTitleContent(new String(onsiteTitleBlob.getTitleContent(),StandardCharsets.UTF_8));
|
|
|
+
|
|
|
List<OnsiteWorkshop> onsiteWorkshopList = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
|
|
|
.eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
|
|
|
for (OnsiteWorkshop onsiteWorkshop : onsiteWorkshopList) {
|
|
@@ -224,7 +320,7 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
}
|
|
|
pmPlanRes.setOnsiteWorkshopList(onsiteWorkshopList);
|
|
|
|
|
|
- return ResponseBeanBuilder.ok(pmPlanRes);
|
|
|
+ return pmPlanRes;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -270,6 +366,21 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
return ResponseBeanBuilder.fail("计划名称已存在");
|
|
|
}
|
|
|
|
|
|
+ /* 将之前的plan所有信息和审批记录记到his中 */
|
|
|
+ SearchPmPlanReq searchPmPlanReq = new SearchPmPlanReq();
|
|
|
+ searchPmPlanReq.setBentelerPlanId(req.getBentelerPlanId());
|
|
|
+ PmPlanRes pmPlanRes = this.getPmPlan(searchPmPlanReq);
|
|
|
+ try {
|
|
|
+ OnsitePlanHisBlob onsitePlanHisBlob = OnsitePlanHisBlob.builder()
|
|
|
+ .bentelerPlanId(req.getBentelerPlanId())
|
|
|
+ .hisContent(this.objectToByteArray(pmPlanRes))
|
|
|
+ .build();
|
|
|
+ onsitePlanHisBlobService.save(onsitePlanHisBlob);
|
|
|
+ } catch (Exception e) {
|
|
|
+ // TODO Auto-generated catch block
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
/* 修改放错计划 */
|
|
|
// TODO 计划生效日期
|
|
|
BentelerPlan plan = BentelerPlan.builder()
|
|
@@ -347,14 +458,53 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /* 删除之前的审批记录 */
|
|
|
+ onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
|
|
|
+ .in(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
|
|
|
+ /* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
|
|
|
+ ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
|
|
|
+ /* 添加计划一级审批 */
|
|
|
+ OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
|
|
|
+ .bentelerPlanId(plan.getId())
|
|
|
+ .approvalLevel(1) // 1级审批
|
|
|
+ .approvalUserId(approvalUserRes.getUserId())
|
|
|
+ .status(0) // 0未审批
|
|
|
+ .build();
|
|
|
+ onsiteApprovalPlanService.save(onsiteApprovalPlan);
|
|
|
+
|
|
|
return ResponseBeanBuilder.ok();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 取得计划审批信息
|
|
|
+ * @param req
|
|
|
+ * @return 计划审批信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(SearchPmPlanReq req) {
|
|
|
+ List<OnsiteApprovalPlan> onsiteApprovalPlanList = onsiteApprovalPlanService.list(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
|
|
|
+ .eq(OnsiteApprovalPlan::getBentelerPlanId, req.getBentelerPlanId()));
|
|
|
+ return ResponseBeanBuilder.ok(onsiteApprovalPlanList, Function.identity());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得每频次检查信息
|
|
|
+ * @param req
|
|
|
+ * @return 每频次检查信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<List<OnsiteCalendar>> getCalendarList(SearchPmPlanReq req) {
|
|
|
+ List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarService.list(Wrappers.<OnsiteCalendar>lambdaQuery()
|
|
|
+ .eq(OnsiteCalendar::getBentelerPlanId, req.getBentelerPlanId()));
|
|
|
+ return ResponseBeanBuilder.ok(onsiteCalendarList, Function.identity());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 取得检查记录列表
|
|
|
* @param req
|
|
|
* @return 检查记录列表
|
|
|
*/
|
|
|
+ @Override
|
|
|
public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(SearchPmItemResultListReq req) {
|
|
|
List<PmItemResultListRes> listRes = preventMistakeMapper.getPmItemResultList(req);
|
|
|
return ResponseBeanBuilder.ok(listRes, Function.identity());
|
|
@@ -365,16 +515,30 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
* @param req
|
|
|
* @return Pad端防错计划列表
|
|
|
*/
|
|
|
+ @Override
|
|
|
public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(SearchPmPlanListForPadReq req) {
|
|
|
List<PmPlanListForPadRes> listRes = preventMistakeMapper.getPmPlanListForPad(req);
|
|
|
return ResponseBeanBuilder.ok(listRes, Function.identity());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 取得表头信息
|
|
|
+ * @param req
|
|
|
+ * @return 表头信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<OnsiteTitleBlob> getTitle(SearchPmPlanReq req) {
|
|
|
+ OnsiteTitleBlob onsiteTitleBlob = onsiteTitleBlobService.getOne(new LambdaQueryWrapper<OnsiteTitleBlob>()
|
|
|
+ .eq(OnsiteTitleBlob::getBentelerPlanId, req.getBentelerPlanId()));
|
|
|
+ return ResponseBeanBuilder.ok(onsiteTitleBlob);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 取得工作站列表
|
|
|
* @param req
|
|
|
* @return 工作站列表
|
|
|
*/
|
|
|
+ @Override
|
|
|
public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(SearchPmPlanReq req) {
|
|
|
List<OnsiteWorkshop> onsiteWorkshopList = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
|
|
|
.eq(OnsiteWorkshop::getBentelerPlanId, req.getBentelerPlanId()));
|
|
@@ -386,10 +550,131 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
|
|
|
* @param req
|
|
|
* @return 巡检项目列表
|
|
|
*/
|
|
|
+ @Override
|
|
|
public ResponseBean<List<OnsiteItem>> getItemList(SearchWorkshopReq req) {
|
|
|
List<OnsiteItem> onsiteItemList = onsiteItemService.list(Wrappers.<OnsiteItem>lambdaQuery()
|
|
|
.eq(OnsiteItem::getWorkshopId, req.getWorkshopId()));
|
|
|
return ResponseBeanBuilder.ok(onsiteItemList, Function.identity());
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加巡检项目检查结果
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean addItemResult(AddItemResultReq req) {
|
|
|
+ OnsiteItemResult onsiteItemResult = OnsiteItemResult.builder()
|
|
|
+ .onsiteTaskId(req.getOnsiteTaskId())
|
|
|
+ .onsiteItemId(req.getOnsiteItemId())
|
|
|
+ .result(req.getResult())
|
|
|
+ .build();
|
|
|
+ onsiteItemResultService.save(onsiteItemResult);
|
|
|
+ return ResponseBeanBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务提交
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean submitTask(SearchTaskReq req) {
|
|
|
+ /* 取得task下的所有条目检查结果 */
|
|
|
+ List<OnsiteItemResult> onsiteItemResultList = onsiteItemResultService.list(Wrappers.<OnsiteItemResult>lambdaQuery()
|
|
|
+ .eq(OnsiteItemResult::getOnsiteTaskId, req.getOnsiteTaskId()));
|
|
|
+ boolean flag = true; // true表示巡检项目都通过,false表示巡检项目有不通过的
|
|
|
+ for (OnsiteItemResult onsiteItemResult : onsiteItemResultList) {
|
|
|
+ if (onsiteItemResult.getResult() == 1) {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (flag) { // 巡检项目都通过
|
|
|
+ OnsiteTask onsiteTask = OnsiteTask.builder()
|
|
|
+ .id(req.getOnsiteTaskId())
|
|
|
+ .status(2)
|
|
|
+ .build();
|
|
|
+ onsiteTaskService.updateById(onsiteTask);
|
|
|
+ } else { // 巡检项目有不通过的
|
|
|
+ /* 更新任务为1待审核状态。等待后续审核 */
|
|
|
+ OnsiteTask onsiteTask = OnsiteTask.builder()
|
|
|
+ .id(req.getOnsiteTaskId())
|
|
|
+ .status(1)
|
|
|
+ .build();
|
|
|
+ onsiteTaskService.updateById(onsiteTask);
|
|
|
+
|
|
|
+ /* 取得审批人 approvalLevel=1级审批 type=3防错任务审批 */
|
|
|
+ ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 3);
|
|
|
+ if (approvalUserRes != null) {
|
|
|
+ /* 添加任务一级审批 */
|
|
|
+ OnsiteApprovalTask onsiteApprovalTask = OnsiteApprovalTask.builder()
|
|
|
+ .onsiteTaskId(onsiteTask.getId())
|
|
|
+ .approvalLevel(1) // 1级审批
|
|
|
+ .approvalUserId(approvalUserRes.getUserId())
|
|
|
+ .status(0) // 0初始化
|
|
|
+ .build();
|
|
|
+ onsiteApprovalTaskService.save(onsiteApprovalTask);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ResponseBeanBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得审批人
|
|
|
+ * @param req
|
|
|
+ * @return 审批人
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<ApprovalUserRes> getApprovalUser(SearchApprovalUserReq req) {
|
|
|
+ ApprovalUserRes approvalUserRes = preventMistakeMapper.getApprovalUser(req);
|
|
|
+ return ResponseBeanBuilder.ok(approvalUserRes);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得审批人
|
|
|
+ * @param approvalLevel 1是1级审批 2是2级审批
|
|
|
+ * @param type 1计划审批 2首件任务审批 3防错任务审批
|
|
|
+ * @return 审批人
|
|
|
+ */
|
|
|
+ private ApprovalUserRes getApprovalUserInfo(int approvalLevel, int type) {
|
|
|
+ SearchApprovalUserReq searchApprovalUserReq = new SearchApprovalUserReq();
|
|
|
+ searchApprovalUserReq.setApprovalLevel(approvalLevel); // 审批级别
|
|
|
+ searchApprovalUserReq.setType(type); // 审批规则类型
|
|
|
+ ApprovalUserRes approvalUserRes = preventMistakeMapper.getApprovalUser(searchApprovalUserReq);
|
|
|
+ return approvalUserRes;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Object转成byte[]
|
|
|
+ * @param obj
|
|
|
+ * @return byte[]
|
|
|
+ */
|
|
|
+ private byte[] objectToByteArray(Object obj) throws Exception {
|
|
|
+ byte[] bytes = null;
|
|
|
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
|
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
|
|
|
+ oos.writeObject(obj);
|
|
|
+ oos.close();
|
|
|
+ bytes = baos.toByteArray();
|
|
|
+ baos.close();
|
|
|
+ return bytes;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * byte[]转成Object
|
|
|
+ * @param byte[]
|
|
|
+ * @return Object
|
|
|
+ */
|
|
|
+ private Object byteArrayToObject(byte[] buffer) throws Exception {
|
|
|
+ Object ob = null;
|
|
|
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
|
|
|
+ ob = ois.readObject();
|
|
|
+ ois.close();
|
|
|
+ return ob;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|