|
|
@@ -2,6 +2,7 @@ package restcontroller.webmanage.sale.contracttask;
|
|
|
|
|
|
import beans.attachment.Attachment;
|
|
|
import beans.datacontrllog.DataContrlLog;
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.tencentcloudapi.essbasic.v20210526.models.FlowApproverInfo;
|
|
|
@@ -16,6 +17,7 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.camunda.bpm.container.impl.deployment.Attachments;
|
|
|
import restcontroller.R;
|
|
|
|
|
|
+import java.io.InputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
@@ -277,55 +279,57 @@ public class EsignContractTaskMX extends Controller {
|
|
|
public String edit() throws YosException {
|
|
|
|
|
|
Long sa_esign_contract_taskmxid = content.getLongValue("sa_esign_contract_taskmxid");
|
|
|
- Rows rows = dbConnect.runSqlQuery("SELECT * FROM sa_esign_contract_taskmx WHERE sa_esign_contract_taskmxid=" + sa_esign_contract_taskmxid);
|
|
|
-
|
|
|
- if (rows.isEmpty()) {
|
|
|
+ Rows taskmxrows = dbConnect.runSqlQuery("SELECT * FROM sa_esign_contract_taskmx WHERE sa_esign_contract_taskmxid=" + sa_esign_contract_taskmxid);
|
|
|
+ if (taskmxrows.isEmpty()) {
|
|
|
return getErrReturnObject().setErrMsg("合同不存在").toString();
|
|
|
}
|
|
|
- String status = rows.get(0).getString("status");
|
|
|
+ Row taskmxrow = taskmxrows.get(0);
|
|
|
+ Long sa_agentsid = taskmxrow.getLong("sa_agentsid");
|
|
|
+ Long sys_enterpriseid = taskmxrow.getLong("sys_enterpriseid");
|
|
|
+ String status = taskmxrow.getString("status");
|
|
|
+ Long sa_esign_contract_taskid = taskmxrow.getLong("sa_esign_contract_taskid");
|
|
|
+
|
|
|
String[] statuslist = new String[]{"合同创建", "合同签署中", "合同签署完成", "合同即将过期"};
|
|
|
if (ArrayUtils.contains(statuslist, status)) {
|
|
|
return getErrReturnObject().setErrMsg("当前状态不支持确认合同内容").toString();
|
|
|
}
|
|
|
- Long sa_esign_contract_taskid = rows.get(0).getLong("sa_esign_contract_taskid");
|
|
|
|
|
|
QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_esign_contract_template", "*").setTableAlias("t1");
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_task", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_task", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid",
|
|
|
+ "year");
|
|
|
querySQL.setWhere("t2.sa_esign_contract_taskid", sa_esign_contract_taskid);
|
|
|
Rows templaterows = querySQL.query();
|
|
|
if (templaterows.isEmpty()) {
|
|
|
return getErrReturnObject().setErrMsg("合同模板不存在").toString();
|
|
|
}
|
|
|
+ Long year = templaterows.get(0).getLong("year");
|
|
|
+ Row agentRow = ContractTaskUtil.getAgentRow(this, sa_agentsid);
|
|
|
+ Row enterpriseRow = ContractTaskUtil.getEnterpriseRow(this, sys_enterpriseid);
|
|
|
+ //校验参数
|
|
|
+// ContractTaskUtil.check(this, agentRow, enterpriseRow, taskmxrow);
|
|
|
+ BigDecimal securitydeposit = ContractTaskUtil.getSecurityDeposit(this, sys_enterpriseid);
|
|
|
+ BigDecimal taskmoney = ContractTaskUtil.getTaskMoney(this, sys_enterpriseid, year);
|
|
|
|
|
|
String license_name = content.getStringValue("license_name");
|
|
|
String legal_rep = content.getStringValue("legal_rep");
|
|
|
- String mobile = content.getStringValue("mobile");
|
|
|
String phonenumber = content.getStringValue("phonenumber");
|
|
|
- String taxno = content.getStringValue("taxno");
|
|
|
- String license_address = content.getStringValue("license_address");
|
|
|
|
|
|
//构建需要上传的模板传递的数据
|
|
|
- CompanyInfo companyInfo = new CompanyInfo();
|
|
|
- companyInfo.setBillno("");
|
|
|
- companyInfo.setLicensename(license_name);
|
|
|
- companyInfo.setTaxno(taxno);
|
|
|
- companyInfo.setLicenseaddress(license_address);
|
|
|
- companyInfo.setLegalrep(legal_rep);
|
|
|
- companyInfo.setMobile(mobile);
|
|
|
- companyInfo.setPhonenumber(phonenumber);
|
|
|
+ CompanyInfo companyInfo = ContractTaskUtil.getCompanyInfo(this, enterpriseRow, agentRow, taskmxrow, year, securitydeposit, taskmoney);
|
|
|
|
|
|
UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_taskmx");
|
|
|
updateSQL.setSiteid(siteid);
|
|
|
updateSQL.setUniqueid(sa_esign_contract_taskmxid);
|
|
|
updateSQL.setValue("license_name", license_name);
|
|
|
- updateSQL.setValue("taxno", taxno);
|
|
|
- updateSQL.setValue("license_address", license_address);
|
|
|
- updateSQL.setValue("legal_rep", license_address);
|
|
|
- updateSQL.setValue("mobile", mobile);
|
|
|
+ updateSQL.setValue("legal_rep", legal_rep);
|
|
|
updateSQL.setValue("phonenumber", phonenumber);
|
|
|
+ updateSQL.setValue("taxno", content.getStringValue("taxno"));
|
|
|
+ updateSQL.setValue("license_address", content.getStringValue("license_address"));
|
|
|
+ updateSQL.setValue("mobile", content.getStringValue("mobile"));
|
|
|
updateSQL.setValue("presalesphonenumber", content.getStringValue("presalesphonenumber"));
|
|
|
updateSQL.setValue("aftersalesphonenumber", content.getStringValue("aftersalesphonenumber"));
|
|
|
updateSQL.setValue("paymans", content.getStringValue("paymans"));
|
|
|
+ updateSQL.setValue("companyinfo", JSON.toJSON(companyInfo));
|
|
|
updateSQL.update();
|
|
|
DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "合同确认", "合同内容确认成功").insert();
|
|
|
|
|
|
@@ -340,26 +344,36 @@ public class EsignContractTaskMX extends Controller {
|
|
|
throw new NullPointerException("签署人不能为空");
|
|
|
}
|
|
|
//构造签署人信息
|
|
|
- FlowApproverInfo[] flowApproverInfos = WeChatByTemplate.BuildApprovers(Arrays.asList(recipients), license_name, legal_rep,phonenumber);
|
|
|
+ FlowApproverInfo[] flowApproverInfos = WeChatByTemplate.BuildApprovers(Arrays.asList(recipients), license_name, legal_rep, phonenumber);
|
|
|
// String organizationOpenId = DigestUtils.sha256Hex(license_name);
|
|
|
|
|
|
+ ArrayList<String> fileBase64List = new ArrayList<>();
|
|
|
+
|
|
|
+ Rows attachmentRows = Attachment.get(this, "sa_esign_contract_taskmx", sa_esign_contract_taskmxid);
|
|
|
+ for (Row attachmentRow : attachmentRows) {
|
|
|
+ Long attachmentid = attachmentRow.getLong("attachmentid");
|
|
|
+ InputStream inputStream=getAttachmentFileInputStream(attachmentid);
|
|
|
+ String fileBase64 = WeChatContractUtil.convertImageFileToBase64(inputStream);
|
|
|
+ fileBase64List.add(fileBase64);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 发起合同 样例为BtoC
|
|
|
Map<String, String[]> resp = wccUtil.createFlowByTemplateDirectly(flowName
|
|
|
- , templateId, flowApproverInfos,WeChatConfig.SuperProxyOperatorOpenId,companyInfo);
|
|
|
+ , templateId, flowApproverInfos, WeChatConfig.SuperProxyOperatorOpenId, companyInfo, fileBase64List);
|
|
|
int count = WeChatConfig.COUNT;
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
- // 返回合同Id
|
|
|
- System.out.println("您创建的合同id为:");
|
|
|
- System.out.println(resp.get("FlowIds")[i]);
|
|
|
- // 返回签署的链接
|
|
|
- System.out.println("签署链接为:");
|
|
|
- System.out.println(resp.get("Urls")[i]);
|
|
|
- // Step 3 下载合同
|
|
|
- // 返回合同下载链接
|
|
|
- String url = WeChatContractUtil.describeFileUrls(resp.get("FlowIds")[i]);
|
|
|
- System.out.println("请访问以下地址下载您的合同:");
|
|
|
- System.out.println(url);
|
|
|
+// // 返回合同Id
|
|
|
+// System.out.println("您创建的合同id为:");
|
|
|
+// System.out.println(resp.get("FlowIds")[i]);
|
|
|
+// // 返回签署的链接
|
|
|
+// System.out.println("签署链接为:");
|
|
|
+// System.out.println(resp.get("Urls")[i]);
|
|
|
+// // Step 3 下载合同
|
|
|
+// // 返回合同下载链接
|
|
|
+// String url = WeChatContractUtil.describeFileUrls(resp.get("FlowIds")[i]);
|
|
|
+// System.out.println("请访问以下地址下载您的合同:");
|
|
|
+// System.out.println(url);
|
|
|
|
|
|
updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_taskmx");
|
|
|
updateSQL.setSiteid(siteid);
|