Merge remote-tracking branch 'origin/master'

This commit is contained in:
龚豆豆 2025-11-05 18:11:32 +08:00
commit d93069b4a0
13 changed files with 246 additions and 23 deletions

View File

@ -2,6 +2,7 @@ package tqq9.lc123.cloud.app.api.plugin;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.openapi.api.plugin.ApiSavePlugin;
import org.apache.commons.lang3.StringUtils;
import tqq9.lc123.cloud.app.plugin.utils.FWUtils;
import java.util.HashMap;
@ -89,6 +90,17 @@ public class FWOtheroutApplySavePlugin implements ApiSavePlugin {
//泛微审批状体
reqDatum.put("tqq9_fwstate", "C");
//处理收货地址长度
String tqq9_lshxx_tag = (String) reqDatum.get("tqq9_lshxx_tag");
if(StringUtils.isNotBlank(tqq9_lshxx_tag)){
reqDatum.put("tqq9_lshxx_tag", tqq9_lshxx_tag);
if(tqq9_lshxx_tag.length() >= 254){
String substring = tqq9_lshxx_tag.substring(0, 255);
reqDatum.put("tqq9_lshxx", substring);
}else{
reqDatum.put("tqq9_lshxx", tqq9_lshxx_tag);
}
}
String ckNumber = null;
//明细
List<Map<String, Object>> entries = (List<Map<String, Object>>) reqDatum.get("entryentity");

View File

@ -48,7 +48,7 @@ public class LCLogServiceImpl implements LCLogService {
if (response == null || response.length() <= 255) {
apiLog.set("tqq9_response", response);
} else {
String resSub = request.substring(0, 254);
String resSub = response.substring(0, 254);
apiLog.set("tqq9_response", resSub);
apiLog.set("tqq9_response_tag", response);
}

View File

@ -3,6 +3,7 @@ package tqq9.lc123.cloud.app.plugin.form.result;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
@ -25,6 +26,18 @@ public class OtherInApplyFormPlugin extends AbstractBillPlugIn {
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
boolean tqq9_isclose = (boolean) this.getModel().getValue("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {

View File

@ -4,6 +4,7 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
@ -30,7 +31,31 @@ public class OtherInApplyListPlugin extends AbstractListPlugin {
// 列表插件继承AbstractListPlugin时底层已默认注册工具栏监听无需重复注册
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
BillList billList = this.getControl("billlistap");
ListSelectedRowCollection selectedRows = billList.getSelectedRows();
List<String> billnoList = selectedRows.stream().map(ListSelectedRow::getBillNo).distinct().collect(Collectors.toList());
if (billnoList.size() > 1) {
this.getView().showMessage("请选择一张单据");
evt.setCancel(true);
return;
}
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("tqq9_otherinapply", "id,billno,tqq9_isclose",
new QFilter[]{new QFilter("billno", QCP.in, billnoList)});
if (null != dataEntity) {
boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);

View File

@ -2,6 +2,7 @@ package tqq9.lc123.cloud.app.plugin.form.result;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
@ -25,6 +26,19 @@ public class OtherOutApplyFormPlugin extends AbstractBillPlugIn {
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
boolean tqq9_isclose = (boolean) this.getModel().getValue("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);

View File

@ -3,6 +3,7 @@ package tqq9.lc123.cloud.app.plugin.form.result;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
@ -29,6 +30,31 @@ public class OtherOutApplyListPlugin extends AbstractListPlugin {
// 列表插件继承AbstractListPlugin时底层已默认注册工具栏监听无需重复注册
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
BillList billList = this.getControl("billlistap");
ListSelectedRowCollection selectedRows = billList.getSelectedRows();
List<String> billnoList = selectedRows.stream().map(ListSelectedRow::getBillNo).distinct().collect(Collectors.toList());
if (billnoList.size() > 1) {
this.getView().showMessage("请选择一张单据");
evt.setCancel(true);
return;
}
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("tqq9_otheroutapply", "id,billno,tqq9_isclose",
new QFilter[]{new QFilter("billno", QCP.in, billnoList)});
if (null != dataEntity) {
boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {

View File

@ -3,6 +3,7 @@ package tqq9.lc123.cloud.app.plugin.form.result;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
@ -25,6 +26,18 @@ public class PmReceiptNoticeFormPlugin extends AbstractBillPlugIn {
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
boolean tqq9_isclose = (boolean) this.getModel().getValue("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {

View File

@ -4,6 +4,7 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
@ -29,7 +30,31 @@ public class PmReceiptNoticeListPlugin extends AbstractListPlugin {
//标准单据列表模板为bos_list需使用该模板中的控件标识如工具栏标识toolbarap进行监听
// 列表插件继承AbstractListPlugin时底层已默认注册工具栏监听无需重复注册
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
String itemKey = evt.getItemKey();
if ("tqq9_close".equals(itemKey)) {
BillList billList = this.getControl("billlistap");
ListSelectedRowCollection selectedRows = billList.getSelectedRows();
List<String> billnoList = selectedRows.stream().map(ListSelectedRow::getBillNo).distinct().collect(Collectors.toList());
if (billnoList.size() > 1) {
this.getView().showMessage("请选择一张单据");
evt.setCancel(true);
return;
}
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("pm_receiptnotice", "id,billno,tqq9_isclose",
new QFilter[]{new QFilter("billno", QCP.in, billnoList)});
if (null != dataEntity) {
boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose");
if (tqq9_isclose) {
this.getView().showMessage("该单据已关闭");
evt.setCancel(true);
}
}
}
}
@Override
public void itemClick(ItemClickEvent evt) {

View File

@ -1,12 +1,102 @@
package tqq9.lc123.cloud.app.plugin.operate.cas;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import org.apache.commons.lang3.StringUtils;
import tqq9.lc123.cloud.app.plugin.utils.FWRestfulUtils;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 付款单付款状态回传泛微kd.bos.form.plugin.bdctrl.AssignQueryPluginNew
*/
public class PaymentbillPushPaystateOp extends AbstractOperationServicePlugIn {
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
DynamicObject[] dataEntities = e.getDataEntities();
for (DynamicObject dataEntity : dataEntities) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType().getName());
String tqq9_fwrequestid = dataEntity.getString("tqq9_fwrequestid");//泛微流程ID
if(StringUtils.isNotBlank(tqq9_fwrequestid)){
Date paydate = dataEntity.getDate("paydate");//付款日期
String jyrq = sdf.format(paydate);
String jyzy = dataEntity.getString("description");//摘要
String tqq9_cwztfkzt = dataEntity.getString("tqq9_cwztfkzt");//财务中台付款状态
// [0:中台接收成功,
// 1:中台接收失败,
// 2:发送E企明成功,
// 3:发送E企明失败,
// 4:交易成功E企明付款成功, 交易成功:E企明付款成功-D
// 5:交易失败E企明付款失败, 交易失败:E企明付款失败-F
// 6:交易处理中E企明付款处理中, 交易处理中:E企明付款处理中-E
// 7:交易退回E企明付款被退回] 交易退回:E企明付款被退回-G
String fkzt = null;
if("D".equals(tqq9_cwztfkzt)){
fkzt = "4";
}else if("F".equals(tqq9_cwztfkzt)){
fkzt = "5";
}else if("E".equals(tqq9_cwztfkzt)){
fkzt = "6";
}else if("G".equals(tqq9_cwztfkzt)){
fkzt = "7";
}
String tqq9_dzhdbh = dataEntity.getString("tqq9_dzhdbh");//电子回单编号
String tqq9_digital_receipt = dataEntity.getString("tqq9_digital_receipt");//电子回单编号
String filename = "";
try {
URL url = new URL(tqq9_digital_receipt);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 尝试从响应头获取
String disposition = conn.getHeaderField("Content-Disposition");
if (disposition != null && disposition.contains("filename=")) {
filename = disposition.split("filename=")[1].replace("\"", "").trim();
}
} catch (MalformedURLException ex) {
throw new RuntimeException(ex);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
if(StringUtils.isBlank(filename)){
filename = "银行电子回单"+new Date().getTime()+".pdf";
}
JSONObject mainTable = new JSONObject();
mainTable.put("lcid", tqq9_fwrequestid);
mainTable.put("fkzt", fkzt);
mainTable.put("dzhdwjbh", tqq9_dzhdbh);
mainTable.put("jyrq", jyrq);
mainTable.put("jyzy", jyzy);
JSONArray files = new JSONArray();
JSONObject file = new JSONObject();
file.put("name", filename);
file.put("content", tqq9_digital_receipt);
files.add(file);
mainTable.put("dzhdwj", files);
String billno = dataEntity.getString("billno");
DynamicObject creator = dataEntity.getDynamicObject("creator");
creator = BusinessDataServiceHelper.loadSingle(creator.getPkValue(),"bos_user");
String tqq9_fwuserid = creator.getString("tqq9_fwuserid");
FWRestfulUtils fwRestfulUtils = new FWRestfulUtils();
fwRestfulUtils.pushData(mainTable, tqq9_fwuserid, billno, "cas_paybill");
}
}
}
}

View File

@ -35,6 +35,7 @@ public class OtherOutPushExprnoOp extends AbstractOperationServicePlugIn {
String billno = dataEntity.getString("billno");
String tqq9_fwrequestid = dataEntity.getString("tqq9_fwrequestid");
if(StringUtils.isNotBlank(tqq9_fwrequestid)){
JSONObject mainTable = new JSONObject();
mainTable.put("lcid", tqq9_fwrequestid);
mainTable.put("kddh", kddh);
@ -48,4 +49,6 @@ public class OtherOutPushExprnoOp extends AbstractOperationServicePlugIn {
}
}
}
}

View File

@ -531,7 +531,7 @@ public class FWImpl {
String filePath = (String) attachment.get("url");
String fileName = (String) attachment.get("name");
byte[] bytes = HttpUtil.downloadBytes(filePath);
String str = "base64:" + cn.hutool.core.codec.Base64.encode(bytes);
String str = cn.hutool.core.codec.Base64.encode(bytes);//"base64:" +
JSONObject fj = new JSONObject();
fj.put("content", str);
fj.put("name", fileName);
@ -3901,7 +3901,6 @@ public class FWImpl {
String orgNumber = org.getString("number");
String ywgz = FWUtils.getFwOrgNumberByKdOrgNumber(orgNumber);//业务归属
String kczz = ywgz;//库存组织
String djlx = null;//单据类型
DynamicObject billtype = bill.getDynamicObject("billtype");//单据类型
if (null != billtype) {
@ -4131,7 +4130,7 @@ public class FWImpl {
m6.put("fieldValue", ywgz);
JSONObject m7 = new JSONObject();//
m7.put("fieldName", "kczz");
m7.put("fieldValue", kczz);
m7.put("fieldValue", ywgz);
JSONObject m8 = new JSONObject();//
m8.put("fieldName", "djlx");
m8.put("fieldValue", djlx);
@ -5358,24 +5357,24 @@ public class FWImpl {
}else if ("5".equals(materialtype)){
wllx = "特征件";
}
String ywzx = "";
String ywzxdx = "";
DynamicObjectCollection serviceattribute = bill.getDynamicObjectCollection("serviceattribute");
for (DynamicObject attribute : serviceattribute) {
long id = attribute.getLong("fbasedataid.id");
attribute = BusinessDataServiceHelper.loadSingle(id, "bd_serviceattribute", "id,name,number,operatorid");
String number = attribute.getString("number");
if(number.contains("1001")){
ywzx = ywzx + ",0";
ywzxdx = ywzxdx + ",0";
}else if (number.equals("2001")){
ywzx = ywzx + ",1";
ywzxdx = ywzxdx + ",1";
}else if (number.equals("2002")){
ywzx = ywzx + ",2";
ywzxdx = ywzxdx + ",2";
}else if (number.equals("2003")){
ywzx = ywzx + ",3";
ywzxdx = ywzxdx + ",3";
}
}
if(StringUtils.isNotBlank(ywzx)){
ywzx = ywzx.substring(1);
if(StringUtils.isNotBlank(ywzxdx)){
ywzxdx = ywzxdx.substring(1);
}
String ym = bill.getString("tqq9_ym");
String ssbm = null;
@ -5502,8 +5501,8 @@ public class FWImpl {
m27.put("fieldName", "wllx");
m27.put("fieldValue", wllx);
JSONObject m28 = new JSONObject();
m28.put("fieldName", "ywzx");
m28.put("fieldValue", ywzx);
m28.put("fieldName", "ywzxdx");
m28.put("fieldValue", ywzxdx);
JSONObject m29 = new JSONObject();
m29.put("fieldName", "ym");
m29.put("fieldValue", ym);

View File

@ -156,7 +156,7 @@ public class BillCloseCancelUtils {
Map<String, Object> bj_map = new HashMap<>();
String method;//其他出库撤销
if ("DBCK".equals(orderType)) {
method = "/api/WMS/Cancel_TransVouch ";//调拨出库撤销
method = "/api/WMS/Cancel_TransVouch";//调拨出库撤销
bj_map.put("cTVCode",billNo);
}else {
method = "/api/WMS/Cancel_OtherVouchOut";

View File

@ -80,8 +80,11 @@ public class FWRestfulUtils {
requestName = "推送仓库信息";
ourl = "api/cube/restful/interface/saveOrUpdateModeData/CK";
}else if("im_otheroutbill".equals(entityName)){
requestName = "推送快递单号信息";
requestName = "快递单号回传";
ourl = "api/cube/restful/interface/saveOrUpdateModeData/KDDHCX";
}else if("cas_paybill".equals(entityName)){
requestName = "付款状态回传";
ourl = "api/cube/restful/interface/saveOrUpdateModeData/FKZTHC";
}
System.out.println("===请求参数dataparam==="+dataParam);