diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuController.java index dd5accb60..b45abcda5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuController.java @@ -16,10 +16,7 @@ import org.jeecg.modules.business.entity.ShippingDiscount; import org.jeecg.modules.business.entity.Sku; import org.jeecg.modules.business.entity.SkuDeclaredValue; import org.jeecg.modules.business.entity.SkuPrice; -import org.jeecg.modules.business.service.IShippingDiscountService; -import org.jeecg.modules.business.service.ISkuDeclaredValueService; -import org.jeecg.modules.business.service.ISkuPriceService; -import org.jeecg.modules.business.service.ISkuService; +import org.jeecg.modules.business.service.*; import org.jeecg.modules.business.vo.SkuName; import org.jeecg.modules.business.vo.SkuPage; import org.jeecg.modules.business.vo.SkuUpdate; @@ -350,4 +347,12 @@ public class SkuController { ); } + @GetMapping("/skusByClient") + public Result skusByClient(@RequestParam String clientId) { + List skus = skuService.fetchSkusByClient(clientId); + IPage page = new Page<>(); + page.setRecords(skus); + page.setTotal(skus.size()); + return Result.OK(page); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java index 69fea7388..3088a161b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java @@ -792,6 +792,7 @@ public class InvoiceController { metaDataErrorList.add(metaData); } else { + filenameList.add(INVOICE_PDF_DIR + "//" + "Invoice N°" + metaData.getInvoiceCode() + " (" + metaData.getInvoiceEntity() + ").pdf"); filenameList.add(INVOICE_DIR + "//" + metaData.getFilename()); List factureDetails = shippingInvoiceService.getInvoiceDetail(metaData.getInvoiceCode()); List refunds = savRefundWithDetailService.getRefundsByInvoiceNumber(metaData.getInvoiceCode()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/MabangSkuJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/MabangSkuJob.java index 8aade1ad2..9ab426e04 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/MabangSkuJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/MabangSkuJob.java @@ -182,7 +182,7 @@ public class MabangSkuJob implements Job { param.put("total_page", String.valueOf(messageContentList.size())); TemplateMessageDTO message = new TemplateMessageDTO("admin", "admin", "SKU导入任务", param, "sku_mabang_job_result"); ISysBaseApi.sendTemplateAnnouncement(message); - message = new TemplateMessageDTO("admin", "Alice", "SKU导入任务", param, "sku_mabang_job_result"); +// message = new TemplateMessageDTO("admin", "Alice", "SKU导入任务", param, "sku_mabang_job_result"); ISysBaseApi.sendTemplateAnnouncement(message); message = new TemplateMessageDTO("admin", "Jessyca", "SKU导入任务", param, "sku_mabang_job_result"); ISysBaseApi.sendTemplateAnnouncement(message); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/SkuAssociationToClientJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/SkuAssociationToClientJob.java new file mode 100644 index 000000000..2ea9b28af --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/SkuAssociationToClientJob.java @@ -0,0 +1,79 @@ +package org.jeecg.modules.business.domain.job; + +import freemarker.template.Template; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.business.entity.ClientSku; +import org.jeecg.modules.business.entity.Sku; +import org.jeecg.modules.business.service.*; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; +import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; +import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; + +import javax.mail.Authenticator; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import java.util.*; +import java.util.stream.Collectors; + +/** + * A Job that retrieves all Sku from Mabang + * if the sku is of status 3 (normal) and not in DB, then we insert it in DB + */ +@Slf4j +@Component +public class SkuAssociationToClientJob implements Job { + + @Autowired + private ISkuService skuService; + @Autowired + private IClientSkuService clientSkuService; + @Autowired + private EmailService emailService; + @Autowired + private FreeMarkerConfigurer freemarkerConfigurer; + @Autowired + Environment env; + + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + log.info("SkuAssociationToClientJob start"); + List allSkusIds = skuService.list().stream().map(Sku::getId).collect(Collectors.toList()); + List allClientSkuIds = clientSkuService.list().stream().map(ClientSku::getSkuId).collect(Collectors.toList()); + List newSkusIds = allSkusIds.stream().filter(skuId -> !allClientSkuIds.contains(skuId)).collect(Collectors.toList()); + List newSkus = skuService.listByIds(newSkusIds); + List unknownClientSkus = clientSkuService.saveClientSku(newSkus); + + // send email for manual check + if(!unknownClientSkus.isEmpty()) { + log.info("Sending email for manual check."); + Properties prop = emailService.getMailSender(); + Session session = Session.getInstance(prop, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(env.getProperty("spring.mail.username"), env.getProperty("spring.mail.password")); + } + }); + + String subject = "Association of Sku to Client failed"; + String destEmail = env.getProperty("spring.mail.username"); + Map templateModel = new HashMap<>(); + templateModel.put("skus", unknownClientSkus); + try { + freemarkerConfigurer = emailService.freemarkerClassLoaderConfig(); + Template template = freemarkerConfigurer.getConfiguration().getTemplate("admin/unknownClientForSku.ftl"); + String htmlBody = FreeMarkerTemplateUtils.processTemplateIntoString(template, templateModel); + emailService.sendSimpleMessage(destEmail, subject, htmlBody, session); + log.info("Mail sent successfully"); + } catch (Exception e) { + log.error("Error sending mail: " + e.getMessage()); + } + } + + } +} \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientCategoryMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientCategoryMapper.java index fcb73ba93..c3c04d0c3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientCategoryMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientCategoryMapper.java @@ -19,4 +19,6 @@ public interface ClientCategoryMapper extends BaseMapper { BigDecimal getBalanceThresholdByCategoryId(@Param("id") String id); String getClientCategoryByClientId(@Param("clientId") String clientId); + + String getIdByCode(@Param("name") String categoryName); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuMapper.java index 62831258d..732e5689f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuMapper.java @@ -52,4 +52,6 @@ public interface SkuMapper extends BaseMapper { List findMissingSkusInNotShippedOrders(@Param("start") LocalDateTime start); List getSkuQuantitiesFromOrderIds(@Param("orderIds") List orderIds); + + List fetchSkusByClient(@Param("clientId") String clientId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientCategoryMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientCategoryMapper.xml index 624be5e74..73a628ef4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientCategoryMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientCategoryMapper.xml @@ -13,4 +13,9 @@ ON c.client_category_id = cc.id WHERE c.id = #{clientId}; + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuMapper.xml index 4f8889007..27afbc6b5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuMapper.xml @@ -151,4 +151,11 @@ AND virtual_product_available = 0 GROUP BY sku_id; + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientCategoryService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientCategoryService.java index 6c07f2dc0..a0f12f4bb 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientCategoryService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientCategoryService.java @@ -12,4 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface IClientCategoryService extends IService { String getClientCategoryByClientId(String clientId); + + String getIdByCode(String categoryName); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientSkuService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientSkuService.java index d32f0e252..3a36d673c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientSkuService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientSkuService.java @@ -2,6 +2,8 @@ package org.jeecg.modules.business.service; import org.jeecg.modules.business.entity.ClientSku; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.business.entity.Sku; + import java.util.List; /** @@ -13,4 +15,8 @@ import java.util.List; public interface IClientSkuService extends IService { public List selectByMainId(String mainId); + + List saveClientSku(List newSkus); + + void addClientSku(String clientId, String skuId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuService.java index 0ca35fb72..556363e56 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuService.java @@ -93,4 +93,6 @@ public interface ISkuService extends IService { List findMissingSkusInNotShippedOrders(LocalDateTime start); List getSkuQuantitiesFromOrderIds(List orderIds); + + List fetchSkusByClient(String clientId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java index 0c8fe4820..ea084570f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java @@ -11,6 +11,8 @@ import org.jeecg.modules.business.domain.excel.SheetManager; import org.jeecg.modules.business.domain.shippingInvoice.CompleteInvoice; import org.jeecg.modules.business.domain.shippingInvoice.ShippingInvoice; import org.jeecg.modules.business.domain.shippingInvoice.ShippingInvoiceFactory; +import org.jeecg.modules.business.entity.Client; +import org.jeecg.modules.business.entity.ClientCategory.CategoryName; import org.jeecg.modules.business.entity.PlatformOrder; import org.jeecg.modules.business.entity.SavRefundWithDetail; import org.jeecg.modules.business.mapper.*; @@ -58,6 +60,8 @@ public class PlatformOrderShippingInvoiceService { @Autowired ClientMapper clientMapper; @Autowired + IClientCategoryService clientCategoryService; + @Autowired EmailService emailService; @Autowired ShopMapper shopMapper; @@ -482,9 +486,10 @@ public class PlatformOrderShippingInvoiceService { clientShopIDsMap.put(id, shopService.listIdByClient(id)); } for(Map.Entry> entry: clientShopIDsMap.entrySet()) { + Client client = clientMapper.selectById(entry.getKey()); Period period = getValidPeriod(entry.getValue()); if(!period.isValid()) { - String internalCode = clientMapper.selectById(entry.getKey()).getInternalCode(); + String internalCode = client.getInternalCode(); invoiceList.add(new InvoiceMetaData("", "error", internalCode, entry.getKey(), "No order to invoice.")); continue; } @@ -501,18 +506,23 @@ public class PlatformOrderShippingInvoiceService { InvoiceMetaData metaData; if(invoiceType == 0) { metaData = makeInvoice(param); - balanceService.updateBalance(entry.getKey(), metaData.getInvoiceCode(), "shipping"); + if(client.getClientCategoryId().equals(clientCategoryService.getIdByCode(CategoryName.VIP.getName())) + || client.getClientCategoryId().equals(clientCategoryService.getIdByCode(CategoryName.CONFIRMED.getName()))) + balanceService.updateBalance(entry.getKey(), metaData.getInvoiceCode(), "shipping"); } else { metaData = makeCompleteInvoicePostShipping(param, "post"); - balanceService.updateBalance(entry.getKey(), metaData.getInvoiceCode(), "complete"); + if(client.getClientCategoryId().equals(clientCategoryService.getIdByCode(CategoryName.VIP.getName())) + || client.getClientCategoryId().equals(clientCategoryService.getIdByCode(CategoryName.CONFIRMED.getName()))) + balanceService.updateBalance(entry.getKey(), metaData.getInvoiceCode(), "complete"); } + convertToPdf(metaData.getInvoiceCode(), "invoice"); invoiceList.add(metaData); } catch (UserException | IOException | ParseException e) { String internalCode = clientMapper.selectById(entry.getKey()).getInternalCode(); invoiceList.add(new InvoiceMetaData("", "error", internalCode, entry.getKey(), e.getMessage())); log.error(e.getMessage()); - } catch (MessagingException e) { + } catch (Exception e) { throw new RuntimeException(e); } System.gc(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientCategoryServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientCategoryServiceImpl.java index 2bb531834..aaa8d8f34 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientCategoryServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientCategoryServiceImpl.java @@ -22,4 +22,9 @@ public class ClientCategoryServiceImpl extends ServiceImpl implements IClientSkuService { @Autowired private ClientSkuMapper clientSkuMapper; + @Autowired + private IClientService clientService; @Override public List selectByMainId(String mainId) { return clientSkuMapper.selectByMainId(mainId); } + @Override + public List saveClientSku(List newSkus) { + List unknownSkuErpCode = new ArrayList<>(); // sku erp code that we couldn't find client for + for(Sku sku : newSkus) { + String erpCode = sku.getErpCode(); + if(erpCode == null) { + log.info("Couldn't associate sku \"{}\" with any client. ErpCode is NULL", sku.getId()); + unknownSkuErpCode.add("Sku ID : " + sku.getId() + " - ErpCode is NULL"); + continue; + } + int index = erpCode.lastIndexOf("-"); + if(index == -1) { + log.info("Couldn't associate sku \"{}\" with any client. Wrong format", erpCode); + unknownSkuErpCode.add(erpCode + " - Wrong format"); + continue; + } + String internalCode = erpCode.substring(index+1); + String clientId = clientService.getClientIdByCode(internalCode); + if(clientId == null) { + log.info("Couldn't associate sku \"{}\" with any client. ", erpCode); + unknownSkuErpCode.add(erpCode); + continue; + } + log.info("Associating sku \"{}\" with client \"{}\". ", sku.getErpCode(), clientId); + addClientSku(clientId, sku.getId()); + } + return unknownSkuErpCode; + } + + @Override + public void addClientSku(String clientId, String skuId) { + ClientSku clientSku = new ClientSku(); + clientSku.setClientId(clientId); + clientSku.setSkuId(skuId); + clientSkuMapper.insert(clientSku); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuListMabangServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuListMabangServiceImpl.java index 5b9fac6dc..cef7c1061 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuListMabangServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuListMabangServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.business.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import freemarker.template.Template; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.business.domain.api.mabang.doSearchSkuList.SkuData; import org.jeecg.modules.business.domain.api.mabang.doSearchSkuList.SkuListRequestErrorException; @@ -11,9 +12,15 @@ import org.jeecg.modules.business.entity.SkuPrice; import org.jeecg.modules.business.mapper.SkuListMabangMapper; import org.jeecg.modules.business.service.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; +import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; +import javax.mail.Authenticator; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -28,21 +35,25 @@ import static java.util.stream.Collectors.toList; @Service @Slf4j public class SkuListMabangServiceImpl extends ServiceImpl implements ISkuListMabangService { - private final SkuListMabangMapper skuListMabangMapper; - private final IProductService productService; - private final ISkuService skuService; - private final ISkuPriceService skuPriceService; - private final ISkuDeclaredValueService skuDeclaredValueService; - @Autowired - public SkuListMabangServiceImpl(SkuListMabangMapper skuListMabangMapper, IProductService productService, - ISkuService skuService, ISkuPriceService skuPriceService, ISkuDeclaredValueService skuDeclaredValueService) { - this.skuListMabangMapper = skuListMabangMapper; - this.productService = productService; - this.skuService = skuService; - this.skuPriceService = skuPriceService; - this.skuDeclaredValueService = skuDeclaredValueService; - } + private SkuListMabangMapper skuListMabangMapper; + @Autowired + private IProductService productService; + @Autowired + private ISkuService skuService; + @Autowired + private ISkuPriceService skuPriceService; + @Autowired + private ISkuDeclaredValueService skuDeclaredValueService; + @Autowired + private IClientSkuService clientSkuService; + @Autowired + private EmailService emailService; + @Autowired + private FreeMarkerConfigurer freemarkerConfigurer; + @Autowired + Environment env; + /** * Save skus to DB from mabang api. @@ -97,6 +108,35 @@ public class SkuListMabangServiceImpl extends ServiceImpl unknownClientSkus = clientSkuService.saveClientSku(newSkus); + + // send email for manual check + if(!unknownClientSkus.isEmpty()) { + log.info("Sending email for manual check."); + Properties prop = emailService.getMailSender(); + Session session = Session.getInstance(prop, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(env.getProperty("spring.mail.username"), env.getProperty("spring.mail.password")); + } + }); + + String subject = "Association of Sku to Client failed while creating new Sku"; + String destEmail = env.getProperty("spring.mail.username"); + Map templateModel = new HashMap<>(); + templateModel.put("skus", unknownClientSkus); + try { + freemarkerConfigurer = emailService.freemarkerClassLoaderConfig(); + Template template = freemarkerConfigurer.getConfiguration().getTemplate("admin/unknownClientForSku.ftl"); + String htmlBody = FreeMarkerTemplateUtils.processTemplateIntoString(template, templateModel); + emailService.sendSimpleMessage(destEmail, subject, htmlBody, session); + log.info("Mail sent successfully"); + } catch (Exception e) { + log.error("Error sending mail: " + e.getMessage()); + } + } + // adding the additional information to List and pairing it to a sku with the associated product code List productIdInMap = new ArrayList<>(); for(Sku sku : newSkus) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuServiceImpl.java index 8f86e0bda..0e1b10f3c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuServiceImpl.java @@ -2,6 +2,7 @@ package org.jeecg.modules.business.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.business.controller.UserException; @@ -32,6 +33,7 @@ import java.util.stream.Collectors; * @Date: 2021-06-28 * @Version: V1.1 */ +@Slf4j @Service public class SkuServiceImpl extends ServiceImpl implements ISkuService { @@ -408,4 +410,9 @@ public class SkuServiceImpl extends ServiceImpl implements ISkuS public List getSkuQuantitiesFromOrderIds(List orderIds) { return skuMapper.getSkuQuantitiesFromOrderIds(orderIds); } + + @Override + public List fetchSkusByClient(String clientId) { + return skuMapper.fetchSkusByClient(clientId); + } } \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/templates/admin/unknownClientForSku.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/templates/admin/unknownClientForSku.ftl new file mode 100644 index 000000000..476bddd3e --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/templates/admin/unknownClientForSku.ftl @@ -0,0 +1,21 @@ +<#include "../components/header.ftl"> + + Cher Collègue + + + Un ou plusieurs SKU n'ont pas pu être attribué à un client : + + + +
    + <#if skus?size = 0 > +
  • Aucune erreur
  • + <#else> + <#list skus as sku> +
  • ${sku}
  • + + +
+ + +<#include "../components/footer.ftl"> \ No newline at end of file