package com.vci.web.other;
|
|
import com.vci.corba.common.VCIError;
|
import com.vci.starter.web.constant.QueryOptionConstant;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.web.annotation.FlowNotifyBefore;
|
import com.vci.web.annotation.FlowNotifyWeb;
|
import com.vci.web.bo.FlowNoticeInfo;
|
import com.vci.web.service.WebBoServiceI;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import plm.bs.bom.clientobject.ClientBusinessObject;
|
import plm.bs.bom.clientobject.ClientBusinessObjectOperation;
|
|
import java.util.*;
|
|
/**
|
* Description: 流程终止时,恢复CodeAllCode状态
|
*
|
* @author LiHang
|
* @date Created on 2022/5/6
|
*/
|
@FlowNotifyWeb
|
public class WorkFlowEndedNotice {
|
/**
|
* 当前类的日志输出
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
@Autowired
|
private WebBoServiceI boService;
|
|
@FlowNotifyBefore
|
public void callBefore(FlowNoticeInfo noticeInfo) {
|
try {
|
if ("end".equals(noticeInfo.getOutcome())) {
|
logger.info("当前是流程终止操作,开始恢复编码生命周期");
|
List<Map> finishItemList = noticeInfo.getFinishItemList();
|
String wfOid = String.valueOf(finishItemList.get(finishItemList.size() - 1).get("oid"));
|
if (StringUtils.isBlank(wfOid)) {
|
logger.info("没有找到流程主键");
|
return;
|
}
|
|
String sql = "SELECT T_OID,T_BTWNAME FROM PLATFORMLT_INPUT WHERE F_OID = '" + wfOid + "'";
|
ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
|
List<ClientBusinessObject> queryResult = boService.queryBySql(sql, new HashMap<>());
|
if (queryResult.size() == 0) {
|
logger.info("没有找到业务数据");
|
return;
|
}
|
String btmName = queryResult.get(0).getAttributeValue("t_btwname");
|
String oid = queryResult.get(0).getAttributeValue("t_oid");
|
String querySql = "select cac.oid from PLATFORMBTM_CODEALLCODE cac\n" +
|
" left join PLATFORMBTM_" + btmName + " wp on cac.CREATECODEOID = wp.OID\n" +
|
" where wp.OID = '" + oid + "'";
|
Map<String, String> conditionMap = new HashMap<>();
|
conditionMap.put("oid", oid);
|
List<ClientBusinessObject> codeResult = boService.queryCBO(btmName, conditionMap);
|
conditionMap.clear();
|
conditionMap.put("createCodeOid", codeResult.get(0).getAttributeValue("oid"));
|
List<ClientBusinessObject> allCodeList = boService.queryCBO("codeAllCode", conditionMap);
|
if (allCodeList.size() == 0) {
|
logger.info("没有找到编码");
|
return;
|
}
|
for (ClientBusinessObject codeAllCode : allCodeList) {
|
codeAllCode.setLcStatus("Editing");
|
codeAllCode.setAttributeValue("lcstatus", "Editing");
|
}
|
operation.batchUpdateBuinessObject(allCodeList.toArray(new ClientBusinessObject[0]));
|
logger.info("编码生命周期恢复完成");
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|