同步薪资项目至账套
This commit is contained in:
parent
c2ae65ff79
commit
190bbe0875
|
|
@ -10,6 +10,7 @@ import weaver.conn.mybatis.MyBatisFactory;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class SalarySobItemBiz {
|
||||
|
||||
|
|
@ -154,4 +155,18 @@ public class SalarySobItemBiz {
|
|||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(SalarySobItemPO salarySobItemPO) {
|
||||
if (Objects.isNull(salarySobItemPO)) {
|
||||
return;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
|
||||
mapper.updateIgnoreNull(salarySobItemPO);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package com.engine.salary.entity.salaryitem.param;
|
||||
|
||||
import com.engine.salary.util.valid.DataCheck;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName SyncSalaryItemParam
|
||||
* @date 2023/08/30 17:51
|
||||
* @description 同步薪资项目到账套中参数
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SyncSalaryItemParam {
|
||||
|
||||
// 薪资项目id
|
||||
@DataCheck(require = true, message = "薪资项目id不能为空")
|
||||
private Long salaryItemId;
|
||||
|
||||
// 薪资账套id
|
||||
@DataCheck(require = true, message = "薪资账套不能为空")
|
||||
private List<Long> salarySobIds;
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service;
|
|||
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SyncSalaryItemParam;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.enums.SalarySystemTypeEnum;
|
||||
import com.engine.salary.service.impl.SalaryItemServiceImpl;
|
||||
|
|
@ -9,6 +10,7 @@ import com.engine.salary.util.page.PageInfo;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
|
@ -133,5 +135,16 @@ public interface SalaryItemService {
|
|||
*/
|
||||
void batchUpdateSortedIndex(List<SalaryItemPO> values);
|
||||
|
||||
/**
|
||||
* 获取薪资项目在哪些账套中使用
|
||||
* @param salaryItemId
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getSalarySobBySalaryItem(Long salaryItemId);
|
||||
|
||||
/**
|
||||
* 将薪资项目管理中的信息同步至账套
|
||||
* @param syncSalaryItemParam
|
||||
*/
|
||||
void syncSalaryItemToSalarySobItem(SyncSalaryItemParam syncSalaryItemParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,4 +125,6 @@ public interface SalarySobItemService {
|
|||
* 薪资项目的详情
|
||||
*/
|
||||
SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param);
|
||||
|
||||
void update(SalarySobItemPO po);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,12 @@ import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
|||
import com.engine.salary.entity.salaryitem.bo.SalaryItemBO;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SyncSalaryItemParam;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.enums.SalarySystemTypeEnum;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
|
|
@ -24,11 +26,13 @@ import com.engine.salary.util.SalaryEntityUtil;
|
|||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import weaver.hrm.User;
|
||||
|
|
@ -69,6 +73,10 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
|
|||
return ServiceUtil.getService(SalarySobBackItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
public SalarySobService getSalarySobService(User user) {
|
||||
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
private SysSalaryItemBiz sysSalaryItemBiz = new SysSalaryItemBiz();
|
||||
// @Autowired
|
||||
|
|
@ -391,6 +399,43 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
|
|||
salaryItemBiz.batchUpdateSortedIndex(values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getSalarySobBySalaryItem(Long salaryItemId) {
|
||||
// 查询所有启用的薪资账套
|
||||
List<SalarySobItemPO> salarySobItemList = getSalarySobItemService(user).listBySalaryItemIds(Collections.singleton(salaryItemId));
|
||||
Set<Long> salarySobIds = SalaryEntityUtil.properties(salarySobItemList, SalarySobItemPO::getSalarySobId);
|
||||
List<SalarySobPO> salarySobs = getSalarySobService(user).listByIds(salarySobIds);
|
||||
return salarySobs.stream().map(m -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", String.valueOf(m.getId()));
|
||||
map.put("content", m.getName());
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void syncSalaryItemToSalarySobItem(SyncSalaryItemParam param) {
|
||||
ValidUtil.doValidator(param);
|
||||
// 获取薪资项目信息
|
||||
SalaryItemPO salaryItemPO = salaryItemBiz.getById(param.getSalaryItemId());
|
||||
if (ObjectUtils.isEmpty(salaryItemPO)) {
|
||||
throw new SalaryRunTimeException("薪资项目不存在或已被删除");
|
||||
}
|
||||
// 获取薪资账套中薪资项目信息
|
||||
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalaryItemIds(Collections.singleton(param.getSalaryItemId()));
|
||||
salarySobItemPOS = salarySobItemPOS.stream().filter( po -> param.getSalarySobIds().contains(po.getSalarySobId())).collect(Collectors.toList());
|
||||
// 更新薪资账套中的薪资项目信息
|
||||
Date now = new Date();
|
||||
for (SalarySobItemPO sobItem : salarySobItemPOS) {
|
||||
sobItem.setFormulaId(sobItem.getFormulaId());
|
||||
sobItem.setRoundingMode(sobItem.getRoundingMode());
|
||||
sobItem.setPattern(sobItem.getPattern());
|
||||
sobItem.setValueType(sobItem.getValueType());
|
||||
sobItem.setDescription(sobItem.getDescription());
|
||||
sobItem.setUpdateTime(now);
|
||||
getSalarySobItemService(user).update(sobItem);
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
|
|
|
|||
|
|
@ -727,6 +727,11 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
salarySobItemMapper.deleteItemShowBySalarySobId(salarySobIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(SalarySobItemPO po) {
|
||||
salarySobItemMapper.update(po);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) {
|
||||
SalarySobItemFormDTO salarySobItemFormDTO = new SalarySobItemFormDTO();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO;
|
|||
import com.engine.salary.entity.salaryitem.dto.SysSalaryItemListDTO;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SyncSalaryItemParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SysSalaryItemSearchParam;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.util.ResponseResult;
|
||||
|
|
@ -112,6 +113,28 @@ public class SalaryItemController {
|
|||
return new ResponseResult<Long, SalaryItemFormDTO>(user).run(getSalaryItemWrapper(user)::getForm, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取哪些账套中使用了该薪资项目
|
||||
*/
|
||||
@GET
|
||||
@Path("/getSalarySobBySalaryItem")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getSalarySobBySalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, List<Map<String, Object>>>(user).run(getSalaryItemWrapper(user)::getSalarySobBySalaryItem, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将薪资项目管理中的信息同步至账套
|
||||
*/
|
||||
@POST
|
||||
@Path("/syncSalaryItemToSalarySobItem")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String syncSalaryItemToSalarySobItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SyncSalaryItemParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SyncSalaryItemParam, String>(user).run(getSalaryItemWrapper(user)::syncSalaryItemToSalarySobItem, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* "获取薪资项目可选的类型(与属性有联动)"
|
||||
*
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO;
|
|||
import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
||||
import com.engine.salary.entity.salaryitem.param.SyncSalaryItemParam;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
|
|
@ -262,4 +263,19 @@ public class SalaryItemWrapper extends Service {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取薪资项目在哪些账套中使用
|
||||
* @param salaryItemId
|
||||
*/
|
||||
public List<Map<String, Object>> getSalarySobBySalaryItem(Long salaryItemId) {
|
||||
return getSalaryItemService(user).getSalarySobBySalaryItem(salaryItemId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将薪资项目管理中的信息同步至账套
|
||||
* @param syncSalaryItemParam
|
||||
*/
|
||||
public void syncSalaryItemToSalarySobItem(SyncSalaryItemParam syncSalaryItemParam) {
|
||||
getSalaryItemService(user).syncSalaryItemToSalarySobItem(syncSalaryItemParam);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue