package doumeemes.service.ext.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.core.utils.redis.RedisUtil; import doumeemes.dao.business.MaterialMapper; import doumeemes.dao.business.dto.QueryUnitExtDTO; import doumeemes.dao.business.model.BarcodeParam; import doumeemes.dao.business.model.Material; import doumeemes.dao.business.vo.UnitExtListVO; import doumeemes.dao.ext.MaterialExtMapper; import doumeemes.dao.ext.bean.MaterialDetailBean; import doumeemes.dao.ext.dto.QueryCategoryUnionExtDTO; import doumeemes.dao.ext.dto.QueryMaterialDistributeExtDTO; import doumeemes.dao.ext.dto.QueryMaterialExtDTO; import doumeemes.dao.ext.vo.CategoryExtListVO; import doumeemes.dao.ext.vo.CategoryUnionExtListVO; import doumeemes.dao.ext.vo.MaterialDistributeExtListVO; import doumeemes.dao.ext.vo.MaterialExtListVO; import doumeemes.service.business.BarcodeParamService; import doumeemes.service.business.UnitExtService; import doumeemes.service.business.impl.MaterialDistributeServiceImpl; import doumeemes.service.business.impl.MaterialServiceImpl; import doumeemes.service.ext.CategoryUnionExtService; import doumeemes.service.ext.MaterialDistributeExtService; import doumeemes.service.ext.MaterialExtService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.*; /** * 物料基本信息Service实现 * @author 江蹄蹄 * @date 2022/04/20 10:59 */ @Service public class MaterialExtServiceImpl implements MaterialExtService { @Autowired private MaterialExtMapper materialExtMapper; @Autowired private RedisTemplate redisTemplate; @Autowired private MaterialDistributeExtService materialDistributeExtService; @Autowired private MaterialServiceImpl materialServiceimpl; @Autowired private MaterialMapper materialMapper; @Autowired private MaterialDistributeServiceImpl materialDistributeServiceimpl; @Autowired private UnitExtService unitExtService; @Autowired private CategoryUnionExtService categoryUnionExtService; @Autowired private BarcodeParamService barcodeParamService; @Override public PageData findPage(PageWrap pageWrap) { PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); pageWrap.getModel().setDeleted(Constants.ZERO); pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); List result = materialExtMapper.getListByCondition(pageWrap.getModel()); List clist = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_CATEGORY_KEY+user.getCompany().getId(), ArrayList.class); for(int i=0;i(result)); } @Override public MaterialDetailBean findDetailById(Integer id) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); MaterialDetailBean materialDetailBean=new MaterialDetailBean(); QueryMaterialExtDTO query=new QueryMaterialExtDTO(); query.setId(id); List result = materialExtMapper.getListByCondition(query); List clist = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_CATEGORY_KEY+user.getCompany().getId(), ArrayList.class); for(int i=0;i0){ MaterialExtListVO mev=result.get(0); materialDetailBean=new MaterialDetailBean().toMaterialDetail(mev); //获取分配公司级组织信息 QueryMaterialDistributeExtDTO que=new QueryMaterialDistributeExtDTO(); que.setRootDepartId(user.getRootDepartment().getId()); que.setMaterialId(id); que.setDeleted(Constants.ZERO); List mdList= materialDistributeExtService.findListByCondition(que); List> res=new ArrayList<>(); if(mdList.size()>0){ for(int i=0;i map=new HashMap<>(); map.put("id",mdev.getId()); System.out.println(mdev.getDmodelName()); map.put("dmodelName",mdev.getDmodelName()); if(mdev.getStatus()!=null){ if(mdev.getStatus()==0){ map.put("status","无效"); }else if(mdev.getStatus()==1){ map.put("status","有效"); } }else{ map.put("status",null); } map.put("createTime",mdev.getCreateTime()); res.add(map); } } materialDetailBean.setMdlist(res); return materialDetailBean; }else{ return materialDetailBean; } } @Override public List getListByCondition(QueryMaterialExtDTO pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); pageWrap.setDeleted(Constants.ZERO); pageWrap.setRootDepartId(user.getRootDepartment().getId()); List result = materialExtMapper.getListByCondition(pageWrap); for(int i=0;i materialList = EasyExcelUtil.importExcel(file, 1, 1, Material.class); if(materialList == null || materialList.size()==0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!"); } for(int i=0;i list=materialServiceimpl.findList(findMi); if(list.size()>0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "第"+counter+"行:主组织内编码不能重复!"); } Material findMi1=new Material(); findMi1.setDeleted(Constants.ZERO); findMi1.setRootDepartId(user.getRootDepartment().getId()); findMi1.setName(material.getName()); List list1=materialServiceimpl.findList(findMi1); if(list1.size()>0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"第"+counter+"行:主组织内名称不能重复!"); } QueryUnitExtDTO pageWrap=new QueryUnitExtDTO(); pageWrap.setDeleted(Constants.ZERO); pageWrap.setRootDepartId(user.getRootDepartment().getId()); pageWrap.setType(Constants.ZERO); pageWrap.setStatus(Constants.ONE); pageWrap.setName(material.getUnitname().trim()); List unitlist=unitExtService.getUnitListByOrg(pageWrap); if(unitlist!=null&&unitlist.size()>0){ material.setUnitId(unitlist.get(0).getId()); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"第"+counter+"行:单位不存在/没有有效的单位!"); } if(StringUtils.equals(material.getFormationname().trim(),"生产")){ material.setFormation(0); }else if(StringUtils.equals(material.getFormationname().trim(),"采购")){ material.setFormation(1); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"第"+counter+"行:形成方式类型错误!"); } QueryCategoryUnionExtDTO categoryUnion=new QueryCategoryUnionExtDTO(); categoryUnion.setDeleted(Constants.ZERO); categoryUnion.setRootDepartId(user.getRootDepartment().getId()); categoryUnion.setBmodelCateType("0"); List catelist= categoryUnionExtService.getCategoryUnionListByOrg(categoryUnion); if(catelist!=null&&catelist.size()>0){ for(int j=0;j