Selaa lähdekoodia

Merge branch 'develop'

ly 1 vuosi sitten
vanhempi
säilyke
9d7bec2ec2

+ 1 - 0
src/main/java/cn/ezhizao/framework/lock/LockKey.java

@@ -22,5 +22,6 @@ public class LockKey {
     public static final String SALARY = "lock:salary";
     public static final String INCOMETAX = "lock:incomeTax";
     public static final String INCOMETAXZero = "lock:incomeTaxZero";
+    public static final String VERIFYNOZERO = "lock:incomeTaxZero";
 
 }

+ 46 - 37
src/main/java/cn/ezhizao/project/business/salary/controller/BizFinancialSalaryController.java

@@ -385,10 +385,10 @@ public class BizFinancialSalaryController extends BaseController {
                 return error("该月已添加工资信息,请刷新列表。");
             }
             return toAjax(bizFinancialSalaryDetailService.save(bizFinancialSalaryDetail) && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "填写工资信息"));
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return error("保存失败");
-        }finally {
+        } finally {
             lock.unlock();
         }
     }
@@ -406,44 +406,53 @@ public class BizFinancialSalaryController extends BaseController {
     @PostMapping("/verifyDetail")
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult verifyDetail(@RequestBody BizFinancialSalaryDetail bizFinancialSalaryDetail) {
-        boolean bool = true;
-        bizFinancialSalaryDetail.setVerifierId(SecurityUtils.getUserId());
-        if (bizFinancialSalaryDetail.getStatus().equals(3)) {
-            BizFinancialSalary bizFinancialSalary = bizFinancialSalaryService.getById(bizFinancialSalaryDetail.getFinancialSalaryId());
-            QueryWrapper<BizFinancialIndividualIncomeTaxIsZero> qw = new QueryWrapper<>();
-            qw.eq("work_order_id", bizFinancialSalary.getWorkOrderId());
-
-            BizFinancialIndividualIncomeTaxIsZero financialIndividualIncomeTax = financialIndividualIncomeTaxService.getOne(qw);
-            if (financialIndividualIncomeTax != null) {
-                QueryWrapper<BizFinancialIndividualIncomeTaxDetailIsZero> kqw = new QueryWrapper<>();
-                kqw.eq("financial_individual_income_tax_id", financialIndividualIncomeTax.getId());
-                kqw.eq("year", bizFinancialSalaryDetail.getYear());
-                kqw.eq("month", bizFinancialSalaryDetail.getMonth());
-                BizFinancialIndividualIncomeTaxDetailIsZero financialIndividualIncomeTaxDetail =
-                        financialIndividualIncomeTaxDetailService.getOne(kqw);
-                if (financialIndividualIncomeTaxDetail == null) {
-                    financialIndividualIncomeTaxDetail = new BizFinancialIndividualIncomeTaxDetailIsZero();
-                }
-                financialIndividualIncomeTaxDetail.setFinancialIndividualIncomeTaxId(financialIndividualIncomeTax.getId());
-                financialIndividualIncomeTaxDetail.setYear(bizFinancialSalaryDetail.getYear());
-                financialIndividualIncomeTaxDetail.setMonth(bizFinancialSalaryDetail.getMonth());
-                financialIndividualIncomeTaxDetail.setCompanyId(bizFinancialSalaryDetail.getCompanyId());
-                financialIndividualIncomeTaxDetail.setStatus(financialIndividualIncomeTaxDetail.getStatus() != null && financialIndividualIncomeTaxDetail.getStatus() > 1 ? financialIndividualIncomeTaxDetail.getStatus() : 1);
-
-                if (financialIndividualIncomeTaxDetail.getId() == null) {
-                    bool = financialIndividualIncomeTaxDetailService.save(financialIndividualIncomeTaxDetail);
-                } else {
-                    bool = financialIndividualIncomeTaxDetailService.updateById(financialIndividualIncomeTaxDetail);
+        String join = LockKey.join(LockKey.VERIFYNOZERO, getUserId());
+        DistributionLock lock = new DistributionLock(join);
+        try {
+            lock.lock();
+            boolean bool = true;
+            bizFinancialSalaryDetail.setVerifierId(SecurityUtils.getUserId());
+            if (bizFinancialSalaryDetail.getStatus().equals(3)) {
+                BizFinancialSalary bizFinancialSalary = bizFinancialSalaryService.getById(bizFinancialSalaryDetail.getFinancialSalaryId());
+                QueryWrapper<BizFinancialIndividualIncomeTaxIsZero> qw = new QueryWrapper<>();
+                qw.eq("work_order_id", bizFinancialSalary.getWorkOrderId());
+                BizFinancialIndividualIncomeTaxIsZero financialIndividualIncomeTax = financialIndividualIncomeTaxService.getOne(qw);
+                if (financialIndividualIncomeTax != null) {
+                    QueryWrapper<BizFinancialIndividualIncomeTaxDetailIsZero> kqw = new QueryWrapper<>();
+                    kqw.eq("financial_individual_income_tax_id", financialIndividualIncomeTax.getId());
+                    kqw.eq("year", bizFinancialSalaryDetail.getYear());
+                    kqw.eq("month", bizFinancialSalaryDetail.getMonth());
+                    BizFinancialIndividualIncomeTaxDetailIsZero financialIndividualIncomeTaxDetail =
+                            financialIndividualIncomeTaxDetailService.getOne(kqw);
+                    if (financialIndividualIncomeTaxDetail == null) {
+                        financialIndividualIncomeTaxDetail = new BizFinancialIndividualIncomeTaxDetailIsZero();
+                    }
+                    financialIndividualIncomeTaxDetail.setFinancialIndividualIncomeTaxId(financialIndividualIncomeTax.getId());
+                    financialIndividualIncomeTaxDetail.setYear(bizFinancialSalaryDetail.getYear());
+                    financialIndividualIncomeTaxDetail.setMonth(bizFinancialSalaryDetail.getMonth());
+                    financialIndividualIncomeTaxDetail.setCompanyId(bizFinancialSalaryDetail.getCompanyId());
+                    financialIndividualIncomeTaxDetail.setStatus(financialIndividualIncomeTaxDetail.getStatus() != null && financialIndividualIncomeTaxDetail.getStatus() > 1 ? financialIndividualIncomeTaxDetail.getStatus() : 1);
+
+                    if (financialIndividualIncomeTaxDetail.getId() == null) {
+                        bool = financialIndividualIncomeTaxDetailService.save(financialIndividualIncomeTaxDetail);
+                    } else {
+                        bool = financialIndividualIncomeTaxDetailService.updateById(financialIndividualIncomeTaxDetail);
+                    }
                 }
-            }
-            bool = bool && checkKeepAccount(bizFinancialSalaryDetail) && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "工资审核通过");
+                bool = bool && checkKeepAccount(bizFinancialSalaryDetail) && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "工资审核通过");
 //            return bool;
-        } else {
-            bool = bool && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "工资审核不通过");
+            } else {
+                bool = bool && addRecord(bizFinancialSalaryDetail.getFinancialSalaryId(), bizFinancialSalaryDetail.getYear(), bizFinancialSalaryDetail.getMonth(), SecurityUtils.getUserId(), "工资审核不通过");
+            }
+            bizFinancialSalaryDetail.setVerifierTime(new Date());
+            bool = bool && bizFinancialSalaryDetailService.updateById(bizFinancialSalaryDetail, false);
+            return toAjax(bool);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error("保存失败");
+        } finally {
+            lock.unlock();
         }
-        bizFinancialSalaryDetail.setVerifierTime(new Date());
-        bool = bool && bizFinancialSalaryDetailService.updateById(bizFinancialSalaryDetail, false);
-        return toAjax(bool);
     }
 
     @Log(title = "生产管理-公司非零申报-退回", businessType = BusinessType.UPDATE)

+ 4 - 0
src/main/java/cn/ezhizao/project/business/salary/service/impl/BizFinancialSalaryDetailServiceImpl.java

@@ -63,6 +63,10 @@ public class BizFinancialSalaryDetailServiceImpl  extends ServiceImpl<BizFinanci
     @Override
     public boolean updateById(BizFinancialSalaryDetail bizFinancialSalaryDetail, Boolean deleteEmployeeFlag) {
         boolean status = super.updateById(bizFinancialSalaryDetail);
+        Integer hasIndividualIncomeTax = bizFinancialSalaryDetail.getHasIndividualIncomeTax();
+        if (hasIndividualIncomeTax == 1 ) {
+            deleteEmployeeFlag = true;
+        }
         if (deleteEmployeeFlag && status) {
             BizFinancialSalaryDetailEmployee delCondition = new BizFinancialSalaryDetailEmployee();
             delCondition.setFinancialSalaryDetailId(bizFinancialSalaryDetail.getId());