| | |
| | | package com.ruoyi.management.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.core.utils.page.BeanUtils; |
| | | import com.ruoyi.common.core.utils.page.PageDTO; |
| | | import com.ruoyi.management.domain.SlGoodsShelf; |
| | | import com.ruoyi.management.domain.SlStoreManagement; |
| | | import com.ruoyi.management.domain.SlVolumeProductionRkgl; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.management.domain.*; |
| | | import com.ruoyi.management.domain.dto.SupplierVolumeProductionRkglQuery; |
| | | import com.ruoyi.management.domain.vo.SlGoodsShelfVO; |
| | | import com.ruoyi.management.domain.dto.VolumeProductionRkglDTO; |
| | | import com.ruoyi.management.domain.vo.ManagementimgVolumeProductionRkVO; |
| | | import com.ruoyi.management.domain.vo.SupplierVolumeProductionRkglVO; |
| | | import com.ruoyi.management.domain.vo.VolumeProductionRkgInfoVO; |
| | | import com.ruoyi.management.mapper.SlStoreManagementMapper; |
| | | import com.ruoyi.management.mapper.SlVolumeProductionRkglMapper; |
| | | import com.ruoyi.management.domain.vo.VolumeProductionRkgInventoryVO; |
| | | import com.ruoyi.management.mapper.*; |
| | | import com.ruoyi.management.service.SlVolumeProductionRkglService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.domain.getVolumeProductionRkQuery; |
| | | import com.ruoyi.system.api.feignClient.LogClient; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import javax.xml.crypto.Data; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Resource |
| | | private SlStoreManagementMapper slStoreManagementMapper; |
| | | |
| | | @Resource |
| | | private SlVolumeProductionRkMapper slVolumeProductionRkMapper; |
| | | |
| | | @Resource |
| | | private SlGoodsMaterialsMapper slGoodsMaterialsMapper; |
| | | |
| | | @Resource |
| | | private SlGoodsShelfMapper slGoodsShelfMapper; |
| | | |
| | | @Resource |
| | | private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper; |
| | | |
| | | @Resource |
| | | private LogClient logClient; |
| | | |
| | | @Override |
| | | public PageDTO<SupplierVolumeProductionRkglVO> getSupplierVolumeProductionRkglList(SupplierVolumeProductionRkglQuery supplierVolumeProductionRkglQuery) { |
| | | Page<SlVolumeProductionRkgl> page = new Page<>(supplierVolumeProductionRkglQuery.getPageCurr(), supplierVolumeProductionRkglQuery.getPageSize()); |
| | | LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery(); |
| | | wrapper1.like(SlVolumeProductionRkgl::getSupplierId,supplierVolumeProductionRkglQuery.getSupplierId()); |
| | | wrapper1.eq(SlVolumeProductionRkgl::getSupplierId,supplierVolumeProductionRkglQuery.getSupplierId()); |
| | | wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0); |
| | | wrapper1.orderByDesc(SlVolumeProductionRkgl::getCreateTime); |
| | | Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Integer id) { |
| | | public VolumeProductionRkgInfoVO getVolumeProductionRkgInfo(Long id) { |
| | | SlVolumeProductionRkgl byId = this.getById(id); |
| | | // 根据仓库id 查询仓库管理员 |
| | | VolumeProductionRkgInfoVO v=BeanUtils.copyBean(byId, VolumeProductionRkgInfoVO.class); |
| | | SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); |
| | | v.setZhuren(slStoreManagement.getDirectorId()); |
| | | v.setZhuguan(slStoreManagement.getCompetentId()); |
| | | v.setGuanliyuan(slStoreManagement.getAdministratorId()); |
| | | v.setStoreManagementName(slStoreManagement.getStoreManagementName()); |
| | | SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData(); |
| | | v.setSupplierName(data.getNickName()); |
| | | SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); |
| | | v.setSysName(data1.getNickName()); |
| | | if (byId.getSupplierId()!=null){ |
| | | SysUser data = sysUserClient.getSysUser(Long.valueOf(byId.getSupplierId())).getData(); |
| | | if (data!=null){ |
| | | v.setSupplierName(data.getNickName()); |
| | | v.setSupplierPhone(data.getPhonenumber()); |
| | | } |
| | | } |
| | | v.setSupplierId(byId.getSupplierId()); |
| | | if (byId.getSysId()!=null){ |
| | | SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); |
| | | if (data1!=null){ |
| | | v.setSysName(data1.getNickName()); |
| | | v.setSysPhone(data1.getPhonenumber()); |
| | | } |
| | | } |
| | | v.setAuthorization(byId.getAuthorizationUrl()); |
| | | v.setReason(byId.getReasonsRefusal()); |
| | | return v; |
| | | } |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | @Override |
| | | public PageDTO<SupplierVolumeProductionRkglVO> getslVolumeProductionRkglList(getVolumeProductionRkQuery getVolumeProductionRkQuery) { |
| | | Page<SlVolumeProductionRkgl> page = new Page<>(getVolumeProductionRkQuery.getPageCurr(), getVolumeProductionRkQuery.getPageSize()); |
| | | |
| | | List<SysUser> data1 = sysUserClient.getUserSupplierList(getVolumeProductionRkQuery).getData(); |
| | | Set<Long> goodsSkuIdList = null; |
| | | List<Long> managementIds = new ArrayList<>(); |
| | | goodsSkuIdList = data1.stream().map(SysUser::getUserId) |
| | | .collect(Collectors.toSet()); |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | SysUser data2 = sysUserClient.getSysUser(userid).getData(); |
| | | LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery(); |
| | | QueryWrapper<SlStoreManagement> storeManagementGrade = new QueryWrapper<SlStoreManagement>() |
| | | .eq("del_flag", "0"); |
| | | if (data2!=null){ |
| | | if (!data2.getUserType().equals("00")){ |
| | | // 仓库管理员 根据仓库管理员的等级查询对应的仓库 |
| | | switch (data2.getRoleType()){ |
| | | case 3: |
| | | storeManagementGrade.ge("store_management_grade",3); |
| | | storeManagementGrade.eq("city_code",data2.getCityCode()); |
| | | managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() |
| | | .map(SlStoreManagement::getId).collect(Collectors.toList()); |
| | | break; |
| | | case 4: |
| | | storeManagementGrade.ge("store_management_grade",4); |
| | | storeManagementGrade.eq("county_code",data2.getCountyCode()); |
| | | managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() |
| | | .map(SlStoreManagement::getId).collect(Collectors.toList()); |
| | | break; |
| | | case 5: |
| | | storeManagementGrade.ge("store_management_grade",5); |
| | | storeManagementGrade.eq("town_code",data2.getTownCode()); |
| | | managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() |
| | | .map(SlStoreManagement::getId).collect(Collectors.toList()); |
| | | break; |
| | | case 6: |
| | | storeManagementGrade.eq("store_management_grade",6); |
| | | storeManagementGrade.eq("town_code",data2.getTownCode()); |
| | | managementIds = slStoreManagementMapper.selectList(storeManagementGrade).stream() |
| | | .map(SlStoreManagement::getId).collect(Collectors.toList()); |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | if (!managementIds.isEmpty()){ |
| | | wrapper1.in(SlVolumeProductionRkgl::getManagementId,managementIds); |
| | | } |
| | | if (getVolumeProductionRkQuery.getPresentState()!=null && getVolumeProductionRkQuery.getPresentState()!=0){ |
| | | wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState()); |
| | | } |
| | | if (getVolumeProductionRkQuery.getAuditStatus()!=null && getVolumeProductionRkQuery.getAuditStatus()!=0) { |
| | | wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus, getVolumeProductionRkQuery.getAuditStatus()); |
| | | } |
| | | if (goodsSkuIdList.size()>0){ |
| | | wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList); |
| | | }else{ |
| | | goodsSkuIdList=new HashSet<>(); |
| | | goodsSkuIdList.add(0l); |
| | | wrapper1.in(SlVolumeProductionRkgl::getSysId,goodsSkuIdList); |
| | | } |
| | | wrapper1.eq( SlVolumeProductionRkgl::getDelFlag,0); |
| | | wrapper1.orderByDesc(SlVolumeProductionRkgl::getStartiTime); |
| | | Page<SlVolumeProductionRkgl> page2 = this.page(page, wrapper1); |
| | | PageDTO<SupplierVolumeProductionRkglVO> SlGoodsShelfDTO = PageDTO.of(page2, SupplierVolumeProductionRkglVO.class); |
| | | List<SupplierVolumeProductionRkglVO> list2 = SlGoodsShelfDTO.getList(); |
| | | for(SupplierVolumeProductionRkglVO list:list2){ |
| | | SysUser data = sysUserClient.getSysUser(list.getSysId()).getData(); |
| | | list.setNickName(data.getNickName()); |
| | | list.setPhonenumber(data.getPhonenumber()); |
| | | SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(list.getManagementId()); |
| | | if (slStoreManagement!=null){ |
| | | list.setStoreManagementName(slStoreManagement.getStoreManagementName()); |
| | | } |
| | | } |
| | | return SlGoodsShelfDTO; |
| | | } |
| | | |
| | | @Override |
| | | public Long addVolumeProductionRkgl(VolumeProductionRkglDTO volumeProductionRkglDTO) { |
| | | SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(volumeProductionRkglDTO.getManagementId()); |
| | | String directorId = slStoreManagement.getDirectorId(); |
| | | String competentId = slStoreManagement.getCompetentId(); |
| | | String administratorId = slStoreManagement.getAdministratorId(); |
| | | Long userid = SecurityUtils.getUserId(); |
| | | List<String> list1 = Arrays.asList(administratorId.split(",")); |
| | | List<String> list2 = Arrays.asList(competentId.split(",")); |
| | | List<String> list3 = Arrays.asList(directorId.split(",")); |
| | | SlVolumeProductionRkgl slVolumeProductionRkgl=null; |
| | | if (volumeProductionRkglDTO.getId()==null){ |
| | | slVolumeProductionRkgl = new SlVolumeProductionRkgl(); |
| | | slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl()); |
| | | slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization()); |
| | | slVolumeProductionRkgl.setManagementId(volumeProductionRkglDTO.getManagementId()); |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | slVolumeProductionRkgl.setPresentState(1); |
| | | slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId()); |
| | | slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource()); |
| | | slVolumeProductionRkgl.setStartiTime(new Date()); |
| | | slVolumeProductionRkgl.setSysId(userid); |
| | | slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark()); |
| | | // 如果发起人是主任 主管 或 管理员 |
| | | if (list1.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | slVolumeProductionRkgl.setPresentState(2); |
| | | } |
| | | if (list2.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | slVolumeProductionRkgl.setPresentState(3); |
| | | } |
| | | if (list3.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(3); |
| | | slVolumeProductionRkgl.setPresentState(4); |
| | | } |
| | | this.save(slVolumeProductionRkgl); |
| | | }else{ |
| | | slVolumeProductionRkgl = this.getById(volumeProductionRkglDTO.getId()); |
| | | slVolumeProductionRkgl.setPresentState(1); |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | if (volumeProductionRkglDTO.getSource()!=null){ |
| | | slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource()); |
| | | } |
| | | if (volumeProductionRkglDTO.getRemark()!=null){ |
| | | slVolumeProductionRkgl.setRemark(volumeProductionRkglDTO.getRemark()); |
| | | } |
| | | if (volumeProductionRkglDTO.getSupplierId()!=null){ |
| | | slVolumeProductionRkgl.setSupplierId(volumeProductionRkglDTO.getSupplierId()); |
| | | } |
| | | if (volumeProductionRkglDTO.getAttachmentUrl()!=null){ |
| | | slVolumeProductionRkgl.setAttachmentUrl(volumeProductionRkglDTO.getAttachmentUrl()); |
| | | } |
| | | if (volumeProductionRkglDTO.getAuthorization()!=null){ |
| | | slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionRkglDTO.getAuthorization()); |
| | | } |
| | | // 如果发起人是主任 主管 或 管理员 |
| | | if (list1.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | slVolumeProductionRkgl.setPresentState(2); |
| | | } |
| | | if (list2.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(1); |
| | | slVolumeProductionRkgl.setPresentState(3); |
| | | } |
| | | if (list3.contains(userid.toString())){ |
| | | slVolumeProductionRkgl.setAuditStatus(3); |
| | | slVolumeProductionRkgl.setPresentState(4); |
| | | } |
| | | this.updateById(slVolumeProductionRkgl); |
| | | |
| | | } |
| | | return slVolumeProductionRkgl.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public VolumeProductionRkgInventoryVO getVolumeProductionRkgInventory(Long id) { |
| | | SlVolumeProductionRkgl byId = this.getById(id); |
| | | VolumeProductionRkgInventoryVO vo = new VolumeProductionRkgInventoryVO(); |
| | | SysUser data = sysUserClient.getSysUser(byId.getSysId()).getData(); |
| | | vo.setSysPhone(data.getPhonenumber()); |
| | | vo.setSysName(data.getNickName()); |
| | | vo.setStartiTime(byId.getStartiTime()); |
| | | SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); |
| | | vo.setStoreManagementName(slStoreManagement.getStoreManagementName()); |
| | | String directorId = slStoreManagement.getDirectorId(); |
| | | List<String> stri = Arrays.asList(directorId.split(",")); |
| | | String str1 =""; |
| | | if (stri.size() > 0) { |
| | | for (String str : stri) { |
| | | SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); |
| | | str1 += data1.getNickName() + ","; |
| | | } |
| | | } |
| | | vo.setDirectorName(str1.substring(0, str1.length() - 1)); |
| | | |
| | | String competentId = slStoreManagement.getCompetentId(); |
| | | List<String> stri1 = Arrays.asList(competentId.split(",")); |
| | | String str11 = ""; |
| | | if (stri1.size() > 0) { |
| | | for (String str : stri1) { |
| | | SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); |
| | | str11 += data1.getNickName() + ","; |
| | | } |
| | | } |
| | | vo.setCompetentName(str11.substring(0, str11.length() - 1)); |
| | | |
| | | String administratorId = slStoreManagement.getAdministratorId(); |
| | | List<String> stri11 = Arrays.asList(administratorId.split(",")); |
| | | String str111 = ""; |
| | | if (stri11.size() > 0) { |
| | | for (String str : stri11) { |
| | | SysUser data1 = sysUserClient.getSysUser(Long.valueOf(str)).getData(); |
| | | str111 += data1.getNickName() + ","; |
| | | } |
| | | } |
| | | vo.setAdministratorName(str111.substring(0, str111.length() - 1)); |
| | | |
| | | List<ManagementimgVolumeProductionRkVO> managementList = new ArrayList<>(); |
| | | |
| | | |
| | | LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery(); |
| | | wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, byId.getId()); |
| | | wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0); |
| | | wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); |
| | | SysUser data1 = sysUserClient.getSysUser(byId.getSupplierId()).getData(); |
| | | List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1); |
| | | for (SlVolumeProductionRk list : page2) { |
| | | ManagementimgVolumeProductionRkVO rkVO = new ManagementimgVolumeProductionRkVO(); |
| | | SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); |
| | | rkVO.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); |
| | | rkVO.setIsConsume(slGoodsMaterials.getIsConsume()); |
| | | rkVO.setRkModel(list.getRkModel()); |
| | | rkVO.setRkNum(list.getRkNum()); |
| | | rkVO.setRkPice(list.getRkPice()); |
| | | rkVO.setStoreManagementNumber(list.getStoreManagementNumber()); |
| | | SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(list.getShelfId()); |
| | | rkVO.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); |
| | | rkVO.setSupplierName(data1.getNickName()); |
| | | managementList.add(rkVO); |
| | | } |
| | | vo.setManagementimgVolumeProductionRkVOList(managementList); |
| | | return vo; |
| | | } |
| | | |
| | | @Override |
| | | public void rk(Long id) { |
| | | LambdaQueryWrapper<SlVolumeProductionRk> wrapper1 = Wrappers.lambdaQuery(); |
| | | wrapper1.eq(SlVolumeProductionRk::getVolumeProductionRkglId, id); |
| | | wrapper1.eq(SlVolumeProductionRk::getDelFlag, 0); |
| | | wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); |
| | | List<SlVolumeProductionRk> page2 = slVolumeProductionRkMapper.selectList(wrapper1); |
| | | for (SlVolumeProductionRk list : page2) { |
| | | list.setNewAddTime("1"); |
| | | list.setSmerwmNum(list.getErwmNum()); |
| | | LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery(); |
| | | wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,list.getMaterialsId()); |
| | | wrapper2.eq(ManagementGoodsMaterials::getManagementId,list.getManagementId()); |
| | | wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0); |
| | | ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2); |
| | | |
| | | SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(list.getMaterialsId()); |
| | | |
| | | if (managementGoodsMaterials!=null){ |
| | | Long repertorySum = managementGoodsMaterials.getRepertorySum(); |
| | | Long repertoryZhai = managementGoodsMaterials.getRepertoryZhai(); |
| | | Long re=repertorySum+list.getRkNum(); |
| | | Long re1=repertoryZhai+list.getRkNum(); |
| | | managementGoodsMaterials.setRepertorySum(re); |
| | | managementGoodsMaterials.setRepertoryZhai(re1); |
| | | managementGoodsMaterials.setRepertory(slGoodsMaterials.getRepertory()); |
| | | managementGoodsMaterialsMapper.updateById(managementGoodsMaterials); |
| | | }else{ |
| | | ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials(); |
| | | managementGoodsMaterials1.setManagementId(list.getManagementId()); |
| | | managementGoodsMaterials1.setGoodsMaterialsId(list.getMaterialsId()); |
| | | managementGoodsMaterials1.setRepertoryZhai(list.getRkNum()); |
| | | managementGoodsMaterials1.setRepertorySum(list.getRkNum()); |
| | | managementGoodsMaterials1.setCreateTime(new Date()); |
| | | managementGoodsMaterials1.setRepertory(slGoodsMaterials.getRepertory()); |
| | | managementGoodsMaterialsMapper.insert(managementGoodsMaterials1); |
| | | } |
| | | slVolumeProductionRkMapper.updateById(list); |
| | | } |
| | | SlVolumeProductionRkgl byId = this.getById(id); |
| | | byId.setPresentState(4); |
| | | byId.setAuditStatus(6); |
| | | byId.setEndTime(new Date()); |
| | | this.updateById(byId); |
| | | |
| | | logClient.savelong(); |
| | | } |
| | | |
| | | } |