|
@@ -21,6 +21,8 @@ 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.framework.lock.DistributionLock;
|
|
|
+import cn.ezhizao.framework.lock.LockKey;
|
|
|
import cn.ezhizao.project.business.company.domain.BizCompany;
|
|
|
import cn.ezhizao.project.business.company.service.IBizCompanyService;
|
|
|
import cn.ezhizao.project.business.finance.IndividualIncomeTaxIsZero.domain.BizFinancialIndividualIncomeTaxDetailIsZero;
|
|
@@ -120,7 +122,6 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
private IBizFinancialKeepAccountDetailService financialKeepAccountDetailService;
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 查询工资列表
|
|
|
*/
|
|
@@ -137,13 +138,13 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
|
|
|
List<BizFinancialSalary> list = bizFinancialSalaryService.getList(bizFinancialSalary);
|
|
|
if (!list.isEmpty()) {
|
|
|
- if (!chooseYear.equals(nwoYear)){
|
|
|
- List<BizFinancialSalaryDetail> details = bizFinancialSalaryDetailService.query().in("financial_salary_id", list.stream().map(BizFinancialSalary::getId).collect(Collectors.toList())).eq("year",chooseYear).list();
|
|
|
+ if (!chooseYear.equals(nwoYear)) {
|
|
|
+ List<BizFinancialSalaryDetail> details = bizFinancialSalaryDetailService.query().in("financial_salary_id", list.stream().map(BizFinancialSalary::getId).collect(Collectors.toList())).eq("year", chooseYear).list();
|
|
|
list.forEach(l -> {
|
|
|
l.setDetails(details.stream().filter(v -> v.getFinancialSalaryId().equals(l.getId())).collect(Collectors.toList()));
|
|
|
});
|
|
|
- }else{
|
|
|
- List<BizFinancialSalaryDetail> details = bizFinancialSalaryDetailService.query().in("financial_salary_id", list.stream().map(BizFinancialSalary::getId).collect(Collectors.toList())).eq("year",bizFinancialSalary.getYear()).list();
|
|
|
+ } else {
|
|
|
+ List<BizFinancialSalaryDetail> details = bizFinancialSalaryDetailService.query().in("financial_salary_id", list.stream().map(BizFinancialSalary::getId).collect(Collectors.toList())).eq("year", bizFinancialSalary.getYear()).list();
|
|
|
list.forEach(l -> {
|
|
|
l.setDetails(details.stream().filter(v -> v.getFinancialSalaryId().equals(l.getId())).collect(Collectors.toList()));
|
|
|
});
|
|
@@ -170,9 +171,9 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
List<BizFinancialSalary> list = bizFinancialSalaryService.getList2(bizFinancialSalary);
|
|
|
//优化
|
|
|
Map<String, BizFinancialSalaryDetail> detailMap = bizFinancialSalaryDetailService
|
|
|
- .list(new LambdaQueryWrapper<BizFinancialSalaryDetail>().eq(BizFinancialSalaryDetail::getDeleted,0))
|
|
|
+ .list(new LambdaQueryWrapper<BizFinancialSalaryDetail>().eq(BizFinancialSalaryDetail::getDeleted, 0))
|
|
|
.stream().collect(Collectors.toMap(d -> d.getFinancialSalaryId() + d.getYear() + d.getMonth(),
|
|
|
- Function.identity(), (d1, d2) -> d1));
|
|
|
+ Function.identity(), (d1, d2) -> d1));
|
|
|
List<SysUser> sysUsers = sysUserMapper.selectUserList(new SysUser());
|
|
|
Map<Long, SysUser> userMap = sysUsers.stream().collect(Collectors.toMap(user -> user.getUserId(), Function.identity()));
|
|
|
|
|
@@ -191,7 +192,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
// if (bizFinancialSalaryDetails.size() == 0 ) {
|
|
|
// salaryDetail.setStatus(0);
|
|
|
// salary.setServiceName("");
|
|
|
- if (detailMap.get(query) == null ) {
|
|
|
+ if (detailMap.get(query) == null) {
|
|
|
salaryDetail.setStatus(0);
|
|
|
salary.setServiceName("");
|
|
|
} else {
|
|
@@ -236,18 +237,20 @@ 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, @RequestParam(required = false) String companyId) throws Exception {
|
|
|
List<BizFinancialSalaryDetailEmployee> detailList = new ArrayList<>();
|
|
|
- List<BizFinancialSalaryDetailEmployeeNotCompany> detailListNotCompany=new ArrayList<>();
|
|
|
+ List<BizFinancialSalaryDetailEmployeeNotCompany> detailListNotCompany = new ArrayList<>();
|
|
|
List<String> excelHeaders = null;
|
|
|
List<String> names = null;
|
|
|
if (StringUtils.isNotEmpty(companyId)) {
|
|
@@ -255,7 +258,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
ExcelUtil<BizFinancialSalaryDetailEmployeeNotCompany> util = new ExcelUtil<>(BizFinancialSalaryDetailEmployeeNotCompany.class);
|
|
|
detailListNotCompany = util.importExcel(file.getInputStream());
|
|
|
for (BizFinancialSalaryDetailEmployeeNotCompany item : detailListNotCompany) {
|
|
|
- item.setCompanyName(company.getName());
|
|
|
+ item.setCompanyName(company.getName());
|
|
|
BizFinancialSalaryDetailEmployee bizFinancialSalaryDetailEmployee = new BizFinancialSalaryDetailEmployee();
|
|
|
BeanUtils.copyProperties(item, bizFinancialSalaryDetailEmployee);
|
|
|
detailList.add(bizFinancialSalaryDetailEmployee);
|
|
@@ -270,7 +273,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
// 获取 入Excel 表头字段
|
|
|
excelHeaders = util.readExcelHeaders(file.getInputStream());
|
|
|
//获取实体类字段
|
|
|
- names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
|
|
|
+ names = getExcelAnnotatedFields(BizFinancialSalaryDetailEmployee.class);
|
|
|
//如果不存在模板中的字段,返回错误
|
|
|
}
|
|
|
if (!excelHeaders.containsAll(names)) {
|
|
@@ -331,7 +334,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
@Log(title = "工资", businessType = BusinessType.DELETE)
|
|
|
@DeleteMapping("/physical/{ids}")
|
|
|
public AjaxResult remove(@PathVariable List<Long> ids) {
|
|
|
- if (ids.isEmpty()){
|
|
|
+ if (ids.isEmpty()) {
|
|
|
return null;
|
|
|
}
|
|
|
return toAjax(bizFinancialSalaryService.physicalDeleteIds(ids));
|
|
@@ -369,15 +372,25 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
@Log(title = "生产管理-工资非零申报-新增", businessType = BusinessType.INSERT)
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public AjaxResult saveDetail(@RequestBody BizFinancialSalaryDetail bizFinancialSalaryDetail) {
|
|
|
- // 判断之前是否有保存一个明细
|
|
|
- BizFinancialSalaryDetail conditions = new BizFinancialSalaryDetail();
|
|
|
- conditions.setFinancialSalaryId(bizFinancialSalaryDetail.getFinancialSalaryId());
|
|
|
- conditions.setYear(bizFinancialSalaryDetail.getYear());
|
|
|
- conditions.setMonth(bizFinancialSalaryDetail.getMonth());
|
|
|
- if (!bizFinancialSalaryDetailService.getList(conditions).isEmpty()) {
|
|
|
- return error("该月已添加工资信息,请刷新列表。");
|
|
|
+ String join = LockKey.join(LockKey.SALARYZERO, getUserId());
|
|
|
+ DistributionLock lock = new DistributionLock(join);
|
|
|
+ try {
|
|
|
+ lock.lock();
|
|
|
+ // 判断之前是否有保存一个明细
|
|
|
+ BizFinancialSalaryDetail conditions = new BizFinancialSalaryDetail();
|
|
|
+ conditions.setFinancialSalaryId(bizFinancialSalaryDetail.getFinancialSalaryId());
|
|
|
+ conditions.setYear(bizFinancialSalaryDetail.getYear());
|
|
|
+ conditions.setMonth(bizFinancialSalaryDetail.getMonth());
|
|
|
+ if (!bizFinancialSalaryDetailService.getList(conditions).isEmpty()) {
|
|
|
+ return error("该月已添加工资信息,请刷新列表。");
|
|
|
+ }
|
|
|
+ return toAjax(bizFinancialSalaryDetailService.save(bizFinancialSalaryDetail) && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "填写工资信息"));
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ return error("保存失败");
|
|
|
+ }finally {
|
|
|
+ lock.unlock();
|
|
|
}
|
|
|
- return toAjax(bizFinancialSalaryDetailService.save(bizFinancialSalaryDetail) && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "填写工资信息"));
|
|
|
}
|
|
|
|
|
|
@Log(title = "生产管理-工资非零申报-更新", businessType = BusinessType.UPDATE)
|
|
@@ -429,7 +442,7 @@ public class BizFinancialSalaryController extends BaseController {
|
|
|
bool = bool && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "工资审核不通过");
|
|
|
}
|
|
|
bizFinancialSalaryDetail.setVerifierTime(new Date());
|
|
|
- bool = bool && bizFinancialSalaryDetailService.updateById(bizFinancialSalaryDetail,true);
|
|
|
+ bool = bool && bizFinancialSalaryDetailService.updateById(bizFinancialSalaryDetail, true);
|
|
|
return toAjax(bool);
|
|
|
}
|
|
|
|