feat: added a date filter

pull/8523/head
Xue YANG 2025-04-16 11:32:30 +02:00
parent 14b31ca05d
commit eadafe12de
6 changed files with 30 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.Value;
import org.springframework.core.env.Environment;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.bind.annotation.*;
@ -532,7 +533,9 @@ public class InvoiceController {
@RequestParam(name = "order", defaultValue = "ASC") String order,
@RequestParam(name ="shippingAvailable[]", required = false) List<Integer> shippingAvailable,
@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 : [{}]",
((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 parsedOrder = order.toUpperCase();
if(!parsedOrder.equals("ASC") && !parsedOrder.equals("DESC")) {
return Result.error("Error 400 Bad Request");
return Result.error(400,"Error 400 Bad Request");
}
try {
specialFilterContentForDictSql(parsedColumn);
@ -553,8 +556,14 @@ public class InvoiceController {
// // checking shipping data availability
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,
productStatuses, shippingAvailable, purchaseAvailable);
productStatuses, shippingAvailable, purchaseAvailable, startDate, endDate);
int total = !order.isEmpty() ? orders.get(0).getTotalCount() : 0;
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);
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("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<PlatformOrder> fetchEmptyLogisticChannelOrders(@Param("startDate") String startDate,@Param("endDate") String endDate);

View File

@ -747,6 +747,10 @@
#{erpStatus}
</foreach>
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
OR (po.shipping_invoice_number LIKE '%%%%-%%-2%%%'
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<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.

View File

@ -436,9 +436,9 @@ public class PlatformOrderServiceImpl extends ServiceImpl<PlatformOrderMapper, P
}
@Override
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;
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

View File

@ -757,6 +757,15 @@ public class SkuListMabangServiceImpl extends ServiceImpl<SkuListMabangMapper, S
return null;
}
SkuData skuData = new SkuData();
//不设置null\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (sku.getErpCode() == null) {
log.error("ERP code is null for skuId: {}", sku.getId());
responses.addFailure("UNKNOWN_ERP_CODE_" + sku.getId(), "ERP code is null");
return null;
}
//不设置null\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
skuData.setErpCode(sku.getErpCode());
if(remarkMappedByErpCode.containsKey(sku.getErpCode())) {
StringBuilder remark = new StringBuilder();