| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- package com.ydtech.modules.fnc.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.google.gson.Gson;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
- import com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesMapper;
- import com.ydtech.modules.fnc.entity.InsPlyIncome;
- import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
- import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
- import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
- import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
- import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
- import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
- import com.ydtech.modules.order.entity.BasePageResult;
- import com.ydtech.modules.order.entity.InsOrders;
- import org.apache.commons.lang3.ObjectUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- @Service
- public class SettlementDocumentaryFeesServiceImpl extends ServiceImpl<SettlementDocumentaryFeesMapper, SettlementDocumentaryFeesEntity> implements SettlementDocumentaryFeesService {
- @Autowired
- private SettlementDocumentaryLogService settlementDocumentaryLogService;
- @Autowired
- private InsPlyIncomeMapper insPlyIncomeMapper;
- @Override
- public HttpResult<BasePageResult<SettlementDocumentaryFeesEntity>> querySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
- try {
- HashMap<String, Object> params = new HashMap<>();
- params.put("pageNum", settlementDocumentaryFeesVo.getPageNum());
- params.put("pageSize", settlementDocumentaryFeesVo.getPageSize());
- if(StringUtils.isNotEmpty(settlementDocumentaryFeesVo.getHandlingFeesStatus())){
- params.put("handlingFeesStatus",settlementDocumentaryFeesVo.getHandlingFeesStatus());
- }
- if(StringUtils.isNotEmpty(settlementDocumentaryFeesVo.getAgreementType())){
- params.put("agreementType",settlementDocumentaryFeesVo.getAgreementType());
- }
- if(StringUtils.isNotEmpty(settlementDocumentaryFeesVo.getIsNotCar())){
- params.put("isNotCar",settlementDocumentaryFeesVo.getIsNotCar());
- }
- if(StringUtils.isNotEmpty(settlementDocumentaryFeesVo.getPartnerCompaniesId())){
- params.put("partnerCompaniesId",settlementDocumentaryFeesVo.getPartnerCompaniesId());
- }
- PageInfo<List<SettlementDocumentaryFeesEntity>> pageHelper = null;
- List<SettlementDocumentaryFeesEntity> list = this.baseMapper.querySettle(params);
- pageHelper = new PageInfo(list);
- BasePageResult<SettlementDocumentaryFeesEntity> pageResult = new BasePageResult<SettlementDocumentaryFeesEntity>(settlementDocumentaryFeesVo.getPageNum(), settlementDocumentaryFeesVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
- return HttpResult.ok(pageResult);
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- @Override
- @Transactional
- public HttpResult inertSettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
- int i = this.compareAmount(settlementDocumentaryFeesVo.getTotalAmount(), settlementDocumentaryFeesVo.getSettlementAmount());
- if (i < 0) {
- return HttpResult.error("结算金额大于总金额,请重新结算");
- }
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = new SettlementDocumentaryFeesEntity();
- BeanUtils.copyProperties(settlementDocumentaryFeesVo, settlementDocumentaryFeesEntity);
- baseMapper.insert(settlementDocumentaryFeesEntity);
- // 生成跟单费结算记录
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount()); // 结算金额
- settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
- settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
- settlementDocumentaryLogEntity.setCreateTime(new Date());
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- return HttpResult.ok("结算成功");
- }
- @Override
- @Transactional
- public HttpResult documentarySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = baseMapper.selectById(settlementDocumentaryFeesVo.getId());
- if (settlementDocumentaryFeesVo.getSettlementAmount() != null && ObjectUtils.isNotEmpty(settlementDocumentaryFeesEntity)) {
- int i = this.compareAmount(settlementDocumentaryFeesEntity.getUnsettledAmount(), settlementDocumentaryFeesVo.getSettlementAmount());
- if (i < 0) {
- return HttpResult.error("结算金额大于未结算金额,请重新结算");
- }
- settlementDocumentaryFeesEntity.setSettlementAmount(settlementDocumentaryFeesEntity.getSettlementAmount().add(settlementDocumentaryFeesVo.getSettlementAmount()));
- settlementDocumentaryFeesEntity.setUnsettledAmount(settlementDocumentaryFeesEntity.getTotalAmount().subtract(settlementDocumentaryFeesEntity.getSettlementAmount())); //未结算金额
- baseMapper.updateById(settlementDocumentaryFeesEntity);
- // 记录
- // 生成跟单费结算记录
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount()); // 结算金额
- settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
- settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
- settlementDocumentaryLogEntity.setCreateTime(new Date());
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- return HttpResult.ok("修改成功");
- }
- return null;
- }
- /**
- *
- * @param invoiceIds 结算表的id
- * @return 返回开票号 开票金额 开票时间
- */
- @Override
- public List<HashMap<String, Object>> getOtherSettldetail(HashMap<String,Object> params) {
- return baseMapper.getOtherSettldetail(params);
- }
- /**
- *
- * @param ids 开票ids
- * @param invoicingMethod 开票方式 0 保司开票 1 掌柜开票
- * @param taxPoints 税点
- */
- @Override
- public void batchByInvoice(String ids , String invoicingMethod, BigDecimal taxPoints ,BigDecimal invoicCommissionFeevalue) {
- /**
- * 跟单开票处新增开票方式:保司开票/掌柜开票
- *
- * 如果是保司开票,需要填写税点,后续在结算时,税收成本算做支出项,进账金额=开票金额*(1-税点),但统计应收金额
- * ,开票金额,已收金额,开票未进账金额均按照不扣税点的金额核算。
- *
- * 如果是掌柜开票,需要填写税点,但后续结算时,进账金额=开票金额。
- *
- * */
- // 结算金额 收款金额=开票金额*(1-税点)
- HashMap<String, Object> params = new HashMap<>();
- params.put("ids",ids.split(","));
- baseMapper.batchByInvoice(params);
- }
- @Override
- public List<HashMap<String, Object>> getInvoicIds(HashMap<String, Object> params) {
- return baseMapper.getInvoicIds(params);
- }
- @Override
- public SettlementDocumentaryFeesEntity getByParentSettlementAmount(String id) {
- return baseMapper.getByParentSettlementAmount(id);
- }
- /**
- * 作废开票 settlementStatus 为3表示为作废开票
- * @param settlementDocumentaryFeesVo
- */
- @Override
- public void voidInvoicing(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
- SettlementDocumentaryFeesEntity oldSettlementDocumentaryFeesEntity = baseMapper.selectById(settlementDocumentaryFeesVo.getId());
- String[] split = oldSettlementDocumentaryFeesEntity.getIds().split(",");
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- for (String id :split){
- insPlyIncome.setId(id);
- insPlyIncome.setHandlingFeesStatus("0"); //0 为未开票
- // insPlyIncomeMapper.(split);
- insPlyIncomeMapper.updateById(insPlyIncome);
- }
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = new SettlementDocumentaryFeesEntity();
- BeanUtils.copyProperties(settlementDocumentaryFeesVo,settlementDocumentaryFeesEntity);
- settlementDocumentaryFeesEntity.setSettlementStatus("3"); // 3 为作废
- baseMapper.updateById(settlementDocumentaryFeesEntity);
- }
- private int compareAmount(BigDecimal settlementAmount, BigDecimal settlementAmount1) {
- return settlementAmount.compareTo(settlementAmount1);
- }
- }
|