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 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> sizeList = (List>) 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 va : sizeList){ va.put("steelNeedId",values.get("steelNeedId").toString()); yearMapper.needNumInsert(va); } return BasicResult.success("添加成功"); } @Override public BasicResult needYearList(Map 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 needYears = yearMapper.needYearList(values); List< HashMap> num = new ArrayList >(); for (TSteelNeedYear needYear:needYears){ //查看项目下有多少培新 List needNums = yearMapper.proIdAndHas(needYear.getProId()); for (TNeedNum tNeedNum:needNums){ //条件 : 项目 尺寸 管片 查询下面所有块号 块号 List strings = yearMapper.needProSizePipe(needYear.getProId(),needYear.getSizeId(),tNeedNum.getReinforcementId(),needYear.getYears()); HashMap 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 blokDtos = yearMapper.proBlokList(needYear.getProId()); List needNums = yearMapper.needYear(needYear.getSteelNeedId()); for (TNeedNum tNeedNum:needNums){ //条件 : 项目 尺寸 管片 查询下面所有块号 块号 // List strings = yearMapper.needProSizePipe(needYear.getProId(),needYear.getSizeId(),tNeedNum.getReinforcementId()); for (HashMap 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 strings1 = (List) conuts.get("strings"); if(blokDtos.size()==strings1.size()){ Integer min = Collections.min(strings1); if(min>=tNeedNum.getNeedNum()){ System.out.println("开始值"+strings1); //缺少判断是否是最后一个 List 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 ;i0){ for (int i=0 ;i 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 needNums = yearMapper.needYear(needYear.getSteelNeedId()); needYear.setNeedNums(needNums); return BasicResult.success(needYear); } @Override @Transactional public BasicResult needYearUpdate(Map 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> sizeList = (List>) values.get("sizeList"); for (Map va : sizeList){ va.put("steelNeedId",steelNeedId); yearMapper.needNumInsert(va); } return BasicResult.success("修改成功"); } @Override public BasicResult selectSteelInfo(Map 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> list = this.yearMapper.selectSteelInfo(values); PageInfo> pageInfo = new PageInfo<>(list); return BasicResult.success(pageInfo); } @Override public BasicResult selectPipeInfo(Map 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> list = this.yearMapper.selectPipeInfo(values); PageInfo> pageInfo = new PageInfo<>(list); return BasicResult.success(pageInfo); } }