提交人:陈绍鑫

日期:2025/01/04 10:30
内容:推送公享前端按钮
This commit is contained in:
陈绍鑫 2026-01-04 12:59:50 +08:00
parent 1191470f6e
commit 22d2759d1f
2 changed files with 56 additions and 6 deletions

View File

@ -27,6 +27,7 @@ import org.apache.http.util.EntityUtils;
import shkd.sys.sys.mservice.ApiService; import shkd.sys.sys.mservice.ApiService;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.net.URI; import java.net.URI;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
@ -46,6 +47,8 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
private static final Log logger = LogFactory.getLog(tsgxApiMappingBillPlugin.class); private static final Log logger = LogFactory.getLog(tsgxApiMappingBillPlugin.class);
// 日期格式化器 // 日期格式化器
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String sourcebillnumber = "";
@Override @Override
public void registerListener(EventObject e) { public void registerListener(EventObject e) {
Toolbar tbmain = this.getView().getControl("tbmain"); Toolbar tbmain = this.getView().getControl("tbmain");
@ -76,7 +79,10 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
dzhdqFilter=dzhdqFilter.and(zdyqFilter); dzhdqFilter=dzhdqFilter.and(zdyqFilter);
} }
logger.info("dzhdqFilter:"+dzhdqFilter); logger.info("dzhdqFilter:"+dzhdqFilter);
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load("bei_elecreceipt", "id", dzhdqFilter.toArray()); DynamicObject shkd_sourcebill = shkd_apimapping.getDynamicObject("shkd_sourcebill");
sourcebillnumber = shkd_sourcebill.getString("number");
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load(sourcebillnumber, "id", dzhdqFilter.toArray());
logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length); logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length);
String shkd_url = shkd_apimapping.getString("shkd_url"); String shkd_url = shkd_apimapping.getString("shkd_url");
@ -88,7 +94,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
DynamicObjectCollection shkd_mapping = shkd_apimapping.getDynamicObjectCollection("shkd_mapping"); DynamicObjectCollection shkd_mapping = shkd_apimapping.getDynamicObjectCollection("shkd_mapping");
for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) { for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) {
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), "bei_elecreceipt"); DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), sourcebillnumber);
String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json
logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json"+saveRequestBody); logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json"+saveRequestBody);
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
@ -314,13 +320,16 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
}else { }else {
IFormView viewByDynamicObj = ApiService.createViewByDynamicObj(bei_elecreceipt); IFormView viewByDynamicObj = ApiService.createViewByDynamicObj(bei_elecreceipt);
List<String> errMsgList = new ArrayList<>(); List<String> errMsgList = new ArrayList<>();
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + DynamicObjectCollection receipts = QueryServiceHelper.query(sourcebillnumber, "id,bank," +
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())}); "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
value = ApiService.getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); value = ApiService.getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
logger.info("单据编号:"+bei_elecreceipt.getString("billno")+"对应url"+value); logger.info("单据编号:"+bei_elecreceipt.getString("billno")+"对应url"+value);
} }
break; break;
case "特殊处理":
value=tscl(bei_elecreceipt,shkd_jsontartype,shkd_djzdms,shkd_mrz);
break;
case "默认值": case "默认值":
value=shkd_mrz; value=shkd_mrz;
break; break;
@ -332,6 +341,24 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
return value; return value;
} }
private String tscl(DynamicObject bei_elecreceipt, String shkd_jsontartype, String shkd_djzdms, String shkd_mrz) {
String value = null;
switch (shkd_djzdms){
case "incomeOrExpenditure":
BigDecimal debitamount = bei_elecreceipt.getBigDecimal("debitamount");//付款金额
if (debitamount.compareTo(BigDecimal.ZERO)>0){
value="1";
}else {
value="2";
}
break;
default:
break;
}
return value;
}
/* /*
* 根据字段类型或默认值获取字段 * 根据字段类型或默认值获取字段
* */ * */

View File

@ -27,6 +27,7 @@ import shkd.sys.sys.mservice.ApiService;
import shkd.sys.sys.utils.EmptyUtil; import shkd.sys.sys.utils.EmptyUtil;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.net.URI; import java.net.URI;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
@ -46,6 +47,7 @@ public class SharePushTaskPlugin extends AbstractTask {
private static final Log logger = LogFactory.getLog(SharePushTaskPlugin.class); private static final Log logger = LogFactory.getLog(SharePushTaskPlugin.class);
// 日期格式化器 // 日期格式化器
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String sourcebillnumber = "";
@Override @Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
//获取司库电子回单推送共享系统的对应映射 //获取司库电子回单推送共享系统的对应映射
@ -72,7 +74,10 @@ public class SharePushTaskPlugin extends AbstractTask {
dzhdqFilter=dzhdqFilter.and(zdyqFilter); dzhdqFilter=dzhdqFilter.and(zdyqFilter);
} }
logger.info("dzhdqFilter:"+dzhdqFilter); logger.info("dzhdqFilter:"+dzhdqFilter);
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load("bei_elecreceipt", "id", dzhdqFilter.toArray()); DynamicObject shkd_sourcebill = shkd_apimapping.getDynamicObject("shkd_sourcebill");
sourcebillnumber = shkd_sourcebill.getString("number");
DynamicObject[] bei_elecreceiptids = BusinessDataServiceHelper.load(sourcebillnumber, "id", dzhdqFilter.toArray());
logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length); logger.info("符合推送条件数据有:{}条", bei_elecreceiptids.length);
String shkd_url = shkd_apimapping.getString("shkd_url"); String shkd_url = shkd_apimapping.getString("shkd_url");
@ -84,7 +89,7 @@ public class SharePushTaskPlugin extends AbstractTask {
DynamicObjectCollection shkd_mapping = shkd_apimapping.getDynamicObjectCollection("shkd_mapping"); DynamicObjectCollection shkd_mapping = shkd_apimapping.getDynamicObjectCollection("shkd_mapping");
for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) { for (DynamicObject bei_elecreceiptid : bei_elecreceiptids) {
DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), "bei_elecreceipt"); DynamicObject bei_elecreceipt = BusinessDataServiceHelper.loadSingle(bei_elecreceiptid.getLong("id"), sourcebillnumber);
String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json String saveRequestBody=getJSON(bei_elecreceipt,shkd_mapping);//请求json
logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json"+saveRequestBody); logger.info("单据"+bei_elecreceipt.getString("billno")+"推送json"+saveRequestBody);
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
@ -309,13 +314,15 @@ public class SharePushTaskPlugin extends AbstractTask {
}else { }else {
IFormView viewByDynamicObj = ApiService.createViewByDynamicObj(bei_elecreceipt); IFormView viewByDynamicObj = ApiService.createViewByDynamicObj(bei_elecreceipt);
List<String> errMsgList = new ArrayList<>(); List<String> errMsgList = new ArrayList<>();
DynamicObjectCollection receipts = QueryServiceHelper.query("bei_elecreceipt", "id,bank," + DynamicObjectCollection receipts = QueryServiceHelper.query(sourcebillnumber, "id,bank," +
"fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," + "fileflag,filepath,biztype,bankcheckflag,fileserverurl,tcpurl,uploadfilename,username,password," +
"bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())}); "bank.bank_cate bankcate", new QFilter[]{new QFilter("id", QCP.equals, bei_elecreceipt.getPkValue())});
value = ApiService.getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList); value = ApiService.getPdfUrl(viewByDynamicObj.getPageId(), receipts, errMsgList);
logger.info("单据编号:"+bei_elecreceipt.getString("billno")+"对应url"+value); logger.info("单据编号:"+bei_elecreceipt.getString("billno")+"对应url"+value);
} }
break; break;
case "特殊处理":
value=tscl(bei_elecreceipt,shkd_jsontartype,shkd_djzdms,shkd_mrz);
case "默认值": case "默认值":
value=shkd_mrz; value=shkd_mrz;
break; break;
@ -327,6 +334,22 @@ public class SharePushTaskPlugin extends AbstractTask {
return value; return value;
} }
private String tscl(DynamicObject bei_elecreceipt, String shkd_jsontartype, String shkd_djzdms, String shkd_mrz) {
String value = null;
switch (shkd_djzdms){
case "incomeOrExpenditure":
BigDecimal debitamount = bei_elecreceipt.getBigDecimal("debitamount");//付款金额
if (debitamount.compareTo(BigDecimal.ZERO)>0){
value="1";
}else {
value="2";
}
break;
default:
break;
}
return value;
}
/* /*
* 根据字段类型或默认值获取字段 * 根据字段类型或默认值获取字段
* */ * */