You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
8.4 KiB
Java
216 lines
8.4 KiB
Java
package com.gszc.service.impl;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
|
import com.gszc.entity.Custom;
|
|
import com.gszc.entity.Invoice;
|
|
import com.gszc.entity.InvoiceHeader;
|
|
import com.gszc.mapper.CustomMapper;
|
|
import com.gszc.mapper.InvoiceHeaderMapper;
|
|
import com.gszc.mapper.InvoiceMapper;
|
|
import com.gszc.service.CountService;
|
|
import com.gszc.service.IInvoiceService;
|
|
import com.gszc.util.KdniaoTrackQueryAPI;
|
|
import com.gszc.util.Uuid8Utils;
|
|
import org.apache.ibatis.session.RowBounds;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* <p>
|
|
* 服务实现类
|
|
* </p>
|
|
*
|
|
* @author ky
|
|
* @since 2020-04-27
|
|
*/
|
|
@Service
|
|
@Transactional
|
|
public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> implements IInvoiceService {
|
|
|
|
@Autowired
|
|
InvoiceMapper invoiceMapper;
|
|
|
|
@Autowired
|
|
InvoiceHeaderMapper invoiceHeaderMapper;
|
|
|
|
@Autowired
|
|
CustomServiceImpl customService;
|
|
|
|
@Autowired
|
|
CustomMapper customMapper;
|
|
|
|
@Autowired
|
|
CountService countService;
|
|
|
|
public void addInvoice(Invoice invoice){
|
|
String id = Uuid8Utils.generateShortUUID();
|
|
invoice.setId(id);
|
|
invoice.setStatusCode("disable");
|
|
invoice.setCreateDate(new Date());
|
|
invoice.setModifyDate(new Date());
|
|
BigDecimal money = invoice.getMoney();
|
|
String customId = invoice.getCustomId();
|
|
Custom custom = customMapper.selectById(customId);
|
|
|
|
try {
|
|
String companyType;
|
|
String invoiceType;
|
|
String taxType;
|
|
|
|
JSONObject jsonObject = countService.VATCount("4", "1", ""+custom.getRegisterType(), money.doubleValue());
|
|
BigDecimal money1 = jsonObject.getBigDecimal("money");
|
|
invoice.setTaxMoney(money1.toString());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
invoiceMapper.insert(invoice);
|
|
}
|
|
|
|
public List<Invoice> invoiceList(String userId,String type){
|
|
List<Invoice> list = new ArrayList<>();
|
|
JSONArray customs = customService.customList(userId,null);
|
|
for(int i = 0;i<customs.size();i++){
|
|
Wrapper<Invoice> customId = new EntityWrapper<Invoice>().eq("custom_id", customs.getJSONObject(i).getJSONObject("custom").getString("id"));
|
|
if(null==type){
|
|
|
|
}else if(type.equals("disable")){
|
|
customId.eq("status_code","disable");
|
|
}else if(type.equals("enable")){
|
|
customId.eq("status_code","enable");
|
|
}
|
|
List<Invoice> invoiceList = invoiceMapper.selectList(customId);
|
|
for(Invoice invoice:invoiceList){
|
|
invoice.setCustomName(customs.getJSONObject(i).getJSONObject("custom").getString("companyName"));
|
|
invoice.setCustomType(customs.getJSONObject(i).getJSONObject("custom").getString("registerType"));
|
|
String invoiceHeaderId = invoice.getInvoiceHeaderId();
|
|
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId);
|
|
|
|
invoice.setInvoiceHeaderName(invoiceHeader.getCompanyName());
|
|
invoice.setTaxCode(invoiceHeader.getTaxCode());
|
|
}
|
|
if(invoiceList.size()>0){
|
|
list.addAll(invoiceList);
|
|
}
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public JSONObject invoiceDetail(String invoiceId){
|
|
JSONObject jsonObject = new JSONObject();
|
|
Invoice invoice = invoiceMapper.selectById(invoiceId);
|
|
String customId = invoice.getCustomId();
|
|
Custom custom = customMapper.selectById(customId);
|
|
invoice.setCustomName(custom.getCompanyName());
|
|
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoice.getInvoiceHeaderId());
|
|
jsonObject.put("invoice",invoice);
|
|
jsonObject.put("invoiceHeader",invoiceHeader);
|
|
return jsonObject;
|
|
}
|
|
|
|
public List<InvoiceHeader> invoiceHeaderList(String userId){
|
|
|
|
List<InvoiceHeader> invoiceHeaderList = invoiceHeaderMapper.selectList(new EntityWrapper<InvoiceHeader>().eq("mini_user_id", userId));
|
|
return invoiceHeaderList;
|
|
}
|
|
|
|
public void addInvoiceHeader(InvoiceHeader invoiceHeader){
|
|
String uuid = UUID.randomUUID().toString();
|
|
invoiceHeader.setId(uuid);
|
|
invoiceHeader.setCreateDate(new Date());
|
|
invoiceHeader.setModifyDate(new Date());
|
|
invoiceHeaderMapper.insert(invoiceHeader);
|
|
}
|
|
|
|
public void updateInvoiceHeader(InvoiceHeader invoiceHeader){
|
|
invoiceHeader.setModifyDate(new Date());
|
|
invoiceHeaderMapper.updateById(invoiceHeader);
|
|
}
|
|
|
|
public void deleteInvoiceHeader(String invoiceHeaderId){
|
|
|
|
if(invoiceMapper.selectCount(new EntityWrapper<Invoice>().eq("invoice_header_id", invoiceHeaderId))>0){
|
|
throw new RuntimeException("抬头已被使用");
|
|
}
|
|
invoiceHeaderMapper.deleteById(invoiceHeaderId);
|
|
}
|
|
|
|
public InvoiceHeader invoiceHeaderDetail(String invoiceHeaderId){
|
|
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId);
|
|
return invoiceHeader;
|
|
}
|
|
|
|
public JSONObject pcDisableInvoiceList(Integer pageNum,Integer pageSize){
|
|
Integer count = invoiceMapper.selectCount(new EntityWrapper<Invoice>().eq("status_code", "disable"));
|
|
List<Invoice> invoiceList = invoiceMapper.selectPage(new RowBounds((pageNum-1)*pageSize,pageSize),new EntityWrapper<Invoice>().eq("status_code", "disable").orderBy("create_date",false));
|
|
|
|
for(Invoice invoice :invoiceList){
|
|
String invoiceHeaderId = invoice.getInvoiceHeaderId();
|
|
String customId = invoice.getCustomId();
|
|
Custom custom = customMapper.selectById(customId);
|
|
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId);
|
|
invoice.setCustomName(custom.getCompanyName());
|
|
invoice.setInvoiceHeaderName(invoiceHeader.getCompanyName());
|
|
}
|
|
JSONObject jsonObject = new JSONObject();
|
|
jsonObject.put("count",count);
|
|
jsonObject.put("invoiceList",invoiceList);
|
|
return jsonObject;
|
|
}
|
|
|
|
public JSONObject pcEnableInvoiceList(Integer pageNum,Integer pageSize){
|
|
Integer count = invoiceMapper.selectCount(new EntityWrapper<Invoice>().eq("status_code", "enable"));
|
|
List<Invoice> invoiceList = invoiceMapper.selectPage(new RowBounds((pageNum-1)*pageSize,pageSize),new EntityWrapper<Invoice>().eq("status_code", "enable").orderBy("create_date",false));
|
|
for(Invoice invoice :invoiceList){
|
|
String invoiceHeaderId = invoice.getInvoiceHeaderId();
|
|
String customId = invoice.getCustomId();
|
|
Custom custom = customMapper.selectById(customId);
|
|
InvoiceHeader invoiceHeader = invoiceHeaderMapper.selectById(invoiceHeaderId);
|
|
invoice.setCustomName(custom.getCompanyName());
|
|
invoice.setInvoiceHeaderName(invoiceHeader.getCompanyName());
|
|
}
|
|
JSONObject jsonObject = new JSONObject();
|
|
jsonObject.put("count",count);
|
|
jsonObject.put("invoiceList",invoiceList);
|
|
return jsonObject;
|
|
}
|
|
|
|
public void invoiceConfirm(String invoiceId,String trackingCompany,String trackingCode,String trackingImg){
|
|
Invoice invoice = new Invoice();
|
|
invoice.setId(invoiceId);
|
|
invoice.setStatusCode("enable");
|
|
invoice.setModifyDate(new Date());
|
|
|
|
invoice.setTrackingCompany(trackingCompany);
|
|
invoice.setTrackingCode(trackingCode);
|
|
invoice.setTrackingImg(trackingImg);
|
|
invoiceMapper.updateById(invoice);
|
|
}
|
|
|
|
public JSONObject trackingDetail(String trackingCompany,String trackingCode){
|
|
|
|
KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();
|
|
JSONObject orderTracesByJson = new JSONObject();
|
|
try {
|
|
String orderTracesByJsonString = api.getOrderTracesByJson(trackingCompany, trackingCode);
|
|
orderTracesByJson = JSONObject.parseObject(orderTracesByJsonString);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return orderTracesByJson;
|
|
}
|
|
return orderTracesByJson;
|
|
}
|
|
|
|
}
|