ly 1 rok temu
rodzic
commit
2055fc2081

+ 7 - 1
src/main/java/cn/ezhizao/project/business/salary/controller/BizFinancialSalaryController.java

@@ -295,8 +295,14 @@ public class BizFinancialSalaryController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('business:salary:remove')")
     @Log(title = "工资", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
+    @DeleteMapping("/physical/{ids}")
     public AjaxResult remove(@PathVariable List<Long> ids) {
+        return toAjax(bizFinancialSalaryService.physicalDeleteIds(ids));
+    }
+
+    @Log(title = "工资", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult removeByIdS(@PathVariable List<Long> ids) {
         return toAjax(bizFinancialSalaryService.removeBatchByIds(ids));
     }
 

+ 2 - 0
src/main/java/cn/ezhizao/project/business/salary/mapper/BizFinancialSalaryMapper.java

@@ -26,4 +26,6 @@ public interface BizFinancialSalaryMapper extends BaseMapper<BizFinancialSalary>
      * @return 删除结果
     */
     public int physicalDelete(BizFinancialSalary bizFinancialSalary);
+
+    int physicalDeleteIds(List<Long> ids);
 }

+ 2 - 0
src/main/java/cn/ezhizao/project/business/salary/service/IBizFinancialSalaryService.java

@@ -30,4 +30,6 @@ public interface IBizFinancialSalaryService extends IService<BizFinancialSalary>
     public int physicalDelete(BizFinancialSalary bizFinancialSalary);
 
     String importSalary(List<BizFinancialSalaryDetailEmployee> detailList, String year, String month, Long tenantId,Integer isZero);
+
+    int physicalDeleteIds(List<Long> ids);
 }

+ 46 - 25
src/main/java/cn/ezhizao/project/business/salary/service/impl/BizFinancialSalaryServiceImpl.java

@@ -14,11 +14,13 @@ import cn.ezhizao.project.business.salary.domain.BizFinancialSalaryDetailEmploye
 import cn.ezhizao.project.business.salary.mapper.BizFinancialSalaryDetailEmployeeMapper;
 import cn.ezhizao.project.business.salary.mapper.BizFinancialSalaryDetailMapper;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryDetailService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import cn.ezhizao.project.business.salary.mapper.BizFinancialSalaryMapper;
 import cn.ezhizao.project.business.salary.domain.BizFinancialSalary;
 import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryService;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 工资Service业务层处理
@@ -27,8 +29,7 @@ import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryService;
  * @date 2023-11-16
  */
 @Service
-public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSalaryMapper, BizFinancialSalary> implements IBizFinancialSalaryService
-{
+public class BizFinancialSalaryServiceImpl extends ServiceImpl<BizFinancialSalaryMapper, BizFinancialSalary> implements IBizFinancialSalaryService {
     @Resource
     private BizFinancialSalaryMapper bizFinancialSalaryMapper;
 
@@ -48,22 +49,26 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
      * @return 工资
      */
     @Override
-    public List<BizFinancialSalary> getList(BizFinancialSalary bizFinancialSalary)
-    {
+    public List<BizFinancialSalary> getList(BizFinancialSalary bizFinancialSalary) {
         return bizFinancialSalaryMapper.getList(bizFinancialSalary);
     }
 
     /**
      * 物理删除
+     *
      * @param bizFinancialSalary
      * @return 删除结果
      */
     @Override
-    public int physicalDelete(BizFinancialSalary bizFinancialSalary){ return bizFinancialSalaryMapper.physicalDelete(bizFinancialSalary); };
+    public int physicalDelete(BizFinancialSalary bizFinancialSalary) {
+        return bizFinancialSalaryMapper.physicalDelete(bizFinancialSalary);
+    }
+
+    ;
 
 
     @Override
-    public String importSalary(List<BizFinancialSalaryDetailEmployee> detailList, String year, String month, Long tenantId,Integer isZero  ) {
+    public String importSalary(List<BizFinancialSalaryDetailEmployee> detailList, String year, String month, Long tenantId, Integer isZero) {
         if (StringUtils.isNull(detailList) || detailList.size() == 0) {
             throw new ServiceException("导入数据不能为空!");
         }
@@ -81,49 +86,60 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
 
             List<BizFinancialSalaryDetailEmployee> employees = entry.getValue();
             BizFinancialSalaryDetailEmployee salaryDetai = employees.get(number++);
-            BizFinancialSalary salary=new BizFinancialSalary();
+            BizFinancialSalary salary = new BizFinancialSalary();
             salary.setCompanyName(salaryDetai.getCompanyName());
             salary.setTenantId(tenantId);
             salary.setIsZero(isZero);
-            List <BizFinancialSalary> salaryList= getList(salary);
+            List<BizFinancialSalary> salaryList = getList(salary);
             //是否存在该客户
-            if(salaryList.size() == 0){
+            if (salaryList.size() == 0) {
                 failureNum++;
                 failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append(" 不存在");
                 continue;
             }
-            if(salaryList.size() > 1){
+            if (salaryList.size() > 1) {
                 failureNum++;
                 failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append("请输入详细客户名称");
                 continue;
             }
-            salary=salaryList.get(0);
-            BizFinancialSalaryDetail salaryDetail=new BizFinancialSalaryDetail();
+            salary = salaryList.get(0);
+            BizFinancialSalaryDetail salaryDetail = new BizFinancialSalaryDetail();
 
             salaryDetail.setFinancialSalaryId(salary.getId());
             salaryDetail.setMonth(month);
             salaryDetail.setYear(year);
-            List<BizFinancialSalaryDetail> salaryDetailList=bizFinancialSalaryDetailService.getList(salaryDetail);
-            if(salaryDetailList.size()>0){
-                failureNum++;
-                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append(year+"年"+month+"月").append("工资已有数据");
-                continue;
+            boolean status = false;
+            List<BizFinancialSalaryDetail> salaryDetailList = bizFinancialSalaryDetailService.getList(salaryDetail);
+            if (!CollectionUtils.isEmpty(salaryDetailList)) {
+                BizFinancialSalaryDetail bizFinancialSalaryDetail = salaryDetailList.get(0);
+                if (bizFinancialSalaryDetail != null) {
+                        status = true;
+                    Long id = bizFinancialSalaryDetail.getId();
+                    List<BizFinancialSalaryDetailEmployee> bizFinancialSalaryDetailEmployees = bizFinancialSalaryDetailEmployeeMapper
+                            .selectList(new LambdaQueryWrapper<BizFinancialSalaryDetailEmployee>().eq(BizFinancialSalaryDetailEmployee::getFinancialSalaryDetailId, id));
+                    if (!CollectionUtils.isEmpty(bizFinancialSalaryDetailEmployees)) {
+                        failureNum++;
+                        failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(salaryDetai.getCompanyName()).append(year + "年" + month + "月").append("工资已有数据");
+                        continue;
+                    } else {
+                        salaryDetail.setId(id);
+                    }
+                }
             }
-
-
             //设置状态为待确认
             salaryDetail.setStatus(1);
             salaryDetail.setCompanyId(salary.getCompanyId());
             //新增工资明细
-            bizFinancialSalaryDetailMapper.insert(salaryDetail);
-
+            if (!status) {
+                bizFinancialSalaryDetailMapper.insert(salaryDetail);
+            }
             for (BizFinancialSalaryDetailEmployee l : employees) {
                 //计算应发工资
-                l.setActuallySalary(l.getPlanSalary()==null? BigDecimal.valueOf(0) :l.getPlanSalary().add(l.getBonusAmount()==null? BigDecimal.valueOf(0) :l.getBonusAmount()));
+                l.setActuallySalary(l.getPlanSalary() == null ? BigDecimal.valueOf(0) : l.getPlanSalary().add(l.getBonusAmount() == null ? BigDecimal.valueOf(0) : l.getBonusAmount()));
                 //计算实发工资
-                l.setActuallySalary(l.getActuallySalary()==null? BigDecimal.valueOf(0) :l.getActuallySalary().subtract(l.getEndowmentInsurance()==null? BigDecimal.valueOf(0) :l.getEndowmentInsurance()).subtract(l.getMedicalInsurance()==null? BigDecimal.valueOf(0) :l.getMedicalInsurance())
-                        .subtract(l.getUnemploymentBenefit()==null? BigDecimal.valueOf(0) :l.getUnemploymentBenefit()).subtract(l.getSeriousIllnessInsurance()==null? BigDecimal.valueOf(0) :l.getSeriousIllnessInsurance())
-                        .subtract(l.getHousingFund()==null? BigDecimal.valueOf(0) :l.getHousingFund()).subtract(l.getOtherCut()==null? BigDecimal.valueOf(0) :l.getOtherCut()));
+                l.setActuallySalary(l.getActuallySalary() == null ? BigDecimal.valueOf(0) : l.getActuallySalary().subtract(l.getEndowmentInsurance() == null ? BigDecimal.valueOf(0) : l.getEndowmentInsurance()).subtract(l.getMedicalInsurance() == null ? BigDecimal.valueOf(0) : l.getMedicalInsurance())
+                        .subtract(l.getUnemploymentBenefit() == null ? BigDecimal.valueOf(0) : l.getUnemploymentBenefit()).subtract(l.getSeriousIllnessInsurance() == null ? BigDecimal.valueOf(0) : l.getSeriousIllnessInsurance())
+                        .subtract(l.getHousingFund() == null ? BigDecimal.valueOf(0) : l.getHousingFund()).subtract(l.getOtherCut() == null ? BigDecimal.valueOf(0) : l.getOtherCut()));
                 //设置外键
                 l.setFinancialSalaryId(salary.getId());
                 l.setFinancialSalaryDetailId(salaryDetail.getId());
@@ -142,4 +158,9 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
 
         return successMsg.toString();
     }
+
+    @Override
+    public int physicalDeleteIds(List<Long> ids) {
+        return bizFinancialSalaryMapper.physicalDeleteIds(ids);
+    }
 }

+ 11 - 0
src/main/resources/mybatis/business/BizFinancialSalaryMapper.xml

@@ -84,4 +84,15 @@
             <!-- 删除条件为其他外键可以在这里加 -->
         </trim>
     </delete>
+    <delete id="physicalDeleteIds">
+        DELETE FROM biz_financial_salary_detail_employee
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            <if test="ids != null and ids.size() > 0">
+                id in
+                <foreach collection="ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </trim>
+    </delete>
 </mapper>