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") @GetMapping(value = "/compare")
public Result<?> compareClientSkuWithMabang(@RequestParam(name="clientId") String clientId) { public Result<?> compareClientSkuWithMabang(@RequestParam(name="clientId") String clientId,
Map<String, Sku> clientSkus = skuService.listByClientId(clientId); @RequestParam(name="erpStatuses[]") List<String> erpStatuses) {
Map<String, Sku> clientSkus = skuService.listInUninvoicedOrders(clientId, erpStatuses);
List<String> skuIds = new ArrayList<>(clientSkus.keySet()); List<String> skuIds = new ArrayList<>(clientSkus.keySet());
List<SkuDocument> clientSkuDocs = new ArrayList<>(); List<SkuDocument> clientSkuDocs = new ArrayList<>();
for(String skuId: skuIds) { 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); List<SkuOrderPage> getInventory(@Param("erpCodes") List<String> erpCodes, @Param("invoiceNumber") String invoiceNumber);
@MapKey("id") @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<SkuOrderPage> searchExistingSkuByKeywords(@Param("keywords") List<String> keywords);
List<Sku> listImgUrls(); List<Sku> listImgUrls();

View File

@ -723,12 +723,22 @@
#{sku.id} #{sku.id}
</foreach> </foreach>
</update> </update>
<select id="listByClientId" resultType="org.jeecg.modules.business.entity.Sku"> <select id="listInUninvoicedOrders" resultType="org.jeecg.modules.business.entity.Sku">
SELECT * SELECT DISTINCT s.*
FROM sku 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} 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>
<select id="searchExistingSkuByKeywords" resultType="org.jeecg.modules.business.vo.SkuOrderPage"> <select id="searchExistingSkuByKeywords" resultType="org.jeecg.modules.business.vo.SkuOrderPage">
SELECT SELECT

View File

@ -113,7 +113,7 @@ public interface ISkuService extends IService<Sku> {
List<SkuOrderPage> getInventoryByInvoiceNumber(String invoiceNumber); List<SkuOrderPage> getInventoryByInvoiceNumber(String invoiceNumber);
List<SkuOrderPage> getInventory(List<String> erpCodes, 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); List<SkuOrderPage> searchExistingSkuByKeywords(List<String> keywords);

View File

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