diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java new file mode 100644 index 0000000..76cf8c5 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java @@ -0,0 +1,150 @@ +package zcgj.zcdev.zcdev.fs.plugin.common; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; +import kd.bos.openapi.common.result.OpenApiResult; +import kd.bos.openapi.common.util.OpenApiSdkUtil; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import zcgj.zcdev.zcdev.fs.utils.AccountRecord; +import zcgj.zcdev.zcdev.fs.utils.BalanceQueryParamApi; + +import java.lang.reflect.Type; +import java.util.*; + +public class AssistbalanceAutoData { + + public static void getData(){ + String[] selectorsArray = new String[]{"beginlocal", "endlocal", "yeardebitfor","yearcreditfor","debitlocal","creditlocal"}; + + QFilter filteraccountTable = new QFilter("number", QCP.equals, "0003"); + DynamicObject accountTableLoad = BusinessDataServiceHelper.loadSingle("bd_accounttable", "id", new QFilter[]{filteraccountTable}); + + QFilter number = new QFilter("fisaccounting", "=", "1"); + QFilter structure = new QFilter("structure.longnumber", QCP.like, "10000000!10006431%"); + QFilter isleaf = new QFilter("structure.isleaf", QCP.equals, true); + DynamicObject[] load = BusinessDataServiceHelper.load("bos_org", "id,structure.longnumber,structure.view", new QFilter[]{number, structure,isleaf}); + + DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccount", "zcgj_account", new QFilter[]{}); + Set accountNumber = new HashSet<>(); + for (DynamicObject dynamicObject : accountConf) { + accountNumber.add(dynamicObject.getDynamicObject("zcgj_account").getString("number")); + } + + List orgIds = new ArrayList<>(); + Map orgNumberMap = new HashMap<>(); + for (int i = 0; i < load.length; i++) { + DynamicObject dynamicObject = load[i]; + orgNumberMap.put(dynamicObject.getString("number"), dynamicObject); + orgIds.add(dynamicObject.getLong("id")); + } + + + //查询组织下对应的当前期间数据 + DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", + "org,curperiod", + new QFilter[]{new QFilter("enable", QCP.equals, Boolean.TRUE). + and("status", QCP.equals, "C").and("org.id", QCP.in, orgIds)}); + /*Map orgByCurperiodMap = + Arrays.stream(orgByCurperiod).collect(Collectors.toMap( + i -> i.getLong("org.id"), + i -> i));*/ + Map orgByCurperiodMap = new HashMap<>(); + for (DynamicObject dynamicObject : orgByCurperiod) { + orgByCurperiodMap.put(dynamicObject.getLong("org.id"), dynamicObject); + } + + //清除数据 + //DeleteServiceHelper.delete("zcgj_rpt_assistbalance",new QFilter[]{}); + List sqlparams = new ArrayList<>(); + Object[] sqlparam = new Object[] { false }; + sqlparams.add(sqlparam); + DB.executeBatch(DBRoute.of("fi"), + "update tk_zcgj_rpt_assistbalance set fk_zcgj_isnew = ? ", sqlparams); + + for (String orgNumber : orgNumberMap.keySet()) { + BalanceQueryParamApi balanceQueryParamApi = new BalanceQueryParamApi(); + balanceQueryParamApi.setSelectors(Arrays.asList(selectorsArray)); + // balanceQueryParamApi.setOrgNumber("cw000102"); + balanceQueryParamApi.setOrgNumber(orgNumber); + balanceQueryParamApi.setBookTypeNumber("100002"); //账簿类型 + balanceQueryParamApi.setAccountTableNumber("0003");//科目表 + + DynamicObject orgObj = orgNumberMap.get(orgNumber); + DynamicObject periodObj = orgByCurperiodMap.get(orgObj.getLong("id")); + DynamicObject curperiod = null; + if(periodObj != null) { + curperiod = periodObj.getDynamicObject("curperiod"); + if( curperiod!= null) { + balanceQueryParamApi.setPeriodNumber(curperiod.getString("number")); // + }else{ + continue; + } + }else{ + continue; + } + + Map>> accountAssgrp = new HashMap<>(); + List> li = new ArrayList<>(); + Map map1 = new HashMap<>(); + map1.put("0001",""); + li.add(map1); + for (String accNum : accountNumber) { + accountAssgrp.put(accNum,li); + } + balanceQueryParamApi.setAccountAssgrp(accountAssgrp); + List groupBy = new ArrayList<>(); + groupBy.add("0001"); + groupBy.add("account"); + balanceQueryParamApi.setGroupBys(groupBy); + Gson gson = new Gson(); + String json = gson.toJson(balanceQueryParamApi); + Map params = gson.fromJson(json, + new TypeToken>(){}.getType()); + + OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params); + + List addEntities = new ArrayList<>(); + if(balanceData.isStatus()){ + String data = (String) balanceData.getData(); + Type listType = new TypeToken>() {}.getType(); + List records = gson.fromJson(data, listType); + // 示例输出 + for (AccountRecord record : records) { + DynamicObject assistbalance + =BusinessDataServiceHelper.newDynamicObject("zcgj_rpt_assistbalance"); + assistbalance.set("zcgj_debitlocal", record.getDebitlocal()); + assistbalance.set("zcgj_creditlocal", record.getCreditlocal()); + assistbalance.set("zcgj_yeardebitfor", record.getYeardebitfor()); + assistbalance.set("zcgj_yearcreditfor", record.getYearcreditfor()); + assistbalance.set("zcgj_endlocal", record.getEndlocal()); + assistbalance.set("zcgj_org",orgNumberMap.get(orgNumber)); + assistbalance.set("zcgj_accounttable",accountTableLoad); + assistbalance.set("zcgj_account", record.getAccount()); + assistbalance.set("zcgj_period",curperiod); + assistbalance.set("zcgj_isnew",true); + Map assgrp = record.getAssgrp(); + if (assgrp.containsKey("0001")) { + assistbalance.set("zcgj_customernumber",assgrp.get("0001").getNumber()); + assistbalance.set("zcgj_customername",assgrp.get("0001").getName()); + } + addEntities.add(assistbalance); + } + + } + + if (!addEntities.isEmpty()) { + try { + SaveServiceHelper.save(addEntities.toArray(new DynamicObject[0])); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java index a8643fe..737f29f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AssistbalancePlugin.java @@ -1,33 +1,17 @@ package zcgj.zcdev.zcdev.fs.plugin.form; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import kd.bos.dataentity.entity.DynamicObject; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.list.plugin.AbstractListPlugin; -import kd.bos.openapi.common.result.OpenApiResult; -import kd.bos.openapi.common.util.OpenApiSdkUtil; -import kd.bos.orm.query.QCP; -import kd.bos.orm.query.QFilter; -import kd.bos.servicehelper.BusinessDataServiceHelper; -import kd.bos.servicehelper.operation.DeleteServiceHelper; -import kd.bos.servicehelper.operation.SaveServiceHelper; -import kd.bos.servicehelper.org.OrgUnitServiceHelper; -import kd.fi.gl.servicehelper.BalanceQueryParam; -import kd.fi.gl.util.SystemParamHelper; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; import kd.sdk.plugin.Plugin; -import zcgj.zcdev.zcdev.fs.utils.AccountRecord; -import zcgj.zcdev.zcdev.fs.utils.BalanceQueryParamApi; - -import java.lang.reflect.Type; -import java.util.*; -import java.util.stream.Collectors; +import zcgj.zcdev.zcdev.fs.plugin.common.AssistbalanceAutoData; /** * 核算维度余额取数表(矿山二开) */ public class AssistbalancePlugin extends AbstractListPlugin implements Plugin { - + private static final Log log = LogFactory.getLog(AssistbalancePlugin.class); public static String ksNumberTop = "10006431"; //矿山总部组织编码 @Override @@ -35,141 +19,9 @@ public class AssistbalancePlugin extends AbstractListPlugin implements Plugin { super.itemClick(evt); String itemKey = evt.getItemKey(); if("zcgj_gatdata".equals(itemKey)) { - String[] selectorsArray = new String[]{"beginlocal", "endlocal", "yeardebitfor","yearcreditfor","debitlocal","creditlocal"}; - - QFilter filteraccountTable = new QFilter("number", QCP.equals, "0003"); - DynamicObject accountTableLoad = BusinessDataServiceHelper.loadSingle("bd_accounttable", "id", new QFilter[]{filteraccountTable}); - - QFilter number = new QFilter("fisaccounting", "=", "1"); - QFilter structure = new QFilter("structure.longnumber", QCP.like, "10000000!10006431%"); - QFilter isleaf = new QFilter("structure.isleaf", QCP.equals, true); - DynamicObject[] load = BusinessDataServiceHelper.load("bos_org", "id,structure.longnumber,structure.view", new QFilter[]{number, structure,isleaf}); - - DynamicObject[] accountConf = BusinessDataServiceHelper.load("zcgj_conf_balanceaccount", "zcgj_account", new QFilter[]{}); - Set accountNumber = new HashSet<>(); - for (DynamicObject dynamicObject : accountConf) { - accountNumber.add(dynamicObject.getDynamicObject("zcgj_account").getString("number")); - } - - List orgIds = new ArrayList<>(); - Map orgNumberMap = new HashMap<>(); - for (int i = 0; i < load.length; i++) { - DynamicObject dynamicObject = load[i]; - orgNumberMap.put(dynamicObject.getString("number"), dynamicObject); - orgIds.add(dynamicObject.getLong("id")); - } - - - //查询组织下对应的当前期间数据 - DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", - "org,curperiod", - new QFilter[]{new QFilter("enable", QCP.equals, Boolean.TRUE). - and("status", QCP.equals, "C").and("org.id", QCP.in, orgIds)}); - /*Map orgByCurperiodMap = - Arrays.stream(orgByCurperiod).collect(Collectors.toMap( - i -> i.getLong("org.id"), - i -> i));*/ - Map orgByCurperiodMap = new HashMap<>(); - for (DynamicObject dynamicObject : orgByCurperiod) { - orgByCurperiodMap.put(dynamicObject.getLong("org.id"), dynamicObject); - } - - //清除数据 - DeleteServiceHelper.delete("zcgj_rpt_assistbalance",new QFilter[]{}); - for (String orgNumber : orgNumberMap.keySet()) { - BalanceQueryParamApi balanceQueryParamApi = new BalanceQueryParamApi(); - balanceQueryParamApi.setSelectors(Arrays.asList(selectorsArray)); - // balanceQueryParamApi.setOrgNumber("cw000102"); - balanceQueryParamApi.setOrgNumber(orgNumber); - balanceQueryParamApi.setBookTypeNumber("100002"); //账簿类型 - balanceQueryParamApi.setAccountTableNumber("0003");//科目表 - - DynamicObject orgObj = orgNumberMap.get(orgNumber); - DynamicObject periodObj = orgByCurperiodMap.get(orgObj.getLong("id")); - DynamicObject curperiod = null; - if(periodObj != null) { - curperiod = periodObj.getDynamicObject("curperiod"); - if( curperiod!= null) { - balanceQueryParamApi.setPeriodNumber(curperiod.getString("number")); // - }else{ - continue; - } - }else{ - continue; - } - - Map>> accountAssgrp = new HashMap<>(); - List> li = new ArrayList<>(); - Map map1 = new HashMap<>(); - map1.put("0001",""); - li.add(map1); - for (String accNum : accountNumber) { - accountAssgrp.put(accNum,li); - } - balanceQueryParamApi.setAccountAssgrp(accountAssgrp); - List groupBy = new ArrayList<>(); - groupBy.add("0001"); - groupBy.add("account"); - balanceQueryParamApi.setGroupBys(groupBy); - Gson gson = new Gson(); - String json = gson.toJson(balanceQueryParamApi); - Map params = gson.fromJson(json, - new TypeToken>(){}.getType()); - - OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params); - - List addEntities = new ArrayList<>(); - if(balanceData.isStatus()){ - String data = (String) balanceData.getData(); - Type listType = new TypeToken>() {}.getType(); - List records = gson.fromJson(data, listType); - // 示例输出 - for (AccountRecord record : records) { - DynamicObject assistbalance - =BusinessDataServiceHelper.newDynamicObject("zcgj_rpt_assistbalance"); - assistbalance.set("zcgj_debitlocal", record.getDebitlocal()); - assistbalance.set("zcgj_creditlocal", record.getCreditlocal()); - assistbalance.set("zcgj_yeardebitfor", record.getYeardebitfor()); - assistbalance.set("zcgj_yearcreditfor", record.getYearcreditfor()); - assistbalance.set("zcgj_endlocal", record.getEndlocal()); - assistbalance.set("zcgj_org",orgNumberMap.get(orgNumber)); - assistbalance.set("zcgj_accounttable",accountTableLoad); - assistbalance.set("zcgj_account", record.getAccount()); - assistbalance.set("zcgj_period",curperiod); - - Map assgrp = record.getAssgrp(); - if (assgrp.containsKey("0001")) { - assistbalance.set("zcgj_customernumber",assgrp.get("0001").getNumber()); - assistbalance.set("zcgj_customername",assgrp.get("0001").getName()); - } - addEntities.add(assistbalance); - } - - } - - if (!addEntities.isEmpty()) { - try { - SaveServiceHelper.save(addEntities.toArray(new DynamicObject[0])); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - } - - //balanceQueryParam.setAccountAssgrp(); + //科目余额表自动取数 + AssistbalanceAutoData.getData(); } } - - public Set getKsOrg(){ - QFilter filterOrgId = new QFilter("number", QCP.equals,ksNumberTop);//中材矿山建设有限公司 - DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); - long orgId = adminOrg.getLong("id"); - List orgIds = new ArrayList<>(1); - //orgIds.add(1692204547985902592L); - orgIds.add(orgId); - List subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true); - return subOrgIds.stream().collect(Collectors.toSet()); - } - } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/report/PositionFeesRptQueryPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/report/PositionFeesRptQueryPlugin.java index dc13d80..e00fd59 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/report/PositionFeesRptQueryPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/report/PositionFeesRptQueryPlugin.java @@ -134,6 +134,7 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin { for (Long userId : allUsersOfOrg) { //费用报销单数据-费用归属领导数据 DynamicObject[] dailyreimbursebillDataSet = getDailyreimbursebillDataSet(userId, year); + for (DynamicObject dynamicObject : dailyreimbursebillDataSet) { String billno = dynamicObject.getString("billno");//单据编号 //判罚是否因公出国 @@ -219,7 +220,86 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin { } } } - //申请人查询 + + //对公报销单-费用归属领导查询 + DynamicObject[] publicreimburDataSet = getPublicreimburDataSet(userId, year); + for (DynamicObject dynamicObject : publicreimburDataSet) { + String billno = dynamicObject.getString("billno");//单据编号 + DynamicObjectCollection entrys = dynamicObject.getDynamicObjectCollection("expenseentryentity"); + for (DynamicObject entry : entrys) { + DynamicObject zcgjCostmangerEntity = entry.getDynamicObject("zcgj_costmanger_entity"); + if(zcgjCostmangerEntity == null){ + continue; + } + DynamicObject expenseitemObj = entry.getDynamicObject("expenseitem"); //费用项目 + if(expenseitemObj == null){ + continue; + } + Date happendate = entry.getDate("happendate");//费用发生日期 + String itemNumber = expenseitemObj.getString("number");//费用项目编码 + if(!itemSet.contains(itemNumber)){ + continue; + } + String happendateStr = dateFormat.format(happendate);//费用发生日期str + BigDecimal expenseamount = BigDecimal.ZERO; + if(istax){ + expenseamount = entry.getBigDecimal("expenseamount");//报销金额 + }else{ + expenseamount = entry.getBigDecimal("orientryamount");//不含税金额 + } + + + // 生成唯一的键:报销人 + 单据编号 + 费用发生日期 + String key = userId + "-" + billno + "-" + happendateStr; + userSet.add(userId); + // 根据键获取报表对象 + ExpenseReport report = reportMap.get(key); + if (report == null) { + report = new ExpenseReport(userId, billno, happendateStr); + reportMap.put(key, report); + } + // 为该行添加费用 + //report.addExpense(expenseType, amount); + if(itemNumber.startsWith(FYF)){//防疫费 + BigDecimal health = report.getHealth().add(expenseamount); + report.setHealth(health); + }else if(itemNumber.startsWith(TXF)){//日常费用-通信费用 + BigDecimal correspondence = report.getCorrespondence().add(expenseamount); + report.setCorrespondence(correspondence); + }else if(itemNumber.startsWith(PXF)){//日常费用-培训费用 + BigDecimal training = report.getTraining().add(expenseamount); + report.setTraining(training); + }else if(itemNumber.startsWith(YWZD_SWZD)){//日常费用-业务招待费-商务招待 + //businessEntertainment + BigDecimal businessEntertainment = report.getBusinessEntertainment().add(expenseamount); + report.setBusinessEntertainment(businessEntertainment); + }else if(itemNumber.startsWith(YWZD_WSZD)){//日常费用-业务招待费-外事招待 + //foreignEntertainment + BigDecimal foreignEntertainment = report.getForeignEntertainment().add(expenseamount); + report.setForeignEntertainment(foreignEntertainment); + } + else if(itemNumber.startsWith(YWZD_ZYGW)){//日常费用-业务招待费-重要公务 + //importantOfficial + BigDecimal importantOfficial = report.getImportantOfficial().add(expenseamount); + report.setImportantOfficial(importantOfficial); + } + else if(itemNumber.startsWith(YWZD_ZS)){//日常费用-业务招待费-住宿 + //accommodation + BigDecimal accommodation = report.getAccommodation().add(expenseamount); + report.setAccommodation(accommodation); + } + else if(itemNumber.startsWith(YWZD_JNP)){//日常费用-业务招待费-纪念品 + //souvenirs + BigDecimal souvenirs = report.getSouvenirs().add(expenseamount); + report.setSouvenirs(souvenirs); + }else if(itemNumber.startsWith(YWZD_QT)){//日常费用-业务招待费-其他 + //other + BigDecimal other = report.getOther().add(expenseamount); + report.setOther(other); + } + } + } + //费用报销单申请人查询 if(positionfeesstaffingList != null && positionfeesstaffingList.contains(userId)){ DynamicObject[] dailyreimbursebillDataSetByApplier = getDailyreimbursebillDataSetByApplier(userId, year); for (DynamicObject dynamicObject : dailyreimbursebillDataSetByApplier) { @@ -525,7 +605,7 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin { /** - * 获取费用报销单数据-费用归属领导 + * 获取费用报销单数据-申请人查询 * @param userId 用户id * @param year 统计年份 * @return 数据集 @@ -594,6 +674,43 @@ public class PositionFeesRptQueryPlugin extends AbstractReportListDataPlugin { return load; } + + /** + * 获对公报销单数据-费用归属领导 + * @param userId 用户id + * @param year 统计年份 + * @return 数据集 + */ + public DynamicObject[] getPublicreimburDataSet(Long userId, Integer year){ + LocalDate firstDay = getFirstDayOfYear(year); + LocalDate lastDay = getLastDayOfYear(year); + List billStatuslist = new ArrayList<>(); + //billStatuslist.add("A"); //暂存 + //billStatuslist.add("B"); //已提交 + //billStatuslist.add("C"); //审核中 + //billStatuslist.add("D"); //审核未通过 + billStatuslist.add("E"); //审核通过 + billStatuslist.add("F"); //等待付款 + billStatuslist.add("G"); //已付款 + //billStatuslist.add("H"); //废弃 + billStatuslist.add("I"); //关闭 + List searchFilterList = new ArrayList<>(); + //searchFilterList.add(new QFilter("applier", QCP.equals, userId)); + searchFilterList.add(new QFilter("expenseentryentity.zcgj_costmanger_entity", QCP.equals, userId));//根据费用归属领导查询 + searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.large_equals, firstDay)); //费用发生日期 + searchFilterList.add(new QFilter("expenseentryentity.happendate", QCP.less_equals, lastDay)); + searchFilterList.add(new QFilter("billstatus", QCP.in, billStatuslist));//增加过滤 + DynamicObject[] load = BusinessDataServiceHelper.load("er_publicreimbursebill", + "id,description,billno,expenseentryentity,zcgj_costmanger_entity," + + DEV_KEY+"_is_business_foreign,"+ + "expenseentryentity.happendate," + //费用发生日期 + "expenseentryentity.expenseitem," + //费用项目 + "expenseentryentity.expenseamount, "+//报销金额(含税) + "expenseentryentity.orientryamount " //不含税金额 + , searchFilterList.toArray(new QFilter [] {})); + return load; + } + // 获取某年份的第一天 public static LocalDate getFirstDayOfYear(int year) { return LocalDate.of(year, 1, 1); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/task/AssistbalanceTask.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/task/AssistbalanceTask.java new file mode 100644 index 0000000..5d3a3f9 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/task/AssistbalanceTask.java @@ -0,0 +1,27 @@ +package zcgj.zcdev.zcdev.fs.plugin.task; + +import kd.bos.context.RequestContext; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.exception.KDException; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.schedule.executor.AbstractTask; +import kd.bos.servicehelper.operation.OperationServiceHelper; +import zcgj.zcdev.zcdev.fs.plugin.common.AssistbalanceAutoData; + +import java.util.Map; + +/** + * 科目余额取数表自动取数 + */ +public class AssistbalanceTask extends AbstractTask { + + private static final Log log = LogFactory.getLog(AssistbalanceTask.class); + + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + log.info("AssistbalanceTask,进入到后台任务中-开始"); + AssistbalanceAutoData.getData(); + log.info("AssistbalanceTask,进入到后台任务中-结束"); + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java index 947fba0..84a212e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java @@ -96,7 +96,7 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi String operationResultErrorInfos = null; for (DynamicObject realcard : realcards) { String number = realcard.getString("number");//资产编码 -// DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 + DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 String assetname = realcard.getString("assetname");//资产名称 log.info("同步的实物卡片为"+number+assetname); String model = realcard.getString("model");//规格型号 @@ -171,6 +171,8 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi equipmentcard.set("zcgj_assetnumber",number);//资产编码 equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//成本中心 + equipmentcard.set("zcgj_assetcat",assetcat);//资产类别 + BigDecimal finOriginalval = BigDecimal.ZERO; BigDecimal fin_preusingamount = BigDecimal.ZERO; BigDecimal fin_depredamount = BigDecimal.ZERO; @@ -180,7 +182,15 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi if(finentrys.size()>0){ DynamicObject finentry = finentrys.get(0); // DynamicObject fincard = finentry.getDynamicObject("fincard"); - DynamicObject fincardInfo = BusinessDataServiceHelper.loadSingle("fa_card_fin_base", new QFilter[]{new QFilter("number", QCP.equals,number)}); + BigDecimal depredamount = BigDecimal.ZERO; + DynamicObject[] fincards = BusinessDataServiceHelper.load("fa_card_fin","id,depredamount" ,new QFilter[]{new QFilter("number", QCP.equals,number)}); + for (DynamicObject fincard : fincards) { + BigDecimal decimal = fincard.getBigDecimal("depredamount"); + if (decimal.compareTo(depredamount)==1){ + depredamount = decimal; + } + } + DynamicObject fincardInfo = BusinessDataServiceHelper.loadSingle("fa_card_fin", new QFilter[]{new QFilter("number", QCP.equals,number),new QFilter("depredamount", QCP.equals,depredamount)}); finOriginalval = fincardInfo.getBigDecimal("originalval");//资产原值 fin_preusingamount = fincardInfo.getBigDecimal("preusingamount");//预计使用月 fin_depredamount = fincardInfo.getBigDecimal("depredamount");//已折旧月 diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java index 03677e5..f826efe 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java @@ -23,7 +23,6 @@ import kd.bos.servicehelper.coderule.CodeRuleServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.bos.servicehelper.org.OrgUnitServiceHelper; - import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -50,6 +49,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask { strings.add(number) ; } } + QFilter filterOrgId = new QFilter("number", QCP.equals,"10006431");//中材矿山建设有限公司 DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); long orgId = adminOrg.getLong("id"); @@ -70,7 +70,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask { String operationResultErrorInfos = null; for (DynamicObject realcard : realcards) { String number = realcard.getString("number");//资产编码 -// DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 + DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 String assetname = realcard.getString("assetname");//资产名称 log.info("同步的实物卡片为"+number+assetname); String model = realcard.getString("model");//规格型号 @@ -145,6 +145,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask { equipmentcard.set("zcgj_assetnumber",number);//资产编码 equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//成本中心 + equipmentcard.set("zcgj_assetcat",assetcat);//资产类别 BigDecimal finOriginalval = BigDecimal.ZERO; BigDecimal fin_preusingamount = BigDecimal.ZERO; BigDecimal fin_depredamount = BigDecimal.ZERO; @@ -154,7 +155,15 @@ public class EquipmentCardTaskPlugin extends AbstractTask { if(finentrys.size()>0){ DynamicObject finentry = finentrys.get(0); // DynamicObject fincard = finentry.getDynamicObject("fincard"); - DynamicObject fincardInfo = BusinessDataServiceHelper.loadSingle("fa_card_fin_base", new QFilter[]{new QFilter("number", QCP.equals,number)}); + BigDecimal depredamount = BigDecimal.ZERO; + DynamicObject[] fincards = BusinessDataServiceHelper.load("fa_card_fin","id,depredamount" ,new QFilter[]{new QFilter("number", QCP.equals,number)}); + for (DynamicObject fincard : fincards) { + BigDecimal decimal = fincard.getBigDecimal("depredamount"); + if (decimal.compareTo(depredamount)==1){ + depredamount = decimal; + } + } + DynamicObject fincardInfo = BusinessDataServiceHelper.loadSingle("fa_card_fin", new QFilter[]{new QFilter("number", QCP.equals,number),new QFilter("depredamount", QCP.equals,depredamount)}); finOriginalval = fincardInfo.getBigDecimal("originalval");//资产原值 fin_preusingamount = fincardInfo.getBigDecimal("preusingamount");//预计使用月 fin_depredamount = fincardInfo.getBigDecimal("depredamount");//已折旧月