Commit c7154301 by Water Wang

optimize

parent cc8bec4d
package com.yd.api.practitioner.service;
import com.yd.api.practitioner.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO;
......
......@@ -4,8 +4,8 @@ import com.github.pagehelper.PageHelper;
import com.yd.api.customer.service.CustomerService;
import com.yd.api.customer.vo.register.RegisterRequestVO;
import com.yd.api.customer.vo.register.RegisterResponseVO;
import com.yd.api.practitioner.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
......@@ -1360,12 +1360,71 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
@Override
public PotentialGoalsActionsQueryResponseVO potentialGoalsActionsQuery(PotentialGoalsActionsQueryRequestVO requestVO) {
return null;
PotentialGoalsActionsQueryResponseVO responseVO = new PotentialGoalsActionsQueryResponseVO();
Long practitionerId = requestVO.getPractitionerId();
if(practitionerId != null){
Calendar calendar = Calendar.getInstance();
Integer currentYear = calendar.get(Calendar.YEAR);
List<PotentialGoalsActionsInfo> goalsActionsInfoList = new ArrayList<>();
List<AclPractitionerPotentialGoalsActions> goalsActionsList = aclPractitionerPotentialGoalsActionsDALService.findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit(practitionerId,currentYear,1,3);
if(goalsActionsList != null && !goalsActionsList.isEmpty()){
PotentialGoalsActionsInfo goalsActionsInfo;
for(AclPractitionerPotentialGoalsActions item : goalsActionsList){
goalsActionsInfo = new PotentialGoalsActionsInfo();
BeanUtils.copyProperties(item,goalsActionsInfo);
goalsActionsInfoList.add(goalsActionsInfo);
}
responseVO.setGoalsActionsInfoList(goalsActionsInfoList);
}
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
}else{
String [] paras = {"practitionerId"};
responseVO.setCommonResult(new CommonResult(false,ZHBErrorConfig.getErrorInfo("610002",paras)));
}
return responseVO;
}
@Override
public PotentialGoalsActionsUpdateResponseVO potentialGoalsActionsUpdate(PotentialGoalsActionsUpdateRequestVO requestVO) {
return null;
PotentialGoalsActionsUpdateResponseVO responseVO = new PotentialGoalsActionsUpdateResponseVO();
Long practitionerId = requestVO.getPractitionerId();
List<PotentialGoalsActionsInfo> goalsActionsInfoList = requestVO.getGoalsActionsInfoList();
if(practitionerId != null && !goalsActionsInfoList.isEmpty()){
Calendar calendar = Calendar.getInstance();
Integer currentYear = calendar.get(Calendar.YEAR);
Date version = new Date();
//1、更新旧数据
updateOldDataForGoalsActions(practitionerId,currentYear);
//2、保存数据
int result;
Long potentialActionId;
String potentialActionName;
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList = new ArrayList<>();
for(PotentialGoalsActionsInfo item : goalsActionsInfoList){
result = item.getActionStandards();
potentialActionId = item.getPotentialActionId();
potentialActionName = item.getPotentialActionName();
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,potentialActionId,potentialActionName,result,version);
}
aclPractitionerPotentialGoalsActionsDALService.saveAll(potentialGoalsActionsList);
responseVO.setCommonResult(new CommonResult(true,ZHBErrorConfig.getErrorInfo("800000")));
}else{
String [] paras = {"practitionerId,goalsActionsInfoList"};
responseVO.setCommonResult(new CommonResult(false,ZHBErrorConfig.getErrorInfo("610002",paras)));
}
return responseVO;
}
private void savePotentialGoalsActions(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList, Long practitionerId, Integer currentYear, Long potentialActionId, String potentialActionName, int result, Date version) {
//月
savePotentialGoalsActionsDetail(potentialGoalsActionsList,practitionerId,currentYear,3,potentialActionId,potentialActionName,result,version);
//季度
result = result*3;
savePotentialGoalsActionsDetail(potentialGoalsActionsList,practitionerId,currentYear,2,potentialActionId,potentialActionName,result,version);
//周
result = result*4;
result = result%52 == 0 ? (result/52) : (result/52)+1;
savePotentialGoalsActionsDetail(potentialGoalsActionsList,practitionerId,currentYear,4,potentialActionId,potentialActionName,result,version);
}
/**
......@@ -1375,17 +1434,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private void savePotentialActions(Long practitionerId,Integer numberRecruitsYear,Integer currentYear,Date version) {
if(numberRecruitsYear != null){
//清空就逻辑
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate = new ArrayList<>();
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListOld = aclPractitionerPotentialGoalsActionsDALService.findByPractitionerIdAndCurrentYearAndIsActive(practitionerId,currentYear,1);
if(potentialGoalsActionsListOld != null && !potentialGoalsActionsListOld.isEmpty()){
for(AclPractitionerPotentialGoalsActions item : potentialGoalsActionsListOld){
item.setIsActive(0);
item.setUpdatedAt(new Date());
item.setUpdatedBy(practitionerId);
potentialGoalsActionsListUpdate.add(item);
}
aclPractitionerPotentialGoalsActionsDALService.updateAll(potentialGoalsActionsListUpdate);
}
updateOldDataForGoalsActions(practitionerId,currentYear);
//1、获取所有的逻辑
List<MdGoalsCalculateExpression> calculateExpressionList = mdGoalsCalculateExpressionDALService.findByMasterCodeAndIsActive("team_building_track",1);
if(calculateExpressionList != null && !calculateExpressionList.isEmpty()){
......@@ -1394,21 +1443,17 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
int a = numberRecruitsYear%12 == 0 ? (numberRecruitsYear/12) : (numberRecruitsYear/12)+1;
String expression;
int result;
Long potentialActionId;
String potentialActionName;
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList = new ArrayList<>();
for(MdGoalsCalculateExpression item : calculateExpressionList){
expression = item.getCalculateScriptExpression();
if(!Strings.isNullOrEmpty(expression)){
expression = expression.replaceAll("num",String.valueOf(a));
result = (int) jScriptEngine.eval(expression);
//月
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,3,item,result,version);
//季度
result = result*3;
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,2,item,result,version);
//周
result = result*4;
result = result%52 == 0 ? (result/52) : (result/52)+1;
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,4,item,result,version);
potentialActionId = item.getActionId();
potentialActionName = item.getDropOptionName();
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,potentialActionId,potentialActionName,result,version);
}
}
aclPractitionerPotentialGoalsActionsDALService.saveAll(potentialGoalsActionsList);
......@@ -1419,13 +1464,27 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
}
}
private void savePotentialGoalsActions(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList, Long practitionerId, Integer currentYear, Integer timeUnit, MdGoalsCalculateExpression item, int result, Date version) {
private void updateOldDataForGoalsActions(Long practitionerId, Integer currentYear) {
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate = new ArrayList<>();
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListOld = aclPractitionerPotentialGoalsActionsDALService.findByPractitionerIdAndCurrentYearAndIsActive(practitionerId,currentYear,1);
if(potentialGoalsActionsListOld != null && !potentialGoalsActionsListOld.isEmpty()){
for(AclPractitionerPotentialGoalsActions item : potentialGoalsActionsListOld){
item.setIsActive(0);
item.setUpdatedAt(new Date());
item.setUpdatedBy(practitionerId);
potentialGoalsActionsListUpdate.add(item);
}
aclPractitionerPotentialGoalsActionsDALService.updateAll(potentialGoalsActionsListUpdate);
}
}
private void savePotentialGoalsActionsDetail(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList, Long practitionerId, Integer currentYear, Integer timeUnit, Long potentialActionId, String potentialActionName, int result, Date version) {
AclPractitionerPotentialGoalsActions potentialGoalsActions = new AclPractitionerPotentialGoalsActions();
potentialGoalsActions.setPractitionerId(practitionerId);
potentialGoalsActions.setCurrentYear(currentYear);
potentialGoalsActions.setStatisticTimeUnit(timeUnit);
potentialGoalsActions.setPotentialActionId(item.getActionId());
potentialGoalsActions.setPotentialActionName(item.getDropOptionName());
potentialGoalsActions.setPotentialActionId(potentialActionId);
potentialGoalsActions.setPotentialActionName(potentialActionName);
potentialGoalsActions.setActionStandards(result);
potentialGoalsActions.setCurrentVersion(version);
potentialGoalsActions.setIsActive(1);
......
package com.yd.api.practitioner;
package com.yd.api.practitioner.vo.recruit;
import com.yd.api.practitioner.vo.recruit.RecruitGoalForMonth;
import com.yd.api.result.CommonResult;
......
......@@ -21,4 +21,6 @@ public interface AclPractitionerPotentialGoalsActionsMapper {
List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActive(@Param("practitionerId")Long practitionerId, @Param("currentYear") Integer currentYear, @Param("isActive") Integer isActive);
void saveAll(@Param("potentialGoalsActionsList") List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList);
List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit(@Param("practitionerId")Long practitionerId, @Param("currentYear")Integer currentYear, @Param("isActive")Integer isActive, @Param("timeType")Integer timeType);
}
\ No newline at end of file
......@@ -13,4 +13,6 @@ public interface AclPractitionerPotentialGoalsActionsDALService {
void updateAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate);
void saveAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList);
List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit(Long practitionerId, Integer currentYear, Integer isActive, Integer timeType);
}
......@@ -29,4 +29,9 @@ public class AclPractitionerPotentialGoalsActionsDALServiceImpl implements AclPr
public void saveAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList) {
aclPractitionerPotentialGoalsActionsMapper.saveAll(potentialGoalsActionsList);
}
@Override
public List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit(Long practitionerId, Integer currentYear, Integer isActive, Integer timeType) {
return aclPractitionerPotentialGoalsActionsMapper.findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit(practitionerId,currentYear,isActive,timeType);
}
}
......@@ -211,4 +211,10 @@
)
</foreach>
</insert>
<select id="findByPractitionerIdAndCurrentYearAndIsActiveAndTimeUnit" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from ag_acl_practitioner_potential_goals_actions
where practitioner_id = #{practitionerId,jdbcType=BIGINT} and is_active = #{isActive,jdbcType=INTEGER} and current_year = #{currentYear,jdbcType=INTEGER} and statistic_time_unit = #{timeType,jdbcType=INTEGER}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment