| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.basic.excel.SupplierManageExcelDto; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.sales.dto.InvoiceRegistrationDto; |
| | | import com.ruoyi.sales.dto.InvoiceRegistrationProductDto; |
| | | import com.ruoyi.sales.dto.SalesLedgerDto; |
| | | import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationMapper; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationProductRecordMapper; |
| | | import com.ruoyi.sales.mapper.InvoiceRegistrationRecordMapper; |
| | | import com.ruoyi.sales.mapper.SalesLedgerProductMapper; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistration; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistrationProductRecord; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistrationRecord; |
| | | import com.ruoyi.sales.pojo.SalesLedgerProduct; |
| | | import com.ruoyi.sales.service.InvoiceRegistrationService; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; |
| | | |
| | | @Autowired |
| | | private InvoiceRegistrationRecordMapper invoiceRegistrationRecordMapper; |
| | | |
| | | @Autowired |
| | | private InvoiceRegistrationProductRecordMapper invoiceRegistrationProductRecordMapper; |
| | | |
| | | private SalesLedgerProductMapper salesLedgerProductMapper; |
| | | |
| | | /** |
| | | * å¼ç¥¨ç»è®°æ°å¢ |
| | | * @param invoiceRegistrationDto |
| | | * å¼ç¥¨ç»è®°è®°å½æ°å¢ |
| | | * @param salesLedgerDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void invoiceRegistrationSaveOrUpdate(InvoiceRegistrationDto invoiceRegistrationDto) { |
| | | List<InvoiceRegistrationProductDto> productDtoList = invoiceRegistrationDto.getProductDtoList(); |
| | | Integer salesLedgerId = invoiceRegistrationDto.getSalesLedgerId(); |
| | | if (null == salesLedgerId){ |
| | | throw new RuntimeException("æªå
³èéå®åå"); |
| | | } |
| | | QueryWrapper<InvoiceRegistration> inRegWrapper = new QueryWrapper<>(); |
| | | inRegWrapper.eq("sales_ledger_id", salesLedgerId); |
| | | InvoiceRegistration invoiceRegistration = invoiceRegistrationMapper.selectOne(inRegWrapper); |
| | | Integer invoiceRegistrationId = null; |
| | | // 夿æ¯å¦å·²ç»åè¿ç»è®°ï¼å¦ææåå¹¶ï¼å¦ææ²¡ææ°å¢ |
| | | if(ObjectUtils.isEmpty(invoiceRegistration)){ |
| | | InvoiceRegistration insertInvocieReg = new InvoiceRegistration(); |
| | | BeanUtils.copyProperties(invoiceRegistrationDto, insertInvocieReg); |
| | | invoiceRegistrationMapper.insert(insertInvocieReg); |
| | | invoiceRegistrationId = insertInvocieReg.getId(); |
| | | }else { |
| | | invoiceRegistrationId = invoiceRegistration.getId(); |
| | | } |
| | | // æ¥è¯¢äº§åæ¯å¦å·²ç»ç»è®° |
| | | if(CollectionUtils.isNotEmpty(productDtoList)){ |
| | | QueryWrapper<InvoiceRegistrationProduct> inRegProductWrapper = new QueryWrapper<>(); |
| | | inRegProductWrapper.eq("invoice_registration_id", invoiceRegistrationId); |
| | | List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(inRegProductWrapper); |
| | | if(CollectionUtils.isNotEmpty(invoiceRegistrationProductList)){ |
| | | // æ¹éæ´æ° |
| | | for (InvoiceRegistrationProduct invoiceRegistrationProduct : invoiceRegistrationProductList) { |
| | | for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { |
| | | if( null != invoiceRegistrationProductDto.getId() && null != invoiceRegistrationProduct.getSalesLedgerProductId() |
| | | && invoiceRegistrationProductDto.getId() == invoiceRegistrationProduct.getSalesLedgerProductId().longValue() ){ |
| | | // 计ç®å·²å¼ç¥¨æ° |
| | | invoiceRegistrationProduct.setInvoiceNum(invoiceRegistrationProduct.getInvoiceNum() + invoiceRegistrationProductDto.getInvoiceNum()); |
| | | // 计ç®å·²å¼ç¥¨éé¢ |
| | | invoiceRegistrationProduct.setInvoiceAmount(invoiceRegistrationProduct.getInvoiceAmount().add(invoiceRegistrationProductDto.getInvoiceAmount())); |
| | | // // è®¡ç®æªå¼ç¥¨æ° |
| | | invoiceRegistrationProduct.setNoInvoiceNum(invoiceRegistrationProductDto.getNoInvoiceNum()); |
| | | // // è®¡ç®æªå¼ç¥¨éé¢ å«ç¨æ»ä»·-å¼ç¥¨éé¢ |
| | | invoiceRegistrationProduct.setNoInvoiceAmount(invoiceRegistrationProductDto.getNoInvoiceAmount()); |
| | | invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct); |
| | | } |
| | | } |
| | | public void invoiceRegistrationSave(SalesLedgerDto salesLedgerDto) { |
| | | InvoiceRegistration invoiceRegistration = new InvoiceRegistration(); |
| | | BeanUtils.copyProperties(salesLedgerDto, invoiceRegistration); |
| | | invoiceRegistration.setId(null); |
| | | invoiceRegistration.setCustomerId(salesLedgerDto.getCustomerId().intValue()); |
| | | invoiceRegistration.setSalesLedgerId(salesLedgerDto.getId().intValue()); |
| | | invoiceRegistrationMapper.insert(invoiceRegistration); |
| | | List<SalesLedgerProduct> productData = salesLedgerDto.getProductData(); |
| | | if(CollectionUtils.isNotEmpty(productData)){ |
| | | for (SalesLedgerProduct productDatum : productData) { |
| | | // 妿å¼ç¥¨æ°ä¸º0 è·³è¿ |
| | | Integer currentInvoiceNum = productDatum.getCurrentInvoiceNum(); |
| | | if(null == currentInvoiceNum || currentInvoiceNum == 0){ |
| | | continue; |
| | | } |
| | | }else { |
| | | // æ¹éæå
¥ |
| | | for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { |
| | | InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct(); |
| | | BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct); |
| | | invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistrationId); |
| | | invoiceRegistrationProduct.setSalesLedgerProductId(invoiceRegistrationProductDto.getId()); |
| | | invoiceRegistrationProduct.setId(null); |
| | | invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct); |
| | | } |
| | | } |
| | | } |
| | | // ä¿åæ¬æ¬¡å¼ç¥¨ç»è®°è®°å½ |
| | | InvoiceRegistrationRecord invoiceRegistrationRecord = new InvoiceRegistrationRecord(); |
| | | BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistrationRecord); |
| | | invoiceRegistrationRecordMapper.insert(invoiceRegistrationRecord); |
| | | if(CollectionUtils.isNotEmpty(productDtoList)){ |
| | | for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { |
| | | InvoiceRegistrationProductRecord invoiceRegistrationProductRecord = new InvoiceRegistrationProductRecord(); |
| | | BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProductRecord); |
| | | invoiceRegistrationProductRecord.setInvoiceRegistrationRecordId(invoiceRegistrationRecord.getId()); |
| | | invoiceRegistrationProductRecord.setSalesLedgerProductId(invoiceRegistrationProductDto.getId()); |
| | | invoiceRegistrationProductRecord.setId(null); |
| | | invoiceRegistrationProductRecordMapper.insert(invoiceRegistrationProductRecord); |
| | | InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct(); |
| | | BeanUtils.copyProperties(productDatum, invoiceRegistrationProduct); |
| | | invoiceRegistrationProduct.setId(null); |
| | | invoiceRegistrationProduct.setSalesLedgerId(salesLedgerDto.getId().intValue()); |
| | | invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId()); |
| | | invoiceRegistrationProduct.setInvoiceAmount(productDatum.getCurrentInvoiceAmount()); |
| | | invoiceRegistrationProduct.setInvoiceNum(productDatum.getCurrentInvoiceNum()); |
| | | invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue()); |
| | | invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct); |
| | | salesLedgerProductMapper.updateById(productDatum); |
| | | } |
| | | } |
| | | } |