feat: better sku listing

pull/8523/head
Gauthier LO 2025-04-25 12:34:12 +02:00
parent 16de117dc8
commit b83a5cde3a
5 changed files with 21 additions and 10 deletions

View File

@ -619,8 +619,9 @@ public class SkuController {
}
@GetMapping(value = "/compare")
public Result<?> compareClientSkuWithMabang(@RequestParam(name="clientId") String clientId) {
Map<String, Sku> clientSkus = skuService.listByClientId(clientId);
public Result<?> compareClientSkuWithMabang(@RequestParam(name="clientId") String clientId,
@RequestParam(name="erpStatuses[]") List<String> erpStatuses) {
Map<String, Sku> clientSkus = skuService.listInUninvoicedOrders(clientId, erpStatuses);
List<String> skuIds = new ArrayList<>(clientSkus.keySet());
List<SkuDocument> clientSkuDocs = new ArrayList<>();
for(String skuId: skuIds) {

View File

@ -76,7 +76,7 @@ public interface SkuMapper extends BaseMapper<Sku> {
List<SkuOrderPage> getInventory(@Param("erpCodes") List<String> erpCodes, @Param("invoiceNumber") String invoiceNumber);
@MapKey("id")
Map<String, Sku> listByClientId(@Param("clientId") String clientId);
Map<String, Sku> listInUninvoicedOrders(@Param("clientId") String clientId, @Param("erpStatuses") List<String> erpStatuses);
List<SkuOrderPage> searchExistingSkuByKeywords(@Param("keywords") List<String> keywords);
List<Sku> listImgUrls();

View File

@ -723,12 +723,22 @@
#{sku.id}
</foreach>
</update>
<select id="listByClientId" resultType="org.jeecg.modules.business.entity.Sku">
SELECT *
<select id="listInUninvoicedOrders" resultType="org.jeecg.modules.business.entity.Sku">
SELECT DISTINCT s.*
FROM sku s
JOIN client_sku ON s.id = client_sku.sku_id
JOIN client_sku ON s.id = client_sku.sku_id
JOIN platform_order_content poc ON s.id = poc.sku_id
JOIN platform_order po ON poc.platform_order_id = po.id
WHERE client_sku.client_id = #{clientId}
AND s.status = 3;
AND po.shipping_invoice_number IS NULL
AND poc.erp_status &lt;&gt; 5
AND po.erp_status IN
<foreach collection="erpStatuses" item="erpStatus" index="index" separator="," open="(" close=")">
#{erpStatus}
</foreach>
AND po.order_time &gt;= '2024-01-01 00:00:00'
AND s.status = 3
;
</select>
<select id="searchExistingSkuByKeywords" resultType="org.jeecg.modules.business.vo.SkuOrderPage">
SELECT

View File

@ -113,7 +113,7 @@ public interface ISkuService extends IService<Sku> {
List<SkuOrderPage> getInventoryByInvoiceNumber(String invoiceNumber);
List<SkuOrderPage> getInventory(List<String> erpCodes, String invoiceNumber);
Map<String, Sku> listByClientId(String clientId);
Map<String, Sku> listInUninvoicedOrders(String clientId, List<String> erpStatuses);
List<SkuOrderPage> searchExistingSkuByKeywords(List<String> keywords);

View File

@ -598,8 +598,8 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
}
@Override
public Map<String, Sku> listByClientId(String clientId) {
return skuMapper.listByClientId(clientId);
public Map<String, Sku> listInUninvoicedOrders(String clientId, List<String> erpStatuses) {
return skuMapper.listInUninvoicedOrders(clientId, erpStatuses);
}
@Override