处理冲突

This commit is contained in:
钱涛 2025-04-14 15:50:51 +08:00
parent 709ec2f3ce
commit c2fde2b3e4
1 changed files with 0 additions and 113 deletions

View File

@ -258,120 +258,7 @@ public class PushServiceImpl extends Service implements PushService {
getPushSettingItemMapper().delete(PushSettingItemPO.builder().id(id).build());
}
@Override
public void pushOneRecord(Long salaryAcctRecordId) {
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
if (salaryAcctRecordPO == null) {
throw new SalaryRunTimeException("核算记录不存在!");
}
//查询核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId());
//薪资项目
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listAll();
//查询薪资核算记录的薪资周期考勤周期等
SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId());
SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO()
.setSalaryAcctRecordPO(salaryAcctRecordPO)
.setSalarySobPO(new SalarySobPO())
.setSalarySobCycleDTO(salarySobCycleDTO)
.setOtherSalaryAcctRecordPOS(new ArrayList<>())
.setSalarySobItemPOS(new ArrayList<>())
.setSalaryItemIdWithPriorityList(new ArrayList<>())
.setExpressFormulas(new ArrayList<>())
.setSalaryItemPOS(salaryItemPOS)
.setSalarySobAdjustRulePOS(new ArrayList<>())
.setWelfareColumns(new HashMap<>())
.setAttendQuoteFieldListDTOS(new ArrayList<>())
.setSalaryAcctEmployeePOS(salaryAcctEmployeePOS)
.setIssuedFieldIds(new HashSet<>())
.setChildMonitor(null)
.setResults(null)
.setCalculateKey(null)
.setVariableItems(new ArrayList<>())
.setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN);
List<Long> employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList());
List<DataCollectionEmployee> simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>(),new ArrayList<>());
KQGroupService kqGroupService = getKQGroupService();
Map<String, List<CalculateFormulaVarBO.FormulaVarValue>> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO, kqGroupService);
List<PushSettingPO> pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build());
pushSettingPOS.stream()
.filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId()))
.forEach(setting -> {
Long id = setting.getId();
List<PushSettingItemPO> pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build());
//每个人插入一条
for (SalaryAcctEmployeePO emp : salaryAcctEmployeePOS) {
//1 获取当前薪资核算人员的公式中的变量的值
List<CalculateFormulaVarBO.FormulaVarValue> formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId());
//2 人员信息
List<CalculateFormulaVarBO.FormulaVarValue> empInfo = formulaVarMap.get(emp.getEmployeeId() + "");
formulaVarValues.addAll(empInfo);
Map<String, String> formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue);
Integer modeId = setting.getModeId();
List<String> fields = new ArrayList<String>() {{
add("formmodeid");
add("modedatacreater");
add("modedatacreatertype");
add("modedatacreatedate");
add("modedatacreatetime");
}};
String currDate = TimeUtil.getCurrentDateString();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String currTime = sdf.format(new Date());
List<Object> values = new ArrayList<Object>() {{
add(modeId);
add(1);
add(0);
add(String.format("'%s'", currDate));
add(String.format("'%s'", currTime));
}};
for (PushSettingItemPO item : pushSettingItemPOS) {
//数据库字段
String fieldName = item.getFieldName();
fields.add(fieldName);
// 公式变量的值
String field = item.getItem();
String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY);
PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType());
values.add(pushItemFieldEnum.convertValue(value));
}
String tableName = setting.getTableName();
String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(",")));
RecordSet rs = new RecordSet();
rs.execute(sql);
if (modeId != null) {
rs.executeQuery("select max(id) from " + tableName);
int mainId = 0;
if (rs.next()) {
mainId = rs.getInt(1);
}
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, modeId, mainId);
}
}
});
}
@Override
public void createPushRecord(Long salaryAcctRecordId) {