青岛新核芯 历史项目迁移备份 非全部代码
parent
46f1c9fde1
commit
64420be6be
@ -0,0 +1,15 @@
|
||||
package com.api.qdhx.web;
|
||||
|
||||
import com.engine.qdhx.web.HrmSalaryDiffReportAction;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/16
|
||||
* @Version V1.0
|
||||
**/
|
||||
@Path("/salarydiffreport")
|
||||
public class HrmSalaryDiffReportActionApi extends HrmSalaryDiffReportAction {
|
||||
}
|
@ -0,0 +1,212 @@
|
||||
package com.engine.qdhx.biz;
|
||||
|
||||
import com.engine.qdhx.entity.Context;
|
||||
import com.engine.qdhx.entity.TaxTableEntity;
|
||||
import com.engine.qdhx.entity.TaxTableNoResidentEntity;
|
||||
import com.engine.qdhx.service.impl.AddSalaryStrategy;
|
||||
import com.engine.qdhx.service.impl.MultiplySalaryStrategy;
|
||||
import com.engine.qdhx.service.impl.SubtractionSalaryStrategy;
|
||||
import com.engine.qdhx.util.SalaryUtil;
|
||||
import com.engine.qdhx.util.TaxRateUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO 税率台账自动生成本月的个税
|
||||
* @Date 2022/3/2
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmTaxDiffBiz {
|
||||
|
||||
private final double MONEY = 5000; //非居民费用扣除标准
|
||||
|
||||
private final double ZERO = 0;
|
||||
|
||||
private final int JMFORMMODEID = 18;
|
||||
|
||||
private final int FJMFORMMODEID = 28;
|
||||
|
||||
//税率表获取(居民)
|
||||
private final List<TaxTableEntity> taxTable = TaxRateUtil.getTaxTable();
|
||||
//非居民
|
||||
private final List<TaxTableNoResidentEntity> taxTableNoResident = TaxRateUtil.getTaxTableNR();
|
||||
|
||||
private DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyyMM");
|
||||
|
||||
|
||||
/**
|
||||
* 计算居民个税
|
||||
* @param fromDate
|
||||
* @param workcode
|
||||
* @param shouldSendTotal
|
||||
* @return
|
||||
*/
|
||||
public Map getTaxToDosByJm(String fromDate,String resourceid,String workcode,double shouldSendTotal,Map<String,Double> ipMap) {
|
||||
Map<String, List<Object>> datas = new HashMap<>();
|
||||
try {
|
||||
RecordSet rs = new RecordSet();
|
||||
Context context = new Context();
|
||||
context.setSalaryStrategy(new AddSalaryStrategy());
|
||||
Context context1 = new Context();
|
||||
context1.setSalaryStrategy(new SubtractionSalaryStrategy());
|
||||
Context context2 = new Context();
|
||||
context2.setSalaryStrategy(new MultiplySalaryStrategy());
|
||||
LocalDate start = LocalDate.parse(fromDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
Integer month = start.getMonthValue();
|
||||
|
||||
//薪资所属年月
|
||||
String xzszny = formatter1.format(start);
|
||||
//个人所得税自定义项目
|
||||
Map<String,Double> customMap = TaxRateUtil.customTable(workcode, xzszny);
|
||||
|
||||
//国家规定统一减免金额
|
||||
double gjgdtyjmje = customMap.getOrDefault("gjgdtyjmje",0.00);
|
||||
//个税起征点
|
||||
double gsqzd = taxTable.get(0).getQzd();
|
||||
//社保
|
||||
double sb = context.execute(ipMap.getOrDefault("ylgr16",0.00),ipMap.getOrDefault("sygr03",0.00),ipMap.getOrDefault("ylgr2",0.00));
|
||||
//公积金
|
||||
double gjj = ipMap.getOrDefault("gjjgr5",0.00);
|
||||
//专项附加扣除
|
||||
double zxfjkc = customMap.getOrDefault("zxfjkc",0.00);
|
||||
//依法确定的其他扣除
|
||||
double yfqddqtkc = customMap.getOrDefault("yfqddqtkc",0.00);
|
||||
|
||||
//应纳税所得
|
||||
double ynssd = context1.execute(shouldSendTotal,gjgdtyjmje,gsqzd,sb,gjj,yfqddqtkc);
|
||||
|
||||
rs.executeQuery("select sum(yfze) as ljsr, sum(gjgdtyjmje) as ljmssrgjtyjmje, sum(gsqzd) as ljjcfy," +
|
||||
" sum(sb) as ljzxkcsb,sum(gjj) as ljzxkcgjj,sum(yfqddqtkc) as ljyfqddqtkc,sum(bqyykyjsedyyj) as ljyykyjse from uf_grsds where gh = ? and " +
|
||||
" xzszny < ?",workcode,xzszny);
|
||||
|
||||
rs.next();
|
||||
|
||||
double ljsr = SalaryUtil.getDoubleValue(rs.getString("ljsr"),0.00);
|
||||
ljsr = context.execute(ljsr,shouldSendTotal); //累计收入
|
||||
|
||||
//累计免税收入
|
||||
double ljmssrgjtyjmje = SalaryUtil.getDoubleValue(rs.getString("ljmssrgjtyjmje"),0.00);
|
||||
ljmssrgjtyjmje = context.execute(ljmssrgjtyjmje,gjgdtyjmje);
|
||||
//累加减除费用
|
||||
double ljjcfy = SalaryUtil.getDoubleValue(rs.getString("ljjcfy"),0.00);
|
||||
ljjcfy = context.execute(ljjcfy,gsqzd);
|
||||
//累计专项扣除(社保)
|
||||
double ljzxkcsb = SalaryUtil.getDoubleValue(rs.getString("ljzxkcsb"),0.00);
|
||||
ljzxkcsb = context.execute(ljzxkcsb,sb);
|
||||
//累计专项扣除(公积金)
|
||||
double ljzxkcgjj = SalaryUtil.getDoubleValue(rs.getString("ljzxkcgjj"),0.00);
|
||||
ljzxkcgjj = context.execute(ljzxkcgjj,gjj);
|
||||
//累计专项附加扣除
|
||||
double ljzxfjkc = context2.execute(zxfjkc,month);
|
||||
//累计依法确定的其他扣除
|
||||
double ljyfqddqtkc = SalaryUtil.getDoubleValue(rs.getString("ljyfqddqtkc"),0.00);
|
||||
ljyfqddqtkc = context.execute(ljyfqddqtkc,yfqddqtkc);
|
||||
//累计预扣预缴应纳税所得额
|
||||
double ljykyjynssde = context1.execute(ljsr,ljmssrgjtyjmje,ljjcfy,ljzxkcsb,ljzxkcgjj,ljzxfjkc,ljyfqddqtkc);
|
||||
|
||||
//税率
|
||||
double sl = ZERO;
|
||||
//速算扣除数
|
||||
double sskcs = ZERO;
|
||||
//累计减免税额 (残疾人80%税)
|
||||
double ljjmsecjr80s = ZERO;
|
||||
//累计已预扣预缴税额
|
||||
double ljyykyjse = ZERO;
|
||||
//本期应预扣预缴税额
|
||||
double bqyykjse = ZERO;
|
||||
//本期应预扣预缴税额 (当月预计)
|
||||
double bqyykyjsedyyj = ZERO;
|
||||
if(ljykyjynssde <= 0) {
|
||||
}else {
|
||||
Integer side = TaxRateUtil.getTaxSide(ljsr,"0");
|
||||
TaxTableEntity taxTableEntity = taxTable.stream().filter(item -> item.getLjykyjynssde() == side).findAny().orElse(null);
|
||||
sl = taxTableEntity.getYsl();
|
||||
sskcs = taxTableEntity.getSskcs();
|
||||
ljyykyjse = SalaryUtil.getDoubleValue(rs.getString("ljyykyjse"),0.00);
|
||||
bqyykjse = context1.execute(context2.execute(ljykyjynssde,sl),sskcs,ljjmsecjr80s,ljyykyjse);
|
||||
bqyykyjsedyyj = bqyykjse;
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<Object> list = Arrays.asList(resourceid,workcode,xzszny,shouldSendTotal,
|
||||
gjgdtyjmje,gsqzd,sb,gjj,zxfjkc,yfqddqtkc,ynssd,ljsr,ljmssrgjtyjmje,ljjcfy,
|
||||
ljzxkcsb,ljzxkcgjj,ljzxfjkc,ljyfqddqtkc,ljykyjynssde,sl,sskcs,ljjmsecjr80s,ljyykyjse,bqyykjse,bqyykyjsedyyj,JMFORMMODEID);
|
||||
|
||||
datas.put("taxRate",list);
|
||||
|
||||
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return datas;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算非居民个税
|
||||
* @param fromDate
|
||||
* @param workcode
|
||||
* @param shouldSendTotal
|
||||
* @return
|
||||
*/
|
||||
public Map getTaxToDosByFjm(String fromDate,String resourceid,String workcode,double shouldSendTotal,Map<String,Double> ipMap) {
|
||||
Map<String, List<Object>> datas = new HashMap<>();
|
||||
try{
|
||||
Context context = new Context();
|
||||
context.setSalaryStrategy(new SubtractionSalaryStrategy());
|
||||
Context context1 = new Context();
|
||||
context1.setSalaryStrategy(new MultiplySalaryStrategy());
|
||||
LocalDate start = LocalDate.parse(fromDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
//薪资所属年月
|
||||
String xzszny = formatter1.format(start);
|
||||
//基本养老保险金
|
||||
double jbylbxj = ZERO;
|
||||
//公积金
|
||||
double zfgjj = ZERO;
|
||||
//其他免税所得
|
||||
double qtmssd = ZERO;
|
||||
//应税收入额
|
||||
double yssre = context.execute(shouldSendTotal,jbylbxj,zfgjj,qtmssd);
|
||||
double fykcbz = MONEY; //费用扣除标准
|
||||
double ynssde = context.execute(yssre,fykcbz); //应纳税所得额
|
||||
|
||||
double sl = ZERO; //税率
|
||||
double sskcs = ZERO; //速算扣除数
|
||||
double ynse = ZERO; //应纳税额
|
||||
double jmse = ZERO; //减免税额
|
||||
double sjynse = ZERO; //实际应纳税额
|
||||
|
||||
if (ynssde <= 0) {
|
||||
}else {
|
||||
Integer side = TaxRateUtil.getTaxSide(shouldSendTotal,"1");
|
||||
TaxTableNoResidentEntity taxTableNoResidentEntity = taxTableNoResident.stream().filter(item -> item.getYnssde() == side).findAny().orElse(null);
|
||||
sl = taxTableNoResidentEntity.getSl();
|
||||
sskcs = taxTableNoResidentEntity.getSskcs();
|
||||
ynse = context.execute(context1.execute(ynssde,sl),sskcs);
|
||||
sjynse = context.execute(ynse,jmse);
|
||||
//new BaseBean().writeLog(String.format("side: %s || taxTableNoResident %s",side,taxTableNoResident.toString()));
|
||||
}
|
||||
|
||||
|
||||
double shyx = context.execute(shouldSendTotal,jbylbxj,zfgjj,sjynse); //税后月薪
|
||||
|
||||
List<Object> list = Arrays.asList(resourceid,workcode,xzszny,shouldSendTotal,jbylbxj,zfgjj,qtmssd,yssre,
|
||||
fykcbz,ynssde,sl,sskcs,ynse,jmse,sjynse,shyx,FJMFORMMODEID);
|
||||
|
||||
datas.put("taxRateNR",list);
|
||||
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
return datas;
|
||||
}
|
||||
}
|
@ -0,0 +1,412 @@
|
||||
package com.engine.qdhx.cmd;
|
||||
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.qdhx.biz.HrmSalaryDiffReportBiz;
|
||||
import com.engine.qdhx.entity.HrmSalaryEntity;
|
||||
import com.engine.qdhx.util.SalaryUtil;
|
||||
import org.slf4j.Logger;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.general.TimeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.company.DepartmentComInfo;
|
||||
import weaver.hrm.report.schedulediff.HrmScheduleDiffManager;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/16
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalaryDiffReportCmd extends AbstractCommonCommand<Map<String,Object>> {
|
||||
|
||||
|
||||
public HrmSalaryDiffReportCmd(User user, Map<String,Object> params) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> apidatas = new HashMap<>();
|
||||
|
||||
if (null == user){
|
||||
apidatas.put("hasRight", false);
|
||||
return apidatas;
|
||||
}
|
||||
|
||||
try {
|
||||
Map<String,Object> reportdata = new HashMap<>();
|
||||
ResourceComInfo resourceComInfo = new ResourceComInfo();
|
||||
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
||||
|
||||
String typeselect = Util.null2String(params.get("typeselect")); //时间范围
|
||||
String viewscope = Util.null2String(params.get("viewscope")); //查看范围
|
||||
String subCompanyId = Util.null2String(params.get("subCompanyId"));
|
||||
String departmentId = Util.null2String(params.get("departmentId"));
|
||||
String resourceId = Util.null2String(params.get("resourceId"));
|
||||
|
||||
String fromDate = "";
|
||||
String toDate = "";
|
||||
|
||||
if ("1".equals(typeselect) || "".equals(typeselect)) {
|
||||
fromDate = TimeUtil.getLastMonthBeginDay();
|
||||
toDate = TimeUtil.getLastMonthEndDay();
|
||||
}else {
|
||||
fromDate = TimeUtil.getMonthBeginDay();
|
||||
toDate = TimeUtil.getMonthEndDay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
String fileName = fromDate+" "+ "至"+" "+toDate+" "+"薪资情况统计";
|
||||
|
||||
reportdata.put("title", fileName);
|
||||
List<Object> titleRows = new ArrayList<Object>();
|
||||
List<Object> titleRow = null;
|
||||
Map<String,Object> titleCell = null;
|
||||
|
||||
titleRow = new ArrayList<>();
|
||||
|
||||
List<String> rowlist = Stream.of("处","部","费用代码","工号","姓名","入职日期","离职日期","中国农业银行账户","税务身份").collect(Collectors.toList());
|
||||
|
||||
for (String rowvalue : rowlist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "3");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("colspan", "5");
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", "薪资项目");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("colspan", "14");
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", "福利项目");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("colspan", "4");
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", "奖金");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
List<String> rowlist1 = Stream.of("一次性补偿金(税后)","考勤扣款(减项)","其他减项","应纳税额","应发总额").collect(Collectors.toList());
|
||||
|
||||
for (String rowvalue : rowlist1) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "3");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("colspan", "2");
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", "其他减项");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("colspan", "4");
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", "五险一金代扣代缴款");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "3");
|
||||
titleCell.put("value", "个人所得税");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "3");
|
||||
titleCell.put("value", "实发总额");
|
||||
titleRow.add(titleCell);
|
||||
titleRows.add(titleRow); //第一列
|
||||
|
||||
|
||||
titleRow = new ArrayList<>();
|
||||
List<String> salaryTypelist = Stream.of("实发基本工资","实发固定加班费").collect(Collectors.toList());
|
||||
for (String rowvalue : salaryTypelist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "2");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("colspan", "3");
|
||||
titleCell.put("value", "加班费");
|
||||
titleRow.add(titleCell);
|
||||
|
||||
|
||||
List<String> welfareTypelist = Stream.of("生日礼金","结婚礼金","丧葬礼金","节日礼金",
|
||||
"防暑津贴","高温补贴","通讯补贴","轮班津贴","站别津贴","生产绩效奖金","境外保险补贴","其他加项1","其他加项2(税后)","住房补贴").collect(Collectors.toList());
|
||||
for (String rowvalue : welfareTypelist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "2");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
|
||||
|
||||
List<String> bonusTypelist = Stream.of("特别奖励金","签约金","绩效奖","年终奖","住宿水电物业费代扣","餐费代扣").collect(Collectors.toList());
|
||||
for (String rowvalue : bonusTypelist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "2");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
|
||||
|
||||
List<String> insuranceTypelist = Stream.of("养老保险","医疗保险","失业保险","住房公积金").collect(Collectors.toList());
|
||||
for (String rowvalue : insuranceTypelist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "2");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
titleRows.add(titleRow); //第二列
|
||||
|
||||
titleRow = new ArrayList<>();
|
||||
List<String> workTimeTypelist = Stream.of("G1","G2","G3").collect(Collectors.toList());
|
||||
for (String rowvalue : workTimeTypelist) {
|
||||
titleCell = new HashMap<>();
|
||||
titleCell.put("rowspan", "1");
|
||||
titleCell.put("value", rowvalue);
|
||||
titleRow.add(titleCell);
|
||||
}
|
||||
titleRows.add(titleRow); //第三列
|
||||
|
||||
|
||||
reportdata.put("titlerows", titleRows);
|
||||
List<Object> datarows = new ArrayList<>();
|
||||
List<Object> row = null;
|
||||
Map<String,Object> cell = null;
|
||||
HrmSalaryDiffReportBiz salaryDiffReportBiz = new HrmSalaryDiffReportBiz();
|
||||
|
||||
List scheduleList = salaryDiffReportBiz.getScheduleList(fromDate,toDate,subCompanyId,departmentId,resourceId);
|
||||
HrmSalaryEntity hrmSalaryEntity = null;
|
||||
for(int i=0; i<scheduleList.size(); i++) {
|
||||
hrmSalaryEntity = (HrmSalaryEntity)scheduleList.get(i);
|
||||
row = new ArrayList<>();
|
||||
datarows.add(row);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(departmentComInfo.getDepartmentName(hrmSalaryEntity.getPlace())));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(departmentComInfo.getDepartmentName(hrmSalaryEntity.getDeptId())));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getCostcode()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getWorkcode()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(resourceComInfo.getLastname(hrmSalaryEntity.getUserid())));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getCompanystartdate()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getDismissdate()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getBankAccount()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(SalaryUtil.getTaxName(hrmSalaryEntity.getTaxId())));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getRealBasicSalary()));
|
||||
row.add(cell);
|
||||
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getRealOvertimePay()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOvertimePayG1()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOvertimePayG2()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOvertimePayG3()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getBirthdayCashgift()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getMerryCashgift()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getFuneralCashgift()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getFestivalCashgift()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getPreventHeatAllowance()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getHighTemperatureSubsidy()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getCommunicatySubsidy()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getShiftAllowance()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getStandAllowance()));
|
||||
row.add(cell);
|
||||
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getAchievementonus()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getAbroadInsuranceSubsidy()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOtherItem1()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOtherItem2()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getHouseSubsidy()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getSpecialAward()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getSignMoney()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getMeritsPay()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getAnnualBonus()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOmpensation()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getAttendanceDeduction()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getOtherDeduction()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getTaxable()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getShouldSendTotal()));
|
||||
row.add(cell);
|
||||
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getCostWithhold()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getMealWithhold()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getEndowmentInsurance()));
|
||||
row.add(cell);
|
||||
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getMedicalInsurance()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getUnemploymentInsurance()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getHouseProvident()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getIndividualIncomeTax()));
|
||||
row.add(cell);
|
||||
|
||||
cell = new HashMap<>();
|
||||
cell.put("value", Util.null2String(hrmSalaryEntity.getActuallySendTotal()));
|
||||
row.add(cell);
|
||||
|
||||
}
|
||||
reportdata.put("datarows", datarows);
|
||||
apidatas.put("reportdata", reportdata);
|
||||
apidatas.put("fromDate", fromDate);
|
||||
apidatas.put("toDate", toDate);
|
||||
|
||||
|
||||
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return apidatas;
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.engine.qdhx.cmd;
|
||||
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/17
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalaryDiffReportConditionCmd extends AbstractCommonCommand<Map<String,Object>> {
|
||||
|
||||
public HrmSalaryDiffReportConditionCmd(User user, Map<String,Object> params) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||||
try {
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return apidatas;
|
||||
}
|
||||
}
|
@ -0,0 +1,157 @@
|
||||
package com.engine.qdhx.cmd;
|
||||
|
||||
import com.cloudstore.dev.api.util.Util_DataCache;
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.qdhx.entity.HrmSalaryEntity;
|
||||
import com.weaver.general.TimeUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.conn.RecordSetTrans;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/22
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalarySaveReportCmd extends AbstractCommonCommand<Map<String,Object>> {
|
||||
|
||||
private static final int FORMMODEID = 6;
|
||||
|
||||
public HrmSalarySaveReportCmd(User user, Map<String,Object> params) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> apidatas = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
RecordSetTrans rst = new RecordSetTrans();
|
||||
try {
|
||||
rst.setAutoCommit(false);
|
||||
int userid = user.getUID();
|
||||
//查看范围(总部 分部 部门只做插入 人员可更新数据)
|
||||
String viewscope = Util.null2String(params.get("viewscope"));
|
||||
String fromDate = Util.null2String(params.get("fromDate"));
|
||||
LocalDate start = LocalDate.parse(fromDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
int year = start.getYear();
|
||||
int month = start.getMonthValue();
|
||||
|
||||
rs.executeQuery("select count(1) as count from uf_xztz where year = ? and month = ?",year,month);
|
||||
rs.next();
|
||||
int count = Util.getIntValue(rs.getString("count"));
|
||||
|
||||
if (count >= 1 ){
|
||||
if ("0".equals(viewscope)) {
|
||||
//保存总部数据时先删除台账数据
|
||||
rs.executeUpdate("delete from uf_xztz where year = ? and month = ?",year,month);
|
||||
}else {
|
||||
apidatas.put("message", "台账数据已存在");
|
||||
return apidatas;
|
||||
}
|
||||
}
|
||||
|
||||
List scheduleList = null;
|
||||
Util_DataCache dataCache = new Util_DataCache();
|
||||
|
||||
String currentDateString = TimeUtil.getCurrentDateString();
|
||||
String currentTimeString = TimeUtil.getOnlyCurrentTimeString();
|
||||
|
||||
List<List<Object>> list = new LinkedList<>();
|
||||
|
||||
scheduleList = (List) dataCache.getObjValWithEh("salaryScheduleList");
|
||||
scheduleList.forEach(value -> {
|
||||
HrmSalaryEntity hrmSalaryEntity = (HrmSalaryEntity)value;
|
||||
List<Object> hrmSalaryEntityList = Arrays.asList(hrmSalaryEntity.getPlace(),
|
||||
hrmSalaryEntity.getDeptId(),
|
||||
hrmSalaryEntity.getCostcode(),
|
||||
hrmSalaryEntity.getWorkcode(),
|
||||
hrmSalaryEntity.getUserid(),
|
||||
hrmSalaryEntity.getCompanystartdate(),
|
||||
hrmSalaryEntity.getDismissdate(),
|
||||
hrmSalaryEntity.getBankAccount(),
|
||||
hrmSalaryEntity.getTaxId(),
|
||||
hrmSalaryEntity.getRealBasicSalary(),
|
||||
hrmSalaryEntity.getRealOvertimePay(),
|
||||
hrmSalaryEntity.getOvertimePayG1(),
|
||||
hrmSalaryEntity.getOvertimePayG2(),
|
||||
hrmSalaryEntity.getOvertimePayG3(),
|
||||
hrmSalaryEntity.getBirthdayCashgift(),
|
||||
hrmSalaryEntity.getMerryCashgift(),
|
||||
hrmSalaryEntity.getFuneralCashgift(),
|
||||
hrmSalaryEntity.getFestivalCashgift(),
|
||||
hrmSalaryEntity.getPreventHeatAllowance(),
|
||||
hrmSalaryEntity.getHighTemperatureSubsidy(),
|
||||
hrmSalaryEntity.getCommunicatySubsidy(),
|
||||
hrmSalaryEntity.getShiftAllowance(),
|
||||
hrmSalaryEntity.getStandAllowance(),
|
||||
hrmSalaryEntity.getAchievementonus(),
|
||||
hrmSalaryEntity.getAbroadInsuranceSubsidy(),
|
||||
hrmSalaryEntity.getOtherItem1(),
|
||||
hrmSalaryEntity.getOtherItem2(),
|
||||
hrmSalaryEntity.getHouseSubsidy(),
|
||||
hrmSalaryEntity.getSpecialAward(),
|
||||
hrmSalaryEntity.getSignMoney(),
|
||||
hrmSalaryEntity.getMeritsPay(),
|
||||
hrmSalaryEntity.getAnnualBonus(),
|
||||
hrmSalaryEntity.getOmpensation(),
|
||||
hrmSalaryEntity.getAttendanceDeduction(),
|
||||
hrmSalaryEntity.getOtherDeduction(),
|
||||
hrmSalaryEntity.getTaxable(),
|
||||
hrmSalaryEntity.getShouldSendTotal(),
|
||||
hrmSalaryEntity.getCostWithhold(),
|
||||
hrmSalaryEntity.getMealWithhold(),
|
||||
hrmSalaryEntity.getEndowmentInsurance(),
|
||||
hrmSalaryEntity.getMedicalInsurance(),
|
||||
hrmSalaryEntity.getUnemploymentInsurance(),
|
||||
hrmSalaryEntity.getHouseProvident(),
|
||||
hrmSalaryEntity.getIndividualIncomeTax(),
|
||||
hrmSalaryEntity.getActuallySendTotal(),
|
||||
year,
|
||||
month,
|
||||
userid,
|
||||
currentDateString,
|
||||
currentTimeString,
|
||||
FORMMODEID);
|
||||
list.add(hrmSalaryEntityList);
|
||||
});
|
||||
|
||||
if (count == 1 && "3".equals(viewscope)){ //人员数据更新
|
||||
apidatas.put("message","台账数据更新成功");
|
||||
|
||||
}else {
|
||||
rst.executeBatchSql("insert into uf_xztz(place,deptId,costcode,workcode," +
|
||||
"lastname,companystartdate,dismissdate,bankAccount,taxId,realBasicSalary,realOvertimePay,overtimePayG1," +
|
||||
"overtimePayG2,overtimePayG3,birthdayCashgift,merryCashgift," +
|
||||
"funeralCashgift,festivalCashgift,preventHeatAllowance,highTemperatureSubsidy," +
|
||||
"communicatySubsidy,shiftAllowance,StandAllowance,achievementonus,abroadInsuranceSubsidy," +
|
||||
"otherItem1,otherItem2,houseSubsidy,specialAward,signMoney,meritsPay,annualBonus," +
|
||||
"ompensation,attendanceDeduction,otherDeduction,taxable,shouldSendTotal,costWithhold,mealWithhold," +
|
||||
"endowmentInsurance,medicalInsurance,unemploymentInsurance,houseProvident,individualIncomeTax," +
|
||||
"actuallySendTotal,year,month,modedatacreater,modedatacreatedate,modedatacreatetime,formmodeid) values(?,?,?,?,?,?," +
|
||||
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
|
||||
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",list);
|
||||
apidatas.put("message","台账数据插入成功");
|
||||
}
|
||||
|
||||
rst.commit();
|
||||
}catch (Exception e){
|
||||
rst.rollback();
|
||||
e.printStackTrace();
|
||||
}
|
||||
return apidatas;
|
||||
}
|
||||
}
|
@ -0,0 +1,132 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param <T>
|
||||
*/
|
||||
public class Builder<T> {
|
||||
|
||||
private final Supplier<T> instantiator;
|
||||
|
||||
private List<Consumer<T>> modifiers = new ArrayList<>();
|
||||
|
||||
public Builder(Supplier<T> instant) {
|
||||
this.instantiator = instant;
|
||||
}
|
||||
|
||||
public static <T> Builder<T> of(Supplier<T> instant) {
|
||||
return new Builder<>(instant);
|
||||
}
|
||||
|
||||
public <P1> Builder<T> with(Consumer1<T, P1> consumer, P1 p1) {
|
||||
Consumer<T> c = instance -> consumer.accept(instance, p1);
|
||||
modifiers.add(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <P1, P2> Builder<T> with(Consumer2<T, P1, P2> consumer, P1 p1, P2 p2) {
|
||||
Consumer<T> c = instance -> consumer.accept(instance, p1, p2);
|
||||
modifiers.add(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <P1, P2, P3> Builder<T> with(Consumer3<T, P1, P2, P3> consumer, P1 p1, P2 p2, P3 p3) {
|
||||
Consumer<T> c = instance -> consumer.accept(instance, p1, p2, p3);
|
||||
modifiers.add(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <P1, P2, P3,P4> Builder<T> with(Consumer4<T, P1, P2, P3,P4> consumer, P1 p1, P2 p2, P3 p3,P4 p4) {
|
||||
Consumer<T> c = instance -> consumer.accept(instance, p1, p2, p3,p4);
|
||||
modifiers.add(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <P1, P2, P3,P4,P5> Builder<T> with(Consumer5<T, P1, P2, P3,P4,P5> consumer, P1 p1, P2 p2, P3 p3,P4 p4,P5 p5) {
|
||||
Consumer<T> c = instance -> consumer.accept(instance, p1, p2, p3,p4,p5);
|
||||
modifiers.add(c);
|
||||
return this;
|
||||
}
|
||||
|
||||
public T build() {
|
||||
T value = instantiator.get();
|
||||
modifiers.forEach(modifier -> modifier.accept(value));
|
||||
modifiers.clear();
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 1 参数 Consumer
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface Consumer1<T, P1> {
|
||||
/**
|
||||
* 接收参数方法
|
||||
* @param t 对象
|
||||
* @param p1 参数二
|
||||
*/
|
||||
void accept(T t, P1 p1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 2 参数 Consumer
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface Consumer2<T, P1, P2> {
|
||||
/**
|
||||
* 接收参数方法
|
||||
* @param t 对象
|
||||
* @param p1 参数一
|
||||
* @param p2 参数二
|
||||
*/
|
||||
void accept(T t, P1 p1, P2 p2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 3 参数 Consumer
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface Consumer3<T, P1, P2, P3> {
|
||||
/**
|
||||
* 接收参数方法
|
||||
* @param t 对象
|
||||
* @param p1 参数一
|
||||
* @param p2 参数二
|
||||
* @param p3 参数三
|
||||
*/
|
||||
void accept(T t, P1 p1, P2 p2, P3 p3);
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface Consumer4<T, P1, P2, P3, P4>{
|
||||
/**
|
||||
* 接收参数方法
|
||||
* @param t 对象
|
||||
* @param p1 参数一
|
||||
* @param p2 参数二
|
||||
* @param p3 参数三
|
||||
* @param p4 参数四
|
||||
*/
|
||||
void accept(T t,P1 p1,P2 p2,P3 p3,P4 p4);
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface Consumer5<T, P1, P2, P3, P4, P5>{
|
||||
/**
|
||||
* 接收参数方法
|
||||
* @param t 对象
|
||||
* @param p1 参数一
|
||||
* @param p2 参数二
|
||||
* @param p3 参数三
|
||||
* @param p4 参数四
|
||||
* @param p5 参数五
|
||||
*/
|
||||
void accept(T t,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5);
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
import com.engine.qdhx.service.SalaryStrategy;
|
||||
import com.engine.qdhx.service.impl.AddSalaryStrategy;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/25
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class Context {
|
||||
|
||||
private SalaryStrategy salaryStrategy;
|
||||
|
||||
|
||||
public Context() {
|
||||
salaryStrategy = new AddSalaryStrategy();
|
||||
}
|
||||
|
||||
public double execute(double ...num) {
|
||||
return salaryStrategy.doSalaryDiff(num);
|
||||
|
||||
}
|
||||
|
||||
public SalaryStrategy getSalaryStrategy() {
|
||||
return salaryStrategy;
|
||||
}
|
||||
|
||||
public void setSalaryStrategy(SalaryStrategy salaryStrategy) {
|
||||
this.salaryStrategy = salaryStrategy;
|
||||
}
|
||||
}
|
@ -0,0 +1,461 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
|
||||
/**
|
||||
* @author weaver_cl
|
||||
* @Description: TODO 薪资报表
|
||||
* @Date 2022/2/21
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalaryEntity {
|
||||
|
||||
private String place; //处
|
||||
|
||||
private String deptId;
|
||||
|
||||
private String costcode; //费用代码
|
||||
|
||||
private String workcode;
|
||||
|
||||
private String userid;
|
||||
|
||||
private String companystartdate; //入职日期
|
||||
|
||||
private String dismissdate; //离职日期
|
||||
|
||||
private String bankAccount; //中国农业银行账号
|
||||
|
||||
private String taxId; //税务身份
|
||||
|
||||
private double realBasicSalary; //实发基本工资
|
||||
|
||||
private double realOvertimePay; //实发固定加班费
|
||||
|
||||
private double overtimePayG1; //G1;
|
||||
|
||||
private double overtimePayG2; //G2;
|
||||
|
||||
private double overtimePayG3; //G3;
|
||||
|
||||
private double birthdayCashgift; //生日礼金
|
||||
|
||||
private double merryCashgift; //结婚礼金
|
||||
|
||||
private double funeralCashgift; //丧葬礼金
|
||||
|
||||
private double festivalCashgift; //节日礼金
|
||||
|
||||
private double preventHeatAllowance; //防暑津贴
|
||||
|
||||
private double highTemperatureSubsidy; //高温补贴
|
||||
|
||||
private double communicatySubsidy; //通讯补贴
|
||||
|
||||
private double shiftAllowance; //轮班津贴
|
||||
|
||||
private double standAllowance; //站别津贴
|
||||
|
||||
private double achievementonus; //绩效奖金
|
||||
|
||||
private double abroadInsuranceSubsidy; //境外保险补贴
|
||||
|
||||
private double otherItem1; //其他加项1
|
||||
|
||||
private double otherItem2; //其他加项2
|
||||
|
||||
private double houseSubsidy; //住房补贴
|
||||
|
||||
private double specialAward; //特别奖励金
|
||||
|
||||
private double signMoney; //签约金
|
||||
|
||||
private double meritsPay; //绩效奖
|
||||
|
||||
private double annualBonus; //年终奖
|
||||
|
||||
private double ompensation; //一次性补偿金
|
||||
|
||||
private double attendanceDeduction; //考勤扣款
|
||||
|
||||
private double otherDeduction; //其他减项
|
||||
|
||||
private double Taxable; //应纳税额
|
||||
|
||||
private double shouldSendTotal; //应发总额
|
||||
|
||||
private double costWithhold; //住宿水电物业费代扣
|
||||
|
||||
private double mealWithhold; //餐费代扣
|
||||
|
||||
private double endowmentInsurance; //养老保险
|
||||
|
||||
private double medicalInsurance; //医疗保险
|
||||
|
||||
private double unemploymentInsurance; //失业保险
|
||||
|
||||
private double houseProvident; //住房公积金
|
||||
|
||||
private double individualIncomeTax; //个人所得税
|
||||
|
||||
private double actuallySendTotal; //实发总额
|
||||
|
||||
public String getPlace() {
|
||||
return place;
|
||||
}
|
||||
|
||||
public void setPlace(String place) {
|
||||
this.place = place;
|
||||
}
|
||||
|
||||
public String getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(String deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public String getCostcode() {
|
||||
return costcode;
|
||||
}
|
||||
|
||||
public void setCostcode(String costcode) {
|
||||
this.costcode = costcode;
|
||||
}
|
||||
|
||||
public String getWorkcode() {
|
||||
return workcode;
|
||||
}
|
||||
|
||||
public void setWorkcode(String workcode) {
|
||||
this.workcode = workcode;
|
||||
}
|
||||
|
||||
public String getUserid() {
|
||||
return userid;
|
||||
}
|
||||
|
||||
public void setUserid(String userid) {
|
||||
this.userid = userid;
|
||||
}
|
||||
|
||||
public String getCompanystartdate() {
|
||||
return companystartdate;
|
||||
}
|
||||
|
||||
public void setCompanystartdate(String companystartdate) {
|
||||
this.companystartdate = companystartdate;
|
||||
}
|
||||
|
||||
public String getDismissdate() {
|
||||
return dismissdate;
|
||||
}
|
||||
|
||||
public void setDismissdate(String dismissdate) {
|
||||
this.dismissdate = dismissdate;
|
||||
}
|
||||
|
||||
public String getBankAccount() {
|
||||
return bankAccount;
|
||||
}
|
||||
|
||||
public void setBankAccount(String bankAccount) {
|
||||
this.bankAccount = bankAccount;
|
||||
}
|
||||
|
||||
public String getTaxId() {
|
||||
return taxId;
|
||||
}
|
||||
|
||||
public void setTaxId(String taxId) {
|
||||
this.taxId = taxId;
|
||||
}
|
||||
|
||||
public double getRealBasicSalary() {
|
||||
return realBasicSalary;
|
||||
}
|
||||
|
||||
public void setRealBasicSalary(double realBasicSalary) {
|
||||
this.realBasicSalary = realBasicSalary;
|
||||
}
|
||||
|
||||
public double getRealOvertimePay() {
|
||||
return realOvertimePay;
|
||||
}
|
||||
|
||||
public void setRealOvertimePay(double realOvertimePay) {
|
||||
this.realOvertimePay = realOvertimePay;
|
||||
}
|
||||
|
||||
public double getOvertimePayG1() {
|
||||
return overtimePayG1;
|
||||
}
|
||||
|
||||
public void setOvertimePayG1(double overtimePayG1) {
|
||||
this.overtimePayG1 = overtimePayG1;
|
||||
}
|
||||
|
||||
public double getOvertimePayG2() {
|
||||
return overtimePayG2;
|
||||
}
|
||||
|
||||
public void setOvertimePayG2(double overtimePayG2) {
|
||||
this.overtimePayG2 = overtimePayG2;
|
||||
}
|
||||
|
||||
public double getOvertimePayG3() {
|
||||
return overtimePayG3;
|
||||
}
|
||||
|
||||
public void setOvertimePayG3(double overtimePayG3) {
|
||||
this.overtimePayG3 = overtimePayG3;
|
||||
}
|
||||
|
||||
public double getBirthdayCashgift() {
|
||||
return birthdayCashgift;
|
||||
}
|
||||
|
||||
public void setBirthdayCashgift(double birthdayCashgift) {
|
||||
this.birthdayCashgift = birthdayCashgift;
|
||||
}
|
||||
|
||||
public double getMerryCashgift() {
|
||||
return merryCashgift;
|
||||
}
|
||||
|
||||
public void setMerryCashgift(double merryCashgift) {
|
||||
this.merryCashgift = merryCashgift;
|
||||
}
|
||||
|
||||
public double getFuneralCashgift() {
|
||||
return funeralCashgift;
|
||||
}
|
||||
|
||||
public void setFuneralCashgift(double funeralCashgift) {
|
||||
this.funeralCashgift = funeralCashgift;
|
||||
}
|
||||
|
||||
public double getFestivalCashgift() {
|
||||
return festivalCashgift;
|
||||
}
|
||||
|
||||
public void setFestivalCashgift(double festivalCashgift) {
|
||||
this.festivalCashgift = festivalCashgift;
|
||||
}
|
||||
|
||||
public double getPreventHeatAllowance() {
|
||||
return preventHeatAllowance;
|
||||
}
|
||||
|
||||
public void setPreventHeatAllowance(double preventHeatAllowance) {
|
||||
this.preventHeatAllowance = preventHeatAllowance;
|
||||
}
|
||||
|
||||
public double getHighTemperatureSubsidy() {
|
||||
return highTemperatureSubsidy;
|
||||
}
|
||||
|
||||
public void setHighTemperatureSubsidy(double highTemperatureSubsidy) {
|
||||
this.highTemperatureSubsidy = highTemperatureSubsidy;
|
||||
}
|
||||
|
||||
public double getCommunicatySubsidy() {
|
||||
return communicatySubsidy;
|
||||
}
|
||||
|
||||
public void setCommunicatySubsidy(double communicatySubsidy) {
|
||||
this.communicatySubsidy = communicatySubsidy;
|
||||
}
|
||||
|
||||
public double getShiftAllowance() {
|
||||
return shiftAllowance;
|
||||
}
|
||||
|
||||
public void setShiftAllowance(double shiftAllowance) {
|
||||
this.shiftAllowance = shiftAllowance;
|
||||
}
|
||||
|
||||
public double getStandAllowance() {
|
||||
return standAllowance;
|
||||
}
|
||||
|
||||
public void setStandAllowance(double standAllowance) {
|
||||
this.standAllowance = standAllowance;
|
||||
}
|
||||
|
||||
public double getAchievementonus() {
|
||||
return achievementonus;
|
||||
}
|
||||
|
||||
public void setAchievementonus(double achievementonus) {
|
||||
this.achievementonus = achievementonus;
|
||||
}
|
||||
|
||||
public double getAbroadInsuranceSubsidy() {
|
||||
return abroadInsuranceSubsidy;
|
||||
}
|
||||
|
||||
public void setAbroadInsuranceSubsidy(double abroadInsuranceSubsidy) {
|
||||
this.abroadInsuranceSubsidy = abroadInsuranceSubsidy;
|
||||
}
|
||||
|
||||
public double getOtherItem1() {
|
||||
return otherItem1;
|
||||
}
|
||||
|
||||
public void setOtherItem1(double otherItem1) {
|
||||
this.otherItem1 = otherItem1;
|
||||
}
|
||||
|
||||
public double getOtherItem2() {
|
||||
return otherItem2;
|
||||
}
|
||||
|
||||
public void setOtherItem2(double otherItem2) {
|
||||
this.otherItem2 = otherItem2;
|
||||
}
|
||||
|
||||
public double getHouseSubsidy() {
|
||||
return houseSubsidy;
|
||||
}
|
||||
|
||||
public void setHouseSubsidy(double houseSubsidy) {
|
||||
this.houseSubsidy = houseSubsidy;
|
||||
}
|
||||
|
||||
public double getSpecialAward() {
|
||||
return specialAward;
|
||||
}
|
||||
|
||||
public void setSpecialAward(double specialAward) {
|
||||
this.specialAward = specialAward;
|
||||
}
|
||||
|
||||
public double getSignMoney() {
|
||||
return signMoney;
|
||||
}
|
||||
|
||||
public void setSignMoney(double signMoney) {
|
||||
this.signMoney = signMoney;
|
||||
}
|
||||
|
||||
public double getMeritsPay() {
|
||||
return meritsPay;
|
||||
}
|
||||
|
||||
public void setMeritsPay(double meritsPay) {
|
||||
this.meritsPay = meritsPay;
|
||||
}
|
||||
|
||||
public double getAnnualBonus() {
|
||||
return annualBonus;
|
||||
}
|
||||
|
||||
public void setAnnualBonus(double annualBonus) {
|
||||
this.annualBonus = annualBonus;
|
||||
}
|
||||
|
||||
public double getOmpensation() {
|
||||
return ompensation;
|
||||
}
|
||||
|
||||
public void setOmpensation(double ompensation) {
|
||||
this.ompensation = ompensation;
|
||||
}
|
||||
|
||||
public double getAttendanceDeduction() {
|
||||
return attendanceDeduction;
|
||||
}
|
||||
|
||||
public void setAttendanceDeduction(double attendanceDeduction) {
|
||||
this.attendanceDeduction = attendanceDeduction;
|
||||
}
|
||||
|
||||
public double getOtherDeduction() {
|
||||
return otherDeduction;
|
||||
}
|
||||
|
||||
public void setOtherDeduction(double otherDeduction) {
|
||||
this.otherDeduction = otherDeduction;
|
||||
}
|
||||
|
||||
public double getTaxable() {
|
||||
return Taxable;
|
||||
}
|
||||
|
||||
public void setTaxable(double taxable) {
|
||||
Taxable = taxable;
|
||||
}
|
||||
|
||||
public double getShouldSendTotal() {
|
||||
return shouldSendTotal;
|
||||
}
|
||||
|
||||
public void setShouldSendTotal(double shouldSendTotal) {
|
||||
this.shouldSendTotal = shouldSendTotal;
|
||||
}
|
||||
|
||||
public double getCostWithhold() {
|
||||
return costWithhold;
|
||||
}
|
||||
|
||||
public void setCostWithhold(double costWithhold) {
|
||||
this.costWithhold = costWithhold;
|
||||
}
|
||||
|
||||
public double getMealWithhold() {
|
||||
return mealWithhold;
|
||||
}
|
||||
|
||||
public void setMealWithhold(double mealWithhold) {
|
||||
this.mealWithhold = mealWithhold;
|
||||
}
|
||||
|
||||
public double getEndowmentInsurance() {
|
||||
return endowmentInsurance;
|
||||
}
|
||||
|
||||
public void setEndowmentInsurance(double endowmentInsurance) {
|
||||
this.endowmentInsurance = endowmentInsurance;
|
||||
}
|
||||
|
||||
public double getMedicalInsurance() {
|
||||
return medicalInsurance;
|
||||
}
|
||||
|
||||
public void setMedicalInsurance(double medicalInsurance) {
|
||||
this.medicalInsurance = medicalInsurance;
|
||||
}
|
||||
|
||||
public double getUnemploymentInsurance() {
|
||||
return unemploymentInsurance;
|
||||
}
|
||||
|
||||
public void setUnemploymentInsurance(double unemploymentInsurance) {
|
||||
this.unemploymentInsurance = unemploymentInsurance;
|
||||
}
|
||||
|
||||
public double getHouseProvident() {
|
||||
return houseProvident;
|
||||
}
|
||||
|
||||
public void setHouseProvident(double houseProvident) {
|
||||
this.houseProvident = houseProvident;
|
||||
}
|
||||
|
||||
public double getIndividualIncomeTax() {
|
||||
return individualIncomeTax;
|
||||
}
|
||||
|
||||
public void setIndividualIncomeTax(double individualIncomeTax) {
|
||||
this.individualIncomeTax = individualIncomeTax;
|
||||
}
|
||||
|
||||
public double getActuallySendTotal() {
|
||||
return actuallySendTotal;
|
||||
}
|
||||
|
||||
public void setActuallySendTotal(double actuallySendTotal) {
|
||||
this.actuallySendTotal = actuallySendTotal;
|
||||
}
|
||||
}
|
@ -0,0 +1,260 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/3/1
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class TaxRateEntity {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String workcode;
|
||||
|
||||
private String xzszny; //薪资所属年月
|
||||
|
||||
private double yfze; //应付总额
|
||||
|
||||
private double gjgdtyjmje; //国家规定统一减免金额
|
||||
|
||||
private double gsqzd; //个税起征点
|
||||
|
||||
private double sb; //社保
|
||||
|
||||
private double gjj; //公积金
|
||||
|
||||
private double zxfjkc; //专项附加扣除
|
||||
|
||||
private double yfqddqtkc; //依法确定的其他扣除
|
||||
|
||||
private double ynssd; //应纳税所得
|
||||
|
||||
private double ljsr; //累计收入
|
||||
|
||||
private double ljmssrgjtyjmje; //累计免税收入
|
||||
|
||||
private double ljjcfy; //累加减除费用
|
||||
|
||||
private double ljzxkcsb; //累计专项扣除sb
|
||||
|
||||
private double ljzxkcgjj; //累计专项扣除gjj
|
||||
|
||||
private double ljzxfjkc; //累计专项附加扣除
|
||||
|
||||
private double ljyfqddqtkc; //累计依法确定的其他扣除
|
||||
|
||||
private double ljykyjynssde; //累计预扣预缴应纳税所得额
|
||||
|
||||
private double sl; //税率
|
||||
|
||||
private double sskcs; //速算扣除数
|
||||
|
||||
private double ljjmsecjr80s; //累计减免税额 (残疾人80%税)
|
||||
|
||||
private double ljyykyjse; //累计已预扣预缴税额
|
||||
|
||||
private double bqyykyjse; //本期应预扣预缴税额
|
||||
|
||||
private double bqyykyjsedyyj; //本期应预扣预缴税额 (当月预计)
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getWorkcode() {
|
||||
return workcode;
|
||||
}
|
||||
|
||||
public void setWorkcode(String workcode) {
|
||||
this.workcode = workcode;
|
||||
}
|
||||
|
||||
public String getXzszny() {
|
||||
return xzszny;
|
||||
}
|
||||
|
||||
public void setXzszny(String xzszny) {
|
||||
this.xzszny = xzszny;
|
||||
}
|
||||
|
||||
public double getYfze() {
|
||||
return yfze;
|
||||
}
|
||||
|
||||
public void setYfze(double yfze) {
|
||||
this.yfze = yfze;
|
||||
}
|
||||
|
||||
public double getGjgdtyjmje() {
|
||||
return gjgdtyjmje;
|
||||
}
|
||||
|
||||
public void setGjgdtyjmje(double gjgdtyjmje) {
|
||||
this.gjgdtyjmje = gjgdtyjmje;
|
||||
}
|
||||
|
||||
public double getGsqzd() {
|
||||
return gsqzd;
|
||||
}
|
||||
|
||||
public void setGsqzd(double gsqzd) {
|
||||
this.gsqzd = gsqzd;
|
||||
}
|
||||
|
||||
public double getSb() {
|
||||
return sb;
|
||||
}
|
||||
|
||||
public void setSb(double sb) {
|
||||
this.sb = sb;
|
||||
}
|
||||
|
||||
public double getGjj() {
|
||||
return gjj;
|
||||
}
|
||||
|
||||
public void setGjj(double gjj) {
|
||||
this.gjj = gjj;
|
||||
}
|
||||
|
||||
public double getZxfjkc() {
|
||||
return zxfjkc;
|
||||
}
|
||||
|
||||
public void setZxfjkc(double zxfjkc) {
|
||||
this.zxfjkc = zxfjkc;
|
||||
}
|
||||
|
||||
public double getYfqddqtkc() {
|
||||
return yfqddqtkc;
|
||||
}
|
||||
|
||||
public void setYfqddqtkc(double yfqddqtkc) {
|
||||
this.yfqddqtkc = yfqddqtkc;
|
||||
}
|
||||
|
||||
public double getYnssd() {
|
||||
return ynssd;
|
||||
}
|
||||
|
||||
public void setYnssd(double ynssd) {
|
||||
this.ynssd = ynssd;
|
||||
}
|
||||
|
||||
public double getLjsr() {
|
||||
return ljsr;
|
||||
}
|
||||
|
||||
public void setLjsr(double ljsr) {
|
||||
this.ljsr = ljsr;
|
||||
}
|
||||
|
||||
public double getLjmssrgjtyjmje() {
|
||||
return ljmssrgjtyjmje;
|
||||
}
|
||||
|
||||
public void setLjmssrgjtyjmje(double ljmssrgjtyjmje) {
|
||||
this.ljmssrgjtyjmje = ljmssrgjtyjmje;
|
||||
}
|
||||
|
||||
public double getLjjcfy() {
|
||||
return ljjcfy;
|
||||
}
|
||||
|
||||
public void setLjjcfy(double ljjcfy) {
|
||||
this.ljjcfy = ljjcfy;
|
||||
}
|
||||
|
||||
public double getLjzxkcsb() {
|
||||
return ljzxkcsb;
|
||||
}
|
||||
|
||||
public void setLjzxkcsb(double ljzxkcsb) {
|
||||
this.ljzxkcsb = ljzxkcsb;
|
||||
}
|
||||
|
||||
public double getLjzxkcgjj() {
|
||||
return ljzxkcgjj;
|
||||
}
|
||||
|
||||
public void setLjzxkcgjj(double ljzxkcgjj) {
|
||||
this.ljzxkcgjj = ljzxkcgjj;
|
||||
}
|
||||
|
||||
public double getLjzxfjkc() {
|
||||
return ljzxfjkc;
|
||||
}
|
||||
|
||||
public void setLjzxfjkc(double ljzxfjkc) {
|
||||
this.ljzxfjkc = ljzxfjkc;
|
||||
}
|
||||
|
||||
public double getLjyfqddqtkc() {
|
||||
return ljyfqddqtkc;
|
||||
}
|
||||
|
||||
public void setLjyfqddqtkc(double ljyfqddqtkc) {
|
||||
this.ljyfqddqtkc = ljyfqddqtkc;
|
||||
}
|
||||
|
||||
public double getLjykyjynssde() {
|
||||
return ljykyjynssde;
|
||||
}
|
||||
|
||||
public void setLjykyjynssde(double ljykyjynssde) {
|
||||
this.ljykyjynssde = ljykyjynssde;
|
||||
}
|
||||
|
||||
public double getSl() {
|
||||
return sl;
|
||||
}
|
||||
|
||||
public void setSl(double sl) {
|
||||
this.sl = sl;
|
||||
}
|
||||
|
||||
public double getSskcs() {
|
||||
return sskcs;
|
||||
}
|
||||
|
||||
public void setSskcs(double sskcs) {
|
||||
this.sskcs = sskcs;
|
||||
}
|
||||
|
||||
public double getLjjmsecjr80s() {
|
||||
return ljjmsecjr80s;
|
||||
}
|
||||
|
||||
public void setLjjmsecjr80s(double ljjmsecjr80s) {
|
||||
this.ljjmsecjr80s = ljjmsecjr80s;
|
||||
}
|
||||
|
||||
public double getLjyykyjse() {
|
||||
return ljyykyjse;
|
||||
}
|
||||
|
||||
public void setLjyykyjse(double ljyykyjse) {
|
||||
this.ljyykyjse = ljyykyjse;
|
||||
}
|
||||
|
||||
public double getBqyykjse() {
|
||||
return bqyykyjse;
|
||||
}
|
||||
|
||||
public void setBqyykjse(double bqyykjse) {
|
||||
this.bqyykyjse = bqyykjse;
|
||||
}
|
||||
|
||||
public double getBqyykyjsedyyj() {
|
||||
return bqyykyjsedyyj;
|
||||
}
|
||||
|
||||
public void setBqyykyjsedyyj(double bqyykyjsedyyj) {
|
||||
this.bqyykyjsedyyj = bqyykyjsedyyj;
|
||||
}
|
||||
}
|
@ -0,0 +1,189 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/3/3
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class TaxRateNoResidentEntity {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String workcode;
|
||||
|
||||
private String xzszny; //薪资所属年月
|
||||
|
||||
private double yfgz; // 应发工资
|
||||
|
||||
private double jbylbxj; //基本养老保险金
|
||||
|
||||
private double zfgjj; //住房公积金
|
||||
|
||||
private double qtmssd; //其他免税所得
|
||||
|
||||
private double yssre; //应税收入额
|
||||
|
||||
private double fykcbz; //费用扣除标准
|
||||
|
||||
private double ynssde; //应纳税所得额
|
||||
|
||||
private double sl; //税率
|
||||
|
||||
private double sskcs; //速算扣除数
|
||||
|
||||
private double ynse; //应纳税额
|
||||
|
||||
private double jmse; //减免税额
|
||||
|
||||
private double sjynse; //实际应纳税额
|
||||
|
||||
private double shyx; //税后月薪
|
||||
|
||||
public TaxRateNoResidentEntity(Integer id, String workcode, String xzszny, double yfgz, double jbylbxj, double zfgjj, double qtmssd, double yssre, double fykcbz, double ynssde, double sl, double sskcs, double ynse, double jmse, double sjynse, double shyx) {
|
||||
this.id = id;
|
||||
this.workcode = workcode;
|
||||
this.xzszny = xzszny;
|
||||
this.yfgz = yfgz;
|
||||
this.jbylbxj = jbylbxj;
|
||||
this.zfgjj = zfgjj;
|
||||
this.qtmssd = qtmssd;
|
||||
this.yssre = yssre;
|
||||
this.fykcbz = fykcbz;
|
||||
this.ynssde = ynssde;
|
||||
this.sl = sl;
|
||||
this.sskcs = sskcs;
|
||||
this.ynse = ynse;
|
||||
this.jmse = jmse;
|
||||
this.sjynse = sjynse;
|
||||
this.shyx = shyx;
|
||||
}
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getWorkcode() {
|
||||
return workcode;
|
||||
}
|
||||
|
||||
public void setWorkcode(String workcode) {
|
||||
this.workcode = workcode;
|
||||
}
|
||||
|
||||
public String getXzszny() {
|
||||
return xzszny;
|
||||
}
|
||||
|
||||
public void setXzszny(String xzszny) {
|
||||
this.xzszny = xzszny;
|
||||
}
|
||||
|
||||
public double getYfgz() {
|
||||
return yfgz;
|
||||
}
|
||||
|
||||
public void setYfgz(double yfgz) {
|
||||
this.yfgz = yfgz;
|
||||
}
|
||||
|
||||
public double getJbylbxj() {
|
||||
return jbylbxj;
|
||||
}
|
||||
|
||||
public void setJbylbxj(double jbylbxj) {
|
||||
this.jbylbxj = jbylbxj;
|
||||
}
|
||||
|
||||
public double getZfgjj() {
|
||||
return zfgjj;
|
||||
}
|
||||
|
||||
public void setZfgjj(double zfgjj) {
|
||||
this.zfgjj = zfgjj;
|
||||
}
|
||||
|
||||
public double getQtmssd() {
|
||||
return qtmssd;
|
||||
}
|
||||
|
||||
public void setQtmssd(double qtmssd) {
|
||||
this.qtmssd = qtmssd;
|
||||
}
|
||||
|
||||
public double getYssre() {
|
||||
return yssre;
|
||||
}
|
||||
|
||||
public void setYssre(double yssre) {
|
||||
this.yssre = yssre;
|
||||
}
|
||||
|
||||
public double getFykcbz() {
|
||||
return fykcbz;
|
||||
}
|
||||
|
||||
public void setFykcbz(double fykcbz) {
|
||||
this.fykcbz = fykcbz;
|
||||
}
|
||||
|
||||
public double getYnssde() {
|
||||
return ynssde;
|
||||
}
|
||||
|
||||
public void setYnssde(double ynssde) {
|
||||
this.ynssde = ynssde;
|
||||
}
|
||||
|
||||
public double getSl() {
|
||||
return sl;
|
||||
}
|
||||
|
||||
public void setSl(double sl) {
|
||||
this.sl = sl;
|
||||
}
|
||||
|
||||
public double getSskcs() {
|
||||
return sskcs;
|
||||
}
|
||||
|
||||
public void setSskcs(double sskcs) {
|
||||
this.sskcs = sskcs;
|
||||
}
|
||||
|
||||
public double getYnse() {
|
||||
return ynse;
|
||||
}
|
||||
|
||||
public void setYnse(double ynse) {
|
||||
this.ynse = ynse;
|
||||
}
|
||||
|
||||
public double getJmse() {
|
||||
return jmse;
|
||||
}
|
||||
|
||||
public void setJmse(double jmse) {
|
||||
this.jmse = jmse;
|
||||
}
|
||||
|
||||
public double getSjynse() {
|
||||
return sjynse;
|
||||
}
|
||||
|
||||
public void setSjynse(double sjynse) {
|
||||
this.sjynse = sjynse;
|
||||
}
|
||||
|
||||
public double getShyx() {
|
||||
return shyx;
|
||||
}
|
||||
|
||||
public void setShyx(double shyx) {
|
||||
this.shyx = shyx;
|
||||
}
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/3/2
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class TaxTableEntity {
|
||||
|
||||
private double qzd; //起征点
|
||||
|
||||
private int ljykyjynssde; //累加预扣预缴应纳税所得额
|
||||
|
||||
private double ysl; //预税率(%)
|
||||
|
||||
private double sskcs; //速算扣除数
|
||||
|
||||
private int sxzt; //生效状态
|
||||
|
||||
private String bz; //备注
|
||||
|
||||
public TaxTableEntity() {
|
||||
}
|
||||
|
||||
public TaxTableEntity(double qzd, Integer ljykyjynssde, double ysl, double sskcs, Integer sxzt, String bz) {
|
||||
this.qzd = qzd;
|
||||
this.ljykyjynssde = ljykyjynssde;
|
||||
this.ysl = ysl;
|
||||
this.sskcs = sskcs;
|
||||
this.sxzt = sxzt;
|
||||
this.bz = bz;
|
||||
}
|
||||
|
||||
public double getQzd() {
|
||||
return qzd;
|
||||
}
|
||||
|
||||
public void setQzd(double qzd) {
|
||||
this.qzd = qzd;
|
||||
}
|
||||
|
||||
public int getLjykyjynssde() {
|
||||
return ljykyjynssde;
|
||||
}
|
||||
|
||||
public void setLjykyjynssde(int ljykyjynssde) {
|
||||
this.ljykyjynssde = ljykyjynssde;
|
||||
}
|
||||
|
||||
public double getYsl() {
|
||||
return ysl;
|
||||
}
|
||||
|
||||
public void setYsl(double ysl) {
|
||||
this.ysl = ysl;
|
||||
}
|
||||
|
||||
public double getSskcs() {
|
||||
return sskcs;
|
||||
}
|
||||
|
||||
public void setSskcs(double sskcs) {
|
||||
this.sskcs = sskcs;
|
||||
}
|
||||
|
||||
public int getSxzt() {
|
||||
return sxzt;
|
||||
}
|
||||
|
||||
public void setSxzt(int sxzt) {
|
||||
this.sxzt = sxzt;
|
||||
}
|
||||
|
||||
public String getBz() {
|
||||
return bz;
|
||||
}
|
||||
|
||||
public void setBz(String bz) {
|
||||
this.bz = bz;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TaxTableEntity{" +
|
||||
"qzd=" + qzd +
|
||||
", ljykyjynssde=" + ljykyjynssde +
|
||||
", ysl=" + ysl +
|
||||
", sskcs=" + sskcs +
|
||||
", sxzt=" + sxzt +
|
||||
", bz='" + bz + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package com.engine.qdhx.entity;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/3/3
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class TaxTableNoResidentEntity {
|
||||
|
||||
private int ynssde;
|
||||
|
||||
private double sl;
|
||||
|
||||
private double sskcs;
|
||||
|
||||
|
||||
public TaxTableNoResidentEntity(int ynssde, double sl, double sskcs) {
|
||||
this.ynssde = ynssde;
|
||||
this.sl = sl;
|
||||
this.sskcs = sskcs;
|
||||
}
|
||||
|
||||
public int getYnssde() {
|
||||
return ynssde;
|
||||
}
|
||||
|
||||
public void setYnssde(int ynssde) {
|
||||
this.ynssde = ynssde;
|
||||
}
|
||||
|
||||
public double getSl() {
|
||||
return sl;
|
||||
}
|
||||
|
||||
public void setSl(double sl) {
|
||||
this.sl = sl;
|
||||
}
|
||||
|
||||
public double getSskcs() {
|
||||
return sskcs;
|
||||
}
|
||||
|
||||
public void setSskcs(double sskcs) {
|
||||
this.sskcs = sskcs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TaxTableNoResidentEntity{" +
|
||||
"ynssde=" + ynssde +
|
||||
", sl=" + sl +
|
||||
", sskcs=" + sskcs +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.engine.qdhx.enums;
|
||||
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/3/2
|
||||
* @Version V1.0
|
||||
**/
|
||||
public enum DateTypeEnum {
|
||||
|
||||
THISYEAR,LASTYEAR,THISMONTH,LASTMONTH
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.engine.qdhx.service;
|
||||
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/16
|
||||
* @Version V1.0
|
||||
**/
|
||||
|
||||
public interface HrmSalaryDiffReportService {
|
||||
|
||||
|
||||
/**
|
||||
* 查询条件
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
Map<String,Object> getSearchCondition(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 获取报表数据
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
Map<String,Object> getReportData(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 保存报表数据
|
||||
* @param request2Map
|
||||
* @return
|
||||
*/
|
||||
Map<? extends String,?> saveReportData(Map<String, Object> request2Map);
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.engine.qdhx.service.impl;
|
||||
|
||||
import com.engine.qdhx.service.SalaryStrategy;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/21
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class AddSalaryStrategy implements SalaryStrategy {
|
||||
@Override
|
||||
public double doSalaryDiff(double ...num) {
|
||||
double sum = 0;
|
||||
for (double value : num ) {
|
||||
sum = new BigDecimal(Double.toString(sum)).add(new BigDecimal(Double.toString(value))).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.engine.qdhx.service.impl;
|
||||
|
||||
import com.engine.qdhx.service.SalaryStrategy;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/28
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class DivisionSalaryStrategy implements SalaryStrategy {
|
||||
@Override
|
||||
public double doSalaryDiff(double... num) {
|
||||
double sum = num[0];
|
||||
for(int i = 1; i < num.length; i++) {
|
||||
sum = new BigDecimal(Double.toString(sum)).divide(new BigDecimal(Double.toString(num[i])),20,BigDecimal.ROUND_HALF_UP).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.engine.qdhx.service.impl;
|
||||
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.qdhx.cmd.HrmSalaryDiffReportCmd;
|
||||
import com.engine.qdhx.cmd.HrmSalaryDiffReportConditionCmd;
|
||||
import com.engine.qdhx.cmd.HrmSalarySaveReportCmd;
|
||||
import com.engine.qdhx.service.HrmSalaryDiffReportService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/16
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalaryDiffReportServiceImpl extends Service implements HrmSalaryDiffReportService {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getSearchCondition(Map<String, Object> params) {
|
||||
return commandExecutor.execute(new HrmSalaryDiffReportConditionCmd(user,params));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getReportData(Map<String, Object> params) {
|
||||
return commandExecutor.execute(new HrmSalaryDiffReportCmd(user,params));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<? extends String, ?> saveReportData(Map<String, Object> params) {
|
||||
return commandExecutor.execute(new HrmSalarySaveReportCmd(user,params));
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.engine.qdhx.service.impl;
|
||||
|
||||
import com.engine.qdhx.service.SalaryStrategy;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/28
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class MultiplySalaryStrategy implements SalaryStrategy {
|
||||
@Override
|
||||
public double doSalaryDiff(double... num) {
|
||||
double sum = num[0];
|
||||
for(int i = 1; i < num.length; i++) {
|
||||
sum = new BigDecimal(Double.toString(sum)).multiply(new BigDecimal(Double.toString(num[i]))).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.engine.qdhx.service.impl;
|
||||
|
||||
import com.engine.qdhx.service.SalaryStrategy;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/21
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class SubtractionSalaryStrategy implements SalaryStrategy {
|
||||
|
||||
@Override
|
||||
public double doSalaryDiff(double ...num) {
|
||||
double sum = num[0];
|
||||
for(int i = 1; i < num.length; i++) {
|
||||
sum = new BigDecimal(Double.toString(sum)).subtract(new BigDecimal(Double.toString(num[i]))).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.engine.qdhx.service;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO 策略计算
|
||||
* @Date 2022/2/21
|
||||
* @Version V1.0
|
||||
**/
|
||||
public interface SalaryStrategy {
|
||||
|
||||
double doSalaryDiff(double ...num);
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package com.engine.qdhx.web;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.qdhx.service.HrmSalaryDiffReportService;
|
||||
import com.engine.qdhx.service.impl.HrmSalaryDiffReportServiceImpl;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/16
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class HrmSalaryDiffReportAction extends BaseBean {
|
||||
|
||||
private HrmSalaryDiffReportService getService(User user) {
|
||||
return (HrmSalaryDiffReportServiceImpl) ServiceUtil.getService(HrmSalaryDiffReportServiceImpl.class, user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询条件
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/getSearchCondition")
|
||||
@Produces(MediaType.TEXT_PLAIN)
|
||||
public String getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
apidatas.putAll(getService(user).getSearchCondition(ParamUtil.request2Map(request)));
|
||||
apidatas.put("api_status", true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
apidatas.put("api_status", false);
|
||||
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
|
||||
}
|
||||
return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取薪资报表
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/getReportData")
|
||||
@Produces({MediaType.TEXT_PLAIN})
|
||||
public String getReportData(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
apidatas.putAll(getService(user).getReportData(ParamUtil.request2Map(request)));
|
||||
apidatas.put("api_status", true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
apidatas.put("api_status", false);
|
||||
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
|
||||
}
|
||||
return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存薪资报表
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/saveReportData")
|
||||
@Produces({MediaType.TEXT_PLAIN})
|
||||
public String saveReportData(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||
Map<String, Object> apidatas = new HashMap<String, Object>();
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
apidatas.putAll(getService(user).saveReportData(ParamUtil.request2Map(request)));
|
||||
apidatas.put("api_status", true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
apidatas.put("api_status", false);
|
||||
apidatas.put("api_errormsg", "catch exception : " + e.getMessage());
|
||||
}
|
||||
return JSONObject.toJSONString(apidatas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,176 @@
|
||||
<%@ page language="java" contentType="application/vnd.ms-excel; charset=UTF-8" %>
|
||||
<%@ page import="weaver.systeminfo.*,java.util.*,weaver.hrm.*" %>
|
||||
<%@ page import="weaver.general.Util,weaver.hrm.common.*" %>
|
||||
<%@ page import="weaver.hrm.attendance.domain.*"%>
|
||||
<%@page import="weaver.hrm.report.schedulediff.HrmScheduleDiffManager"%>
|
||||
<%@page import="java.net.URLEncoder"%>
|
||||
<%@ page import="weaver.general.TimeUtil" %>
|
||||
<!-- modified by wcd 2014-07-24 [E7 to E8] -->
|
||||
<jsp:useBean id="RecordSet" class="weaver.conn.RecordSet" scope="page" />
|
||||
<jsp:useBean id="ResourceComInfo" class="weaver.hrm.resource.ResourceComInfo" scope="page"/>
|
||||
<jsp:useBean id="DepartmentComInfo" class="weaver.hrm.company.DepartmentComInfo" scope="page"/>
|
||||
<jsp:useBean id="format" class="weaver.hrm.common.SplitPageTagFormat" scope="page"/>
|
||||
<jsp:useBean id="strUtil" class="weaver.common.StringUtil" scope="page"/>
|
||||
<jsp:useBean id="dateUtil" class="weaver.common.DateUtil" scope="page"/>
|
||||
<jsp:useBean id="holidayManager" class="weaver.hrm.attendance.manager.HrmPubHolidayManager" scope="page" />
|
||||
<jsp:useBean id="colorManager" class="weaver.hrm.attendance.manager.HrmLeaveTypeColorManager" scope="page" />
|
||||
<jsp:useBean id="HrmScheduleDiffUtil" class="weaver.hrm.report.schedulediff.HrmScheduleDiffUtil" scope="page"/>
|
||||
<jsp:useBean id="monthAttManager" class="weaver.hrm.attendance.manager.HrmScheduleDiffMonthAttManager" scope="page" />
|
||||
<jsp:useBean id="leaveTimeManager" class="weaver.hrm.attendance.manager.HrmPaidLeaveTimeManager" scope="page" />
|
||||
<jsp:useBean id="HrmScheduleDiffOtherManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffOtherManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetSignInManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetSignInManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetSignOutManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetSignOutManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetNoSignManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetNoSignManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetAbsentFromWorkManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetAbsentFromWorkManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetBeLateManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetBeLateManager" scope="page"/>
|
||||
<jsp:useBean id="HrmScheduleDiffDetLeaveEarlyManager" class="weaver.hrm.report.schedulediff.HrmScheduleDiffDetLeaveEarlyManager" scope="page"/>
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<style>
|
||||
<!--
|
||||
td{font-size:12px}
|
||||
.title{font-weight:bold;font-size:20px}
|
||||
-->
|
||||
</style>
|
||||
<%
|
||||
User user = HrmUserVarify.getUser (request , response) ;
|
||||
if(user == null) return ;
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
|
||||
Calendar today = Calendar.getInstance ();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
String viewscope = Util.null2String(request.getParameter("viewscope")); //时间范围
|
||||
String typeselect = Util.null2String(request.getParameter("typeselect")); //查看范围
|
||||
String subCompanyId = Util.null2String(request.getParameter("subCompanyId"));
|
||||
String departmentId = Util.null2String(request.getParameter("departmentId"));
|
||||
String resourceId = Util.null2String(request.getParameter("resourceId"));
|
||||
|
||||
String fromDate = "";
|
||||
String toDate = "";
|
||||
|
||||
if ("0".equals(typeselect) || "".equals(typeselect)) {
|
||||
fromDate = TimeUtil.getMonthBeginDay();
|
||||
toDate = TimeUtil.getMonthEndDay();
|
||||
}else {
|
||||
fromDate = TimeUtil.getLastMonthBeginDay();
|
||||
toDate = TimeUtil.getLastMonthEndDay();
|
||||
}
|
||||
|
||||
|
||||
String fileName = fromDate+" "+ "至"+" "+toDate+" "+"薪资情况统计";
|
||||
String agent = request.getHeader("user-agent");
|
||||
if((agent.contains("Firefox")||agent.contains(" Chrome")||agent.contains("Safari") )&& !agent.contains("Edge"))
|
||||
response.setHeader("content-disposition", "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName.replaceAll("<", "").replaceAll(">", "").replaceAll("<", "").replaceAll(">", ""),"UTF-8").replaceAll("\\+", "%20").replaceAll("%28", "(").replaceAll("%29", ")")+".xls");
|
||||
else
|
||||
response.setHeader("content-disposition", "attachment; filename="+URLEncoder.encode(fileName.replaceAll("<", "").replaceAll(">", "").replaceAll("<", "").replaceAll(">", ""),"UTF-8").replaceAll("\\+", "%20").replaceAll("%28", "(").replaceAll("%29", ")")+".xls");
|
||||
%>
|
||||
|
||||
<table border=1 bordercolor=black style="border-collapse:collapse;" width="100%" >
|
||||
<colgroup>
|
||||
<col style="width: 9%;">
|
||||
<col style="width: 9%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" class="title" colspan="41"><font size=4><b><%=fileName%></b></font></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td rowspan="3" >处</td>
|
||||
<td rowspan="3" >部</td>
|
||||
<td rowspan="3" >费用代码</td>
|
||||
<td rowspan="3" >工号</td>
|
||||
<td rowspan="3" >姓名</td>
|
||||
<td rowspan="3" align="center">税务身份</td>
|
||||
<td rowspan="1" colspan="5">薪资项目</td>
|
||||
<td rowspan="1" colspan="14">福利项目</td>
|
||||
<td rowspan="1" colspan="4">奖金</td>
|
||||
<td rowspan="3" >一次性补偿金</td>
|
||||
<td rowspan="3" >考勤扣款(减项)</td>
|
||||
<td rowspan="3" >其他项目</td>
|
||||
<td rowspan="3" >应发总额</td>
|
||||
<td rowspan="1" colspan="2">其他减项</td>
|
||||
<td rowspan="1" colspan="4">五险一金代扣代缴款</td>
|
||||
<td rowspan="3" >个人所得税</td>
|
||||
<td rowspan="3" >实发总额</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td rowspan="2" >实发基本工资</td>
|
||||
<td rowspan="2" >实发固定加班费</td>
|
||||
<td rowspan="1" colspan="3">加班费</td>
|
||||
<td rowspan="2" >生日礼金</td>
|
||||
<td rowspan="2" >结婚礼金</td>
|
||||
<td rowspan="2" >丧葬礼金</td>
|
||||
<td rowspan="2" >节日礼金</td>
|
||||
<td rowspan="2" >防暑津贴</td>
|
||||
<td rowspan="2" >高温补贴</td>
|
||||
<td rowspan="2" >通讯补贴</td>
|
||||
<td rowspan="2" >轮班津贴</td>
|
||||
<td rowspan="2" >站别津贴</td>
|
||||
<td rowspan="2" >生产绩效奖金</td>
|
||||
<td rowspan="2" >境外保险补贴</td>
|
||||
<td rowspan="2" >其他加项1</td>
|
||||
<td rowspan="2" >其他加项2</td>
|
||||
<td rowspan="2" >住房补贴</td>
|
||||
<td rowspan="2" >特别奖励金</td>
|
||||
<td rowspan="2" >签约金</td>
|
||||
<td rowspan="2" >绩效奖</td>
|
||||
<td rowspan="2" >年终奖</td>
|
||||
<td rowspan="2" >住宿水电物业费代扣</td>
|
||||
<td rowspan="2" >餐费代扣</td>
|
||||
<td rowspan="2" >养老保险</td>
|
||||
<td rowspan="2" >医疗保险</td>
|
||||
<td rowspan="2" >失业保险</td>
|
||||
<td rowspan="2" >住房公积金</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td rowspan="1" >G1</td>
|
||||
<td rowspan="1" >G2</td>
|
||||
<td rowspan="1" >G3</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="data" rowspan="" >行政管理部</td><td class="data" rowspan="" >cx_003</td><td class="data" rowspan="" >徐平-c</td><td class="data" rowspan="" >0</td><td class="data" rowspan="" >0.0</td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" >行政管理部</td><td class="data" rowspan="" >cx_003</td><td class="data" rowspan="" >徐平-c</td><td class="data" rowspan="" >0</td><td class="data" rowspan="" >0.0</td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" >行政管理部</td><td class="data" rowspan="" >cx_003</td><td class="data" rowspan="" >徐平-c</td><td class="data" rowspan="" >0</td><td class="data" rowspan="" >0.0</td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td><td class="data" rowspan="" ></td></tr></tbody>
|
||||
</table>
|
@ -0,0 +1,40 @@
|
||||
package com.test;
|
||||
|
||||
|
||||
import weaver.general.TimeUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description: TODO
|
||||
* @Date 2022/2/17
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class TestMain {
|
||||
public static void main(String[] args) {
|
||||
Map<String, Object> apidatas = new HashMap<>();
|
||||
List<Object> lsCondition = new ArrayList<Object>();
|
||||
String[] options = null;
|
||||
String[] selectLinkageDatas = null;
|
||||
|
||||
//时间范围
|
||||
Map<String, Object> timeScope = new HashMap<>();
|
||||
options = new String[]{"1,本月,true","2,指定日期范围"};
|
||||
List<String> timeDomkey = new ArrayList<String>();
|
||||
Map<String,Object> selectLinks = new HashMap<String, Object>();
|
||||
|
||||
timeDomkey.add("typeselect");
|
||||
timeScope.put("label","时间范围");
|
||||
timeScope.put("options",options);
|
||||
timeScope.put("domkey", timeDomkey);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue