| | |
| | | package org.jeecg.modules.mdc.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.jeecg.common.system.vo.LoginUser; |
| | | import org.jeecg.modules.mdc.entity.MdcEquipment; |
| | | import org.jeecg.modules.mdc.entity.MdcNoplanClose; |
| | | import org.jeecg.modules.mdc.dto.MdcProcessQuantityDto; |
| | | import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration; |
| | | import org.jeecg.modules.mdc.mapper.MdcStandardProcessDurationMapper; |
| | | import org.jeecg.modules.mdc.service.IMdcEquipmentService; |
| | | import org.jeecg.modules.mdc.service.IMdcStandardProcessDurationService; |
| | | import org.jeecgframework.poi.excel.def.NormalExcelConstants; |
| | | import org.jeecgframework.poi.excel.entity.ExportParams; |
| | | import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * @Description: 标准加工时间表 |
| | | * @Description: 标准加工时间 |
| | | * @Author: Lius |
| | | * @Date: 2023-07-17 |
| | | * @Date: 2024-07-08 |
| | | * @Version: V1.0 |
| | | */ |
| | | @Service |
| | | public class MdcStandardProcessDurationServiceImpl extends ServiceImpl<MdcStandardProcessDurationMapper, MdcStandardProcessDuration> implements IMdcStandardProcessDurationService { |
| | | |
| | | @Resource |
| | | private IMdcEquipmentService mdcEquipmentService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * 根据设备id计算标准加工时间 |
| | | * |
| | | * @param userId |
| | | * @param page |
| | | * @param mdcStandardProcessDuration |
| | | * @param req |
| | | * @param equipmentId |
| | | * @param validDate |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<MdcStandardProcessDuration> pageList(String userId, Page<MdcStandardProcessDuration> page, MdcStandardProcessDuration mdcStandardProcessDuration, HttpServletRequest req) { |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getParentId()) && StringUtils.isEmpty(mdcStandardProcessDuration.getEquipmentId())) { |
| | | if ("2".equals(mdcStandardProcessDuration.getTypeTree())) { |
| | | //部门层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcStandardProcessDuration.getParentId()); |
| | | } else { |
| | | //产线层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcStandardProcessDuration.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getEquipmentId())) { |
| | | //单台设备信息 |
| | | mdcStandardProcessDuration.setMdcSectionIds(Collections.singletonList(mdcStandardProcessDuration.getEquipmentId())); |
| | | } else { |
| | | //查询用户拥有的所有设备信息 |
| | | if ("2".equals(mdcStandardProcessDuration.getTypeTree())) { |
| | | //部门层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | //产线层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | |
| | | if (mdcStandardProcessDuration.getMdcSectionIds() == null || mdcStandardProcessDuration.getMdcSectionIds().isEmpty()) { |
| | | mdcStandardProcessDuration.setMdcSectionIds(equipmentIds); |
| | | } |
| | | |
| | | if (mdcStandardProcessDuration.getMdcSectionIds() == null || mdcStandardProcessDuration.getMdcSectionIds().isEmpty()) { |
| | | return null; |
| | | } |
| | | return this.baseMapper.pageList(page, mdcStandardProcessDuration); |
| | | } |
| | | |
| | | /** |
| | | * 导出 |
| | | * |
| | | * @param userId |
| | | * @param mdcStandardProcessDuration |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ModelAndView exportXls(String userId, MdcStandardProcessDuration mdcStandardProcessDuration) { |
| | | LambdaQueryWrapper<MdcStandardProcessDuration> queryWrapper = new LambdaQueryWrapper<>(); |
| | | List<String> equipmentIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getParentId()) && StringUtils.isEmpty(mdcStandardProcessDuration.getEquipmentId())) { |
| | | if ("2".equals(mdcStandardProcessDuration.getTypeTree())) { |
| | | //部门层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcStandardProcessDuration.getParentId()); |
| | | } else { |
| | | //产线层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcStandardProcessDuration.getParentId()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getEquipmentId())) { |
| | | //单台设备信息 |
| | | mdcStandardProcessDuration.setMdcSectionIds(Collections.singletonList(mdcStandardProcessDuration.getEquipmentId())); |
| | | } else { |
| | | //查询用户所拥有的所有设备信息 |
| | | if ("2".equals(mdcStandardProcessDuration.getTypeTree())) { |
| | | //部门层级 |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); |
| | | } else { |
| | | equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); |
| | | } |
| | | } |
| | | if (mdcStandardProcessDuration.getMdcSectionIds() == null || mdcStandardProcessDuration.getMdcSectionIds().isEmpty()) { |
| | | mdcStandardProcessDuration.setMdcSectionIds(equipmentIds); |
| | | } |
| | | if (mdcStandardProcessDuration.getMdcSectionIds() == null || mdcStandardProcessDuration.getMdcSectionIds().isEmpty()) { |
| | | return null; |
| | | } else { |
| | | queryWrapper.in(MdcStandardProcessDuration::getEquipmentId, mdcStandardProcessDuration.getMdcSectionIds()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getEquipmentId())) { |
| | | queryWrapper.like(MdcStandardProcessDuration::getEquipmentId, mdcStandardProcessDuration.getEquipmentId()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getEquipmentName())) { |
| | | queryWrapper.like(MdcStandardProcessDuration::getEquipmentName, mdcStandardProcessDuration.getEquipmentName()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getPartsCode())) { |
| | | queryWrapper.like(MdcStandardProcessDuration::getPartsCode, mdcStandardProcessDuration.getPartsCode()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getBatchCode())) { |
| | | queryWrapper.like(MdcStandardProcessDuration::getBatchCode, mdcStandardProcessDuration.getBatchCode()); |
| | | } |
| | | if (StringUtils.isNotEmpty(mdcStandardProcessDuration.getSequenceNumber())) { |
| | | queryWrapper.like(MdcStandardProcessDuration::getSequenceNumber, mdcStandardProcessDuration.getSequenceNumber()); |
| | | } |
| | | queryWrapper.orderByAsc(MdcStandardProcessDuration::getEquipmentName); |
| | | // Step.2 AutoPoi 导出Excel |
| | | ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
| | | List<MdcStandardProcessDuration> mdcStandardProcessDurations = this.baseMapper.selectList(queryWrapper); |
| | | // 导出文件名称 |
| | | mv.addObject(NormalExcelConstants.FILE_NAME, "标准加工时间列表"); |
| | | mv.addObject(NormalExcelConstants.CLASS, MdcStandardProcessDuration.class); |
| | | //获取当前登录用户 |
| | | //update-begin---author:wangshuai ---date:20211227 for:[JTC-116]导出人写死了------------ |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("标准加工时间列表数据", "导出人:" + user.getRealname(), "标准加工时间")); |
| | | //update-end---author:wangshuai ---date:20211227 for:[JTC-116]导出人写死了------------ |
| | | mv.addObject(NormalExcelConstants.DATA_LIST, mdcStandardProcessDurations); |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | | * 添加数据 |
| | | * |
| | | * @param mdcStandardProcessDuration |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean addData(MdcStandardProcessDuration mdcStandardProcessDuration) { |
| | | boolean result = false; |
| | | String[] equipmentIds = mdcStandardProcessDuration.getEquipmentIds().split(","); |
| | | for (String equipmentId : equipmentIds) { |
| | | MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId); |
| | | MdcStandardProcessDuration standardProcessDuration = new MdcStandardProcessDuration(); |
| | | BeanUtils.copyProperties(mdcStandardProcessDuration, standardProcessDuration); |
| | | standardProcessDuration.setEquipmentId(mdcEquipment.getEquipmentId()); |
| | | standardProcessDuration.setEquipmentName(mdcEquipment.getEquipmentName()); |
| | | boolean b = super.save(standardProcessDuration); |
| | | if (b) { |
| | | result = true; |
| | | public BigDecimal findByEquipmentId(String equipmentId, String validDate) { |
| | | BigDecimal result = BigDecimal.ZERO; |
| | | List<MdcProcessQuantityDto> list = this.baseMapper.findByEquipmentId(equipmentId, validDate); |
| | | if (list != null && !list.isEmpty()) { |
| | | for (MdcProcessQuantityDto mdcProcessQuantityDto : list) { |
| | | Integer duration = mdcProcessQuantityDto.getDuration(); |
| | | Integer processQuantity = mdcProcessQuantityDto.getProcessQuantity(); |
| | | result = result.add(new BigDecimal(duration * processQuantity)); |
| | | } |
| | | } |
| | | return result; |