中科大POC开发

中科大POC
Chengliang 6 months ago
parent ac89df1b9d
commit 72b3c36c28

@ -1,8 +1,12 @@
package test;
import weaver.interfaces.zkdpoc.po.EntryWorkflowPo;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
/**
* @Author weaver_cl
@ -16,18 +20,25 @@ public class MainTest {
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
String dateStr1 = now.format(formatter);
String localDate = now.format(formatter);
String dateStr2 = "2025-12";
String payMonth = "2024-05";
LocalDate date1 = LocalDate.parse(localDate + "-01");
LocalDate date2 = LocalDate.parse(payMonth + "-01");
LocalDate date1 = LocalDate.parse(dateStr1 + "-01");
LocalDate date2 = LocalDate.parse(dateStr2 + "-01");
int a = (int) ChronoUnit.MONTHS.between(date1, date2);
if (a > 3) {
System.out.println(1);
}else if (a >= 0) {
System.out.println(2);
}else {
double ydxz = 150000.00;
int monthsDiff = (int)ChronoUnit.MONTHS.between(date1, date2);
System.out.println(monthsDiff);
double dueMonth = ydxz * Math.abs(a);
System.out.println(dueMonth);
}
}
}

@ -0,0 +1,77 @@
package weaver.interfaces.zkdpoc.action;
import com.weaver.general.Util;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.interfaces.zkdpoc.po.EntryWorkflowPo;
import weaver.soa.workflow.request.RequestInfo;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
/**
* @Author liang.cheng
* @Date 2024/10/12 10:47 AM
* @Description: -poc
* @Version 1.0
*/
public class EntryWorkflowAction implements Action {
@Override
public String execute(RequestInfo requestInfo) {
String requestid = requestInfo.getRequestid();
int formid = Math.abs(requestInfo.getRequestManager().getFormid());
RecordSet rs = new RecordSet();
String mainTable = String.format("%s%s", "formtable_main_", formid);
String detaiTable = String.format("%s%s",mainTable,"_dt2");
EntryWorkflowPo entryPo = EntryWorkflowPo.builder().build();
//1.获取表单数据
rs.executeQuery("select id,ksrq,jsrq,rysjid,dw,gw,xced from "+mainTable+" where requestid = ?",requestid);
if (rs.next()) {
entryPo.setId(Util.getIntValue(rs.getString("id")));
entryPo.setStartDate(Util.null2String(rs.getString("ksrq")));
entryPo.setEndDate(Util.null2String(rs.getString("jsrq")));
entryPo.setPersonId(Util.getIntValue(rs.getString("rysjid")));
entryPo.setSubCompanyId(Util.getIntValue(rs.getString("dw")));
entryPo.setJobTitleId(Util.getIntValue(rs.getString("gw")));
entryPo.setSalaryMonth(Util.getDoubleValue(rs.getString("xced")));
}
//2.起始日期不为空时明细赋值操作
if (!"".equals(entryPo.getStartDate()) && !"".equals(entryPo.getEndDate())) {
List<String> months = detailMonth(entryPo.getStartDate(), entryPo.getEndDate());
months.forEach(month -> rs.executeUpdate("insert into "+detaiTable+"(mainid,yd,xm,szdw,gw,ydxz) values(?,?,?,?,?,?)",
entryPo.getId(),month,entryPo.getPersonId(),entryPo.getSubCompanyId(),entryPo.getJobTitleId(),entryPo.getSalaryMonth()));
}
return Action.SUCCESS;
}
private List<String> detailMonth(String startDateStr,String endDateStr) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate startDate = LocalDate.parse(startDateStr, formatter);
LocalDate endDate = LocalDate.parse(endDateStr, formatter);
List<String> months = new ArrayList<>();
DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
while (!startDate.isAfter(endDate)) {
months.add(startDate.format(monthFormatter));
startDate = startDate.plus(1, ChronoUnit.MONTHS);
}
return months;
}
}

@ -1,5 +1,6 @@
package weaver.interfaces.zkdpoc;
package weaver.interfaces.zkdpoc.crob;
import com.weaver.general.BaseBean;
import com.weaver.general.Util;
import weaver.conn.RecordSet;
import weaver.interfaces.schedule.BaseCronJob;
@ -24,12 +25,16 @@ public class SalaryPayProcessCrob extends BaseCronJob {
public void execute() {
List<SalaryPayProcessPo> salaryPayProcessList = new ArrayList<>();
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
//1.获取需要更新的缴纳情况人数
rs.executeQuery("select ryxm from uf_ryxzjnqk");
while (rs.next()) {
salaryPayProcessList.add(SalaryPayProcessPo.builder().personId(Util.getIntValue(rs.getString("ryxm"))).build());
SalaryPayProcessPo processPo = new SalaryPayProcessPo();
processPo.setPersonId(Util.getIntValue(rs.getString("ryxm")));
salaryPayProcessList.add(processPo);
}
LocalDate now = LocalDate.now();
@ -37,29 +42,36 @@ public class SalaryPayProcessCrob extends BaseCronJob {
String localDate = now.format(formatter);
salaryPayProcessList.forEach(item -> {
rs.executeQuery("select yd,ydxz from uf_ryxzbzkd where jkqk = 1 and xm = 1 order by yd desc limit 1");
rs.executeQuery("select yd,ydxz from uf_ryxzbzkd where jkqk = 1 and xm = ? order by yd desc limit 1",item.getPersonId());
if (rs.next()){
String payMonth = Util.null2String(rs.getString("yd"));
double ydxz = Util.getDoubleValue("ydxz");
double ydxz = Util.getDoubleValue(rs.getString("ydxz"));
int monthsDiff = calculateMonthDiff(payMonth,localDate);
if (monthsDiff > 3) {
item.setPayProcess(0);
}else if (monthsDiff >= 0) {
item.setPayProcess(1);
}else {
item.setPayProcess(2);
double dueMonth = ydxz * monthsDiff;
item.setDueMoney(dueMonth);
double dueMoney = Math.abs(monthsDiff) * ydxz;
bb.writeLog("ydxz-a",+ydxz);
bb.writeLog("monthsDiff",+Math.abs(monthsDiff));
bb.writeLog("dueMoney"+dueMoney);
item.setDueMoney(dueMoney);
item.setDueStartMonth(payMonth);
item.setDueEndMonth(localDate);
}
bb.writeLog("SalaryPayProcessPo-item"+item.toString());
if (monthsDiff >= 0) {
rs.executeUpdate("update uf_ryxzjnqk set jkjd = ? where ryxm = ?",item.getPayProcess(),item.getPersonId());
}else {
rs.executeUpdate("update uf_ryxzjnqk set jkjd = ?,qfsdq = ?,qfsdz = ?,qfje = ? where ryxm = ?",
item.getPayProcess(),item.getPersonId(),item.getDueStartMonth(),item.getDueEndMonth(),item.getDueMoney());
rs.executeUpdate("update uf_ryxzjnqk set jkjd = ?,qfsdq = ?,qfsdz = ?,qfje = ? where ryxm = ?", item.getPayProcess(),item.getDueStartMonth(),item.getDueEndMonth(),item.getDueMoney(),item.getPersonId());
}

@ -0,0 +1,35 @@
package weaver.interfaces.zkdpoc.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author liang.cheng
* @Date 2024/10/12 10:57 AM
* @Description: TODO
* @Version 1.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EntryWorkflowPo {
private Integer id;
private String startDate;
private String endDate;
private Integer personId;
private Integer subCompanyId;
private Integer jobTitleId;
private double salaryMonth;
}

@ -18,11 +18,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class SalaryPayProcessPo {
private Integer id;
private Integer personId;
/**
*
*/

Loading…
Cancel
Save