一键发薪bug

This commit is contained in:
钱涛 2022-11-03 17:16:37 +08:00
parent 35022f7d09
commit 0cd5f1d4d8
3 changed files with 21 additions and 8 deletions

View File

@ -8,12 +8,13 @@ import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryP
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.mapper.archive.SalaryArchiveItemMapper;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import com.engine.salary.util.page.SalaryPageUtil;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import java.util.ArrayList;
import java.util.List;
public class SalaryArchiveItemBiz {
@ -54,7 +55,15 @@ public class SalaryArchiveItemBiz {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class);
List<SalaryArchiveItemPO> ineffectiveSalaryItems = mapper.getIneffectiveSalaryItems(build);
List<SalaryArchiveItemPO> ineffectiveSalaryItems = new ArrayList<>();
if(CollectionUtils.isNotEmpty(build.getSalaryArchivesIds())){
List<Long> salaryArchivesIds = (List<Long>) build.getSalaryArchivesIds();
List<List<Long>> partition = Lists.partition(salaryArchivesIds,1000);
partition.forEach(list -> {
build.setSalaryArchivesIds(list);
ineffectiveSalaryItems.addAll(mapper.getIneffectiveSalaryItems(build));
});
}
return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPOList(ineffectiveSalaryItems);
} finally {
sqlSession.close();

View File

@ -6,7 +6,6 @@ import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.biz.SIArchivesBiz;
import com.engine.salary.cmd.siarchives.SIArchivesTipsCmd;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam;
import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBaseInfoBO;
import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam;
import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam;
@ -36,7 +35,6 @@ import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelUtil;
import com.google.common.collect.Lists;
import com.icbc.api.internal.apache.http.impl.cookie.S;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

View File

@ -1107,7 +1107,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "没有可以操作的记录"));
}
List<SalaryArchivePO> salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().ids(ids).runStatus(SalaryArchiveStatusEnum.PENDING.getValue()).build());
List<SalaryArchivePO> salaryArchiveList = new ArrayList<>();
List<Long> salaryArchivesIds = (List<Long>) ids;
List<List<Long>> partition = Lists.partition(salaryArchivesIds, 1000);
partition.forEach(list -> {
salaryArchiveList.addAll(getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().ids(list).runStatus(SalaryArchiveStatusEnum.PENDING.getValue()).build()));
});
if (CollectionUtils.isEmpty(salaryArchiveList)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "档案不存在!"));
}
@ -1122,7 +1128,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
// 从待定薪到定薪
getSalaryArchiveMapper().gotoFixed(ids);
partition.forEach(getSalaryArchiveMapper()::gotoFixed);
// 获取所有可被引用的薪资项目
List<Long> salaryItemIds = getSalaryArchiveItemService(user).getCanAdjustSalaryItems().stream().map(SalaryItemPO::getId).collect(Collectors.toList());
@ -1136,8 +1142,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
}).collect(Collectors.toList());
// 更新薪资项目的生效日期
List<List<SalaryArchiveItemPO>> partition = Lists.partition(currentEffectiveItemList, 100);
partition.forEach(list -> getSalaryArchiveItemMapper().batchUpdate(list));
List<List<SalaryArchiveItemPO>> partitions = Lists.partition(currentEffectiveItemList, 100);
partitions.forEach(list -> getSalaryArchiveItemMapper().batchUpdate(list));
Map<String, Object> resultMap = new HashMap<>(2);
String resultMsg = SalaryI18nUtil.getI18nLabel(94620, "操作成功");