ecology_maven/weaver/aiyh_pcn/fadada/FaDDContractAction.java

141 lines
4.2 KiB
Java

package weaver.aiyh_pcn.fadada;
import aiyh.utils.Util;
import aiyh.utils.zwl.common.ToolUtil;
import com.api.aiyh_pcn.fadada.dao.FaDDContractMapping;
import com.api.aiyh_pcn.fadada.entity.FaDaDaConfigDTO;
import org.h2.util.StringUtils;
import weaver.aiyh_pcn.fadada.util.FaddContractUtil;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import weaver.systeminfo.SystemEnv;
import java.util.List;
import java.util.Map;
/**
* @author EBU7-dev1-ayh
* @create 2021/11/3 0003 15:20
*/
public class FaDDContractAction extends ToolUtil implements Action {
private final FaDDContractMapping faDDContractMapping = new FaDDContractMapping();
private final ToolUtil toolUtil = new ToolUtil();
// 合同字段
private String contractField;
// 客户编号字段
private String customerNoField;
// 客户编号
private String customerNo;
// 是否是顺序签订
private String queueSigned;
// 签订字段
private String signedField;
// 签订值
private String signedValue;
@Override
public String execute(RequestInfo requestInfo) {
// 获取user
User user = requestInfo.getRequestManager().getUser();
// 获取流程id
String workflowId = requestInfo.getWorkflowid();
// 获取请求id
String requestId = requestInfo.getRequestid();
// 获取主表名称
String mainTableName = requestInfo.getRequestManager().getBillTableName();
// 获取法大大配置信息
FaDaDaConfigDTO faDaDaConfigDTO = faDDContractMapping.queryConfig(workflowId, 2);
// 获取明细数据在那个表
String tableName = faDaDaConfigDTO.getCheckSource();
// 查询主表信息
Map<String, Object> mainMap = faDDContractMapping.queryMainMap(requestId, mainTableName);
// 判断主表中的电子签章类型
String value = Util.null2String(mainMap.get(signedField));
if (StringUtils.isNullOrEmpty(value)) {
value = String.valueOf(System.currentTimeMillis());
}
// 如果不需要进行电子签章,则放行流程
if (!value.equals(signedValue)) {
return Action.SUCCESS;
}
String mainId = Util.null2String(mainMap.get("id"));
// 查询明细数据
List<Map<String, Object>> detailMaps = faDDContractMapping.queryDetailMaps(mainId, tableName);
// 开始签署合同
FaddContractUtil faddContractUtil = new FaddContractUtil(workflowId, requestId, mainTableName, tableName,
customerNo, customerNoField, contractField, queueSigned, detailMaps, mainMap);
try {
faddContractUtil.createContract();
} catch (Exception e) {
toolUtil.writeErrorLog("合同创建失败,失败原因:" + e);
// TODO 更换labelIndex
requestInfo.getRequestManager().setMessagecontent(Util.getHtmlLabelName(-87660,user.getLanguage(),"合同创建失败,未能正确创建法大大合同!"));
requestInfo.getRequestManager().setMessageid("1");
return Action.FAILURE_AND_CONTINUE;
}
try {
faddContractUtil.signedContract();
} catch (Exception e) {
toolUtil.writeErrorLog("合同已创建,但发起签署失败,失败原因:" + e);
// TODO 更换labelIndex
requestInfo.getRequestManager().setMessagecontent(Util.getHtmlLabelName(-87659,user.getLanguage(),"合同已创建,当合同发起签署时失败!"));
requestInfo.getRequestManager().setMessageid("2");
return Action.FAILURE_AND_CONTINUE;
}
return Action.SUCCESS;
}
public String getContractField() {
return contractField;
}
public void setContractField(String contractField) {
this.contractField = contractField;
}
public String getCustomerNoField() {
return customerNoField;
}
public void setCustomerNoField(String customerNoField) {
this.customerNoField = customerNoField;
}
public String getCustomerNo() {
return customerNo;
}
public void setCustomerNo(String customerNo) {
this.customerNo = customerNo;
}
public String getSignedField() {
return signedField;
}
public void setSignedField(String signedField) {
this.signedField = signedField;
}
public String getSignedValue() {
return signedValue;
}
public void setSignedValue(String signedValue) {
this.signedValue = signedValue;
}
public String getQueueSigned() {
return queueSigned;
}
public void setQueueSigned(String queueSigned) {
this.queueSigned = queueSigned;
}
}