|
@@ -7,14 +7,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.jayway.jsonpath.internal.function.numeric.Sum;
|
|
|
import com.management.platform.constant.Constant;
|
|
|
import com.management.platform.entity.*;
|
|
|
import com.management.platform.entity.vo.SysRichFunction;
|
|
|
import com.management.platform.mapper.*;
|
|
|
-import com.management.platform.service.ExpenseItemService;
|
|
|
-import com.management.platform.service.ExpenseSheetService;
|
|
|
-import com.management.platform.service.InformationService;
|
|
|
-import com.management.platform.service.WxCorpInfoService;
|
|
|
+import com.management.platform.service.*;
|
|
|
import com.management.platform.util.ExcelUtil;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
import com.management.platform.util.MessageUtils;
|
|
@@ -26,6 +24,7 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
@@ -54,6 +53,8 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
@Transactional
|
|
|
public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, ExpenseSheet> implements ExpenseSheetService {
|
|
|
+ @Value(value = "${upload.path}")
|
|
|
+ private String path;
|
|
|
@Resource
|
|
|
private HttpServletRequest request;
|
|
|
@Resource
|
|
@@ -82,6 +83,8 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
|
|
|
private InformationService informationService;
|
|
|
@Resource
|
|
|
private SysRoleFunctionMapper sysRoleFunctionMapper;
|
|
|
+ @Resource
|
|
|
+ private ExcelExportService excelExportService;
|
|
|
public static final String[] sheetTypes = {"一般费用","差旅费","外包费用"};
|
|
|
@Override
|
|
|
public HttpRespMsg add(ExpenseSheet sheet, String items, String userId) {
|
|
@@ -635,4 +638,117 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
|
|
|
}
|
|
|
return msg;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 费用报销单据的导出
|
|
|
+ * @param sheet
|
|
|
+ * @param startDate
|
|
|
+ * @param endDate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate) {
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", sheet.getCompanyId()));
|
|
|
+ QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
|
|
|
+ queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
|
|
|
+ if (!StringUtils.isEmpty(sheet.getCode())) {
|
|
|
+ queryWrapper.eq("code", sheet.getCode());
|
|
|
+ }
|
|
|
+ //增加状态
|
|
|
+ if (sheet.getStatus() != null) {
|
|
|
+ queryWrapper.eq("status", sheet.getStatus());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(sheet.getOwnerId())) {
|
|
|
+ queryWrapper.eq("owner_id", sheet.getOwnerId());
|
|
|
+ }
|
|
|
+ if (sheet.getType() != null) {
|
|
|
+ queryWrapper.eq("type", sheet.getType());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
|
|
|
+ queryWrapper.between("create_date", startDate, endDate);
|
|
|
+ }
|
|
|
+ List<ExpenseSheet> records = expenseSheetMapper.selectList(queryWrapper);
|
|
|
+ List<List<String>> allList=new ArrayList<>();
|
|
|
+ List<String> titleList=new ArrayList<>();
|
|
|
+// titleList.add("票据编号");
|
|
|
+// titleList.add("金额(元)");
|
|
|
+// titleList.add("报销人");
|
|
|
+// titleList.add("填报日期");
|
|
|
+// titleList.add("发票张数");
|
|
|
+// titleList.add("票据类型");
|
|
|
+// titleList.add("备注");
|
|
|
+// titleList.add("状态");
|
|
|
+ titleList.add(MessageUtils.message("Reimbursement.No"));
|
|
|
+ titleList.add(MessageUtils.message("Reimbursement.amount"));
|
|
|
+ titleList.add(MessageUtils.message("excel.reiPer"));
|
|
|
+ titleList.add(MessageUtils.message("excel.fillDate"));
|
|
|
+ titleList.add(MessageUtils.message("Reimbursement.numberOfInvoices"));
|
|
|
+ titleList.add(MessageUtils.message("Reimbursement.billType"));
|
|
|
+ titleList.add(MessageUtils.message("excel.remark"));
|
|
|
+ titleList.add(MessageUtils.message("leave.status"));
|
|
|
+ allList.add(titleList);
|
|
|
+ BigDecimal sumAmount = new BigDecimal(0);
|
|
|
+ for (ExpenseSheet record : records) {
|
|
|
+ List<String> item=new ArrayList<>();
|
|
|
+ item.add(record.getCode());
|
|
|
+ item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
|
|
|
+ if (wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
+ item.add("$userName=" + record.getOwnerName() +"$");
|
|
|
+ }else {
|
|
|
+ item.add(record.getOwnerName());
|
|
|
+ }
|
|
|
+ item.add(record.getCreateDate()==null?"":record.getCreateDate()+"");
|
|
|
+ item.add(record.getTicketNum()==null?"0":record.getTicketNum()+"");
|
|
|
+ switch (record.getType()){
|
|
|
+ case 0:
|
|
|
+ item.add("一般费用");
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ item.add("差旅费用");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ item.add("外包费用");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ item.add("");
|
|
|
+ }
|
|
|
+ item.add(record.getRemark()==null?"":record.getRemark());
|
|
|
+ switch (record.getStatus()){
|
|
|
+ case 0:
|
|
|
+ item.add("审核通过");
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ item.add("待审核");
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ item.add("驳回");
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ item.add("已撤回");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ item.add("");
|
|
|
+ }
|
|
|
+ allList.add(item);
|
|
|
+ sumAmount = sumAmount.add(BigDecimal.valueOf(record.getTotalAmount()));
|
|
|
+ }
|
|
|
+ //合计
|
|
|
+ List<String> sumRow = new ArrayList<String>();
|
|
|
+ //sumRow.add("合计");
|
|
|
+ sumRow.add(MessageUtils.message("entry.total"));
|
|
|
+ sumRow.add(sumAmount.setScale(2,BigDecimal.ROUND_UP)+"");
|
|
|
+ allList.add(sumRow);
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
+ //生成excel文件导出
|
|
|
+ //String fileName = "费用报销单据列表"+System.currentTimeMillis();
|
|
|
+ String fileName = MessageUtils.message("fileName.expense")+System.currentTimeMillis();
|
|
|
+ try {
|
|
|
+ return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+// String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
|
|
|
+// msg.data = resp;
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|