提交内容:计划编制调整接口修改代码/列表打回/推送BIP流水日期条件修改
时间:2025-06-06 16:00 提交人:邹江涛
This commit is contained in:
parent
54b4c50091
commit
780f98a501
|
@ -315,8 +315,7 @@ public class ApiService {
|
|||
case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/api/settlement/feedback":
|
||||
saveResponseBody = pushBill(token, saveUrl, saveRequestBody);
|
||||
jsonObject = JSON.parseObject(saveResponseBody);
|
||||
code = jsonObject.getString("code");
|
||||
if ("200".equals(code)) {
|
||||
if (jsonObject.getJSONObject("data").getIntValue("successnum") > 0) {
|
||||
if ("TS".equals(dynamic.getString("bankpaystatus"))) {
|
||||
dynamic.set("shkd_pushstatus", "已结算");
|
||||
} else {
|
||||
|
|
|
@ -119,7 +119,7 @@ public class PlanningService {
|
|||
* @param amount 调整金额
|
||||
* @return
|
||||
*/
|
||||
public static ReportAdjustBillBatchSaveResDTO planAdjustment(String adjustReason, String orgCode, String periodCode, String subjectCode, String entryPeriodCode, String amount) {
|
||||
public static FpmResponse<ReportAdjustBillBatchSaveResDTO> planAdjustment(String adjustReason, String orgCode, String periodCode, String subjectCode, String entryPeriodCode, String amount) {
|
||||
logger.info("计划调整服务入参:adjustReason={},orgCode={},periodCode={},subjectCode={},entryPeriodCode={},amount={}", adjustReason, orgCode, periodCode, subjectCode, entryPeriodCode, amount);
|
||||
ReportAdjustBillBatchSaveDTO reportAdjustBillBatchSaveDTO = new ReportAdjustBillBatchSaveDTO();
|
||||
reportAdjustBillBatchSaveDTO.setSystemCode("SYS-005");// 体系编码
|
||||
|
@ -159,8 +159,10 @@ public class PlanningService {
|
|||
String qParam = SerializationUtils.serializeToBase64(reportAdjustBillBatchSaveDTO);
|
||||
// 3. 调用SDK接口
|
||||
ReportDataSDKService reportDataSDKService = new ReportDataSDKService();
|
||||
reportDataSDKService.batchSaveAdjustReport(qParam);
|
||||
String result = reportDataSDKService.batchSaveReportData(qParam);
|
||||
String result = reportDataSDKService.batchSaveAdjustReport(qParam);
|
||||
|
||||
logger.info("获取result:{}", result);
|
||||
|
||||
// 4. 反序列化响应结果
|
||||
FpmResponse<ReportAdjustBillBatchSaveResDTO> responseObject = SerializationUtils.deSerializeFromBase64(result);
|
||||
ReportAdjustBillBatchSaveResDTO reportAdjustBillBatchSaveResDTO = responseObject.getData();
|
||||
|
@ -171,8 +173,10 @@ public class PlanningService {
|
|||
logger.info("是否成功:{}\n消息列表:{}", responseObject.isSuccess(), responseObject.getMessage());
|
||||
if (responseObject.isSuccess()) {
|
||||
logger.info("调整单据编号列表:{}", adjustBillNoList);
|
||||
}else {
|
||||
logger.info("失败原因:{}", responseObject.getMessage());
|
||||
}
|
||||
return reportAdjustBillBatchSaveResDTO;
|
||||
return responseObject;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,24 +23,14 @@ public class BalanceExpansion implements IFillBankBalance {
|
|||
|
||||
@Override
|
||||
public void fillExtBankBalance(DynamicObject bankBalance, String balanceString) {
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bankBalance.getDynamicObjectType().getName(), "id,billno,shkd_depositbalance", new QFilter("id", QCP.equals, bankBalance.getPkValue()).toArray());
|
||||
JSONObject jsonObject = JSON.parseObject(balanceString);
|
||||
logger.info("bankBalance数据:{},balanceString数据:{}", bankBalance, jsonObject);
|
||||
|
||||
Object balance = jsonObject.get("depositBalance");
|
||||
BigDecimal depositBalance = BigDecimal.ZERO;
|
||||
|
||||
if (balance != null) {
|
||||
if (!"".equals(balance.toString())) {
|
||||
if (balance != null && !"".equals(balance.toString())) {
|
||||
depositBalance = new BigDecimal(balance.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// 只有当新值与旧值不同时才设置并更新
|
||||
BigDecimal currentBalance = dynamicObject.getBigDecimal("shkd_depositbalance");
|
||||
if (depositBalance.compareTo(currentBalance) != 0) {
|
||||
bankBalance.set("shkd_depositbalance", depositBalance);
|
||||
logger.info("新值与旧值不同,新值上存余额为:{},旧值上存余额为:{}", depositBalance, currentBalance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,10 +53,15 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali
|
|||
jsonObject.getString("amount");// 金额
|
||||
FpmResponse<Void> voidFpmResponse = planningWrite(jsonObject.getString("periodCode"), jsonObject.getString("orgCode"), jsonObject.getString("subjectCode"), jsonObject.getString("entryPeriodCode"), jsonObject.getString("amount"));
|
||||
stringBuffer.append("第").append(i + 1).append("条数据写入").append(voidFpmResponse.isSuccess() ? "成功" : "失败")
|
||||
.append(",返回信息:").append(voidFpmResponse.getMessage()).append("\n");
|
||||
.append(",返回信息:").append(voidFpmResponse.getMessage() == null ? "写入计划编制成功" : voidFpmResponse.getMessage()).append("\n");
|
||||
}
|
||||
|
||||
if (stringBuffer.toString().contains("成功")) {
|
||||
return CustomApiResult.success(stringBuffer.toString());
|
||||
} else {
|
||||
return CustomApiResult.fail("404", stringBuffer.toString());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划编制调整
|
||||
|
@ -77,7 +82,7 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali
|
|||
jsonObject.getString("subjectCode");// 计划科目
|
||||
jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code
|
||||
jsonObject.getString("amount");// 金额
|
||||
ReportAdjustBillBatchSaveResDTO resDTO = planAdjustment(
|
||||
FpmResponse<ReportAdjustBillBatchSaveResDTO> fpmResponse = planAdjustment(
|
||||
jsonObject.getString("adjustReason"),
|
||||
jsonObject.getString("orgCode"),
|
||||
jsonObject.getString("periodCode"),
|
||||
|
@ -86,15 +91,24 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali
|
|||
jsonObject.getString("amount")
|
||||
);
|
||||
|
||||
List<String> adjustBillNoList = resDTO.getAdjustBillNoList();// 调整单据编号列表
|
||||
if (adjustBillNoList.isEmpty()) {
|
||||
stringBuffer.append("第").append(i + 1).append("条数据写入").append("失败").append("\n");
|
||||
}else {
|
||||
|
||||
if (fpmResponse.isSuccess()) {
|
||||
ReportAdjustBillBatchSaveResDTO data = fpmResponse.getData();
|
||||
List<String> adjustBillNoList = data.getAdjustBillNoList();
|
||||
stringBuffer.append("第").append(i + 1).append("条数据写入").append("成功,").append("单据编号:").append(adjustBillNoList).append("\n");
|
||||
}else {
|
||||
stringBuffer.append("第").append(i + 1).append("条数据写入").append("失败,失败原因:").append(fpmResponse.getMessage()).append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
logger.info("调整单信息:{}", stringBuffer.toString());
|
||||
|
||||
if (stringBuffer.toString().contains("成功")) {
|
||||
return CustomApiResult.success(stringBuffer.toString());
|
||||
} else {
|
||||
return CustomApiResult.fail("404", stringBuffer.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,46 +1,113 @@
|
|||
package shkd.sys.sys.plugin.list;
|
||||
|
||||
import kd.bos.dataentity.OperateOption;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.entity.operate.result.IOperateInfo;
|
||||
import kd.bos.entity.operate.result.OperationResult;
|
||||
import kd.bos.form.control.events.ItemClickEvent;
|
||||
import kd.bos.form.events.AfterDoOperationEventArgs;
|
||||
import kd.bos.list.BillList;
|
||||
import kd.bos.list.plugin.AbstractListPlugin;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import shkd.sys.sys.mservice.ApiService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static kd.bos.servicehelper.workflow.WorkflowServiceHelper.abandonByBusienssKey;
|
||||
|
||||
/**
|
||||
* 标准单据列表插件
|
||||
*/
|
||||
public class PaymentProcessingListPlugin extends AbstractListPlugin implements Plugin {
|
||||
private static final Log logger = LogFactory.getLog(PaymentProcessingListPlugin.class);
|
||||
|
||||
@Override
|
||||
public void itemClick(ItemClickEvent evt) {
|
||||
String itemKey = evt.getItemKey();
|
||||
if ("shkd_hitback".equals(itemKey)) {
|
||||
List<String> billnos = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
||||
String operateKey = afterDoOperationEventArgs.getOperateKey();
|
||||
//获取列表
|
||||
BillList list = this.getControl("billlistap");
|
||||
//获取列表选中的行数据
|
||||
ListSelectedRowCollection selectedRows = list.getSelectedRows();
|
||||
|
||||
if (selectedRows.isEmpty()) this.getView().showTipNotification("请至少选择一条数据");
|
||||
if (selectedRows.size() > 1000) this.getView().showTipNotification("请至少选择一条数据");
|
||||
|
||||
for (ListSelectedRow listSelectedRow : selectedRows) {
|
||||
billnos.add(listSelectedRow.getBillNo());
|
||||
if ("hitback".equals(operateKey)) {
|
||||
logger.info("进入打回操作 → hitback");
|
||||
if (selectedRows.isEmpty()) {
|
||||
this.getView().showTipNotification("请选择一条数据");
|
||||
return;
|
||||
} else if (selectedRows.size() > 1) {
|
||||
this.getView().showTipNotification("涉及流程中断,只能选择一条数据打回");
|
||||
return;
|
||||
} else {
|
||||
ListSelectedRow listSelectedRow = selectedRows.get(0);
|
||||
Object primaryKeyValue = listSelectedRow.getPrimaryKeyValue();
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "cas_paybill");
|
||||
DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle(dynamicObject.getDynamicObjectType().getName(), "id,billno,name,billstatus,shkd_businessname", new QFilter("id", QCP.equals, dynamicObject.getPkValue()).toArray());
|
||||
Object businessname = loadSingle.get("shkd_businessname");
|
||||
String billstatus = loadSingle.getString("billstatus");
|
||||
if (businessname != null) {
|
||||
String shkd_businessname = businessname.toString();
|
||||
if (("共享系统".equals(shkd_businessname) || "XK".equals(shkd_businessname)) && (("B".equals(billstatus) || "C".equals(billstatus)))) {
|
||||
try {
|
||||
abandonByBusienssKey(loadSingle.getPkValue().toString());
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
OperationResult operation;
|
||||
if ("共享系统".equals(shkd_businessname)) {
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,acttradedate," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus", new QFilter("billno", QCP.equals, loadSingle.getString("billno")).toArray());
|
||||
List<DynamicObject> dynamicObjects = new ArrayList<>();
|
||||
String pushResult = ApiService.paymentSlipsJson(objects[0], "BIPRE", dynamicObjects, null);
|
||||
logger.info("result信息:{}", pushResult);
|
||||
if (pushResult.contains("成功")) {
|
||||
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||
} else {
|
||||
this.getView().showTipNotification("打回失败,失败原因:调用BIP打回接口失败");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送")
|
||||
.and("billstatus", QCP.equals, "D").toArray());*/
|
||||
if ("B".equals(dynamicObject.getString("billstatus"))) {
|
||||
operation = OperationServiceHelper.executeOperate("unsubmit", "cas_paybill", new DynamicObject[]{dynamicObject}, OperateOption.create());
|
||||
} else if ("C".equals(dynamicObject.getString("billstatus"))) {
|
||||
operation = OperationServiceHelper.executeOperate("unaudit", "cas_paybill", new DynamicObject[]{dynamicObject}, OperateOption.create());
|
||||
} else {
|
||||
this.getView().showTipNotification("单据不为已提交或已审核状态,无法打回");
|
||||
return;
|
||||
}
|
||||
List<IOperateInfo> allErrorOrValidateInfo = operation.getAllErrorOrValidateInfo();
|
||||
if (!allErrorOrValidateInfo.isEmpty()) {
|
||||
this.getView().showTipNotification("打回失败,失败原因:撤销(反审核)操作失败 → " + allErrorOrValidateInfo.get(0).getMessage());
|
||||
return;
|
||||
} else {
|
||||
this.getView().showSuccessNotification("打回成功");
|
||||
list.refresh();
|
||||
}
|
||||
} else {
|
||||
this.getView().showTipNotification("来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
this.getView().showTipNotification("来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -40,60 +40,58 @@ public class HitBackOperationServicePlugin extends AbstractOperationServicePlugI
|
|||
public void beforeExecuteOperationTransaction(BeforeOperationArgs args) {
|
||||
super.beforeExecuteOperationTransaction(args);
|
||||
DynamicObject[] entities = args.getDataEntities();
|
||||
List<Object> pkValue = new ArrayList<>();
|
||||
Arrays.stream(entities).forEach(dynamicObject -> {
|
||||
pkValue.add(dynamicObject.getPkValue());
|
||||
});
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus"
|
||||
, new QFilter("id", QCP.in, pkValue)
|
||||
.and("billstatus", QCP.in, "B、C")
|
||||
.and("shkd_businessname", QCP.equals, "共享系统").toArray());
|
||||
if (objects == null || objects.length == 0) {
|
||||
args.setCancelMessage("打回失败\n" +
|
||||
"1、选择打回单据必须为BIP推送单据\n" +
|
||||
"2、只能打回提交、已审核的单据\n" +
|
||||
"(若有其他问题,可找业务老师咨询)"
|
||||
);
|
||||
if (entities.length > 1) {
|
||||
args.setCancelMessage("涉及流程中断,只能选择一条数据打回");
|
||||
args.setCancel(true);
|
||||
} else {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (DynamicObject dynamicObject : objects) {
|
||||
if (!"未结算".equals(dynamicObject.getString("shkd_pushstatus"))) {
|
||||
stringBuilder.append("单据编号:" + dynamicObject.get("billno") + " 打回失败,该单据结算结果已被推送\n");
|
||||
continue;
|
||||
DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle(entities[0].getDynamicObjectType().getName(), "id,billno,name,billstatus,shkd_businessname", new QFilter("id", QCP.equals, entities[0].getPkValue()).toArray());
|
||||
Object businessname = loadSingle.get("shkd_businessname");
|
||||
String billstatus = loadSingle.getString("billstatus");
|
||||
if (businessname != null) {
|
||||
String shkd_businessname = businessname.toString();
|
||||
if (("共享系统".equals(shkd_businessname) || "XK".equals(shkd_businessname)) && (("B".equals(billstatus) || "C".equals(billstatus)))) {
|
||||
try {
|
||||
abandonByBusienssKey(loadSingle.getPkValue().toString());
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
OperationResult operation;
|
||||
if ("B".equals(dynamicObject.getString("billstatus"))) {
|
||||
operation = OperationServiceHelper.executeOperate("unsubmit", "cas_paybill", new DynamicObject[]{dynamicObject}, OperateOption.create());
|
||||
}else{
|
||||
operation = OperationServiceHelper.executeOperate("unaudit", "cas_paybill", new DynamicObject[]{dynamicObject}, OperateOption.create());
|
||||
}
|
||||
List<IOperateInfo> allErrorOrValidateInfo = operation.getAllErrorOrValidateInfo();
|
||||
if (allErrorOrValidateInfo.isEmpty()) {
|
||||
if ("共享系统".equals(shkd_businessname)) {
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,acttradedate," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus", new QFilter("billno", QCP.equals, loadSingle.getString("billno")).toArray());
|
||||
List<DynamicObject> dynamicObjects = new ArrayList<>();
|
||||
String result = ApiService.paymentSlipsJson(dynamicObject, "BIPRE", dynamicObjects, null);
|
||||
logger.info("result信息:{}", result);
|
||||
if (result.contains("成功")) {
|
||||
String pushResult = ApiService.paymentSlipsJson(objects[0], "BIPRE", dynamicObjects, null);
|
||||
logger.info("result信息:{}", pushResult);
|
||||
if (pushResult.contains("成功")) {
|
||||
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||
} else {
|
||||
stringBuilder.append("单据编号:" + dynamicObject.get("billno") + " 打回失败,调用BIP接口失败\n");
|
||||
}
|
||||
} else {
|
||||
allErrorOrValidateInfo.forEach(operateInfo -> {
|
||||
DynamicObject object = BusinessDataServiceHelper.loadSingle(operateInfo.getPkValue(), "cas_paybill");
|
||||
stringBuilder.append("单据编号:" + object.get("billno") + "," + operateInfo.getMessage() + "\n");
|
||||
});
|
||||
args.setCancelMessage("打回失败,失败原因:调用BIP打回接口失败");
|
||||
args.setCancel(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!stringBuilder.isEmpty()) {
|
||||
args.setCancelMessage(stringBuilder.toString());
|
||||
if ("B".equals(loadSingle.getString("billstatus"))) {
|
||||
operation = OperationServiceHelper.executeOperate("unsubmit", "cas_paybill", new DynamicObject[]{loadSingle}, OperateOption.create());
|
||||
} else if ("C".equals(loadSingle.getString("billstatus"))) {
|
||||
operation = OperationServiceHelper.executeOperate("unaudit", "cas_paybill", new DynamicObject[]{loadSingle}, OperateOption.create());
|
||||
} else {
|
||||
args.setCancelMessage("单据不为已提交或已审核状态,无法打回");
|
||||
args.setCancel(true);
|
||||
return;
|
||||
}
|
||||
List<IOperateInfo> allErrorOrValidateInfo = operation.getAllErrorOrValidateInfo();
|
||||
if (!allErrorOrValidateInfo.isEmpty()) {
|
||||
args.setCancelMessage("打回失败,失败原因:撤销(反审核)操作失败 → " + allErrorOrValidateInfo.get(0).getMessage());
|
||||
args.setCancel(true);
|
||||
}
|
||||
} else {
|
||||
args.setCancelMessage("来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回");
|
||||
args.setCancel(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -27,6 +27,7 @@ import java.time.LocalDate;
|
|||
import java.time.Month;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.*;
|
||||
|
||||
import static shkd.sys.sys.mservice.ApiService.*;
|
||||
|
@ -36,6 +37,7 @@ import static shkd.sys.sys.mservice.ApiService.*;
|
|||
*/
|
||||
public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||
private static final Log logger = LogFactory.getLog(PushTaskPlugin.class);
|
||||
private static final ZoneId DEFAULT_ZONE = ZoneId.systemDefault();
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
|
@ -150,7 +152,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
*/
|
||||
case "bei_transdetail_cas":
|
||||
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas", "id,bizdate,billno,detailid,oppbank,oppunit,accountbank,description,company,oppbanknumber,bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno,recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
|
||||
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfCurrentMonth())
|
||||
, new QFilter("bizdate", QCP.large_equals, getAdjustedFirstDayOfCurrentMonth())
|
||||
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
||||
|
||||
Arrays.stream(objects3).forEach(dynamicObject -> {
|
||||
|
@ -406,14 +408,17 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
* 获取当前月份的第一天
|
||||
* @return
|
||||
*/
|
||||
private static Date getFirstDayOfCurrentMonth() {
|
||||
// 获取当前日期
|
||||
private static Date getAdjustedFirstDayOfCurrentMonth() {
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
|
||||
// 获取当前月份的第一天
|
||||
if (currentDate.getDayOfMonth() == 1) {
|
||||
// 返回上个月最后一天
|
||||
LocalDate lastDayOfPreviousMonth = currentDate.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
|
||||
return Date.from(lastDayOfPreviousMonth.atStartOfDay(DEFAULT_ZONE).toInstant());
|
||||
} else {
|
||||
// 返回当前月份第一天
|
||||
LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
|
||||
|
||||
// 将LocalDate转换为Date
|
||||
return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
return Date.from(firstDayOfMonth.atStartOfDay(DEFAULT_ZONE).toInstant());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue