|
|
@@ -2512,25 +2512,23 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
* @return
|
|
|
*/
|
|
|
public Map checkOrderNoDuration( InputPublicRelease in,AdminListBo a,int type) {
|
|
|
- CheckOrderNoOut data= new CheckOrderNoOut();
|
|
|
+ List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(in.getOrderNo());
|
|
|
TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(in.getOrderNo());
|
|
|
- Map map=new HashMap();
|
|
|
+ OutPublicRelease outPublicRelease=null;
|
|
|
+ //实际公出
|
|
|
BigDecimal actualDuration = BigDecimal.ZERO;
|
|
|
- if (type==1||type==2){
|
|
|
- List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(in.getOrderNo());
|
|
|
- OutPublicRelease outPublicRelease=null;
|
|
|
- //公出次数
|
|
|
- int frequency=0;
|
|
|
- List<String> peopleList = new ArrayList<>();
|
|
|
- //判定是不是新增获取原数据,是新增数量加1
|
|
|
- if (in.getId()!=null){
|
|
|
- outPublicRelease= publicReleaseMapper.selectDtails(in.getId());
|
|
|
- }else {
|
|
|
- peopleList.add(TokenManager.getAdminId());
|
|
|
- actualDuration=actualDuration.add(BigDecimal.valueOf(in.getDuration()));
|
|
|
- frequency++;
|
|
|
- }
|
|
|
- for (PublicRelease e : list) {
|
|
|
+ //公出次数
|
|
|
+ int frequency=0;
|
|
|
+ List<String> peopleList = new ArrayList<>();
|
|
|
+ //判定是不是新增获取原数据,是新增数量加1
|
|
|
+ if (in.getId()!=null){
|
|
|
+ outPublicRelease= publicReleaseMapper.selectDtails(in.getId());
|
|
|
+ }else {
|
|
|
+ peopleList.add(TokenManager.getAdminId());
|
|
|
+ actualDuration=actualDuration.add(BigDecimal.valueOf(in.getDuration()));
|
|
|
+ frequency++;
|
|
|
+ }
|
|
|
+ for (PublicRelease e : list) {
|
|
|
//新增直接计算
|
|
|
if (in.getId()==null){
|
|
|
if (e.getDuration()!=null){
|
|
|
@@ -2560,60 +2558,86 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- if (outPublicRelease!=null){
|
|
|
- data.setPublicReleaseName(outPublicRelease.getAname());
|
|
|
- }
|
|
|
- //新增与修改,需要重新获取实际公出与人数与次数
|
|
|
+ }
|
|
|
+ Map map=new HashMap();
|
|
|
+ CheckOrderNoOut data= new CheckOrderNoOut();
|
|
|
+ if (outPublicRelease!=null){
|
|
|
+ data.setPublicReleaseName(outPublicRelease.getAname());
|
|
|
+ }
|
|
|
+ //新增与修改,需要重新获取实际公出与人数与次数
|
|
|
+ if (type==1||type==2){
|
|
|
TOrderPublicReleaseCount update=new TOrderPublicReleaseCount();
|
|
|
update.setOrderNo(in.getOrderNo());
|
|
|
update.setFrequency(frequency);
|
|
|
update.setActualDuration(actualDuration.doubleValue());
|
|
|
update.setPeopleCount(peopleList.size());
|
|
|
tOrderPublicReleaseCountMapper.updateByOrderNo(update);
|
|
|
- data.setTimesCount(frequency);
|
|
|
- data.setPeopleCount(peopleList.size());
|
|
|
- data.setDurationCount(actualDuration);
|
|
|
}
|
|
|
+ data.setTimesCount(frequency);
|
|
|
+ data.setPeopleCount(peopleList.size());
|
|
|
data.setUserName(t.getUserName());
|
|
|
data.setContractNo(t.getContractNo());
|
|
|
data.setAdminName(t.getSalesmanName());
|
|
|
+ data.setDurationCount(actualDuration);
|
|
|
TOrderPublicReleaseCount releaseCount = tOrderPublicReleaseCountMapper.selectByOrderNo(in.getOrderNo());
|
|
|
data.setDurationMax(BigDecimal.valueOf(releaseCount.getMaxDuration()));
|
|
|
TOrderNew tOrderNew = tOrderNewMapper.selectByPrimaryKey(in.getOrderNo());
|
|
|
+ List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(tOrderNew.getOrderNo());
|
|
|
String amountName=null;
|
|
|
String amountType=null;
|
|
|
- if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(1))<0){
|
|
|
- amountName="本合同低于1万";
|
|
|
- amountType="原则上技术人员不可下户";
|
|
|
- }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(3))<0){
|
|
|
- amountName="本合同在1~3万";
|
|
|
- amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
- }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(5))<0){
|
|
|
- amountName="本合同在3~5万";
|
|
|
- amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
- }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(10))<0){
|
|
|
- amountName="本合同在5~10万";
|
|
|
- amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ if (tTaskMembers.size()<1){
|
|
|
+ if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(1))<0){
|
|
|
+ amountName="本合同低于1万";
|
|
|
+ amountType="原则上技术人员不可下户";
|
|
|
+ }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(3))<0){
|
|
|
+ amountName="本合同在1~3万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(5))<0){
|
|
|
+ amountName="本合同在3~5万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }else if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(10))<0){
|
|
|
+ amountName="本合同在5~10万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ int yearSum=1;
|
|
|
+ for (TTaskMember tTaskMember : tTaskMembers) {
|
|
|
+ if (tTaskMember.getYearSum()!=null&&tTaskMember.getYearSum()>yearSum){
|
|
|
+ yearSum=tTaskMember.getYearSum();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BigDecimal divide =BigDecimal.ZERO;
|
|
|
+ if (tOrderNew.getTotalAmount().compareTo(BigDecimal.valueOf(0))>0&&yearSum>0){
|
|
|
+ divide=tOrderNew.getTotalAmount().divide(BigDecimal.valueOf(yearSum), BigDecimal.ROUND_HALF_UP);
|
|
|
+ }else {
|
|
|
+ divide=tOrderNew.getTotalAmount();
|
|
|
+ }
|
|
|
+ if (divide.compareTo(BigDecimal.valueOf(1))<0){
|
|
|
+ amountName="此会员订单,本年度金额低于1万";
|
|
|
+ amountType="原则上技术人员不可下户";
|
|
|
+ }else if (divide.compareTo(BigDecimal.valueOf(3))<0){
|
|
|
+ amountName="此会员订单,本年度金额1~3万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }else if (divide.compareTo(BigDecimal.valueOf(5))<0){
|
|
|
+ amountName="此会员订单,本年度金额3~5万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }else if (divide.compareTo(BigDecimal.valueOf(10))<0){
|
|
|
+ amountName="此会员订单,本年度金额5~10万";
|
|
|
+ amountType="已超出合同可公出标准"+data.getDurationMax()+"小时";
|
|
|
+ }
|
|
|
}
|
|
|
data.setAmountName(amountName);
|
|
|
data.setAmountType(amountType);
|
|
|
- //未设置公出
|
|
|
- if(releaseCount.getMaxType()==2||releaseCount.getMaxType()==0){
|
|
|
- map.put("code",releaseCount.getMaxType());
|
|
|
- map.put("flag",false);
|
|
|
+ map.put("releaseCount",releaseCount);
|
|
|
+ //如果小于或者等于并且是未发起或者审核完成状态
|
|
|
+ if (actualDuration.compareTo(data.getDurationMax())<1&&
|
|
|
+ (releaseCount.getMaxProcess()==0||releaseCount.getMaxProcess()==4)
|
|
|
+ ){
|
|
|
+ map.put("code",true);
|
|
|
map.put("data",null);
|
|
|
}else {
|
|
|
- //需要限制判定小时
|
|
|
- if (actualDuration.compareTo(data.getDurationMax())<1){
|
|
|
- map.put("code",releaseCount.getMaxType());
|
|
|
- map.put("flag",true);
|
|
|
- map.put("data",null);
|
|
|
- }else {
|
|
|
- map.put("code",releaseCount.getMaxType());
|
|
|
- map.put("flag",false);
|
|
|
- map.put("data",data);
|
|
|
- }
|
|
|
+ map.put("code",false);
|
|
|
+ map.put("data",data);
|
|
|
}
|
|
|
return map;
|
|
|
}
|