package com.thhy.materials.modules.biz.concret.service.impl;
|
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.util.StringUtil;
|
import com.thhy.general.common.BasicResult;
|
import com.thhy.general.config.SysUserInfo;
|
import com.thhy.general.utils.UserInfoUtils;
|
import com.thhy.materials.modules.biz.concret.entity.ProjectBlokDtos;
|
import com.thhy.materials.modules.biz.concret.entity.TNeedNum;
|
import com.thhy.materials.modules.biz.concret.entity.TSteelNeedYear;
|
import com.thhy.materials.modules.biz.concret.mapper.TSteelNeedYearMapper;
|
import com.thhy.materials.modules.biz.concret.service.TSteelNeedYearService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class TSteelNeedYearServiceImpl implements TSteelNeedYearService {
|
|
|
@Resource
|
private TSteelNeedYearMapper yearMapper;
|
|
@Override
|
@Transactional
|
public BasicResult needYearInsert(Map<String, Object> values) {
|
String proId = values.get("proId").toString();//项目id
|
String years = values.get("years").toString();//年份
|
String sizeId = values.get("sizeId").toString();//尺寸id
|
String needId = yearMapper.proIdAndYearAndSizeId(proId,years,sizeId);
|
if(!StringUtil.isEmpty(needId)){
|
return BasicResult.faild("11111","项目、年份及尺寸不能重复","error");
|
}
|
List<Map<String,Object>> sizeList = (List<Map<String, Object>>) values.get("sizeList");
|
if(sizeList==null || sizeList.size()<=0||sizeList.get(0).get("reinforcementId").equals("")){
|
return BasicResult.faild("11111","管片配筋不能为空","error");
|
}
|
values.put("steelNeedId","");
|
yearMapper.needYearInsert(values);
|
for (Map<String,Object> va : sizeList){
|
va.put("steelNeedId",values.get("steelNeedId").toString());
|
yearMapper.needNumInsert(va);
|
}
|
|
return BasicResult.success("添加成功");
|
}
|
|
@Override
|
public BasicResult needYearList(Map<String, Object> values) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
values.put("companyId",companyId);
|
|
Integer pageSize = Integer.valueOf(values.get("pageSize").toString());
|
Integer pageNum = Integer.valueOf(values.get("pageNum").toString());
|
PageHelper.startPage(pageNum,pageSize);
|
List<TSteelNeedYear> needYears = yearMapper.needYearList(values);
|
List< HashMap<String, Object>> num = new ArrayList<HashMap<String, Object> >();
|
for (TSteelNeedYear needYear:needYears){
|
//查看项目下有多少培新
|
List<TNeedNum> needNums = yearMapper.proIdAndHas(needYear.getProId());
|
for (TNeedNum tNeedNum:needNums){
|
//条件 : 项目 尺寸 管片 查询下面所有块号 块号
|
List<Integer> strings = yearMapper.needProSizePipe(needYear.getProId(),needYear.getSizeId(),tNeedNum.getReinforcementId(),needYear.getYears());
|
HashMap<String, Object> hashMap = new HashMap<>();
|
hashMap.put("proId",needYear.getProId());
|
hashMap.put("sizeId",needYear.getSizeId());
|
hashMap.put("reinforcementId",tNeedNum.getReinforcementId());
|
hashMap.put("years",needYear.getYears());
|
hashMap.put("strings",strings);
|
num.add(hashMap);
|
}
|
}
|
System.out.println("《------------------------------------》");
|
System.out.println("目前的数量"+num);
|
|
for (TSteelNeedYear needYear:needYears){
|
//项目下 块号
|
List<ProjectBlokDtos> blokDtos = yearMapper.proBlokList(needYear.getProId());
|
|
List<TNeedNum> needNums = yearMapper.needYear(needYear.getSteelNeedId());
|
|
for (TNeedNum tNeedNum:needNums){
|
//条件 : 项目 尺寸 管片 查询下面所有块号 块号
|
// List<Integer> strings = yearMapper.needProSizePipe(needYear.getProId(),needYear.getSizeId(),tNeedNum.getReinforcementId());
|
for (HashMap<String, Object> conuts:num){
|
if(conuts.get("proId").toString().equals(needYear.getProId()) && conuts.get("years").toString().equals(needYear.getYears())
|
&& conuts.get("sizeId").toString().equals(needYear.getSizeId())
|
&& conuts.get("reinforcementId").toString().equals(tNeedNum.getReinforcementId())){
|
List<Integer> strings1 = (List<Integer>) conuts.get("strings");
|
|
|
if(blokDtos.size()==strings1.size()){
|
Integer min = Collections.min(strings1);
|
if(min>=tNeedNum.getNeedNum()){
|
System.out.println("开始值"+strings1);
|
//缺少判断是否是最后一个
|
List<String> collect = needNums.stream().map(a -> {
|
if(conuts.get("proId").toString().equals(needYear.getProId()) && conuts.get("years").toString().equals(needYear.getYears())
|
&& conuts.get("sizeId").toString().equals(needYear.getSizeId())
|
&& conuts.get("reinforcementId").toString().equals(tNeedNum.getReinforcementId())){
|
return a.getId();
|
}else {
|
return null;
|
}
|
}).collect(Collectors.toList());
|
if(collect.get(collect.size()-1).equals(tNeedNum.getId())){
|
for (int i=0 ;i<strings1.size();i++){
|
Integer integer = strings1.get(i);
|
int i1 = (integer - min);
|
strings1.set(i,i1);
|
}
|
conuts.put("strings",strings1);
|
tNeedNum.setOkNum(min);
|
}else {
|
for (int i=0 ;i<strings1.size();i++){
|
Integer integer = strings1.get(i);
|
int i1 = (integer - tNeedNum.getNeedNum());
|
strings1.set(i,i1);
|
}
|
System.out.println("结束值"+strings1);
|
conuts.put("strings",strings1);
|
tNeedNum.setOkNum(tNeedNum.getNeedNum());
|
}
|
|
|
}else if (min<tNeedNum.getNeedNum()&&min>0){
|
for (int i=0 ;i<strings1.size();i++){
|
Integer integer = strings1.get(i);
|
int i1 = (integer - min);
|
strings1.set(i,i1);
|
}
|
conuts.put("strings",strings1);
|
tNeedNum.setOkNum(min);
|
}else {
|
tNeedNum.setOkNum(0);
|
}
|
}
|
}
|
}
|
// if(blokDtos.size()==strings.size()){
|
// Integer min = Collections.min(strings);
|
// tNeedNum.setOkNum(min);
|
// }
|
}
|
needYear.setNeedNums(needNums);
|
}
|
PageInfo<TSteelNeedYear> tSteelNeedYearPageInfo = new PageInfo<>(needYears);
|
return BasicResult.success(tSteelNeedYearPageInfo);
|
}
|
|
@Override
|
@Transactional
|
public BasicResult needYearDel(String steelNeedId) {
|
yearMapper.needYearDel(steelNeedId);
|
yearMapper.needNumDel(steelNeedId);
|
return BasicResult.success("删除成功");
|
}
|
|
@Override
|
public BasicResult needYearInfo(String steelNeedId) {
|
TSteelNeedYear needYear = yearMapper.needYearInfo(steelNeedId);
|
List<TNeedNum> needNums = yearMapper.needYear(needYear.getSteelNeedId());
|
needYear.setNeedNums(needNums);
|
return BasicResult.success(needYear);
|
}
|
|
@Override
|
@Transactional
|
public BasicResult needYearUpdate(Map<String, Object> values) {
|
String steelNeedId = values.get("steelNeedId").toString();
|
String proId = values.get("proId").toString();//项目id
|
String years = values.get("years").toString();//年份
|
String sizeId = values.get("sizeId").toString();//尺寸id
|
String needId = yearMapper.proIdAndYearAndSizeId(proId,years,sizeId);
|
if(!StringUtil.isEmpty(needId)&&!steelNeedId.equals(needId)){
|
return BasicResult.faild("11111","error","项目、年份及尺寸不能重复");
|
}
|
//删除关联表信息
|
yearMapper.needNumDel(steelNeedId);
|
yearMapper.needYearUpdate(values);
|
List<Map<String,Object>> sizeList = (List<Map<String, Object>>) values.get("sizeList");
|
for (Map<String,Object> va : sizeList){
|
va.put("steelNeedId",steelNeedId);
|
yearMapper.needNumInsert(va);
|
}
|
return BasicResult.success("修改成功");
|
}
|
|
}
|