diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/controller/PayBillController.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/controller/PayBillController.java new file mode 100644 index 0000000..6f3b041 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/controller/PayBillController.java @@ -0,0 +1,1137 @@ +package shkd.sys.sys.plugin.api.controller; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType; +import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperateErrorInfo; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.entity.validate.ValidateResult; +import kd.bos.entity.validate.ValidateResultCollection; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.common.custom.annotation.ApiController; +import kd.bos.openapi.common.custom.annotation.ApiPostMapping; +import kd.bos.openapi.common.custom.annotation.ApiRequestBody; +import kd.bos.openapi.common.custom.annotation.ApiResponseBody; +import kd.bos.openapi.common.result.CustomApiResult; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; +import org.apache.commons.lang.StringUtils; +import shkd.sys.sys.plugin.api.model.paybill.Data; +import shkd.sys.sys.plugin.api.model.paybill.PaybillModel; +import shkd.sys.sys.plugin.api.result.CustomerApiResultExt; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; + + +@ApiController(value="PayBillController",desc = "付款单自定义api接口") +public class PayBillController implements Serializable { + + private final static Log logger = LogFactory.getLog(PayBillController.class); + @ApiPostMapping(value = "/gx_paybill_save", desc = "付款单保存提交(共享)") + public CustomApiResult<@ApiResponseBody("返回参数") CustomerApiResultExt> gx_paybill_save + (@NotNull @Valid @ApiRequestBody(value = "入参") PaybillModel dateBean) { + + String entityName="cas_paybill"; + int failCount=0; + int successCount=0; + CustomerApiResultExt resultExt = new CustomerApiResultExt(); + List beanList = dateBean.getData(); + List results = new ArrayList(); + for(int i=0;i errors = new ArrayList(); + CustomerApiResultExt.ResultBean resultBean = new CustomerApiResultExt.ResultBean(); + if(StringUtils.isNotBlank(tranNo)){ + //银行流水不为空,处理 被动付款入账 + // bei_intelpay 被动付款入账 + QFilter filter = new QFilter("billno",QCP.equals,tranNo); + DynamicObject bei_intelpay = BusinessDataServiceHelper.loadSingle("bei_intelpay", new QFilter[]{filter}); + if(null==bei_intelpay){ + errors.add("银行流水["+tranNo+"]不正确,在司库系统找不到对应流水数据"); + resultBean.setBillStatus(false); + resultBean.setBillIndex(i); + resultBean.setErrors(errors); + resultBean.setId(""); + resultBean.setShkd_businessnumber(data.getShkd_businessnumber()); + resultBean.setShkd_businessnumber(data.getShkd_businessid()); + resultBean.setType(""); + results.add(resultBean); + resultExt.setResult(results); + continue; + } + OperateOption option= OperateOption.create(); + option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); // 不执行警告级别校验器 + String opStr="dohand";//提交submit、审核audit,删除delete + OperationResult operationResult = OperationServiceHelper.executeOperate(opStr, entityName, new DynamicObject[]{bei_intelpay}, option); + + }else{ + //无银行流水直接生成付款的 + } + } +// +// for(int i=0;i errors = new ArrayList(); +// CustomerApiResultExt.ResultBean resultBean = new CustomerApiResultExt.ResultBean(); +// int isEx = 0; +// if(StringUtils.isBlank(bussysbillno)) { +// errors.add("业务系统单据ID参数不能为空"); +// } +// filter = new QFilter("shkd_bussysbillno","=",bussysbillno); +// DynamicObject bill = BusinessDataServiceHelper.loadSingle(entityName, new QFilter[]{filter}); +// String billstatus = null; +// if(bill!=null){//单据存在 +// billstatus = bill.get("billstatus").toString(); +// if (!"A".equals(billstatus)){ +// errors.add("业务系统单据ID:"+bussysbillno+"已存在!"); +// ++isEx; +// } +// }else{//单据不存在 +// //新增 +// //创建单据对象 +// bill = BusinessDataServiceHelper.newDynamicObject(entityName); +// } +// bill.set("billno", bussysbillno);//业务单据id +// bill.set("asstacttype", "bd_customer");//往来户类型 +//// if (shkd_bussysbillnoMap.containsKey(bussysbillno)){ +//// errors.add(shkd_bussysbillnoMap.get(bussysbillno)); +//// } +// Long orgid = null; +// String orgname = null; +// String amtprecisionbase = "0"; +// DynamicObject bd_basecurrency = null; +// if(StringUtils.isNotBlank(bizParam.getOrg_number())){ +// DynamicObject bos_org = bos_orgMap.get(bizParam.getOrg_number()); +//// f1 = new QFilter("number","=",bizParam.getOrg_number()); +//// DynamicObject bos_org = BusinessDataServiceHelper.loadSingle("bos_org", "number,taxpayertype", new QFilter[]{f1}); +// if(null==bos_org){ +// errors.add("结算组织编码参数无效!"); +// } +// bill.set("org",bos_org);//结算组织 +// bill.set("recorg",bos_org);//收款组织 +//// bill.set("payorg",org);//付款组织 +// orgid = (Long) bos_org.get("id"); +// orgname = bos_org.get("name").toString(); +// //基础资料,会计账簿 +// DynamicObjectCollection gl_accountbooks = gl_accountbookMap.get(bizParam.getOrg_number()); +//// f1 = new QFilter("baseacctorg.number","=",bos_org.getString("number")); +//// DynamicObject[] gl_accountbooks = BusinessDataServiceHelper.load("bd_accountingsys_base", "id,basecurrrency",new QFilter[]{f1}); +// if(gl_accountbooks != null && gl_accountbooks.size() > 0){ +// DynamicObject gl_accountbook = gl_accountbooks.get(0); +// DynamicObject basecurrency= (DynamicObject) gl_accountbook.get("basecurrrency"); +// f1 = new QFilter("id","=",basecurrency.getPkValue()); +// bd_basecurrency = BusinessDataServiceHelper.loadSingleFromCache("bd_currency","id,amtprecision,priceprecision", new QFilter[]{f1}); +// bill.set("basecurrency",bd_basecurrency);//本位币 +// amtprecisionbase = bd_basecurrency.get("amtprecision").toString();//获取本位币的金额精度 +// }else{ +// errors.add("组织【"+bos_org.getString("number")+"】没有设置核算组织本位币"); +// } +// }else{ +// errors.add("结算组织参数不能为空!"); +// } +// String asstact_number = bizParam.getAsstact_number(); +// if(StringUtils.isBlank(asstact_number)){ +// errors.add("往来户参数不能为空!"); +// }else{ +// //2024-07-11把往来户名称、发票抬头两个字段进行清洗 +// //清洗过程: +// //1、将名称中的所有符号类(类似空格括号逗号这种)的去掉,保留中文和英文字母 +// //2、将名称中的英文字母都转换为小写 +// DynamicObject bd_customer = asstactMap.get(asstact_number); +//// QFilter qFilter = new QFilter("societycreditcode",QCP.equals,asstact_number); +//// DynamicObject bd_customer = QueryServiceHelper.queryOne("bd_customer", "name", qFilter.toArray()); +// if(bd_customer != null){ +// Object name = bd_customer.get("name"); +// if(name != null){ +// String shkd_asstactname = filterSpecialCharacters(name.toString()); +// bill.set("shkd_asstactname",shkd_asstactname); +// } +// } +// } +// billAssitValid(errors, i, bill, asstactMap,bizParam.getAsstact_number(),"asstact");//往来户 +// +// bill.set("billtype",bos_billtype);//单据类型,默认:arfin_salefee_BT_S=销售费用暂估 +// +// Date date = bizParam.getBizdate(); +// if (date == null){ +// errors.add("业务日期不能为空!"); +// } +// bill.set("bizdate",date);//业务日期 +// //2024-04-09应收应付API接口上能不能加个校验,如果单据日期小于当前日期(该组织的已关账期间), +// // 就提示“单据日期XXXX,不允许推送已关账期间单据” +// Date bizdate = bill.getDate("bizdate"); +// DynamicObject currentdate = ar_closeaccountMap.get(bizParam.getOrg_number()); +//// QFilter currentdateqFilter = new QFilter("org.number",QCP.equals,bizParam.getOrg_number()); +//// DynamicObject currentdate = QueryServiceHelper.queryOne("ar_closeaccount", "currentdate", currentdateqFilter.toArray()); +// Date currentdate1 = currentdate.getDate("currentdate"); +// if(bizdate.compareTo(currentdate1)<0){ +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +// String format = sdf.format(bizdate); +// errors.add("单据编码为:"+bussysbillno+",单据日期:"+format+",不允许推送已关账期间单据"); +// } +// Date duedate = bizParam.getDuedate(); +// if (duedate == null){ +// bill.set("duedate",date);//到期日,若不填则默认业务日期 +// }else{ +// bill.set("duedate",duedate);//到期日 +// } +// +// bill.set("bookdate",date); +// bill.set("asstacttype","bd_customer");//往来类型 bd_customer +// +//// f1 = new QFilter("number","=",bizParam.getAsstact_number()); +//// QFilter f4 = new QFilter("societycreditcode", "=", bizParam.getAsstact_number()); +//// QFilter f6 = new QFilter("tx_register_no", "=", bizParam.getAsstact_number());//纳税人识别号 +//// DynamicObject bd_customer = BusinessDataServiceHelper.loadSingle("bd_customer", "id", new QFilter[]{f1.or(f4).or(f6)}); +//// bill.set("asstact",bd_customer);//往来户,默认客户 "Cus-000001" +// +// String shkd_priority = bizParam.getShkd_priority(); +// if(StringUtils.isBlank(shkd_priority)){ +// shkd_priority = "普通"; +// } +// if (!"普通".equals(shkd_priority) && !"加急".equals(shkd_priority)){ +// errors.add("优先级参数错误!"); +// } +// bill.set("shkd_priority", shkd_priority);//优先级 +// +// bill.set("paymode","CREDIT");//付款方式:CREDIT=赊销,CASH=现销 +// // bill.set("paycond","");//收款条件 +// String settlementtype_number = bizParam.getSettlementtype_number(); +// if(StringUtils.isBlank(settlementtype_number)){ +// if (settlementtypeMap.get("01")==null){ +// settlementtypeMap.put("01",settlementtype); +// } +// settlementtype_number = "01"; +// } +// billAssitValid(errors, i, bill, settlementtypeMap,settlementtype_number,"settlementtype");//结算方式 +// +// bill.set("payproperty",ar_payproperty);//款项性质 "1001" +// +// String department_number = bizParam.getDepartment_number(); +// if(StringUtils.isNotBlank(department_number)) { +// billAssitValid(errors, i, bill, departmentMap,department_number,"department");//部门 +// } +// +// +// bill.set("billstatus","A");//单据状态:A 暂存 B 已提交 C 已审核 +// bill.set("remark",bizParam.getRemark());//备注 +// +//// if(StringUtils.isNotBlank(bizParam.getCurrency_number())) { +//// billAssitValid(errors, i, bill, currencyMap,bizParam.getCurrency_number(),"currency");//结算币别 +//// }else { +//// errors.add("第"+i+"张单据,结算币别参数不能为空!"); +//// } +// String amtprecision = "0"; +// DynamicObject currency = null; +// if(StringUtils.isBlank(bizParam.getCurrency_number())) { +// errors.add("第"+i+"张单据,结算币别参数不能为空!"); +// }else{ +// currency = bd_currencyMap.get(bizParam.getCurrency_number()); +//// f1 = new QFilter("number","=",bizParam.getCurrency_number()); +//// currency = BusinessDataServiceHelper.loadSingleFromCache("bd_currency", new QFilter[]{f1}); +// if (currency == null){ +// errors.add("第"+i+"张单据,结算币别参数在系统中不存在!"); +// }else { +// amtprecision = currency.get("amtprecision").toString();//原币金额精度 +// bill.set("currency",currency);//结算币别 +// } +// } +// String shkd_bussTypeOfAgc = bizParam.getShkd_bussTypeOfAgc(); +//// if (shkd_bussTypeOfAgc != null || "".equals(shkd_bussTypeOfAgc)) { +//// if ("进口".equals(shkd_bussTypeOfAgc) || "出口".equals(shkd_bussTypeOfAgc) || "多式联运".equals(shkd_bussTypeOfAgc)) { +//// bill.set("shkd_bussTypeOfAgc", bizParam.getShkd_bussTypeOfAgc());//业务类型 +//// } else { +//// errors.add("第" + i + "张单据,业务类型:" + shkd_bussTypeOfAgc + "参数在系统中不存在"); +//// } +//// } +// if (shkd_bussTypeOfAgc != null && !"".equals(shkd_bussTypeOfAgc)) { +// DynamicObject Shkd_bussTypeOfAgc = bussTypeOfAgcMap.get(shkd_bussTypeOfAgc); +//// filter = new QFilter("number", "=", shkd_bussTypeOfAgc); +//// fgroup = new QFilter("group.number", "=", "YWLX"); +//// QFilter f3 = fgroup.and(filter); +//// DynamicObject Shkd_bussTypeOfAgc = BusinessDataServiceHelper.loadSingle("bos_assistantdata_detail", "id,number,name", new QFilter[]{f3}); +// if (Shkd_bussTypeOfAgc == null) { +// errors.add("第"+i+"张单据,业务类型船代参数错误,请检查!"); +// } +// bill.set("shkd_ywlx", Shkd_bussTypeOfAgc);//业务类型 +// } +// bill.set("exratetable", bd_exratetable);//汇率表 +// BigDecimal exchangerate = bizParam.getExchangerate(); +// if(bizParam.getCurrency_number()!=null && bd_basecurrency.get("number")!=null) { +// if (bizParam.getCurrency_number().equals(bd_basecurrency.get("number"))) { +// exchangerate = new BigDecimal(1); +// } +// } +// if(exchangerate == null || exchangerate.compareTo(BigDecimal.ZERO) == 0){ +// Calendar cal = Calendar.getInstance(); +// cal.setTime(bizParam.getBizdate()); +// int month = cal.get(Calendar.MONTH)+1; +// int year = cal.get(Calendar.YEAR); +// int day = cal.get(Calendar.DAY_OF_MONTH); +// filter = new QFilter("orgcur.number","=",currency.get("number")); +// f1 = new QFilter("cur.number","=",bd_basecurrency.get("number")); +// QFilter ff33 = new QFilter("exctable.number","=","02"); +// QFilter ff11 = new QFilter("Month(effectdate)","=",month); +// QFilter ff22 = new QFilter("Year(effectdate)","=",year); +//// QFilter ff44 = new QFilter("Day(effectdate)",QCP.less_than,day); +// DynamicObject exchangerate1 = BusinessDataServiceHelper.loadSingleFromCache("bd_exrate_tree",new QFilter[]{filter.and(f1).and(ff11).and(ff22).and(ff33)}); +// int effectday = 0; +// if (exchangerate1!=null){ +// Date effectdate = exchangerate1.getDate("effectdate");//获取查询到的汇率日期 +// Calendar calDay = Calendar.getInstance(); +// calDay.setTime(effectdate); +// effectday = calDay.get(Calendar.DAY_OF_MONTH);//查询是几号的汇率 +// } +// if (exchangerate1 == null || effectday > day){//如果当前月份还没有期初汇率,或者查询到的汇率是单据日期之后的汇率,则查询上个月的汇率 +// if (month == 1){//当月份为1月的时候,月份变为12,年份减1 +// month = 12; +// year = year - 1; +// }else{ +// month-=1; +// } +// filter = new QFilter("orgcur.number","=",currency.get("number")); +// f1 = new QFilter("cur.number","=",bd_basecurrency.get("number")); +// ff33 = new QFilter("exctable.number","=","02"); +// ff11 = new QFilter("Month(effectdate)","=",month); +// ff22 = new QFilter("Year(effectdate)","=",year); +// DynamicObject exchangerate2 = BusinessDataServiceHelper.loadSingleFromCache("bd_exrate_tree",new QFilter[]{filter.and(f1).and(ff11).and(ff22).and(ff33)}); +// bill.set("exchangerate", exchangerate2.get("excval"));//汇率 +// bill.set("exratedate", exchangerate2.get("effectdate"));//汇率日期 +// exchangerate = (BigDecimal) exchangerate2.get("excval"); +// }else{ +// bill.set("exchangerate", exchangerate1.get("excval"));//汇率 +// bill.set("exratedate", exchangerate1.get("effectdate"));//汇率日期 +// exchangerate = (BigDecimal) exchangerate1.get("excval"); +// } +// }else { +// bill.set("exchangerate", exchangerate);//汇率 +// bill.set("exratedate", bizParam.getBizdate());//汇率日期 +// } +// +// String shkd_bussysbillno_parent = bizParam.getShkd_bussysbillno_parent(); +//// if(shkd_bussysbillno_parent.contains(";")){ +//// shkd_bussysbillno_parent = shkd_bussysbillno_parent.replaceAll(";",","); +//// } +// if(StringUtils.isNotBlank(shkd_bussysbillno_parent)){ +// if(shkd_bussysbillno_parent.contains(";")){ +// shkd_bussysbillno_parent = shkd_bussysbillno_parent.replaceAll(";",","); +// } +// if (shkd_bussysbillno_parent.length()>255){ +// bill.set("shkd_bussysbillno_parent",shkd_bussysbillno_parent.substring(0,255));//上游业务系统单据ID +// bill.set("shkd_bussysbillno_parent_tag",shkd_bussysbillno_parent);//上游业务系统单据ID +// }else{ +// bill.set("shkd_bussysbillno_parent",shkd_bussysbillno_parent);//上游业务系统单据ID +// bill.set("shkd_bussysbillno_parent_tag",shkd_bussysbillno_parent);//上游业务系统单据ID +// } +// if(shkd_bussysbillno_parent.contains(",")){ +// String[] split = shkd_bussysbillno_parent.split(","); +// for (String s : split) { +// DynamicObject shkd_sourcesys = shkd_bussysbillnoMap.get(s); +//// f1 = new QFilter("shkd_bussysbillno","=",s); +//// DynamicObject shkd_sourcesys = BusinessDataServiceHelper.loadSingle("ar_busbill", "id,billstatus", new QFilter[]{f1}); +// if(null == shkd_sourcesys){ +// errors.add("业务系统来源单据id:"+s+"参数错误!"); +// }else if(!"C".equals(shkd_sourcesys.getString("billstatus"))){ +// errors.add("业务系统来源单据ID:"+s+"未审核"); +// } +// } +// }else{ +// DynamicObject shkd_sourcesys = shkd_bussysbillnoMap.get(shkd_bussysbillno_parent); +//// f1 = new QFilter("shkd_bussysbillno","=",shkd_bussysbillno_parent); +//// DynamicObject shkd_sourcesys = BusinessDataServiceHelper.loadSingle("ar_busbill", "id,billstatus", new QFilter[]{f1}); +// if(null == shkd_sourcesys){ +// errors.add("业务系统来源单据id:"+shkd_bussysbillno_parent+"参数错误!"); +// }else if(!"C".equals(shkd_sourcesys.getString("billstatus"))){ +// errors.add("业务系统来源单据ID:"+shkd_bussysbillno_parent+"未审核"); +// } +// } +// } +// +// bill.set("shkd_bussysbillno",bussysbillno);//业务系统单据ID +// +// String shkd_sourcesysString = bizParam.getSourcesys(); +// if(StringUtils.isBlank(shkd_sourcesysString)){ +// errors.add("来源系统参数不能为空!"); +// } +// if (StringUtils.isNotBlank(shkd_sourcesysString)){ +// billAssitValid(errors, i, bill, shkd_sourcesysMap,shkd_sourcesysString,"shkd_sourcesys");//来源系统 +// } +// +// bill.set("verifystatus","unverify");//核销状态——未核销 +// bill.set("settlestatus","unsettle");//结算状态——全部结算 unsettle(未结算) partsettle(部分结算) settled(全部结算) +// bill.set("createtime",new Date());//制单时间 +// bill.set("creator", bos_user); +// bill.set("quotation",0);//换算方式--默认值(直接汇率)否则冲销单据会没有本位币金额2023.10.25 +// if(bizParam.getShkd_haspaperinvoice()!=null){ +// bill.set("shkd_haspaperinvoice",bizParam.getShkd_haspaperinvoice());//是否包含纸质发票 +// } +// BigDecimal recamount = bizParam.getRecamount(); +// if(null == recamount){ +// errors.add("应收金额参数不能为空!"); +// }else { +// Decimals(errors,i,recamount,amtprecision,recamount.toString(),"recamount");//判断应收金额小数精度 +// } +// bill.set("recamount",recamount);//应收金额 +// BigDecimal pricetotalbase = BigDecimal.ZERO;//如果没传,则表头应付金额(本位币)取分录汇总 +// BigDecimal reclocalamt = bizParam.getReclocalamt(); +// +// +// BigDecimal amount = bizParam.getAmount(); +// if(null == amount){ +// errors.add("金额参数不能为空!"); +// }else { +// Decimals(errors,i,amount,amtprecision,amount.toString(),"amount");//判断金额小数精度 +// } +// bill.set("amount",amount);//金额 +// +// BigDecimal localamt = bizParam.getLocalamt(); +// if(null == localamt && amount != null){ +// localamt = amount.multiply(exchangerate); +// localamt = localamt.stripTrailingZeros().setScale(Integer.parseInt(amtprecisionbase), BigDecimal.ROUND_HALF_UP); +// }else { +// Decimals(errors,i,localamt,amtprecisionbase,localamt.toString(),"localamt");//判断金额(本位币)小数精度 +// } +// bill.set("localamt",localamt);//金额(本位币) +// +// BigDecimal tax = bizParam.getTax(); +// if(null == tax){ +// errors.add("税额参数不能为空!"); +// }else { +// Decimals(errors,i,tax,amtprecision,tax.toString(),"tax");//判断税额小数精度 +// } +// bill.set("tax",tax);//税额 +// +// BigDecimal taxlocalamt = bizParam.getTaxlocalamt(); +// if(null == taxlocalamt && tax != null){ +// taxlocalamt = tax.multiply(exchangerate); +// taxlocalamt = taxlocalamt.stripTrailingZeros().setScale(Integer.parseInt(amtprecisionbase), BigDecimal.ROUND_HALF_UP); +// }else { +// Decimals(errors,i,taxlocalamt,amtprecisionbase,taxlocalamt.toString(),"taxlocalamt");//判断税额(本位币)小数精度 +// } +// bill.set("taxlocamt",taxlocalamt);//税额(本位币) +// +// bill.set("unverifyamount",amount);//未核销金额 +// +// //2024-02-23-表头新增文本字段-发票抬头 +// String shkd_invoicetitle = bizParam.getShkd_invoicetitle();//发票抬头 +// //2024-07-11清洗发票抬头字段,只保留中英文,英文为小写 +// if(StringUtils.isNotBlank(shkd_invoicetitle)){ +// String shkd_invoicetitlename = filterSpecialCharacters(shkd_invoicetitle); +// bill.set("shkd_invoicetitlename",shkd_invoicetitlename);//发票抬头(清洗后) +// } +// bill.set("shkd_invoicetitle",shkd_invoicetitle);//发票抬头 +// +// //2025-7-1 船代轧差 +// Boolean shkd_autorev = bizParam.getShkd_autorev();//自动收款 +// BigDecimal shkd_revamount = bizParam.getShkd_revamount();//收款金额 +// String shkd_revcurrencyno = bizParam.getShkd_revcurrencyno();//收款币别 +// QFilter revcurrencyF1 = new QFilter("number", "=", shkd_revcurrencyno); +// if(shkd_autorev != null && shkd_autorev){ +// if(StringUtils.isNotBlank(shkd_revcurrencyno) && shkd_revamount != null){ +// DynamicObject[] bd_currencyArr = BusinessDataServiceHelper.load("bd_currency", "id,number,name", new QFilter[]{revcurrencyF1}); +// if(bd_currencyArr != null && bd_currencyArr.length > 0){ +// bill.set("shkd_autorev",shkd_autorev);//自动收款 +// bill.set("shkd_revamount",shkd_revamount);//收款金额 +// bill.set("shkd_revcurrency",bd_currencyArr[0]);//收款币别 +// }else{ +// errors.add("自动收款为是时,收款币别编码【"+shkd_revcurrencyno+"】无效!"); +// } +// }else { +// errors.add("自动收款为是时,收款币别和收款金额为必填!"); +// } +// } +// +// //获取单据体集合 +// DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry"); +// entrys.clear();//删除分录 +// //获取单据体的type +// DynamicObjectType type = entrys.getDynamicObjectType(); +// +// +// //获取单据体集合_收款计划 +// DynamicObjectCollection planentitys = bill.getDynamicObjectCollection("planentity"); +// planentitys.clear();//删除分录 +// //获取单据体的type +// DynamicObjectType planentityType = planentitys.getDynamicObjectType(); +// //根据Type创建单据体对象 +// DynamicObject planentityEntry = new DynamicObject(planentityType); +// +// BigDecimal bd = new BigDecimal(0); +// BigDecimal bdloc = new BigDecimal(0); +// StringBuffer sb = new StringBuffer(); +// List bizParamEntrys= bizParam.getEntry(); +// BigDecimal sum = new BigDecimal("0"); +// StringBuffer entryno = new StringBuffer(); +// String entryId = null; +// String billId = null; +// if (bill!= null){ +// billId = bill.get("billno").toString(); +// } +// //2024-11-07-优化代码 +// Set bussysentrynoSet = new HashSet(); +// Set shkdBussysentrynoSet = new HashSet(); +// +// for(int i1=0;i10 && bussysentryno_number!= null){ +// if (entryno.toString().contains(bussysentryno_number)){ +// errors.add("第"+i1+"条分录id:"+bussysentryno_number+"已存在"); +// } +// } +// entryno.append(bussysentryno_number+","); +// +// entry.set("shkd_bussysentryno",bussysentryno_number);//业务系统单据分录id +// +// String shkdBussysentryno = bizParamEntry.getShkd_bussysentryno(); +// if(StringUtils.isNotBlank(shkdBussysentryno)){ +// shkdBussysentrynoSet.add(shkdBussysentryno); +//// else if (sb.toString().contains(bizParamEntry.getShkd_bussysentryno())){ +//// errors.add("第"+i+"张单据,第"+i1+"条分录,业务系统来源单据分录id:"+bizParamEntry.getShkd_bussysentryno()+"重复"); +//// } +// entry.set("shkd_bussysentryno_number",bizParamEntry.getShkd_bussysentryno());//业务系统来源单据分录id +// sb.append(bizParamEntry.getShkd_bussysentryno()+","); +// } +// if(StringUtils.isNotBlank(bizParamEntry.getCosttype_number())){ +// assitValid(errors, i, entry, shkd_costtypeMap,bizParamEntry.getCosttype_number(),"shkd_costtype");//成本类别 +// }else{ +// entry.set("shkd_costtype",shkd_costtype);//成本类别(运输成本)为空则传默认值 +// } +// +// if (StringUtils.isNotBlank(bizParamEntry.getRealcustomer_number())){ +// assitValid(errors, i, entry, asstactMap,bizParamEntry.getRealcustomer_number(),"shkd_realcustomer");//真实客户 +// }else{ +// entry.set("shkd_realcustomer",asstactMap.get(asstact_number));//如果不传,则默认传单据头的 +// } +// if(StringUtils.isNotBlank(bizParamEntry.getProduceexpence_number())) { +// assitValid(errors, i1, entry, shkd_produceexpenceMap,bizParamEntry.getProduceexpence_number(),"shkd_produceexpence");//安全生产费用 +// } +// if(StringUtils.isNotBlank(bizParamEntry.getOtherrecpay_number())) { +// assitValid(errors, i1, entry, shkd_otherrecpayMap,bizParamEntry.getOtherrecpay_number(),"shkd_otherrecpay");//其他应收暂付 +// } +// if(StringUtils.isNotBlank(bizParamEntry.getPayrec_number())) { +// assitValid(errors, i1, entry, shkd_payrecMap,bizParamEntry.getPayrec_number(),"shkd_payrec");//其他应付暂收 +// } +// if(StringUtils.isNotBlank(bizParamEntry.getTaxpolicy_number())) { +// assitValid(errors, i1, entry, shkd_taxpolicyMap,bizParamEntry.getTaxpolicy_number(),"shkd_taxpolicy");//税收政策 +// } +// if(StringUtils.isNotBlank(bizParamEntry.getShkd_tax())) { +// assitValid(errors, i1, entry, shkd_taxrateidMap,bizParamEntry.getShkd_tax(),"shkd_tax");//税率 +// } +// entry.set("shkd_checkcode",bizParamEntry.getShkd_checkcode());//对账码 +// +// String e_remark = bizParamEntry.getE_remark(); +// entry.set("e_remark",e_remark);//备注 +// +// if(bizParam.getRecamount()==null || "0".equals(bizParam.getRecamount())){ +// BigDecimal eRecamount = entry.getBigDecimal("e_recamount"); +// bd = bd.add(eRecamount); +// } +// if(bizParam.getReclocalamt()==null || "0".equals(bizParam.getReclocalamt())){ +// BigDecimal eReclocalamt = entry.getBigDecimal("e_reclocalamt"); +// bdloc = bdloc.add(eReclocalamt); +// } +// entry.set("e_invoicedamt", 0);//关联开票金额 =应收金额 +// entry.set("e_invoicedlocalamt",0);//关联开票金额本位币 +// entry.set("e_uninvoicedamt",e_recamount);//未关联开票金额 +// entry.set("e_uninvoicedlocalamt",entry.get("e_invoicedamt"));//未关联开票金额本位币 +// entry.set("e_invoicedqty",0);//关联开票数量=数量 +// entry.set("e_uninvoicedqty",entry.get("e_quantity"));//未关联开票数量=数量 +// +// entry.set("e_unlockamt", e_recamount);//未锁定金额=应收金额 +// entry.set("e_lockedamt",0);//已锁定金额 +// +// entry.set("e_unverifyqty",entry.get("e_quantity"));//未核销数量=数量 +// entry.set("e_verifiedqty",0);//已核销数量=0 +// entry.set("e_verifiedamt",0);//已核销金额 +// +// entry.set("e_unsettleamt", e_recamount);//未结算金额 +// entry.set("e_unsettlelocalamt",entry.get("e_reclocalamt"));//未结算金额本位币=应收金额本位币 +// entry.set("e_settledamt",0);//已结算金额=应收金额 +// entry.set("e_settledlocalamt",0);//已结算金额(本位币) +// +// entry.set("e_amount", bizParamEntry.getE_amount());//金额=应收金额-税额-调整金额 +// entry.set("e_localamt",e_localamt);//金额本位币=金额*汇率 +// entry.set("e_confirmedqty",0);//已确认数量=数量 +// entry.set("e_unconfirmqty",entry.get("e_quantity"));//未确认数量=数量 +// entry.set("e_confirmedamt", 0);//已确认金额 +// entry.set("e_unconfirmamt", entry.getBigDecimal("e_amount"));//未确认金额 已确认金额+未确认金额=金额 +// entry.set("e_unverifyamt", entry.getBigDecimal("e_amount"));//未核销金额=金额 +// entry.set("e_verifiedamt", 0);//已核销金额=金额 +// //添加到单据体集合 +// entrys.add(entry); +// } +// //分录结束 +// //2024-11-07-优化代码 +// filter = new QFilter("entry.shkd_bussysentryno",QCP.in,bussysentrynoSet); +// DynamicObjectCollection ar_finarbills = QueryServiceHelper.query(entityName, "id,billno,entry.shkd_bussysentryno", new QFilter[]{filter}); +// if(ar_finarbills.size()>0){ +// for (DynamicObject ar_finarbill : ar_finarbills) { +// String billno = ar_finarbill.getString("billno"); +// String shkd_bussysentryno = ar_finarbill.getString("entry.shkd_bussysentryno"); +// if(!billId.equals(billno)){ +// errors.add("业务系统单据分录ID:"+shkd_bussysentryno+"已存在!"); +// } +// } +// } +// f1 = new QFilter("entry.shkd_bussysentryno",QCP.in,shkdBussysentrynoSet); +// DynamicObjectCollection ar_busbilles = QueryServiceHelper.query("ar_busbill", "id,entry.shkd_bussysentryno", new QFilter[]{f1}); +// if(ar_busbilles.size() != shkdBussysentrynoSet.size()){ +// Set ar_busbillSet = new HashSet(); +// for (DynamicObject ar_busbill : ar_busbilles) { +// ar_busbillSet.add(ar_busbill.getString("entry.shkd_bussysentryno")); +// } +// shkdBussysentrynoSet.removeAll(ar_busbillSet); +// if(shkdBussysentrynoSet.size() >0){ +// for (String s : shkdBussysentrynoSet) { +// errors.add("业务系统来源单据分录id:"+s+"参数错误!"); +// } +// } +// } +// //判断计划行应收金额和应收金额(本位币) +// if(bizParam.getReclocalamt()!=null || !"0".equals(bizParam.getReclocalamt())){ +// bdloc = bizParam.getReclocalamt(); +// } +// if(bizParam.getRecamount()!=null || !"0".equals(bizParam.getRecamount())){ +// bd = bizParam.getRecamount(); +// } +// if(null == reclocalamt && recamount != null){ +// reclocalamt = pricetotalbase; +// }else { +// Decimals(errors,i,reclocalamt,amtprecisionbase,reclocalamt.toString(),"reclocalamt");//判断应收金额(本位币)小数精度 +// } +// bill.set("reclocalamt",reclocalamt);//应收金额(本位币) +// bill.set("billsrctype",1); +// planentityEntry.set("planduedate",bill.get("duedate")); +// planentityEntry.set("plansettletype",bill.get("settlementtype")); +// planentityEntry.set("planpricetax",bd);//计划行应收金额 +// planentityEntry.set("planpricetaxloc",bdloc);//计划行应收金额本位币 +// planentityEntry.set("unplanlockamt",planentityEntry.get("planpricetax"));//未锁定金额=应收 +// planentityEntry.set("unplansettleamt",planentityEntry.get("planpricetax"));//未结算金额=应收 +// planentityEntry.set("unplansettlelocamt",planentityEntry.get("planpricetaxloc"));//未结算金额本位币=应收本位币 +// planentityEntry.set("plansettledlocamt",0);//已结算本位币 +// planentityEntry.set("planlockedamt",0);//已锁定金额 +// planentityEntry.set("plansettledamt",0);//已结算金额 +// planentitys.add(planentityEntry); +// +// if (bizParam.getAmount()!= null){ +// if (sum.compareTo(bizParam.getAmount())!=0){ +// errors.add("分录总金额与表头金额不相等,请检查!"); +// } +// } +// //2024-01-24-应收应付单的接口上,做应该默认值处理,默认都是录入总价 +// bill.set("ispricetotal",true); +// //todo:处理业务系统传附件业务逻辑 +//// ApiLogUtils apiLogUtils = new ApiLogUtils(); +//// apiLogUtils.insertApiLog(bill,errors);//插入日志 +// if(errors.size()==0) {//单据赋值成功 +// OperateOption option= OperateOption.create(); +// String billid = "0"; +// billid = bill.get("id").toString(); +// String billno = bill.get("billno").toString(); +// if (!"0".equals(billid)){ +// bill.get("id").toString(); +// QFilter qFilter = new QFilter("finterid",QCP.equals,billid); +// DynamicObject[] bos_attachments = BusinessDataServiceHelper.load("bos_attachment","id", new QFilter[]{qFilter}); +// if (bos_attachments != null){ +// for (DynamicObject bos_attachment : bos_attachments) { +// OperationServiceHelper.executeOperate("delete", "bos_attachment", new DynamicObject[]{bos_attachment}, option); +// } +// } +// } +// option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); // 不执行警告级别校验器 +// String opStr="save";//提交submit、审核audit,删除delete +// OperationResult operationResult = OperationServiceHelper.executeOperate(opStr, entityName, new DynamicObject[]{bill}, option); +// billid = bill.get("id").toString(); +// if(operationResult.isSuccess()) { +// resultBean.setId(billid); +// resultBean.setNumber(billno); +// //循环遍历每个附件内容 +// List attachment = bizParam.getAttachment(); +// if (null!=attachment && attachment.size() > 0) { +//// // 单个附件面板中所有附件的信息 +//// List> attachments = new ArrayList>(); +//// // 单个附件的信息 +//// Map attachmentInfo = null; +// +// StringBuffer uid = new StringBuffer(); +// uid.append("rc-upload-").append(new Date().getTime()).append("-"); +// int index = (int) (1 + Math.random() * 10); +// //循环附件参数 +// for (int j = 0; j < attachment.size(); j++) { +// AttachmentBean attachmentBean = attachment.get(j); +// +// String attachementname = attachmentBean.getAttachementname(); +// BigDecimal attachementsize = attachmentBean.getAttachementsize(); +// String attachementurl = attachmentBean.getAttachementurl(); +// +//// attachmentInfo = new HashMap(); +//// attachmentInfo.put("entityNum", "attachmentpanel"); +//// attachmentInfo.put("name", attachementname); +//// attachmentInfo.put("url", attachementurl); +//// attachmentInfo.put("size", attachementsize); +//// attachmentInfo.put("uid", uid.toString() + index++); +// String uid1 = uid.toString() + index++; +// Map uploadres = null; +// try { +// uploadres = AttachmentFileUtil.saveUrlFile2Attchment(uid1,entityName, billid, attachementurl, attachementname, attachementsize.toString(), "attachmentpanel"); +// }catch (Exception ee1){ +// errors.add("第"+(j+1)+"条附件信息处理错误,上传失败!失败原因:"+uploadres.get("msg")+ee1); +// } +// if(uploadres.get("isSuccess")!="true"){ +// errors.add("第"+(j+1)+"条附件信息处理错误,上传失败!失败原因:"+uploadres.get("msg")); +// } +// } +// } +//// 附件上传成功 +//// apiLogUtils.updateApiLog(bill,errors);//修改日志 +// if(errors.size()==0){ +// String srcbillno = bill.getString("shkd_bussysbillno_parent_tag"); +// if(null!=srcbillno && !"".equals(srcbillno)){ +// if (srcbillno.contains(";")){ +// srcbillno = srcbillno.replaceAll(";",","); +// } +// List srcbillnoList = new ArrayList(); +// if(srcbillno.contains(",")){ +// String[] split = srcbillno.split(","); +// for (String s : split) { +// srcbillnoList.add(s); +// } +// }else{ +// srcbillnoList.add(srcbillno); +// } +// //上游单据 +// QFilter filter1 = new QFilter("isadjust" ,"=",false); +// QFilter filter2 = new QFilter("shkd_bussysbillno" ,"in",srcbillnoList); +// DynamicObject[] ar_busbills = BusinessDataServiceHelper.load("ar_busbill", "id",new QFilter[]{filter1,filter2}); +// StringBuffer sourcebillnoss = new StringBuffer(); +// StringBuffer sourcebillidss = new StringBuffer(); +// List srcbills = new ArrayList(); +// for (DynamicObject ar_busbill1 : ar_busbills) { +// DynamicObject ar_busbill = BusinessDataServiceHelper.loadSingleFromCache(ar_busbill1.get("id"), "ar_busbill"); +// if (null != ar_busbill && "预估".equals(ar_busbill.getString("shkd_ifestimate"))) { +// //测试表头标准字段不赋值是否还能自动建立关联关系 +// bill.set("sourcebilltype", "ar_busbill");//源单类型 +//// if (sourcebillnoss.length() > 0 && sourcebillidss.length() > 0) { +//// bill.set("sourcebillno", sourcebillnoss.append("," + ar_busbill.get("billno").toString()));//源单编码 +//// bill.set("sourcebilltype", "ar_busbill");//源单类型 +////// bill.set("sourcebillid", sourcebillidss.append("," + ar_busbill.get("id")));//源单id +//// } else { +//// bill.set("sourcebillno", ar_busbill.get("billno").toString());//源单编码 +//// bill.set("sourcebilltype", "ar_busbill");//源单类型 +//// bill.set("sourcebillid", ar_busbill.get("id"));//源单id +//// sourcebillnoss.append(ar_busbill.get("billno").toString()); +//// sourcebillidss.append(ar_busbill.get("id")); +//// } +// DynamicObjectCollection ar_busbillEntrys = ar_busbill.getDynamicObjectCollection("entry"); +// for (DynamicObject ar_busbillEntry : ar_busbillEntrys) { +// for (DynamicObject billentry : entrys) { +// String srcentryno = billentry.getString("shkd_bussysentryno_number"); +// if (srcentryno.equals(ar_busbillEntry.getString("shkd_bussysentryno"))) { +// billentry.set("e_srcid", ar_busbill.getPkValue());//源单id +// billentry.set("e_srcentryid", ar_busbillEntry.getPkValue());//源单分录id +// } +// } +// } +// srcbills.add(ar_busbill); +// } +// } +// AutoFixLinkHelp linkSample = new AutoFixLinkHelp(); +// String ss = linkSample.linkSourceRow(bill, srcbills, "ar_finarbill", "entry", +// "ar_busbill", "", "entry"); +// if(!"1".equals(ss)){ +// errors.add("与暂估应收单关联失败,请检查业务系统来源单据id与业务系统来源单据分录id!"); +// } +// } +//// apiLogUtils.updateApiLog(bill,errors);//修改日志 +// if(errors.size()==0){ +// //提交当前单据 +// OperationResult operationResult2 = OperationServiceHelper.executeOperate("submit", entityName, new DynamicObject[]{bill},option); +// if(operationResult2.isSuccess()){ +// //提交成功 +// resultBean.setBillStatus(true); +// successCount++; +// }else{ +// //提交失败 +// String message = operationResult2.getMessage(); +// if(message.contains("暂估应收单已下推数量不得超过数量")){ +// errors.add(message); +// } +// OperationServiceHelper.executeOperate("delete", entityName, new DynamicObject[]{bill}, option); +// ValidateResultCollection validateResult = operationResult2.getValidateResult(); +// for (int j = 0; j < validateResult.errorSize(); j++) { +// List validateErrors = validateResult.getValidateErrors(); +// for (int k = 0; k < validateErrors.size(); k++) { +// ValidateResult errinfo = validateErrors.get(k); +// List allErrorInfo = errinfo.getAllErrorInfo(); +// for (int l = 0; l < allErrorInfo.size(); l++) { +// errors.add(allErrorInfo.get(l).getMessage()); +// } +// } +// } +// resultBean.setErrors(errors); +// resultBean.setBillStatus(false); +// failCount++; +// } +// }else{ +// OperationServiceHelper.executeOperate("delete", entityName, new DynamicObject[]{bill}, option); +// failCount++; +// resultBean.setErrors(errors); +// resultBean.setBillStatus(false); +// } +// }else{ +//// 附件上传失败——删除暂存单据 +// OperationResult delete = OperationServiceHelper.executeOperate("delete", entityName, new DynamicObject[]{bill}, option); +// System.out.println("删除单据是否成功:"+delete.isSuccess()); +// failCount++; +// resultBean.setErrors(errors); +// resultBean.setBillStatus(false); +// } +// resultBean.setNumber(bussysbillno); +// resultBean.setBillIndex(i); +// resultBean.setBillNo(bussysbillno); +// resultBean.setType(result_type); +// results.add(resultBean); +// resultExt.setResult(results); +// }else{//单据保存失败 +// ValidateResultCollection validateResult = operationResult.getValidateResult(); +// for (int j = 0; j < validateResult.errorSize(); j++) { +// List validateErrors = validateResult.getValidateErrors(); +// for (int k = 0; k < validateErrors.size(); k++) { +// ValidateResult errinfo = validateErrors.get(k); +// List allErrorInfo = errinfo.getAllErrorInfo(); +// for (int l = 0; l < allErrorInfo.size(); l++) { +// errors.add(allErrorInfo.get(l).getMessage()); +// } +// } +// } +// resultBean.setBillStatus(false); +// resultBean.setBillIndex(i); +// resultBean.setErrors(errors); +// resultBean.setId(""); +// resultBean.setNumber(bussysbillno); +// resultBean.setBillNo(bussysbillno); +// resultBean.setType(result_type); +// results.add(resultBean); +// resultExt.setResult(results); +// operationResult.setMessage(operationResult.getMessage()); +// failCount++; +//// apiLogUtils.updateApiLog(bill,errors);//修改日志 +// } +// }else{//单据赋值有错误信息 +// failCount++; +// resultBean.setBillIndex(i); +// resultBean.setId(bill.getString("id")); +// resultBean.setNumber(bill.getString("billno")); +// resultBean.setErrors(errors); +// resultBean.setBillNo(bussysbillno); +// if(isEx>0){ +// resultBean.setIsExist("success"); +// }else{ +// resultBean.setIsExist("false"); +// } +// results.add(resultBean); +// resultExt.setResult(results); +// } +// } + resultExt.setFailCount(failCount); + resultExt.setSuccessCount(successCount); + return CustomApiResult.success(resultExt); + } + + +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Data.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Data.java new file mode 100644 index 0000000..7d600d2 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Data.java @@ -0,0 +1,309 @@ +/** + * Copyright 2026 bejson.com + */ +package shkd.sys.sys.plugin.api.model.paybill; +import kd.bos.openapi.common.custom.annotation.ApiModel; +import kd.bos.openapi.common.custom.annotation.ApiParam; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * Auto-generated: 2026-01-20 18:48:11 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@ApiModel +public class Data implements Serializable { + + @ApiParam(value = "", example = "147",position = 1) + private Date bizdate; + @ApiParam(value = "", example = "") + private String payeetype; + @ApiParam(value = "", example = "") + private String description; + @ApiParam(value = "", example = "") + private String usage; + @ApiParam(value = "", example = "") + private String recaccbankname; + @ApiParam(value = "", example = "") + private String recbanknumber; + @ApiParam(value = "", example = "") + private String payeename; + @ApiParam(value = "", example = "") + private String payeeformid; + @ApiParam(value = "", example = "") + private String payeebanknum; + @ApiParam(value = "", example = "") + private String payeebankname; + @ApiParam(value = "", example = "") + private String payeenumber; + @ApiParam(value = "", example = "") + private String currency_number; + @ApiParam(value = "", example = "") + private String org_number; + @ApiParam(value = "", example = "") + private String payeracctbank_number; + @ApiParam(value = "", example = "") + private String payeebank_number; + @ApiParam(value = "", example = "") + private String settletype_number; + @ApiParam(value = "", example = "") + private String paymentchannel; + @ApiParam(value = "", example = "") + private String paymenttype_number; + @ApiParam(value = "", example = "") + private String basecurrency_number; + @ApiParam(value = "", example = "") + private String billtype_number; + @ApiParam(value = "", example = "") + private String sourcetype; + @ApiParam(value = "", example = "") + private String openorg_number; + @ApiParam(value = "", example = "") + private String shkd_businessid; + @ApiParam(value = "", example = "") + private String shkd_businessnumber; + @ApiParam(value = "", example = "") + private String shkd_businessname; + @ApiParam(value = "", example = "") + private String billstatus; + @ApiParam(value = "", example = "") + private boolean ispersonpay; + @ApiParam(value = "", example = "") + private String paymentidentify_number; + @ApiParam(value = "", example = "") + private String settletnumber; + @ApiParam(value = "", example = "") + private String tranNo; + @ApiParam(value = "", example = "") + private Date expectdate; + @ApiParam(value = "", example = "") + private List entry; + public void setBizdate(Date bizdate) { + this.bizdate = bizdate; + } + public Date getBizdate() { + return bizdate; + } + + public void setPayeetype(String payeetype) { + this.payeetype = payeetype; + } + public String getPayeetype() { + return payeetype; + } + + public void setDescription(String description) { + this.description = description; + } + public String getDescription() { + return description; + } + + public void setUsage(String usage) { + this.usage = usage; + } + public String getUsage() { + return usage; + } + + public void setRecaccbankname(String recaccbankname) { + this.recaccbankname = recaccbankname; + } + public String getRecaccbankname() { + return recaccbankname; + } + + public void setRecbanknumber(String recbanknumber) { + this.recbanknumber = recbanknumber; + } + public String getRecbanknumber() { + return recbanknumber; + } + + public void setPayeename(String payeename) { + this.payeename = payeename; + } + public String getPayeename() { + return payeename; + } + + public void setPayeeformid(String payeeformid) { + this.payeeformid = payeeformid; + } + public String getPayeeformid() { + return payeeformid; + } + + public void setPayeebanknum(String payeebanknum) { + this.payeebanknum = payeebanknum; + } + public String getPayeebanknum() { + return payeebanknum; + } + + public void setPayeebankname(String payeebankname) { + this.payeebankname = payeebankname; + } + public String getPayeebankname() { + return payeebankname; + } + + public void setPayeenumber(String payeenumber) { + this.payeenumber = payeenumber; + } + public String getPayeenumber() { + return payeenumber; + } + + public void setCurrency_number(String currency_number) { + this.currency_number = currency_number; + } + public String getCurrency_number() { + return currency_number; + } + + public void setOrg_number(String org_number) { + this.org_number = org_number; + } + public String getOrg_number() { + return org_number; + } + + public void setPayeracctbank_number(String payeracctbank_number) { + this.payeracctbank_number = payeracctbank_number; + } + public String getPayeracctbank_number() { + return payeracctbank_number; + } + + public void setPayeebank_number(String payeebank_number) { + this.payeebank_number = payeebank_number; + } + public String getPayeebank_number() { + return payeebank_number; + } + + public void setSettletype_number(String settletype_number) { + this.settletype_number = settletype_number; + } + public String getSettletype_number() { + return settletype_number; + } + + public void setPaymentchannel(String paymentchannel) { + this.paymentchannel = paymentchannel; + } + public String getPaymentchannel() { + return paymentchannel; + } + + public void setPaymenttype_number(String paymenttype_number) { + this.paymenttype_number = paymenttype_number; + } + public String getPaymenttype_number() { + return paymenttype_number; + } + + public void setBasecurrency_number(String basecurrency_number) { + this.basecurrency_number = basecurrency_number; + } + public String getBasecurrency_number() { + return basecurrency_number; + } + + public void setBilltype_number(String billtype_number) { + this.billtype_number = billtype_number; + } + public String getBilltype_number() { + return billtype_number; + } + + public void setSourcetype(String sourcetype) { + this.sourcetype = sourcetype; + } + public String getSourcetype() { + return sourcetype; + } + + public void setOpenorg_number(String openorg_number) { + this.openorg_number = openorg_number; + } + public String getOpenorg_number() { + return openorg_number; + } + + public void setShkd_businessid(String shkd_businessid) { + this.shkd_businessid = shkd_businessid; + } + public String getShkd_businessid() { + return shkd_businessid; + } + + public void setShkd_businessnumber(String shkd_businessnumber) { + this.shkd_businessnumber = shkd_businessnumber; + } + public String getShkd_businessnumber() { + return shkd_businessnumber; + } + + public void setShkd_businessname(String shkd_businessname) { + this.shkd_businessname = shkd_businessname; + } + public String getShkd_businessname() { + return shkd_businessname; + } + + public void setBillstatus(String billstatus) { + this.billstatus = billstatus; + } + public String getBillstatus() { + return billstatus; + } + + public void setIspersonpay(boolean ispersonpay) { + this.ispersonpay = ispersonpay; + } + public boolean getIspersonpay() { + return ispersonpay; + } + + public void setPaymentidentify_number(String paymentidentify_number) { + this.paymentidentify_number = paymentidentify_number; + } + public String getPaymentidentify_number() { + return paymentidentify_number; + } + + public void setSettletnumber(String settletnumber) { + this.settletnumber = settletnumber; + } + public String getSettletnumber() { + return settletnumber; + } + + public void setTranNo(String tranNo) { + this.tranNo = tranNo; + } + public String getTranNo() { + return tranNo; + } + + public void setExpectdate(Date expectdate) { + this.expectdate = expectdate; + } + public Date getExpectdate() { + return expectdate; + } + + public void setEntry(List entry) { + this.entry = entry; + } + public List getEntry() { + return entry; + } + +} \ No newline at end of file diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Entry.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Entry.java new file mode 100644 index 0000000..9482310 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/Entry.java @@ -0,0 +1,56 @@ +/** + * Copyright 2026 bejson.com + */ +package shkd.sys.sys.plugin.api.model.paybill; +import kd.bos.openapi.common.custom.annotation.ApiModel; +import kd.bos.openapi.common.custom.annotation.ApiParam; + +import java.util.Date; + +/** + * Auto-generated: 2026-01-20 18:48:11 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@ApiModel +public class Entry { + + @ApiParam(value = "", example = "") + private int seq; + @ApiParam(value = "", example = "") + private String e_paymenttype_number; + @ApiParam(value = "", example = "") + private String e_payableamt; + @ApiParam(value = "", example = "") + private Date shkd_jhkm_number; + + public void setSeq(int seq) { + this.seq = seq; + } + public int getSeq() { + return seq; + } + + public void setE_paymenttype_number(String e_paymenttype_number) { + this.e_paymenttype_number = e_paymenttype_number; + } + public String getE_paymenttype_number() { + return e_paymenttype_number; + } + + public void setE_payableamt(String e_payableamt) { + this.e_payableamt = e_payableamt; + } + public String getE_payableamt() { + return e_payableamt; + } + + public void setShkd_jhkm_number(Date shkd_jhkm_number) { + this.shkd_jhkm_number = shkd_jhkm_number; + } + public Date getShkd_jhkm_number() { + return shkd_jhkm_number; + } + +} \ No newline at end of file diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/PaybillModel.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/PaybillModel.java new file mode 100644 index 0000000..3bece1f --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/model/paybill/PaybillModel.java @@ -0,0 +1,29 @@ +/** + * Copyright 2026 bejson.com + */ +package shkd.sys.sys.plugin.api.model.paybill; +import kd.bos.openapi.common.custom.annotation.ApiModel; +import kd.bos.openapi.common.custom.annotation.ApiParam; + +import java.io.Serializable; +import java.util.List; + +/** + * Auto-generated: 2026-01-20 18:48:11 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@ApiModel +public class PaybillModel implements Serializable { + + @ApiParam(value = "集合", example = "") + private List data; + public void setData(List data) { + this.data = data; + } + public List getData() { + return data; + } + +} \ No newline at end of file diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/result/CustomerApiResultExt.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/result/CustomerApiResultExt.java new file mode 100644 index 0000000..8ca954f --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/result/CustomerApiResultExt.java @@ -0,0 +1,150 @@ +package shkd.sys.sys.plugin.api.result; + +import kd.bos.openapi.common.custom.annotation.ApiModel; +import kd.bos.openapi.common.custom.annotation.ApiParam; + +import java.io.Serializable; +import java.util.List; + +@ApiModel + public class CustomerApiResultExt implements Serializable { + @ApiParam("操作失败数量") + private int failCount; + @ApiParam("操作成功数量") + private int successCount; + @ApiParam("返回结果") + private List result; + + public int getFailCount() { + return failCount; + } + + public void setFailCount(int failCount) { + this.failCount = failCount; + } + + public int getSuccessCount() { + return successCount; + } + + public void setSuccessCount(int successCount) { + this.successCount = successCount; + } + + public List getResult() { + return result; + } + + public void setResult(List result) { + this.result = result; + } + + @ApiModel + public static class ResultBean implements Serializable { + + + /** + * billIndex : 0 + * billStatus : true + * errors : [] + * id : 2516165994813847552 + * keys : {"id":"2516165994813847552"} + * number : CQ-XX-000001 + * type : Add + */ + @ApiParam("传入参数业中务系统单据唯一标识") + private String shkd_businessid; + @ApiParam("传入参数业中务系统单据唯一标识") + private String shkd_businessnumber; + @ApiParam("传入参数data数组下标位") + private int billIndex; + @ApiParam("单据处理结果成功/失败") + private boolean billStatus; + @ApiParam("返回的苍穹单据id,唯一值") + private String id; + @ApiParam("返回的苍穹单据编号") + private String billno; + @ApiParam("结果数据") + private String type; + @ApiParam("单据已存在是否返回成功") + private String isExist; + + @ApiParam("错误校验提示内容详细") + private List errors; + + public int getBillIndex() { + return billIndex; + } + + public void setBillIndex(int billIndex) { + this.billIndex = billIndex; + } + + public boolean isBillStatus() { + return billStatus; + } + + public void setBillStatus(boolean billStatus) { + this.billStatus = billStatus; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + + public List getErrors() { + return errors; + } + + public void setErrors(List errors) { + this.errors = errors; + } + + public String getIsExist() { + return isExist; + } + + public void setIsExist(String isExist) { + this.isExist = isExist; + } + + public String getShkd_businessid() { + return shkd_businessid; + } + public void setShkd_businessid(String shkd_businessid) { + this.shkd_businessid = shkd_businessid; + } + + public String getShkd_businessnumber() { + return shkd_businessnumber; + } + public void setShkd_businessnumber(String shkd_businessnumber) { + this.shkd_businessnumber = shkd_businessnumber; + } + + public String getBillno() { + return billno; + } + public void setBillno(String billno) { + this.billno = billno; + } + + } + + +}