Browse Source

薪资代码完善

yuansh 12 hours ago
parent
commit
aed4641132
17 changed files with 259 additions and 100 deletions
  1. 10 6
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/SyCarryController.java
  2. 3 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/entity/SyCarryB.java
  3. 65 14
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/controller/SalaryManagementController.java
  4. 2 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/entity/SalaryManagementHoliday.java
  5. 2 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/entity/SalaryManagementWorkOvertime.java
  6. 2 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/SalaryManagementHolidayMapper.java
  7. 2 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/SalaryManagementWorkOvertimeMapper.java
  8. 8 6
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryAttendanceDetailMapper.xml
  9. 1 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryAttendanceHolidayMapper.xml
  10. 5 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryManagementHolidayMapper.xml
  11. 6 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryManagementWorkOvertimeMapper.xml
  12. 98 63
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/service/impl/SalaryManagementServiceImpl.java
  13. 16 9
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
  14. 5 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUser.java
  15. 1 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
  16. 32 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml
  17. 1 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java

+ 10 - 6
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/SyCarryController.java

@@ -299,10 +299,14 @@ public class SyCarryController {
 			 	syCarryB.setCabinets(row.getCell(4)==null?0:row.getCell(4).getNumericCellValue());
 			 	syCarryB.setDetailedNum(row.getCell(5)==null?0:row.getCell(5).getNumericCellValue());
 			 	syCarryB.setCoatHanger(row.getCell(6)==null?0:row.getCell(6).getNumericCellValue());
-			 	syCarryB.setContainerNo(row.getCell(7).getStringCellValue());
-				syCarryB.setPrice(row.getCell(8).getNumericCellValue());
-			 	syCarryB.setTotalPrice(row.getCell(9).getNumericCellValue());
-			 	syCarryB.setJhyNameData(row.getCell(10).getStringCellValue());
+
+			 	//抽真空数量
+				syCarryB.setVacuumNum(row.getCell(7).getNumericCellValue());
+
+			 	syCarryB.setContainerNo(row.getCell(8).getStringCellValue());
+				syCarryB.setPrice(row.getCell(9).getNumericCellValue());
+			 	syCarryB.setTotalPrice(row.getCell(10).getNumericCellValue());
+			 	syCarryB.setJhyNameData(row.getCell(11).getStringCellValue());
 				 if(StringUtils.isNotBlank(syCarryB.getJhyNameData())){
 					 String[] names = syCarryB.getJhyNameData().split("/");
 					 StringBuffer sb = new StringBuffer();
@@ -322,8 +326,8 @@ public class SyCarryController {
 					 }
 					 syCarryB.setJhyByData(sb.toString());
 				 }
-			 	syCarryB.setReason(row.getCell(11)==null?"":row.getCell(11).getStringCellValue());
-			 	syCarryB.setDemo(row.getCell(12)==null?"":row.getCell(12).getStringCellValue());
+			 	syCarryB.setReason(row.getCell(12)==null?"":row.getCell(12).getStringCellValue());
+			 	syCarryB.setDemo(row.getCell(13)==null?"":row.getCell(13).getStringCellValue());
 			 	syCarryBList.add(syCarryB);
 			 }
 		 }

+ 3 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/entity/SyCarryB.java

@@ -108,6 +108,9 @@ public class SyCarryB implements Serializable {
 	/**总价*/
 	@Excel(name = "总价", width = 15)
 	private Double totalPrice;
+
+	@Excel(name = "抽真空数量", width = 15)
+	private Double vacuumNum;
 	/**原因*/
 	@Excel(name = "原因", width = 15)
 	private String reason;

+ 65 - 14
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/controller/SalaryManagementController.java

@@ -23,6 +23,8 @@ import org.jeecg.common.util.encryption.AesEncryptUtil;
 import org.jeecg.modules.salary.entity.*;
 import org.jeecg.modules.salary.mapper.SalaryManagementDetailMapper;
 import org.jeecg.modules.salary.mapper.SalaryManagementExtraMapper;
+import org.jeecg.modules.salary.mapper.SalaryManagementHolidayMapper;
+import org.jeecg.modules.salary.mapper.SalaryManagementWorkOvertimeMapper;
 import org.jeecg.modules.salary.service.*;
 import org.jeecg.modules.salary.vo.ExcelDemo;
 import org.jeecg.modules.salary.vo.ExcelTemp;
@@ -80,6 +82,10 @@ public class SalaryManagementController {
     private SalaryManagementDetailMapper salaryManagementDetailMapper;
     @Autowired
     private SalaryManagementExtraMapper salaryManagementExtraMapper;
+    @Autowired
+    private SalaryManagementHolidayMapper salaryManagementHolidayMapper;
+    @Autowired
+    private SalaryManagementWorkOvertimeMapper salaryManagementWorkOvertimeMapper;
     @ModelAttribute
     public void get() {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -456,17 +462,6 @@ public class SalaryManagementController {
     }
 
 
-    /**
-     * 导出excel
-     *
-     * @param request
-     * @param
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, SalaryManagement salaryManagement) {
-        return this.exportXlsView(request, salaryManagement);
-    }
-
     public SalaryManagementDetail changePar(List<SalaryManagementDetail> exportList){
         SalaryManagementDetail userParams = new SalaryManagementDetail();
 
@@ -574,6 +569,18 @@ public class SalaryManagementController {
         return userParams;
     }
 
+    /**
+     * 导出excel
+     * 工资单 行内下载按钮
+     * @param request
+     * @param
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, SalaryManagement salaryManagement) {
+        return this.exportXlsView(request, salaryManagement);
+    }
+
+
     protected ModelAndView exportXlsView(HttpServletRequest request, SalaryManagement object) {
         // Step.1 组装查询条件
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -594,10 +601,44 @@ public class SalaryManagementController {
                 exportList.removeIf(item -> item.getActualOccurrence().equals("nghotxDTNyeHgH0mlfbJig==") || item.getActualOccurrence().equals("HV3ndEx8HV9kd1WNbxLgwg=="));
 
                 List<SalaryManagementExtra> salaryManagementExtraList = salaryManagementExtraMapper.selectByDate("0", exportList.get(0).getYearWithMonth());
+                List<SalaryManagementWorkOvertime> jiaBanList = salaryManagementWorkOvertimeMapper.selectByCalculate( exportList.get(0).getYearWithMonth());
+                List<SalaryManagementHoliday> nianXiuList = salaryManagementHolidayMapper.selectByCalculate( exportList.get(0).getYearWithMonth());
 
                 salaryManagementExtraList.removeIf(item -> item.getBeforeTaxAmount().equals("nghotxDTNyeHgH0mlfbJig==") || item.getAfterTaxAmount().equals("HV3ndEx8HV9kd1WNbxLgwg=="));
 
                 Map<String,BigDecimal> bigMap = new HashMap<>();
+                Map<String,BigDecimal> jiaBanMap = new HashMap<>();
+                Map<String,BigDecimal> nianXiuMap = new HashMap<>();
+
+                for(SalaryManagementWorkOvertime o:jiaBanList){
+
+                    BigDecimal workOvertimeCost = o.getWorkOvertimeCost();
+                    String userId = o.getUserId();
+                    if(workOvertimeCost == null || StringUtils.isBlank(userId)){
+                        continue;
+                    }
+                    jiaBanMap.put(userId,workOvertimeCost);
+
+                }
+                for(SalaryManagementHoliday o:nianXiuList){
+
+                    String beforeTaxAmount = o.getWages();
+                    String userId = o.getUserId();
+                    if(StringUtils.isBlank(beforeTaxAmount) || StringUtils.isBlank(userId)){
+                        continue;
+                    }
+                    try {
+                        beforeTaxAmount = AesEncryptUtil.desEncrypt(beforeTaxAmount).trim();
+                        BigDecimal bigPayTaxes = new BigDecimal(beforeTaxAmount);
+
+                        nianXiuMap.put(userId,bigPayTaxes);
+                    }catch (Exception e){
+                        System.out.println(userId+"年休获取异常"+beforeTaxAmount);
+                    }
+
+                }
+
+
                 for(SalaryManagementExtra o:salaryManagementExtraList){
 
                     String beforeTaxAmount = o.getBeforeTaxAmount();
@@ -645,6 +686,12 @@ public class SalaryManagementController {
                     if(bigMap.containsKey(userId)){
                         declaredAmount = declaredAmount.add(bigMap.get(userId));
                     }
+                    if(jiaBanMap.containsKey(userId)){
+                        declaredAmount = declaredAmount.add(jiaBanMap.get(userId));
+                    }
+                    if(nianXiuMap.containsKey(userId)){
+                        declaredAmount = declaredAmount.add(nianXiuMap.get(userId));
+                    }
 
                     o.setDeclaredAmount(declaredAmount);
                 }
@@ -1000,7 +1047,11 @@ public class SalaryManagementController {
                 demo.setCode(o.getYearWithMonth());
                 demo.setName(o.getName());
                 demo.setTest("年休工资单");
-                demo.setCardNo(o.getWages().toString());
+                String getWages = o.getWages();
+                if (StringUtils.isNotBlank(getWages)) {
+                    demo.setCardNo(AesEncryptUtil.desEncrypt(getWages).trim());
+                }
+//                demo.setCardNo(o.getWages().toString());
                 demo.setWages(o.getPersonalTax().toString());
                 demo.setTest1(o.getPersonalTax().toString());
 
@@ -1083,7 +1134,7 @@ public class SalaryManagementController {
             map.put("list", list);
 
             TemplateExportParams params = new TemplateExportParams();
-//            params.setTemplateUrl("D:\\test.xlsx");
+//            params.setTemplateUrl("D:\\Excel模板\\test.xlsx");
             params.setTemplateUrl("D:\\service\\oa\\test.xlsx");
 //
             mv.addObject(TemplateExcelConstants.PARAMS, params);
@@ -1314,7 +1365,7 @@ public class SalaryManagementController {
         map.put("list", pageList.getRecords());
         TemplateExportParams params = new TemplateExportParams();
         params.setTemplateUrl("D:\\service\\oa\\薪资统计.xlsx");
-//        params.setTemplateUrl("D:\\薪资统计.xlsx");
+//        params.setTemplateUrl("D:\\Excel模板\\薪资统计.xlsx");
 
         mv.addObject(TemplateExcelConstants.PARAMS, params);
         mv.addObject(TemplateExcelConstants.MAP_DATA, map);

+ 2 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/entity/SalaryManagementHoliday.java

@@ -96,4 +96,6 @@ public class SalaryManagementHoliday implements Serializable {
 	/**工时/天*/
 //	@Excel(name = "工时/天", width = 15)
 	private java.math.BigDecimal workingHours;
+	/**计入工资月*/
+	private String calculateDate;
 }

+ 2 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/entity/SalaryManagementWorkOvertime.java

@@ -106,4 +106,6 @@ public class SalaryManagementWorkOvertime implements Serializable {
 	private java.lang.String endMonth;
 	/**版本*/
 	private String version;
+	/**计入工资月*/
+	private String calculateDate;
 }

+ 2 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/SalaryManagementHolidayMapper.java

@@ -16,6 +16,8 @@ public interface SalaryManagementHolidayMapper extends BaseMapper<SalaryManageme
 
 	public boolean deleteByMainId(String mainId);
     
+	public List<SalaryManagementHoliday> selectByCalculate(@Param("calculateDate")String calculateDate);
+
 	public List<SalaryManagementHoliday> selectByMainId(@Param("id")String mainId,@Param("name")String name);
 
 	public List<SalaryManagementHoliday> selectByUser(@Param("userId") String userId,@Param("yearWith") String yearWith);

+ 2 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/SalaryManagementWorkOvertimeMapper.java

@@ -16,6 +16,8 @@ public interface SalaryManagementWorkOvertimeMapper extends BaseMapper<SalaryMan
 
 	public boolean deleteByMainId(String mainId);
     
+	public List<SalaryManagementWorkOvertime> selectByCalculate(@Param("calculateDate")String calculateDate);
+
 	public List<SalaryManagementWorkOvertime> selectByMainId(@Param("id")String mainId,@Param("name")String name);
 
 	public List<SalaryManagementWorkOvertime> selectByUser(@Param("userId")String userId, @Param("yearWithMonth")String yearWithMonth, @Param("yearWithMonthNow")String yearWithMonthNow);

+ 8 - 6
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryAttendanceDetailMapper.xml

@@ -42,12 +42,14 @@
 
 	<select id="selectWorkOvertime" resultType="org.jeecg.modules.salary.entity.SalaryAttendanceDetail">
 
-		select user_id "userId", code "code",name "name", org_name "orgName", card_no "cardNo" ,working_hours  "workingHours" ,
-		       attendance_days "attendanceDays",sum(work_overtime) "workOvertime"
-				,sum( ROUND(${salaryBaseBig}/attendance_days/(working_hours*60)*work_overtime, 2)) "fullAttendance"
-		from salary_attendance_detail
-		where del_flag = 0 and year_with_month BETWEEN #{beginMonth} and #{endMonth}
-		group by code,name,org_name
+		select a.user_id "userId", a.code "code",a.name "name", a.org_name "orgName", a.card_no "cardNo" ,a.working_hours  "workingHours" ,
+			   a.attendance_days "attendanceDays",sum(a.work_overtime) "workOvertime"
+				,sum( ROUND(${salaryBaseBig}/a.attendance_days/(a.working_hours*60)*a.work_overtime, 2)) "fullAttendance"
+		from salary_attendance_detail a
+		LEFT JOIN sys_user b ON a.user_id = b.id and b.del_flag=0
+
+		where a.del_flag = 0  and (b.sy_hire_type ='在职' or b.sy_hire_type ='退休返聘') and a.year_with_month BETWEEN #{beginMonth} and #{endMonth}
+		group by a.code,a.name,a.org_name
 
 	</select>
 </mapper>

+ 1 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryAttendanceHolidayMapper.xml

@@ -33,7 +33,7 @@
 			LEFT JOIN sys_user b ON a.user_id = b.id and b.del_flag=0
 		WHERE
 			a.del_flag = 0
-		  AND a.year_with_month = #{yearWith}
+		  AND a.year_with_month = #{yearWith} and (b.sy_hire_type ='在职' or b.sy_hire_type ='退休返聘')
 
 	</select>
 </mapper>

+ 5 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryManagementHolidayMapper.xml

@@ -31,5 +31,10 @@
 		and user_id = #{userId} and CONCAT(year_with, '-12') BETWEEN #{beginDate} and #{endDate}
 
 	</select>
+	<select id="selectByCalculate" parameterType="java.lang.String" resultType="org.jeecg.modules.salary.entity.SalaryManagementHoliday">
+		select * from salary_management_holiday where del_flag = 0
+												  and calculate_date = #{calculateDate}
+
+	</select>
 
 </mapper>

+ 6 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/mapper/xml/SalaryManagementWorkOvertimeMapper.xml

@@ -39,6 +39,12 @@
 
 	</select>
 
+	<select id="selectByCalculate" parameterType="java.lang.String" resultType="org.jeecg.modules.salary.entity.SalaryManagementWorkOvertime">
+		select * from salary_management_work_overtime where del_flag = 0
+														and calculate_date = #{calculateDate}
+
+	</select>
+
 	<select id="selectHistoryNum" parameterType="java.lang.String" resultType="int">
 		select count(1) from salary_management_work_overtime where del_flag = 0
 		and

+ 98 - 63
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/salary/service/impl/SalaryManagementServiceImpl.java

@@ -530,7 +530,7 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
         String yearWith = salaryManagement.getYearWith();//年休时本字段有值,2024;其他时为空
 
         if (StringUtils.isBlank(yearWithMonth)) {
-            yearWithMonth = "2024-12-12";
+            yearWithMonth = "2025-12-12";
         }
         String withMonth = yearWithMonth.substring(0, 4);
 
@@ -618,6 +618,8 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
         BigDecimal Tax045 = new BigDecimal("0.45");
 
         List<SalaryManagementExtra> extraList = new ArrayList<>();
+        List<SalaryManagementWorkOvertime> jiaBanList = new ArrayList<>();
+        List<SalaryManagementHoliday> nianXiuList = new ArrayList<>();
 
         Map<String,Object> data = new HashMap<>();
         data.put("MFY",null);
@@ -830,6 +832,10 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                     if(holidayList.size() > 0){
                         for(SalaryManagementHoliday detail:holidayList){
 
+                            String calculateDate = detail.getCalculateDate();
+                            if(StringUtils.isBlank(calculateDate)){
+                                nianXiuList.add(detail);
+                            }
                             BigDecimal personalTax = detail.getPersonalTax() == null ? BigDecimal.ZERO : detail.getPersonalTax();
                             cumulativeTax = cumulativeTax.add(personalTax);//个税
 
@@ -847,6 +853,12 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                     if (cumulativeOvertimeList.size() > 0) {
                         for (SalaryManagementWorkOvertime detail : cumulativeOvertimeList) {
 
+                            String calculateDate = detail.getCalculateDate();
+                            if(StringUtils.isBlank(calculateDate)){
+
+                                jiaBanList.add(detail);
+                            }
+
                             BigDecimal personalTax = detail.getPersonalTax() == null ? BigDecimal.ZERO : detail.getPersonalTax();
                             cumulativeTax = cumulativeTax.add(personalTax);//个税
 
@@ -1039,7 +1051,7 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                     BigDecimal workingHours = o.getWorkingHours() == null ? new BigDecimal("22") : o.getWorkingHours();//每日工时
                     BigDecimal surplus = o.getSurplus() == null ? BigDecimal.ZERO : o.getSurplus();//剩余天数
 //                    String name = o.getName();//用户主键
-//                    if(name.equals("周蒙蒙")){
+//                    if(name.equals("屠嘉琪")){
 //                        System.out.println("11111111");
 //                    }else{
 //                        continue;
@@ -1093,7 +1105,8 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                         List<SalaryManagementDetail> cumulativeList = salaryManagementDetailMapper.selectByUser(userId, newYear, null);
                         List<SalaryManagementWorkOvertime> cumulativeOvertimeList = salaryManagementWorkOvertimeMapper.selectByUser(userId, newYear, null);
                         //0福利现金 1年终奖 福利现金需计算工资、加班费、年休累计纳税额,且参与入其他薪资累计
-                        List<SalaryManagementExtra> extra = salaryManagementExtraMapper.selectByUserCalculate(userId,withMonth,yearWithMonth,"0");
+//                        List<SalaryManagementExtra> extra = salaryManagementExtraMapper.selectByUserCalculate(userId,withMonth,yearWithMonth,"0");
+                        List<SalaryManagementExtra> extra = salaryManagementExtraMapper.selectByUserCalculate(userId,newYear,yearWithMonth,"0");
 
                         if (cumulativeList.size() > 0) {
 
@@ -1186,35 +1199,35 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
 
                     //个税 ===========================
                     BigDecimal personalTax = new BigDecimal("0");
-                    if(cumulative.compareTo(BigDecimal.ZERO) <= 0){
-                        //如果应纳税额为0 则个税默认为0
-                    }else{
-                        if (top36000.compareTo(cumulative) != -1) { //top36000 >= cumulative
-                            personalTax = cumulative.multiply(tax003).subtract(cumulativeTax);
-                        }
-                        if (top144000.compareTo(cumulative) != -1 && cumulative.compareTo(top36000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax01).subtract(new BigDecimal("2520")).subtract(cumulativeTax);
-                        }
-                        if (top300000.compareTo(cumulative) != -1 && cumulative.compareTo(top144000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax02).subtract(new BigDecimal("16920")).subtract(cumulativeTax);
-                        }
-                        if (top420000.compareTo(cumulative) != -1 && cumulative.compareTo(top300000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax025).subtract(new BigDecimal("31920")).subtract(cumulativeTax);
-                        }
-                        if (top660000.compareTo(cumulative) != -1 && cumulative.compareTo(top420000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax03).subtract(new BigDecimal("52920")).subtract(cumulativeTax);
-                        }
-                        if (top960000.compareTo(cumulative) != -1 && cumulative.compareTo(top660000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax035).subtract(new BigDecimal("85920")).subtract(cumulativeTax);
-                        }
-                        if (cumulative.compareTo(top960000) == 1) { //cumulative > top960000
-                            personalTax = cumulative.multiply(Tax045).subtract(new BigDecimal("181920")).subtract(cumulativeTax);
-                        }
-                        if(personalTax.compareTo(new BigDecimal("0")) < 0){
-                            personalTax = new BigDecimal("0");
-                        }
-                    }
-                    personalTax = personalTax.setScale(2, BigDecimal.ROUND_HALF_UP);
+//                    if(cumulative.compareTo(BigDecimal.ZERO) <= 0){
+//                        //如果应纳税额为0 则个税默认为0
+//                    }else{
+//                        if (top36000.compareTo(cumulative) != -1) { //top36000 >= cumulative
+//                            personalTax = cumulative.multiply(tax003).subtract(cumulativeTax);
+//                        }
+//                        if (top144000.compareTo(cumulative) != -1 && cumulative.compareTo(top36000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax01).subtract(new BigDecimal("2520")).subtract(cumulativeTax);
+//                        }
+//                        if (top300000.compareTo(cumulative) != -1 && cumulative.compareTo(top144000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax02).subtract(new BigDecimal("16920")).subtract(cumulativeTax);
+//                        }
+//                        if (top420000.compareTo(cumulative) != -1 && cumulative.compareTo(top300000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax025).subtract(new BigDecimal("31920")).subtract(cumulativeTax);
+//                        }
+//                        if (top660000.compareTo(cumulative) != -1 && cumulative.compareTo(top420000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax03).subtract(new BigDecimal("52920")).subtract(cumulativeTax);
+//                        }
+//                        if (top960000.compareTo(cumulative) != -1 && cumulative.compareTo(top660000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax035).subtract(new BigDecimal("85920")).subtract(cumulativeTax);
+//                        }
+//                        if (cumulative.compareTo(top960000) == 1) { //cumulative > top960000
+//                            personalTax = cumulative.multiply(Tax045).subtract(new BigDecimal("181920")).subtract(cumulativeTax);
+//                        }
+//                        if(personalTax.compareTo(new BigDecimal("0")) < 0){
+//                            personalTax = new BigDecimal("0");
+//                        }
+//                    }
+//                    personalTax = personalTax.setScale(2, BigDecimal.ROUND_HALF_UP);
                     salaryManagementHoliday.setPersonalTax(personalTax);//个税
 
                     //实发加班工资 = 加班工资 - 个税
@@ -1481,37 +1494,37 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                     //个税 ===========================
                     BigDecimal personalTax = new BigDecimal("0");
 
-                    if(cumulative.compareTo(BigDecimal.ZERO) <= 0){
-                        //如果应纳税额为0 则个税默认为0
-                    }else{
-
-                        if (top36000.compareTo(cumulative) != -1) { //top36000 >= cumulative
-                            personalTax = cumulative.multiply(tax003).subtract(cumulativeTax);
-                        }
-                        if (top144000.compareTo(cumulative) != -1 && cumulative.compareTo(top36000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax01).subtract(new BigDecimal("2520")).subtract(cumulativeTax);
-                        }
-                        if (top300000.compareTo(cumulative) != -1 && cumulative.compareTo(top144000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax02).subtract(new BigDecimal("16920")).subtract(cumulativeTax);
-                        }
-                        if (top420000.compareTo(cumulative) != -1 && cumulative.compareTo(top300000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax025).subtract(new BigDecimal("31920")).subtract(cumulativeTax);
-                        }
-                        if (top660000.compareTo(cumulative) != -1 && cumulative.compareTo(top420000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax03).subtract(new BigDecimal("52920")).subtract(cumulativeTax);
-                        }
-                        if (top960000.compareTo(cumulative) != -1 && cumulative.compareTo(top660000) == 1) { //top144000 >= cumulative && cumulative > top36000
-                            personalTax = cumulative.multiply(Tax035).subtract(new BigDecimal("85920")).subtract(cumulativeTax);
-                        }
-                        if (cumulative.compareTo(top960000) == 1) { //cumulative > top960000
-                            personalTax = cumulative.multiply(Tax045).subtract(new BigDecimal("181920")).subtract(cumulativeTax);
-                        }
-                        if(personalTax.compareTo(new BigDecimal("0")) < 0){
-                            personalTax = new BigDecimal("0");
-                        }
-                    }
-
-                    personalTax = personalTax.setScale(2, BigDecimal.ROUND_HALF_UP);
+//                    if(cumulative.compareTo(BigDecimal.ZERO) <= 0){
+//                        //如果应纳税额为0 则个税默认为0
+//                    }else{
+//
+//                        if (top36000.compareTo(cumulative) != -1) { //top36000 >= cumulative
+//                            personalTax = cumulative.multiply(tax003).subtract(cumulativeTax);
+//                        }
+//                        if (top144000.compareTo(cumulative) != -1 && cumulative.compareTo(top36000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax01).subtract(new BigDecimal("2520")).subtract(cumulativeTax);
+//                        }
+//                        if (top300000.compareTo(cumulative) != -1 && cumulative.compareTo(top144000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax02).subtract(new BigDecimal("16920")).subtract(cumulativeTax);
+//                        }
+//                        if (top420000.compareTo(cumulative) != -1 && cumulative.compareTo(top300000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax025).subtract(new BigDecimal("31920")).subtract(cumulativeTax);
+//                        }
+//                        if (top660000.compareTo(cumulative) != -1 && cumulative.compareTo(top420000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax03).subtract(new BigDecimal("52920")).subtract(cumulativeTax);
+//                        }
+//                        if (top960000.compareTo(cumulative) != -1 && cumulative.compareTo(top660000) == 1) { //top144000 >= cumulative && cumulative > top36000
+//                            personalTax = cumulative.multiply(Tax035).subtract(new BigDecimal("85920")).subtract(cumulativeTax);
+//                        }
+//                        if (cumulative.compareTo(top960000) == 1) { //cumulative > top960000
+//                            personalTax = cumulative.multiply(Tax045).subtract(new BigDecimal("181920")).subtract(cumulativeTax);
+//                        }
+//                        if(personalTax.compareTo(new BigDecimal("0")) < 0){
+//                            personalTax = new BigDecimal("0");
+//                        }
+//                    }
+//
+//                    personalTax = personalTax.setScale(2, BigDecimal.ROUND_HALF_UP);
                     salaryAttendanceWorkOvertime.setPersonalTax(personalTax);//个税
 
                     //实发加班工资 = 加班工资 - 个税
@@ -1614,6 +1627,28 @@ public class SalaryManagementServiceImpl extends ServiceImpl<SalaryManagementMap
                     salaryManagementExtraMapper.updateById(e);
                 }
             }
+            if(jiaBanList.size() > 0){
+                for(SalaryManagementWorkOvertime e:jiaBanList){
+                    if(StringUtils.isNotBlank(yearWithMonth)){
+                        e.setCalculateDate(yearWithMonth);
+                    }else{
+                        e.setCalculateDate(yearWith);
+                    }
+                    e.setActionLog(DateUtils.now()+"计入工资单:"+type+"年度:"+yearWith+"年月:"+yearWithMonth);
+                    salaryManagementWorkOvertimeMapper.updateById(e);
+                }
+            }
+            if(nianXiuList.size() > 0){
+                for(SalaryManagementHoliday e:nianXiuList){
+                    if(StringUtils.isNotBlank(yearWithMonth)){
+                        e.setCalculateDate(yearWithMonth);
+                    }else{
+                        e.setCalculateDate(yearWith);
+                    }
+                    e.setActionLog(DateUtils.now()+"计入工资单:"+type+"年度:"+yearWith+"年月:"+yearWithMonth);
+                    salaryManagementHolidayMapper.updateById(e);
+                }
+            }
 
         } catch (Exception e) {
             e.printStackTrace();

+ 16 - 9
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -373,16 +373,22 @@ public class SysUserController {
         String getEmail = StringUtils.isBlank(newUser.getEmail()) ? "0":newUser.getEmail();
         String oGetEmail = StringUtils.isBlank(oldUser.getEmail()) ? "0":oldUser.getEmail();
 
-	    if(!getRealname.equals(oGetRealname) ||
-                !getWorkNo.equals(oGetWorkNo) ||
-                !getPost.equals(oGetPost) ||
+//	    if(!getRealname.equals(oGetRealname) ||
+//                !getWorkNo.equals(oGetWorkNo) ||
+//                !getPost.equals(oGetPost) ||
+//                !getPhone.equals(oGetPhone) ||
+//                !getNVirtualNo.equals(oGetNVirtualNo) ||
+//                !getNCompanyPhone.equals(oGetNCompanyPhone) ||
+//                !getNCompanyLine.equals(oGetNCompanyLine) ||
+//                !getTelephone.equals(oGetTelephone) ||
+//                !getEmail.equals(oGetEmail)
+//
+//        ){
+//            return "1";
+//        }
+	    if(
                 !getPhone.equals(oGetPhone) ||
-                !getNVirtualNo.equals(oGetNVirtualNo) ||
-                !getNCompanyPhone.equals(oGetNCompanyPhone) ||
-                !getNCompanyLine.equals(oGetNCompanyLine) ||
-                !getTelephone.equals(oGetTelephone) ||
-                !getEmail.equals(oGetEmail)
-
+                !getTelephone.equals(oGetTelephone)
         ){
             return "1";
         }
@@ -1056,6 +1062,7 @@ public class SysUserController {
             @RequestParam(name = "orgCode",required = false) String orgCode,
             SysUser userParams) {
 
+        userParams.setSyHireType("'离职','在职','退休返聘'");
         IPage page = new Page(pageNo, pageSize);
         IPage<SysUserSysDepartModel> pageList = sysUserService.selectUserInfo(orgCode, userParams, page);
         return Result.ok(pageList);

+ 5 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUser.java

@@ -408,6 +408,7 @@ public class SysUser implements Serializable {
     @ApiModelProperty(value = "社保号")
     private java.lang.String ssAccount;
 
+    //是否显示通讯录(0显示,1不显示)
     private java.lang.String communication;
 
 
@@ -419,5 +420,9 @@ public class SysUser implements Serializable {
      * 钉钉用户id
      */
     private String dingUser;
+    /**
+     * 工资领取人
+     */
+    private String salaryUser;
 
 }

+ 1 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java

@@ -133,6 +133,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      */
     Integer getUserByOrgCodeTotal(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams);
     Integer selectUserInfoTotal(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams);
+    Integer selectUserInfoCount(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams);
 
 	/**
 	 * 删除通讯录

+ 32 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml

@@ -175,10 +175,42 @@
 			<if test="userParams.deptCode != null and userParams.deptCode != ''">
 				AND c.org_code LIKE '%${userParams.deptCode}%'
 			</if>
+			<if test="userParams.syHireType != null and userParams.syHireType != ''">
+				AND IFNULL(a.sy_Hire_Type,'在职') in  (${userParams.syHireType})
+			</if>
 		</if>
 		group by a.username,a.realname
 		order by substring_index(work_no, '-', 1) + 0 ASC,work_no
 	</select>
+	<select id="selectUserInfoCount" resultType="java.lang.Integer">
+		select COUNT(1) from (SELECT a.id
+		from sys_user a
+					 left join sys_user_depart b on a.id = b.user_id
+					 left join sys_depart c on c.id = b.dep_id
+			left join sys_position d on d.code = a.post
+
+			WHERE
+			a.del_flag='0' and a.communication !=1 and ifnull(a.sy_hire_type,'1') !='离职' AND c.org_code LIKE '${orgCode}%'
+
+			<if test="userParams != null">
+				<if test="userParams.realname != null and userParams.realname != ''">
+					AND a.realname LIKE '%${userParams.realname}%'
+				</if>
+				<if test="userParams.workNo != null and userParams.workNo != ''">
+					AND a.work_no LIKE '%${userParams.workNo}%'
+				</if>
+				<if test="userParams.deptName != null and userParams.deptName != ''">
+					AND c.depart_name LIKE '%${userParams.deptName}%'
+				</if>
+				<if test="userParams.deptCode != null and userParams.deptCode != ''">
+					AND c.org_code LIKE '%${userParams.deptCode}%'
+				</if>
+				<if test="userParams.syHireType != null and userParams.syHireType != ''">
+					AND IFNULL(a.sy_Hire_Type,'在职') in (${userParams.syHireType})
+				</if>
+			</if>
+			group by a.username,a.realname) as a
+		</select>
 
 	<update id="updateCommunication">
 		update sys_user set communication = 1 where id = #{0}

+ 1 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java

@@ -301,7 +301,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 	@Override
 	public IPage<SysUserSysDepartModel> selectUserInfo(String orgCode, SysUser userParams, IPage page) {
 		List<SysUserSysDepartModel> list = baseMapper.selectUserInfo(page, orgCode, userParams);
-		Integer total = baseMapper.selectUserInfoTotal(orgCode, userParams);
+		Integer total = baseMapper.selectUserInfoCount(orgCode, userParams);
 
 		IPage<SysUserSysDepartModel> result = new Page<>(page.getCurrent(), page.getSize(), total);
 		result.setRecords(list);