| | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.date.LocalDateTimeUtil; |
| | | import cn.hutool.core.lang.Assert; |
| | | import cn.hutool.core.util.StrUtil; |
| | |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy; |
| | | import com.ruoyi.account.service.AccountIncomeService; |
| | | import com.ruoyi.basic.dto.CustomerPrivatePoolDto; |
| | | import com.ruoyi.basic.mapper.CustomerMapper; |
| | | import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper; |
| | | import com.ruoyi.basic.mapper.ProductMapper; |
| | | import com.ruoyi.basic.mapper.ProductModelMapper; |
| | | import com.ruoyi.basic.pojo.Customer; |
| | | import com.ruoyi.basic.pojo.CustomerPrivatePool; |
| | | import com.ruoyi.common.enums.FileNameType; |
| | | import com.ruoyi.common.enums.SaleEnum; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | |
| | | |
| | | @Autowired |
| | | private SysUserMapper sysUserMapper; |
| | | @Autowired |
| | | private CustomerPrivatePoolMapper customerPrivatePoolMapper; |
| | | |
| | | @Override |
| | | public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) { |
| | |
| | | exportProcessContract.setId(id); |
| | | SalesLedger salesLedger = salesLedgerMapper.selectById(id); |
| | | // 查询客户公司信息 |
| | | Customer customer = customerMapper.selectById(salesLedger.getCustomerId()); |
| | | CustomerPrivatePoolDto customerPrivatePoolDto = customerPrivatePoolMapper.selectInfo(salesLedger.getCustomerId()); |
| | | |
| | | exportProcessContract.setCreateTime(LocalDateTimeUtil.format(Optional.ofNullable(salesLedger.getExecutionDate()).orElse(LocalDate.now()), "yyyy年MM月dd日")); |
| | | exportProcessContract.setRemark(Optional.ofNullable(salesLedger.getRemarks()).orElse("无")); // 备注 |
| | | exportProcessContract.setPlaceOfSinging(Optional.ofNullable(salesLedger.getPlaceOfSinging()).orElse("")); |
| | | |
| | | // 填写甲方信息 |
| | | ExportProcessContractVo.Customer partyA = ExportProcessContractVo.Customer.getCustomer(customer); |
| | | exportProcessContract.setPartyAClientName(customer.getCustomerName()); |
| | | ExportProcessContractVo.Customer partyA = ExportProcessContractVo.Customer.getCustomer(customerPrivatePoolDto); |
| | | exportProcessContract.setPartyAClientName(customerPrivatePoolDto.getCustomerName()); |
| | | exportProcessContract.setPartyA(partyA); |
| | | |
| | | // 填写乙方信息 |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) { |
| | | try { |
| | | // 1. 校验客户信息 |
| | | Customer customer = customerMapper.selectById(salesLedgerDto.getCustomerId()); |
| | | CustomerPrivatePoolDto customer = customerPrivatePoolMapper.selectInfo(salesLedgerDto.getCustomerId()); |
| | | if (customer == null) { |
| | | throw new BaseException("客户不存在"); |
| | | } |
| | | // 必须填写销售合同号 |
| | | // Assert.notNull(salesLedgerDto.getSalesContractNo(), "销售合同号不能为空"); |
| | | |
| | | // 2. DTO转Entity |
| | | SalesLedger salesLedger = convertToEntity(salesLedgerDto); |
| | |
| | | salesLedger.setTenantId(customer.getTenantId()); |
| | | // 3. 新增或更新主表 |
| | | if (salesLedger.getId() == null) { |
| | | String contractNo = generateSalesContractNo(); |
| | | // 为空 自动生成 |
| | | String contractNo =StrUtil.isBlank(salesLedgerDto.getSalesContractNo())? generateSalesContractNoBy8Date():salesLedgerDto.getSalesContractNo(); |
| | | salesLedger.setSalesContractNo(contractNo); |
| | | salesLedgerMapper.insert(salesLedger); |
| | | } else { |
| | | salesLedger.setSalesContractNo(null); |
| | | salesLedgerMapper.updateById(salesLedger); |
| | | } |
| | | |
| | |
| | | SalesLedger.class |
| | | ); |
| | | } |
| | | try { |
| | | |
| | | // 5. 迁移临时文件到正式目录 |
| | | if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) { |
| | |
| | | return entity; |
| | | } |
| | | |
| | | public String generateSalesContractNoBy8Date(){ |
| | | String yyMM = DateUtil.format(new Date(), "yyMM"); |
| | | // 查询一个月有多少订单 |
| | | Date begin = DateUtil.beginOfMonth(new Date()); |
| | | Date end = DateUtil.endOfMonth(new Date()); |
| | | LambdaQueryWrapper<SalesLedger> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.between(SalesLedger::getEntryDate, begin, end); |
| | | long count = salesLedgerMapper.selectCount(queryWrapper); |
| | | Long seq = Optional.of(count).orElse(0L) + 1; |
| | | return String.format("%s%04d", yyMM, seq); |
| | | } |
| | | |
| | | |
| | | |
| | | @Transactional(readOnly = true) |
| | | public String generateSalesContractNo() { |
| | | LocalDate currentDate = LocalDate.now(); |