package restcontroller.webmanage.sale.contracttask; import beans.datacontrllog.DataContrlLog; import com.alibaba.fastjson2.JSONObject; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCancelFlowResponse; import common.Controller; import common.YosException; import common.annotation.API; import common.data.*; import lombok.experimental.Delegate; import restcontroller.R; import java.math.BigDecimal; /** * 电子签合同任务 */ public class EsignContractTask extends Controller { public EsignContractTask(JSONObject content) throws YosException { super(content); } @API(title = "电子签合同任务-新增或编辑", apiversion = R.ID2026041309401702.v1.class) public String insertOrUpdate() throws YosException { Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid"); if (sa_esign_contract_taskid <= 0) { sa_esign_contract_taskid = createTableID("sa_esign_contract_task"); InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_esign_contract_task"); insertSQL.setSiteid(siteid); insertSQL.setUniqueid(sa_esign_contract_taskid); insertSQL.setValue("year", content.getStringValue("year")); insertSQL.setValue("taskname", content.getStringValue("taskname")); insertSQL.setValue("remarks", content.getStringValue("remarks")); insertSQL.setValue("status", "新建"); insertSQL.setValue("sa_esign_contract_templateid", content.getLongValue("sa_esign_contract_templateid")); insertSQL.insert(); DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "新增", "新增合同任务成功").insert(); } else { Rows rows = dbConnect.runSqlQuery("select 1 from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid); if (rows.isNotEmpty() && rows.get(0).getString("status").equals("发布")) { return getErrReturnObject().setErrMsg("当前状态无法编辑").toString(); } UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task"); updateSQL.setSiteid(siteid); updateSQL.setUniqueid(sa_esign_contract_taskid); updateSQL.setValue("year", content.getStringValue("year")); updateSQL.setValue("taskname", content.getStringValue("taskname")); updateSQL.setValue("remarks", content.getStringValue("remarks")); updateSQL.setValue("sa_esign_contract_templateid", content.getLongValue("sa_esign_contract_templateid")); updateSQL.update(); DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "编辑", "编辑合同任务成功").insert(); } content.put("sa_esign_contract_taskid", sa_esign_contract_taskid); return detail(); } @API(title = "电子签合同任务-删除", apiversion = R.ID2026041309414502.v1.class) public String delete() throws YosException { Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid"); Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid); if (rows.isNotEmpty() && !rows.get(0).getString("status").equals("新建")) { return getErrReturnObject().setErrMsg("非新建状态无法删除").toString(); } DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sa_esign_contract_task"); deleteSQL.setSiteid(siteid); deleteSQL.setUniqueid(sa_esign_contract_taskid); deleteSQL.setWhere("status", "新建"); deleteSQL.delete(); DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "删除", "删除合同任务成功").insert(); return detail(); } @API(title = "电子签合同任务-详情", apiversion = R.ID2026041309443002.v1.class) public String detail() throws YosException { Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid"); QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_esign_contract_task", "*").setTableAlias("t1"); querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_template", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid", "type", "templateid", "name"); querySQL.setSiteid(siteid); querySQL.setWhere("t1.sa_esign_contract_taskid", sa_esign_contract_taskid); Rows rows = querySQL.query(); Row row = rows.isNotEmpty() ? rows.get(0) : new Row(); return getSucReturnObject().setData(row).toString(); } @API(title = "电子签合同任务-列表", apiversion = R.ID2026041309474202.v1.class) public String list() throws YosException { QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_esign_contract_task", "*").setTableAlias("t1"); querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_template", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid", "type", "templateid", "name"); querySQL.setSiteid(siteid); if (usertype==2) { querySQL.setWhere("t1.createuserid", userid); } querySQL.setOrderBy("t1.createdate desc"); querySQL.setCondition("t1.taskname","t1.remarks","t2.name"); querySQL.setPage(pageSize, pageNumber); Rows rows = querySQL.query(); return getSucReturnObject().setData(rows).toString(); } @API(title = "电子签合同任务-发布", apiversion = R.ID2026041309482202.v1.class) public String send() throws YosException { Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid"); Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid); if (rows.isNotEmpty() && rows.get(0).getString("status").equals("发布")) { return getErrReturnObject().setErrMsg("当前任务已发布,无需重新发布").toString(); } Rows rows1 = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and (begindate is null or enddate is null)"); if (rows1.isNotEmpty()) { return getErrReturnObject().setErrMsg("请完善合同期限").toString(); } Rows rows2 = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and y1=0"); if (rows2.isNotEmpty()) { return getErrReturnObject().setErrMsg("请完善经销商季度任务金额").toString(); } UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task"); updateSQL.setSiteid(siteid); updateSQL.setUniqueid(sa_esign_contract_taskid); updateSQL.setValue("status", "发布"); updateSQL.setValue("sendby", username); updateSQL.setValue("senddate", getDateTime_Str()); updateSQL.update(); DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "发布", "发布合同任务成功").insert(); return detail(); } @API(title = "电子签合同任务-撤回", apiversion = R.ID2026041309485902.v1.class) public String unsend() throws YosException { Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid"); Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid); if (rows.isNotEmpty() && !rows.get(0).getString("status").equals("发布")) { return getErrReturnObject().setErrMsg("非发布状态无法删除").toString(); } UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task"); updateSQL.setSiteid(siteid); updateSQL.setUniqueid(sa_esign_contract_taskid); updateSQL.setValue("status", "撤回"); updateSQL.setValue("sendby", "null"); updateSQL.setValue("senddate", "null"); updateSQL.setWhere("status", "发布"); updateSQL.update(); DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "撤回", "撤回合同任务成功").insert(); Rows taskmxRows = dbConnect.runSqlQuery("select * from sa_esign_contract_taskmx where sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and approvestatus='待签署'"); for (Row taskmxRow : taskmxRows) { String flowid = taskmxRow.getString("flowid"); WeChatContractUtil.channelCancelFlow(WeChatContractUtil.setAgent(WeChatConfig.SuperProxyOperatorOpenId), flowid, "合同任务已撤回", 1L); // UpdateSQL updateSQL1 = SQLFactory.createUpdateSQL(this, "sa_esign_contract_taskmx"); // updateSQL1.setSiteid(siteid); // updateSQL1.setUniqueid(taskmxRow.getLong("sa_esign_contract_taskmxid")); // updateSQL1.setValue("status", "合同撤回"); // updateSQL1.setValue("approvestatus", "流程已终止"); // updateSQL1.update(); } return detail(); } }