wangting
2024-12-25 9e18636bed4fc3fceec08ca25d6c7916d4d9a429
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java
@@ -1,18 +1,21 @@
package com.vci.web.other;
import com.vci.client.bof.ClientBusinessObject;
import com.vci.client.bof.ClientBusinessObjectOperation;
import com.vci.bo.FlowNoticeInfo;
import com.vci.corba.common.PLException;
import com.vci.web.annotation.FlowNotifyBefore;
import com.vci.web.annotation.FlowNotifyWeb;
import com.vci.web.bo.FlowNoticeInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.web.annotation.FlowNotifyBefore;
import com.vci.starter.web.annotation.FlowNotifyWeb;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Description: 流程终止时,恢复CodeAllCode状态
@@ -30,6 +33,10 @@
    @Autowired
    private WebBoServiceI boService;
    @Autowired
    private PlatformClientUtil platformClientUtil;
    @FlowNotifyBefore
    public void callBefore(FlowNoticeInfo noticeInfo) {
        try {
@@ -42,33 +49,33 @@
                    return;
                }
                String sql = "SELECT T_OID,T_BTWNAME FROM PLATFORMLT_INPUT WHERE F_OID = '" + wfOid + "'";
                ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
                List<com.vci.client.bof.ClientBusinessObject> queryResult = boService.queryBySql(sql, new HashMap<>());
                String sql = "SELECT T_OID,T_BTWNAME FROM PLT_INPUT WHERE F_OID = '" + wfOid + "'";
                List<BusinessObject> 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" +
                String btmName = ObjectTool.getBOAttributeValue(queryResult.get(0),"t_btwname");
                String oid = ObjectTool.getBOAttributeValue(queryResult.get(0),"t_oid");
                String querySql = "select cac.oid from PBT_CODEALLCODE cac\n" +
                        " left join PBT_" + btmName + " wp on cac.CREATECODEOID = wp.OID\n" +
                        " where wp.OID = '" + oid + "'";
                Map<String, String> conditionMap = new HashMap<>();
                conditionMap.put("oid", oid);
                List<com.vci.client.bof.ClientBusinessObject> codeResult = boService.queryCBO(btmName, conditionMap);
                List<BusinessObject> codeResult = boService.queryCBO(btmName, conditionMap);
                conditionMap.clear();
                conditionMap.put("createCodeOid", codeResult.get(0).getAttributeValue("oid"));
                List<com.vci.client.bof.ClientBusinessObject> allCodeList = boService.queryCBO("codeAllCode", conditionMap);
                conditionMap.put("createCodeOid", ObjectTool.getBOAttributeValue(queryResult.get(0),"oid"));
                List<BusinessObject> allCodeList = boService.queryCBO("codeAllCode", conditionMap);
                if (allCodeList.size() == 0) {
                    logger.info("没有找到编码");
                    return;
                }
                for (com.vci.client.bof.ClientBusinessObject codeAllCode : allCodeList) {
                    codeAllCode.setLcStatus("Editing");
                    codeAllCode.setAttributeValue("lcstatus", "Editing");
                for (BusinessObject codeAllCode : allCodeList) {
                    codeAllCode.lcStatus = "Editing";
                    ObjectTool.setBOAttributeValue(codeAllCode,"lcstatus", "Editing");
                }
                operation.batchUpdateBuinessObject(allCodeList.toArray(new ClientBusinessObject[0]));
                platformClientUtil.getBOFService().batchUpdateBusinessObject(allCodeList.toArray(new BusinessObject[0]));
                logger.info("编码生命周期恢复完成");
            }
        } catch (PLException e) {