diff --git a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java index e540f74..6ac7bbe 100644 --- a/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java +++ b/src/com/engine/bjcj220907/dao/OverseasAllowanceDAO.java @@ -1,5 +1,6 @@ package com.engine.bjcj220907.dao; +import com.engine.bjcj220907.entity.JKDQBT; import com.engine.bjcj220907.entity.JwCZInfoDetail; import com.engine.bjcj220907.entity.XcdjJwjtParam; import weaver.conn.RecordSet; @@ -26,8 +27,10 @@ public class OverseasAllowanceDAO { */ public List getCZInfo() { RecordSet rs = new RecordSet(); - String sql="select xm,jwgzksrq,jwgzjsrq,lx,jsglts,btbz " + + //TODO 修改sqluf_bjcjtestgl + String sql="select xm,jwgzksrq,jwgzjsrq,lx,jsglts,g.btbz,jwgzdw1, a.btbz dqbtbz " + "from UF_NJJMB_DT1 d LEFT JOIN UF_NJJMB m on d.MAINID=m.id " + + "LEFT JOIN UF_DQBTBZ a on d.jwgzdw1=a.id "+ "LEFT JOIN uf_bjcjtestgl g on g.jwgl=case when floor(jsglts/365)>5 then 5 else floor(jsglts/365) end " + "WHERE lx in(0,1) " + "ORDER by JWGZKSRQ desc"; @@ -42,6 +45,11 @@ public class OverseasAllowanceDAO { Date jwgzjsrq=null; double jsglts = rs.getDouble("jsglts"); double btbz = rs.getDouble("btbz"); + String jwgzdw1 = rs.getString("JWGZDW1"); + double dqbtbz = rs.getDouble("DQBTBZ"); + if(dqbtbz == -1){ + dqbtbz =0.0; + } if(btbz == -1){ // 境外工龄未满1年 btbz=0.0; @@ -52,6 +60,9 @@ public class OverseasAllowanceDAO { if(jwgzjsrqStr!=null && jwgzjsrqStr.length()!=0){ jwgzjsrq = sdf.parse(jwgzjsrqStr); } + // 如果lx=0则补助天数为 自然日 lx=1 补助天数为区间间隔 + + JKDQBT.builder().lx(rs.getInt("lx")).jkdqbtbz(dqbtbz).jkdq(Integer.valueOf(jwgzdw1)).build(); JwCZInfoDetail build = JwCZInfoDetail.builder().xm(rs.getString("xm")).lx(rs.getInt("lx")).jwczksrq(jwgzksrq).jwczjsrq(jwgzjsrq).jsglts(jsglts).glbtybz(btbz).build(); results.add(build); }catch (Exception e){ diff --git a/src/com/engine/bjcj220907/entity/JKDQBT.java b/src/com/engine/bjcj220907/entity/JKDQBT.java new file mode 100644 index 0000000..5b8ab27 --- /dev/null +++ b/src/com/engine/bjcj220907/entity/JKDQBT.java @@ -0,0 +1,43 @@ +package com.engine.bjcj220907.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @date 2022/09/28 15:58 + * @description 艰苦地区补助 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class JKDQBT { + + /** + * 天数 + */ + private double days; + + /** + * 类型 0:开始常驻 + */ + private Integer lx; + + /** + * 艰苦地区补贴标准(天标准) + */ + private double jkdqbtbz; + + /** + * 艰苦地区 + */ + private Integer jkdq; + + /** + * 艰苦地区补贴总和 + */ + private double jkdqbt; +} diff --git a/src/com/engine/bjcj220907/entity/JWJT.java b/src/com/engine/bjcj220907/entity/JWJT.java index 2a71751..307031d 100644 --- a/src/com/engine/bjcj220907/entity/JWJT.java +++ b/src/com/engine/bjcj220907/entity/JWJT.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; /** * @author Harryxzy @@ -88,8 +89,16 @@ public class JWJT { */ private double jwgl; + + /** + * 艰苦地区补贴总和 + */ + private double jkdqbtzh; + /** * 艰苦地区补贴 */ + private List jkdqbts; + } diff --git a/src/com/engine/bjcj220907/entity/jkdqbt.java b/src/com/engine/bjcj220907/entity/jkdqbt.java deleted file mode 100644 index 993ac7f..0000000 --- a/src/com/engine/bjcj220907/entity/jkdqbt.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.engine.bjcj220907.entity; - -/** - * @author Harryxzy - * @date 2022/09/28 15:58 - * @description - */ -public class jkdqbt { -} diff --git a/src/com/engine/bjcj220907/service/OverseasAllowanceCountService.java b/src/com/engine/bjcj220907/service/OverseasAllowanceCountService.java index 0310e22..e58ca1a 100644 --- a/src/com/engine/bjcj220907/service/OverseasAllowanceCountService.java +++ b/src/com/engine/bjcj220907/service/OverseasAllowanceCountService.java @@ -27,6 +27,6 @@ public interface OverseasAllowanceCountService { * @author Harryxzy * @date 2022/9/26 16:29 */ - List getCZInfosAndCZDays(List jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal); + List getCZInfosAndCZDays(List jwCZInfos, Calendar startAttendanceCal, Calendar endAttendanceCal,List results); } diff --git a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java index 678d6c9..e64d672 100644 --- a/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java +++ b/src/com/engine/bjcj220907/service/impl/OverseasAllowanceCountServiceImpl.java @@ -22,6 +22,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse BaseBean baseBean = new BaseBean(); + public MonthBonusDAO getMonthBonusDAO(){ return new MonthBonusDAO(); } @@ -56,7 +57,8 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse List jwCZInfos = formatJwCZInfo(czInfos,startAttendanceCal,endAttendanceCal); baseBean.writeLog("将境外常驻信息格式化"); // 如果用户在考勤周期内存在境外常驻信息则过滤出来,并且计算当月应常驻天数 - List results = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal); + List results = new ArrayList<>(); + jwCZInfos = getCZInfosAndCZDays(jwCZInfos, startAttendanceCal, endAttendanceCal,results); baseBean.writeLog("获取用户在考勤周期内存在境外常驻信息过滤出来,并且计算当月境外应常驻天数及境内工作天数,共::"+results.size()); // 计算考勤所属月员工的薪酬等级,获取相应的境外津贴标准 List users = results.stream().map(i -> i.getUser()).collect(Collectors.toList()); @@ -82,16 +84,15 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse * @author Harryxzy * @date 2022/9/26 16:29 */ - public List getCZInfosAndCZDays(List jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal){ - ArrayList results = new ArrayList<>(); - jwCZInfos.stream().filter(czInfo -> { + public List getCZInfosAndCZDays(List jwCZInfos,Calendar startAttendanceCal,Calendar endAttendanceCal,List results ){ + List collect = jwCZInfos.stream().filter(czInfo -> { List czDetails = czInfo.getInfos(); // 用于存储计算到哪一天的日期 Calendar c = Calendar.getInstance(); c.setTime(endAttendanceCal.getTime()); Calendar[] countDay = {c}; int[] ycq = {0}; - int[] gnycq ={0}; + int[] gnycq = {0}; List details = new ArrayList<>(); for (int i = 0; i < czDetails.size(); i++) { JwCZInfoDetail detail = czDetails.get(i); @@ -131,22 +132,22 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse aCal.set(Calendar.MINUTE, 0); aCal.set(Calendar.SECOND, 0); aCal.set(Calendar.MILLISECOND, 0); - if(details.size()==0 && countDay[0].getTime().equals(endAttendanceCal.getTime())){ + if (details.size() == 0 && countDay[0].getTime().equals(endAttendanceCal.getTime())) { // 该考勤周期内员工没有境外常驻信息 return false; } - while (startAttendanceCal.getTime().before(aCal.getTime()) || startAttendanceCal.getTime().equals(aCal.getTime())){ - if(details.contains(aCal.getTime())){ + while (startAttendanceCal.getTime().before(aCal.getTime()) || startAttendanceCal.getTime().equals(aCal.getTime())) { + if (details.contains(aCal.getTime())) { // 存在境外记录 ycq[0]++; - aCal.add(Calendar.DATE,-1); - }else{ + aCal.add(Calendar.DATE, -1); + } else { // 没有境外记录,判断是否是工作日 - if( (aCal.get(Calendar.DAY_OF_WEEK) != 1) && (aCal.get(Calendar.DAY_OF_WEEK)!=7) ){ + if ((aCal.get(Calendar.DAY_OF_WEEK) != 1) && (aCal.get(Calendar.DAY_OF_WEEK) != 7)) { // 是工作日 gnycq[0]++; } - aCal.add(Calendar.DATE,-1); + aCal.add(Calendar.DATE, -1); } } JWJT build = JWJT.builder().user(czInfo.getXm()).jwycq(ycq[0]).gngzts(gnycq[0]).kqMonth(endAttendanceCal.getTime()).build(); @@ -156,7 +157,7 @@ public class OverseasAllowanceCountServiceImpl extends Service implements Overse } return false; }).collect(Collectors.toList()); - return results; + return collect; } /**