Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
zhangzhiguo 2025-08-01 20:08:49 +08:00
commit 221535deb6
2 changed files with 105 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package zcgj.zcdev.zcdev.pr.plugin.form; package zcgj.zcdev.zcdev.pr.plugin.form;
import com.alibaba.excel.util.StringUtils;
import com.greenpineyu.fel.common.NumberUtil; import com.greenpineyu.fel.common.NumberUtil;
import kd.bos.coderule.api.CodeRuleInfo; import kd.bos.coderule.api.CodeRuleInfo;
import kd.bos.coderule.service.cache.CodeRuleCache; import kd.bos.coderule.service.cache.CodeRuleCache;
@ -7,6 +8,8 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperateErrorInfo;
import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.IFormView; import kd.bos.form.IFormView;
import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.control.events.BeforeItemClickEvent;
@ -64,6 +67,7 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
IFormView view = this.getView(); IFormView view = this.getView();
view.invokeOperation("refresh"); view.invokeOperation("refresh");
} else if (itemKey.equals("zcgj_asset")) {//同步资产卡片 } else if (itemKey.equals("zcgj_asset")) {//同步资产卡片
String operationResultErrorInfos = null;
Set<String> strings = new HashSet(); Set<String> strings = new HashSet();
DynamicObject[] equipmenttype = BusinessDataServiceHelper.load("zcgj_equipmenttype", "number,zcgj_assetcat",new QFilter[]{new QFilter("zcgj_assetcat.number", QCP.is_notnull,"" )}); DynamicObject[] equipmenttype = BusinessDataServiceHelper.load("zcgj_equipmenttype", "number,zcgj_assetcat",new QFilter[]{new QFilter("zcgj_assetcat.number", QCP.is_notnull,"" )});
for (DynamicObject dynamicObject : equipmenttype) { for (DynamicObject dynamicObject : equipmenttype) {
@ -183,12 +187,16 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
} }
if (eceq_equipment_card!=null){ if (eceq_equipment_card!=null){
SaveServiceHelper.update(equipmentcard); SaveServiceHelper.update(equipmentcard);
System.out.println();
}else { }else {
OperationResult result = OperationServiceHelper.executeOperate("save", "eceq_equipment_card", new DynamicObject[]{equipmentcard}, null); OperationResult result = OperationServiceHelper.executeOperate("save", "eceq_equipment_card", new DynamicObject[]{equipmentcard}, null);
System.out.println(); String operationResultErrorInfo = getOperationResultErrorInfos(result);
if (!operationResultErrorInfo.isEmpty() && operationResultErrorInfo!=null){
operationResultErrorInfos = operationResultErrorInfo + operationResultErrorInfos;
System.out.println(number+assetname+"报错信息为:"+operationResultErrorInfos);
}
} }
} }
System.out.println("总报错信息为:"+operationResultErrorInfos);
this.getView().showMessage("同步操作成功。"); this.getView().showMessage("同步操作成功。");
} }
} }
@ -277,15 +285,56 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
* @return * @return
*/ */
public static String getCodeRule(DynamicObject data,String number) { public static String getCodeRule(DynamicObject data,String number) {
String archivebillno = null;
//查找编码规则 //查找编码规则
DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)}); DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)});
//编码对象 //编码对象
if (coderule != null) { if (coderule != null) {
CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id")); CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id"));
//生成箱号编码 //生成箱号编码
String archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data); archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data);
}
if(archivebillno.isEmpty() && archivebillno==null){
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("eceq_equipment_card");
// 调用自动编码规则
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
// 获取单据编码
archivebillno = CodeRuleServiceHelper.getNumber(codeRule, dynamicObject);
}
log.info("生成的设备编号为"+archivebillno);
return archivebillno;
}
/**
* 获取操作错误信息
* @param operationResult
* @return
*/
private String getOperationResultErrorInfos(OperationResult operationResult){
if(operationResult.isSuccess()){
return StringUtils.EMPTY;
}
List<IOperateInfo> errorInfos = operationResult.getAllErrorOrValidateInfo();
int size = errorInfos.size() + operationResult.getSuccessPkIds().size();
if (size > 1) {
StringBuilder stringBuilder = new StringBuilder();
int i = 0;
for(int len = errorInfos.size(); i < 5 && i < len; ++i) {
stringBuilder.append((errorInfos.get(i)).getMessage());
}
return stringBuilder.toString();
} else if (!errorInfos.isEmpty()) {
OperateErrorInfo errorInfo = (OperateErrorInfo)errorInfos.get(0);
String msg = errorInfo.getMessage() == null ? "" : errorInfo.getMessage();
return msg;
} else{
String msg = operationResult.getMessage() == null ? "" : operationResult.getMessage();
return msg;
} }
return null;
} }
} }

View File

@ -1,11 +1,14 @@
package zcgj.zcdev.zcdev.pr.task; package zcgj.zcdev.zcdev.pr.task;
import com.alibaba.excel.util.StringUtils;
import kd.bos.algo.DataSet; import kd.bos.algo.DataSet;
import kd.bos.coderule.api.CodeRuleInfo; import kd.bos.coderule.api.CodeRuleInfo;
import kd.bos.coderule.service.cache.CodeRuleCache; import kd.bos.coderule.service.cache.CodeRuleCache;
import kd.bos.context.RequestContext; import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperateErrorInfo;
import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.operate.result.OperationResult;
import kd.bos.exception.KDException; import kd.bos.exception.KDException;
import kd.bos.logging.Log; import kd.bos.logging.Log;
@ -64,6 +67,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_asset_card", "zcgj_costcenter,headusedept,finentry,assetcat,number,assetname,model,realaccountdate," + DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_asset_card", "zcgj_costcenter,headusedept,finentry,assetcat,number,assetname,model,realaccountdate," +
"assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor,finentry.fin_originalval,finentry.fin_preresidualval,finentry.fin_depredamount,finentry.fin_preusingamount,finentry.fin_accumdepre,finentry.fin_networth", new QFilter[]{qFilter,qFilter2}); "assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor,finentry.fin_originalval,finentry.fin_preresidualval,finentry.fin_depredamount,finentry.fin_preusingamount,finentry.fin_accumdepre,finentry.fin_networth", new QFilter[]{qFilter,qFilter2});
log.info("同步的实物数量有"+realcards.length); log.info("同步的实物数量有"+realcards.length);
String operationResultErrorInfos = null;
for (DynamicObject realcard : realcards) { for (DynamicObject realcard : realcards) {
String number = realcard.getString("number");//资产编码 String number = realcard.getString("number");//资产编码
// DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 // DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别
@ -157,12 +161,15 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
equipmentcard.set("zcgj_preusingamount",fin_preusingamount); equipmentcard.set("zcgj_preusingamount",fin_preusingamount);
equipmentcard.set("unitprice",finOriginalval); equipmentcard.set("unitprice",finOriginalval);
} }
if (eceq_equipment_card != null) { if (eceq_equipment_card!=null){
SaveServiceHelper.update(equipmentcard); SaveServiceHelper.update(equipmentcard);
System.out.println(); }else {
} else {
OperationResult result = OperationServiceHelper.executeOperate("save", "eceq_equipment_card", new DynamicObject[]{equipmentcard}, null); OperationResult result = OperationServiceHelper.executeOperate("save", "eceq_equipment_card", new DynamicObject[]{equipmentcard}, null);
System.out.println(); String operationResultErrorInfo = getOperationResultErrorInfos(result);
if (!operationResultErrorInfo.isEmpty() && operationResultErrorInfo!=null){
operationResultErrorInfos = operationResultErrorInfo + operationResultErrorInfos;
System.out.println(number+assetname+"报错信息为:"+operationResultErrorInfos);
}
} }
DynamicObject eceq_equipment = BusinessDataServiceHelper.loadSingle("eceq_equipinfo", new QFilter[]{new QFilter("number", QCP.equals, number)}); DynamicObject eceq_equipment = BusinessDataServiceHelper.loadSingle("eceq_equipinfo", new QFilter[]{new QFilter("number", QCP.equals, number)});
if (eceq_equipment != null) { if (eceq_equipment != null) {
@ -212,6 +219,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
} }
SaveServiceHelper.save(new DynamicObject[]{eceq_equipment}); SaveServiceHelper.save(new DynamicObject[]{eceq_equipment});
} }
System.out.println("总报错信息为:"+operationResultErrorInfos);
} }
} }
@ -281,17 +289,55 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
* @return * @return
*/ */
public static String getCodeRule(DynamicObject data,String number) { public static String getCodeRule(DynamicObject data,String number) {
String archivebillno = null;
//查找编码规则 //查找编码规则
DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)}); DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)});
//编码对象 //编码对象
if (coderule != null) { if (coderule != null) {
CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id")); CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id"));
//生成箱号编码 //生成箱号编码
String archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data); archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data);
} }
return null; if(archivebillno.isEmpty() && archivebillno==null){
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("eceq_equipment_card");
// 调用自动编码规则
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
// 获取单据编码
archivebillno = CodeRuleServiceHelper.getNumber(codeRule, dynamicObject);
}
log.info("生成的设备编号为"+archivebillno);
return archivebillno;
} }
/**
* 获取操作错误信息
* @param operationResult
* @return
*/
private String getOperationResultErrorInfos(OperationResult operationResult){
if(operationResult.isSuccess()){
return StringUtils.EMPTY;
}
List<IOperateInfo> errorInfos = operationResult.getAllErrorOrValidateInfo();
int size = errorInfos.size() + operationResult.getSuccessPkIds().size();
if (size > 1) {
StringBuilder stringBuilder = new StringBuilder();
int i = 0;
for(int len = errorInfos.size(); i < 5 && i < len; ++i) {
stringBuilder.append((errorInfos.get(i)).getMessage());
}
return stringBuilder.toString();
} else if (!errorInfos.isEmpty()) {
OperateErrorInfo errorInfo = (OperateErrorInfo)errorInfos.get(0);
String msg = errorInfo.getMessage() == null ? "" : errorInfo.getMessage();
return msg;
} else{
String msg = operationResult.getMessage() == null ? "" : operationResult.getMessage();
return msg;
}
}
} }
// DynamicObject[] depresplitdetails = BusinessDataServiceHelper.load("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf}); // DynamicObject[] depresplitdetails = BusinessDataServiceHelper.load("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf});