Commit c7154301 by Water Wang

optimize

parent cc8bec4d
package com.yd.api.practitioner.service; package com.yd.api.practitioner.service;
import com.yd.api.practitioner.PotentialGoalsActionsUpdateResponseVO; import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.PotentialGoalsQueryResponseVO; import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO; import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO; import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO; import com.yd.api.practitioner.vo.media.MediaGetReqVO;
......
...@@ -4,8 +4,8 @@ import com.github.pagehelper.PageHelper; ...@@ -4,8 +4,8 @@ import com.github.pagehelper.PageHelper;
import com.yd.api.customer.service.CustomerService; import com.yd.api.customer.service.CustomerService;
import com.yd.api.customer.vo.register.RegisterRequestVO; import com.yd.api.customer.vo.register.RegisterRequestVO;
import com.yd.api.customer.vo.register.RegisterResponseVO; import com.yd.api.customer.vo.register.RegisterResponseVO;
import com.yd.api.practitioner.PotentialGoalsActionsUpdateResponseVO; import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.PotentialGoalsQueryResponseVO; import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo; import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO; import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO; import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
...@@ -1360,12 +1360,71 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -1360,12 +1360,71 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
@Override @Override
public PotentialGoalsActionsQueryResponseVO potentialGoalsActionsQuery(PotentialGoalsActionsQueryRequestVO requestVO) { 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 @Override
public PotentialGoalsActionsUpdateResponseVO potentialGoalsActionsUpdate(PotentialGoalsActionsUpdateRequestVO requestVO) { 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. ...@@ -1375,17 +1434,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private void savePotentialActions(Long practitionerId,Integer numberRecruitsYear,Integer currentYear,Date version) { private void savePotentialActions(Long practitionerId,Integer numberRecruitsYear,Integer currentYear,Date version) {
if(numberRecruitsYear != null){ if(numberRecruitsYear != null){
//清空就逻辑 //清空就逻辑
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate = new ArrayList<>(); updateOldDataForGoalsActions(practitionerId,currentYear);
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);
}
//1、获取所有的逻辑 //1、获取所有的逻辑
List<MdGoalsCalculateExpression> calculateExpressionList = mdGoalsCalculateExpressionDALService.findByMasterCodeAndIsActive("team_building_track",1); List<MdGoalsCalculateExpression> calculateExpressionList = mdGoalsCalculateExpressionDALService.findByMasterCodeAndIsActive("team_building_track",1);
if(calculateExpressionList != null && !calculateExpressionList.isEmpty()){ if(calculateExpressionList != null && !calculateExpressionList.isEmpty()){
...@@ -1394,21 +1443,17 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -1394,21 +1443,17 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
int a = numberRecruitsYear%12 == 0 ? (numberRecruitsYear/12) : (numberRecruitsYear/12)+1; int a = numberRecruitsYear%12 == 0 ? (numberRecruitsYear/12) : (numberRecruitsYear/12)+1;
String expression; String expression;
int result; int result;
Long potentialActionId;
String potentialActionName;
List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList = new ArrayList<>(); List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList = new ArrayList<>();
for(MdGoalsCalculateExpression item : calculateExpressionList){ for(MdGoalsCalculateExpression item : calculateExpressionList){
expression = item.getCalculateScriptExpression(); expression = item.getCalculateScriptExpression();
if(!Strings.isNullOrEmpty(expression)){ if(!Strings.isNullOrEmpty(expression)){
expression = expression.replaceAll("num",String.valueOf(a)); expression = expression.replaceAll("num",String.valueOf(a));
result = (int) jScriptEngine.eval(expression); result = (int) jScriptEngine.eval(expression);
//月 potentialActionId = item.getActionId();
savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,3,item,result,version); potentialActionName = item.getDropOptionName();
//季度 savePotentialGoalsActions(potentialGoalsActionsList,practitionerId,currentYear,potentialActionId,potentialActionName,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);
} }
} }
aclPractitionerPotentialGoalsActionsDALService.saveAll(potentialGoalsActionsList); aclPractitionerPotentialGoalsActionsDALService.saveAll(potentialGoalsActionsList);
...@@ -1419,13 +1464,27 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -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(); AclPractitionerPotentialGoalsActions potentialGoalsActions = new AclPractitionerPotentialGoalsActions();
potentialGoalsActions.setPractitionerId(practitionerId); potentialGoalsActions.setPractitionerId(practitionerId);
potentialGoalsActions.setCurrentYear(currentYear); potentialGoalsActions.setCurrentYear(currentYear);
potentialGoalsActions.setStatisticTimeUnit(timeUnit); potentialGoalsActions.setStatisticTimeUnit(timeUnit);
potentialGoalsActions.setPotentialActionId(item.getActionId()); potentialGoalsActions.setPotentialActionId(potentialActionId);
potentialGoalsActions.setPotentialActionName(item.getDropOptionName()); potentialGoalsActions.setPotentialActionName(potentialActionName);
potentialGoalsActions.setActionStandards(result); potentialGoalsActions.setActionStandards(result);
potentialGoalsActions.setCurrentVersion(version); potentialGoalsActions.setCurrentVersion(version);
potentialGoalsActions.setIsActive(1); potentialGoalsActions.setIsActive(1);
......
package com.yd.api.practitioner; package com.yd.api.practitioner.vo.recruit;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
......
package com.yd.api.practitioner; package com.yd.api.practitioner.vo.recruit;
import com.yd.api.practitioner.vo.recruit.RecruitGoalForMonth; import com.yd.api.practitioner.vo.recruit.RecruitGoalForMonth;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
......
...@@ -21,4 +21,6 @@ public interface AclPractitionerPotentialGoalsActionsMapper { ...@@ -21,4 +21,6 @@ public interface AclPractitionerPotentialGoalsActionsMapper {
List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActive(@Param("practitionerId")Long practitionerId, @Param("currentYear") Integer currentYear, @Param("isActive") Integer isActive); List<AclPractitionerPotentialGoalsActions> findByPractitionerIdAndCurrentYearAndIsActive(@Param("practitionerId")Long practitionerId, @Param("currentYear") Integer currentYear, @Param("isActive") Integer isActive);
void saveAll(@Param("potentialGoalsActionsList") List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList); 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 { ...@@ -13,4 +13,6 @@ public interface AclPractitionerPotentialGoalsActionsDALService {
void updateAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate); void updateAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsListUpdate);
void saveAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList); 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 ...@@ -29,4 +29,9 @@ public class AclPractitionerPotentialGoalsActionsDALServiceImpl implements AclPr
public void saveAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList) { public void saveAll(List<AclPractitionerPotentialGoalsActions> potentialGoalsActionsList) {
aclPractitionerPotentialGoalsActionsMapper.saveAll(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 @@ ...@@ -211,4 +211,10 @@
) )
</foreach> </foreach>
</insert> </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> </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