feat: added a date filter

pull/8523/head
Xue YANG 2025-04-16 11:32:30 +02:00
parent 14b31ca05d
commit 4aa2ffdf3f
5 changed files with 21 additions and 7 deletions

View File

@ -29,6 +29,7 @@ import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -532,7 +533,9 @@ public class InvoiceController {
@RequestParam(name = "order", defaultValue = "ASC") String order, @RequestParam(name = "order", defaultValue = "ASC") String order,
@RequestParam(name ="shippingAvailable[]", required = false) List<Integer> shippingAvailable, @RequestParam(name ="shippingAvailable[]", required = false) List<Integer> shippingAvailable,
@RequestParam(name ="purchaseAvailable[]", required = false) List<Integer> purchaseAvailable, @RequestParam(name ="purchaseAvailable[]", required = false) List<Integer> purchaseAvailable,
@RequestParam(name = "productAvailable[]", required = false) List<Integer> productAvailable @RequestParam(name = "productAvailable[]", required = false) List<Integer> productAvailable,
@RequestParam(name = "startDate" , required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@RequestParam(name = "endDate" , required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate
) { ) {
log.info("User : {} is requesting uninvoiced orders for shops : [{}]", log.info("User : {} is requesting uninvoiced orders for shops : [{}]",
((LoginUser) SecurityUtils.getSubject().getPrincipal()).getUsername(), ((LoginUser) SecurityUtils.getSubject().getPrincipal()).getUsername(),
@ -541,7 +544,7 @@ public class InvoiceController {
String parsedColumn = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, column.replace("_dictText","")); String parsedColumn = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, column.replace("_dictText",""));
String parsedOrder = order.toUpperCase(); String parsedOrder = order.toUpperCase();
if(!parsedOrder.equals("ASC") && !parsedOrder.equals("DESC")) { if(!parsedOrder.equals("ASC") && !parsedOrder.equals("DESC")) {
return Result.error("Error 400 Bad Request"); return Result.error(400,"Error 400 Bad Request");
} }
try { try {
specialFilterContentForDictSql(parsedColumn); specialFilterContentForDictSql(parsedColumn);
@ -553,8 +556,14 @@ public class InvoiceController {
// // checking shipping data availability // // checking shipping data availability
List<String> shopIdList = Arrays.asList(shopIds.split(",")); List<String> shopIdList = Arrays.asList(shopIds.split(","));
if(startDate != null && endDate != null) {
if (startDate.after(endDate)) {
return Result.error("startDate can not after endDate!");
}
}
List<PlatformOrderFront> orders = platformOrderService.fetchUninvoicedOrdersByShopForClientFullSQL(shopIdList, Collections.singletonList(1), parsedColumn, parsedOrder, pageNo, pageSize, List<PlatformOrderFront> orders = platformOrderService.fetchUninvoicedOrdersByShopForClientFullSQL(shopIdList, Collections.singletonList(1), parsedColumn, parsedOrder, pageNo, pageSize,
productStatuses, shippingAvailable, purchaseAvailable); productStatuses, shippingAvailable, purchaseAvailable, startDate, endDate);
int total = !order.isEmpty() ? orders.get(0).getTotalCount() : 0; int total = !order.isEmpty() ? orders.get(0).getTotalCount() : 0;
IPage<PlatformOrderFront> page = new Page<>(); IPage<PlatformOrderFront> page = new Page<>();

View File

@ -193,7 +193,8 @@ public interface PlatformOrderMapper extends BaseMapper<PlatformOrder> {
@Param("column") String column, @Param("order") String order, @Param("offset") Integer offset, @Param("size") Integer pageSize); @Param("column") String column, @Param("order") String order, @Param("offset") Integer offset, @Param("size") Integer pageSize);
List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(@Param("shopIds") List<String> shopIds, @Param("erpStatuses") List<Integer> erpStatuses, List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(@Param("shopIds") List<String> shopIds, @Param("erpStatuses") List<Integer> erpStatuses,
@Param("column") String column, @Param("order") String order, @Param("offset") Integer offset, @Param("size") Integer pageSize, @Param("column") String column, @Param("order") String order, @Param("offset") Integer offset, @Param("size") Integer pageSize,
@Param("productStatuses") List<Integer> productStatuses, @Param("shippingStatuses") List<Integer> shippingStatuses, @Param("purchaseStatuses") List<Integer> purchaseStatuses); @Param("productStatuses") List<Integer> productStatuses, @Param("shippingStatuses") List<Integer> shippingStatuses, @Param("purchaseStatuses") List<Integer> purchaseStatuses,
@Param("startDate") Date startDate, @Param("endDate") Date endDate);
List<String> findUninvoicedOrderIdsByShopForClient(@Param("shopIds") List<String> shopIds, @Param("erpStatuses") List<Integer> erpStatuses); List<String> findUninvoicedOrderIdsByShopForClient(@Param("shopIds") List<String> shopIds, @Param("erpStatuses") List<Integer> erpStatuses);
List<PlatformOrder> fetchEmptyLogisticChannelOrders(@Param("startDate") String startDate,@Param("endDate") String endDate); List<PlatformOrder> fetchEmptyLogisticChannelOrders(@Param("startDate") String startDate,@Param("endDate") String endDate);

View File

@ -747,6 +747,10 @@
#{erpStatus} #{erpStatus}
</foreach> </foreach>
AND poc.erp_status &lt;&gt; 5 AND poc.erp_status &lt;&gt; 5
<if test = "startDate != null and endDate != null">
AND po.order_time &gt;= #{startDate}
AND po.order_time &lt;= #{endDate}
</if>
AND (po.shipping_invoice_number IS NULL AND (po.shipping_invoice_number IS NULL
OR (po.shipping_invoice_number LIKE '%%%%-%%-2%%%' OR (po.shipping_invoice_number LIKE '%%%%-%%-2%%%'
AND po.purchase_invoice_number IS NULL AND po.purchase_invoice_number IS NULL

View File

@ -221,7 +221,7 @@ public interface IPlatformOrderService extends IService<PlatformOrder> {
List<PlatformOrder> findUninvoicedOrdersByShopForClient(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize); List<PlatformOrder> findUninvoicedOrdersByShopForClient(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize);
List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize, List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize,
List<Integer> productAvailable, List<Integer> shippingAvailable, List<Integer> purchaseAvailable); List<Integer> productAvailable, List<Integer> shippingAvailable, List<Integer> purchaseAvailable, Date startDate, Date endDate);
/** /**
* Get ids of all order that can be invoiced by small clients (type 2) themselves. * Get ids of all order that can be invoiced by small clients (type 2) themselves.

View File

@ -436,9 +436,9 @@ public class PlatformOrderServiceImpl extends ServiceImpl<PlatformOrderMapper, P
} }
@Override @Override
public List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize, public List<PlatformOrderFront> fetchUninvoicedOrdersByShopForClientFullSQL(List<String> shopIds, List<Integer> erpStatuses, String column, String order, Integer pageNo, Integer pageSize,
List<Integer> productAvailable, List<Integer> shippingAvailable, List<Integer> purchaseAvailable) { List<Integer> productAvailable, List<Integer> shippingAvailable, List<Integer> purchaseAvailable, Date startDate, Date endDate) {
int offset = (pageNo - 1) * pageSize; int offset = (pageNo - 1) * pageSize;
return platformOrderMap.fetchUninvoicedOrdersByShopForClientFullSQL(shopIds, erpStatuses, column, order, offset, pageSize, productAvailable, shippingAvailable, purchaseAvailable); return platformOrderMap.fetchUninvoicedOrdersByShopForClientFullSQL(shopIds, erpStatuses, column, order, offset, pageSize, productAvailable, shippingAvailable, purchaseAvailable, startDate, endDate);
} }
@Override @Override