|
@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import cn.ezhizao.common.utils.PdfUtil;
|
|
|
import cn.ezhizao.common.utils.SecurityUtils;
|
|
|
+import cn.ezhizao.common.utils.StringUtils;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
|
|
|
import cn.ezhizao.project.business.company.domain.BizCompany;
|
|
|
import cn.ezhizao.project.business.company.service.IBizCompanyService;
|
|
@@ -33,6 +34,7 @@ import cn.ezhizao.project.business.receiveTicket.service.IBizFinancialReceiveTic
|
|
|
import cn.ezhizao.project.business.receiveTicket.service.IBizFinancialReceiveTicketService;
|
|
|
import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetail;
|
|
|
import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetailEmployee;
|
|
|
+import cn.ezhizao.project.business.salary.domain.vo.BizFinancialSalaryDetailEmployeeNotCompany;
|
|
|
import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailEmployeeService;
|
|
|
import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailService;
|
|
|
import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderRecord;
|
|
@@ -53,6 +55,7 @@ import org.apache.poi.ss.usermodel.CellStyle;
|
|
|
import org.apache.poi.ss.usermodel.Font;
|
|
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
@@ -138,7 +141,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
@PreAuthorize("@ss.hasPermi('business:salary:export')")
|
|
|
@Log(title = "工资", businessType = BusinessType.EXPORT)
|
|
|
@PostMapping("/export")
|
|
|
- public void export(BizFinancialSalary bizFinancialSalary,HttpServletResponse response ) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ public void export(BizFinancialSalary bizFinancialSalary, HttpServletResponse response) throws NoSuchFieldException, IllegalAccessException {
|
|
|
//设置当前账套
|
|
|
setTenantId(bizFinancialSalary);
|
|
|
startOrderBy();
|
|
@@ -147,22 +150,22 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
//查询数据
|
|
|
List<BizFinancialSalary> list = bizFinancialSalaryService.getList(bizFinancialSalary);
|
|
|
//设置状态和当前期间
|
|
|
- for(BizFinancialSalary salary:list){
|
|
|
+ for (BizFinancialSalary salary : list) {
|
|
|
//设置当前期间
|
|
|
- salary.setCurrentPeriod(bizFinancialSalary.getYear()+"-"+bizFinancialSalary.getMonth());
|
|
|
+ salary.setCurrentPeriod(bizFinancialSalary.getYear() + "-" + bizFinancialSalary.getMonth());
|
|
|
BizFinancialSalaryDetail salaryDetail = new BizFinancialSalaryDetail();
|
|
|
salaryDetail.setFinancialSalaryId(salary.getId());
|
|
|
salaryDetail.setYear(bizFinancialSalary.getYear());
|
|
|
salaryDetail.setMonth(bizFinancialSalary.getMonth());
|
|
|
//查询当前期间明细
|
|
|
- List <BizFinancialSalaryDetail> bizFinancialSalaryDetails = bizFinancialSalaryDetailService.getList(salaryDetail);
|
|
|
- if(bizFinancialSalaryDetails.size()==0){
|
|
|
+ List<BizFinancialSalaryDetail> bizFinancialSalaryDetails = bizFinancialSalaryDetailService.getList(salaryDetail);
|
|
|
+ if (bizFinancialSalaryDetails.size() == 0) {
|
|
|
salaryDetail.setStatus(0);
|
|
|
salary.setServiceName("");
|
|
|
- }else{
|
|
|
- salaryDetail=bizFinancialSalaryDetails.get(0);
|
|
|
+ } else {
|
|
|
+ salaryDetail = bizFinancialSalaryDetails.get(0);
|
|
|
SysUser sysUser = sysUserMapper.selectUserById(salaryDetail.getVerifierId());
|
|
|
- salary.setServiceName(sysUser==null?"":sysUser.getNickName());
|
|
|
+ salary.setServiceName(sysUser == null ? "" : sysUser.getNickName());
|
|
|
}
|
|
|
//设置状态
|
|
|
switch (salaryDetail.getStatus()) {
|
|
@@ -199,31 +202,51 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<BizFinancialSalaryDetailEmployee>(BizFinancialSalaryDetailEmployee.class);
|
|
|
util.importTemplateExcel(response, "工资模板");
|
|
|
}
|
|
|
-
|
|
|
+ @Log(title = "导出工资模板2", businessType = BusinessType.EXPORT)
|
|
|
+ @PostMapping("/exportSalaryTemplateNotCompany")
|
|
|
+ public void exportSalaryTemplateNotCompany(HttpServletResponse response) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany>(BizFinancialSalaryDetailEmployeeNotCompany.class);
|
|
|
+ util.importTemplateExcel(response, "工资模板");
|
|
|
+ }
|
|
|
@Log(title = "工资导入", businessType = BusinessType.IMPORT)
|
|
|
@PreAuthorize("@ss.hasPermi('business:salary:import')")
|
|
|
@PostMapping("/importData")
|
|
|
- public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month) throws Exception
|
|
|
- {
|
|
|
- ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
|
|
|
- List<BizFinancialSalaryDetailEmployee> detailList = util.importExcel(file.getInputStream());
|
|
|
-
|
|
|
- // 获取 入Excel 表头字段
|
|
|
- List<String> excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
-
|
|
|
- //获取实体类字段
|
|
|
- List<String> names=getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
|
|
|
-
|
|
|
-
|
|
|
- //如果不存在模板中的字段,返回错误
|
|
|
+ public AjaxResult importData(MultipartFile file, @RequestParam String year, @RequestParam String month, @RequestParam(required = false) String companyId) throws Exception {
|
|
|
+ List<BizFinancialSalaryDetailEmployee> detailList = new ArrayList<>();
|
|
|
+ List<BizFinancialSalaryDetailEmployeeNotCompany> detailListNotCompany=new ArrayList<>();
|
|
|
+ List<String> excelHeaders = null;
|
|
|
+ List<String> names = null;
|
|
|
+ if (StringUtils.isNotEmpty(companyId)) {
|
|
|
+ BizCompany company = companyService.getById(companyId);
|
|
|
+ ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployeeNotCompany.class);
|
|
|
+ detailListNotCompany = util.importExcel(file.getInputStream());
|
|
|
+ for (BizFinancialSalaryDetailEmployeeNotCompany item : detailListNotCompany) {
|
|
|
+ item.setCompanyName(company.getName());
|
|
|
+ BizFinancialSalaryDetailEmployee bizFinancialSalaryDetailEmployee = new BizFinancialSalaryDetailEmployee();
|
|
|
+ BeanUtils.copyProperties(item, bizFinancialSalaryDetailEmployee);
|
|
|
+ detailList.add(bizFinancialSalaryDetailEmployee);
|
|
|
+ }
|
|
|
+ // 获取 入Excel 表头字段
|
|
|
+ excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
+ //获取实体类字段
|
|
|
+ names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployeeNotCompany.class);
|
|
|
+ } else {
|
|
|
+ ExcelUtil<BizFinancialSalaryDetailEmployee> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployee.class);
|
|
|
+ detailList = util.importExcel(file.getInputStream());
|
|
|
+ // 获取 入Excel 表头字段
|
|
|
+ excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
+ //获取实体类字段
|
|
|
+ names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
|
|
|
+ //如果不存在模板中的字段,返回错误
|
|
|
+ }
|
|
|
if (!excelHeaders.containsAll(names)) {
|
|
|
return error("导入数据与模板不匹配!");
|
|
|
}
|
|
|
- String message=bizFinancialSalaryService.importSalary(detailList,year,month,getTenantId()==null?0:getTenantId(),0);
|
|
|
+ String message = bizFinancialSalaryService.importSalary(detailList, year, month, getTenantId() == null ? 0 : getTenantId(), 0);
|
|
|
return success(message);
|
|
|
}
|
|
|
|
|
|
- public List<String> getExcelAnnotatedFields(Class<?> clazz) {
|
|
|
+ public List<String> getExcelAnnotatedFields(Class<?> clazz) {
|
|
|
Field[] fields = clazz.getDeclaredFields();
|
|
|
List<String> result = new ArrayList<>();
|
|
|
for (Field field : fields) {
|
|
@@ -400,7 +423,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
List<BizFinancialSalaryDetailEmployee> employees = detail.getDetails();
|
|
|
financialKeepAccountDetail.setStatus(financialReceiveTicketDetail.getSumNumber().equals(0) && employees.stream().mapToDouble(v -> v.getActuallySalary().doubleValue()).sum() == 0 ? 2 : 1);
|
|
|
Date receiveDate = financialReceiveTicketDetail.getReceiveDate();
|
|
|
- if(receiveDate != null){
|
|
|
+ if (receiveDate != null) {
|
|
|
Timestamp timestamp = new Timestamp(receiveDate.getTime());
|
|
|
financialKeepAccountDetail.setReceiveDate(timestamp);
|
|
|
}
|
|
@@ -596,20 +619,20 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
List<BizFinancialSalaryDetailEmployee> financialSalaryDetailEmployeeList = bizFinancialSalaryDetailEmployeeService.getList(map);
|
|
|
financialSalaryDetail.setDetails(financialSalaryDetailEmployeeList);
|
|
|
//计算每一列的合计金额
|
|
|
- for (BizFinancialSalaryDetailEmployee employee : financialSalaryDetailEmployeeList){
|
|
|
- employee.setIndividualIncomeTax(financialSalaryDetail.getHasIndividualIncomeTax()==1?employee.getIndividualIncomeTaxConfirm() : employee.getCurrentIndividualIncomeTax());
|
|
|
- financialSalaryDetail.setPlanSalary(financialSalaryDetail.getPlanSalary()==null?employee.getPlanSalary() : financialSalaryDetail.getPlanSalary().add(employee.getPlanSalary()));
|
|
|
- financialSalaryDetail.setActuallySalary(financialSalaryDetail.getActuallySalary()==null?employee.getActuallySalary() : financialSalaryDetail.getActuallySalary().add(employee.getActuallySalary()));
|
|
|
- financialSalaryDetail.setBonusAmount(financialSalaryDetail.getBonusAmount()==null?employee.getBonusAmount() : financialSalaryDetail.getBonusAmount().add(employee.getBonusAmount()));
|
|
|
- financialSalaryDetail.setEndowmentInsurance(financialSalaryDetail.getEndowmentInsurance()==null?employee.getEndowmentInsurance() : financialSalaryDetail.getEndowmentInsurance().add(employee.getEndowmentInsurance()));
|
|
|
- financialSalaryDetail.setMedicalInsurance(financialSalaryDetail.getMedicalInsurance()==null?employee.getMedicalInsurance() : financialSalaryDetail.getMedicalInsurance().add(employee.getMedicalInsurance()));
|
|
|
- financialSalaryDetail.setUnemploymentBenefit(financialSalaryDetail.getUnemploymentBenefit()==null?employee.getUnemploymentBenefit() : financialSalaryDetail.getUnemploymentBenefit().add(employee.getUnemploymentBenefit()));
|
|
|
- financialSalaryDetail.setSeriousIllnessInsurance(financialSalaryDetail.getSeriousIllnessInsurance()==null?employee.getSeriousIllnessInsurance() : financialSalaryDetail.getSeriousIllnessInsurance().add(employee.getSeriousIllnessInsurance()));
|
|
|
- financialSalaryDetail.setHousingFund(financialSalaryDetail.getHousingFund()==null?employee.getHousingFund() : financialSalaryDetail.getHousingFund().add(employee.getHousingFund()));
|
|
|
- financialSalaryDetail.setIndividualIncomeTax(financialSalaryDetail.getIndividualIncomeTax()==null?employee.getIndividualIncomeTax() : financialSalaryDetail.getIndividualIncomeTax().add(employee.getIndividualIncomeTax()));
|
|
|
- financialSalaryDetail.setOtherCut(financialSalaryDetail.getOtherCut()==null?employee.getOtherCut() : financialSalaryDetail.getOtherCut().add(employee.getOtherCut()));
|
|
|
+ for (BizFinancialSalaryDetailEmployee employee : financialSalaryDetailEmployeeList) {
|
|
|
+ employee.setIndividualIncomeTax(financialSalaryDetail.getHasIndividualIncomeTax() == 1 ? employee.getIndividualIncomeTaxConfirm() : employee.getCurrentIndividualIncomeTax());
|
|
|
+ financialSalaryDetail.setPlanSalary(financialSalaryDetail.getPlanSalary() == null ? employee.getPlanSalary() : financialSalaryDetail.getPlanSalary().add(employee.getPlanSalary()));
|
|
|
+ financialSalaryDetail.setActuallySalary(financialSalaryDetail.getActuallySalary() == null ? employee.getActuallySalary() : financialSalaryDetail.getActuallySalary().add(employee.getActuallySalary()));
|
|
|
+ financialSalaryDetail.setBonusAmount(financialSalaryDetail.getBonusAmount() == null ? employee.getBonusAmount() : financialSalaryDetail.getBonusAmount().add(employee.getBonusAmount()));
|
|
|
+ financialSalaryDetail.setEndowmentInsurance(financialSalaryDetail.getEndowmentInsurance() == null ? employee.getEndowmentInsurance() : financialSalaryDetail.getEndowmentInsurance().add(employee.getEndowmentInsurance()));
|
|
|
+ financialSalaryDetail.setMedicalInsurance(financialSalaryDetail.getMedicalInsurance() == null ? employee.getMedicalInsurance() : financialSalaryDetail.getMedicalInsurance().add(employee.getMedicalInsurance()));
|
|
|
+ financialSalaryDetail.setUnemploymentBenefit(financialSalaryDetail.getUnemploymentBenefit() == null ? employee.getUnemploymentBenefit() : financialSalaryDetail.getUnemploymentBenefit().add(employee.getUnemploymentBenefit()));
|
|
|
+ financialSalaryDetail.setSeriousIllnessInsurance(financialSalaryDetail.getSeriousIllnessInsurance() == null ? employee.getSeriousIllnessInsurance() : financialSalaryDetail.getSeriousIllnessInsurance().add(employee.getSeriousIllnessInsurance()));
|
|
|
+ financialSalaryDetail.setHousingFund(financialSalaryDetail.getHousingFund() == null ? employee.getHousingFund() : financialSalaryDetail.getHousingFund().add(employee.getHousingFund()));
|
|
|
+ financialSalaryDetail.setIndividualIncomeTax(financialSalaryDetail.getIndividualIncomeTax() == null ? employee.getIndividualIncomeTax() : financialSalaryDetail.getIndividualIncomeTax().add(employee.getIndividualIncomeTax()));
|
|
|
+ financialSalaryDetail.setOtherCut(financialSalaryDetail.getOtherCut() == null ? employee.getOtherCut() : financialSalaryDetail.getOtherCut().add(employee.getOtherCut()));
|
|
|
}
|
|
|
- if (financialSalaryDetailEmployeeList.size()==0){
|
|
|
+ if (financialSalaryDetailEmployeeList.size() == 0) {
|
|
|
financialSalaryDetail.setPlanSalary(BigDecimal.valueOf(0));
|
|
|
financialSalaryDetail.setActuallySalary(BigDecimal.valueOf(0));
|
|
|
financialSalaryDetail.setBonusAmount(BigDecimal.valueOf(0));
|
|
@@ -621,7 +644,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
financialSalaryDetail.setIndividualIncomeTax(BigDecimal.valueOf(0));
|
|
|
financialSalaryDetail.setOtherCut(BigDecimal.valueOf(0));
|
|
|
}
|
|
|
- financialSalaryDetail.setTime(financialSalaryDetail.getYear()+"年"+" "+"第"+financialSalaryDetail.getMonth()+"期");
|
|
|
+ financialSalaryDetail.setTime(financialSalaryDetail.getYear() + "年" + " " + "第" + financialSalaryDetail.getMonth() + "期");
|
|
|
|
|
|
//查询客户信息
|
|
|
company = companyService.getById(financialSalaryDetail.getCompanyId());
|
|
@@ -631,7 +654,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
return;
|
|
|
}
|
|
|
Map<String, Object> paramMap = new HashMap<>();
|
|
|
- paramMap.put("financialSalaryDetail" , financialSalaryDetail);
|
|
|
+ paramMap.put("financialSalaryDetail", financialSalaryDetail);
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
|
|
|
Writer out = new StringWriter();
|
|
|
//获取模板地址
|
|
@@ -644,7 +667,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setContentType("application/pdf");
|
|
|
|
|
|
- String fileName ="工资表";
|
|
|
+ String fileName = "工资表";
|
|
|
response.setHeader("Content-Disposition", "filename=" + new String(fileName.getBytes()));
|
|
|
// byte[] resources = PdfUtil.html2Pdf(2, templateContent, "/icon/logo.png", bizFinancialSalaryService);
|
|
|
byte[] resources = PdfUtil.html2Pdf(templateContent, PageSize.A5.rotate());
|