| | |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.basic.dto.FactoryDto; |
| | | import com.ruoyi.basic.dto.LaboratoryDto; |
| | | import com.ruoyi.basic.dto.*; |
| | | import com.ruoyi.basic.pojo.IfsInventoryQuantity; |
| | | import com.ruoyi.common.constant.InsOrderTypeConstants; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import com.ruoyi.common.core.domain.entity.User; |
| | | import com.ruoyi.common.config.WechatProperty; |
| | | import com.ruoyi.common.utils.LimsDateUtil; |
| | | import com.ruoyi.common.utils.QueryWrappers; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.WxCpUtils; |
| | | import com.ruoyi.inspect.dto.CopperInsOrderDto; |
| | | import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto; |
| | | import com.ruoyi.basic.dto.SampleTypeDto; |
| | | import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; |
| | | import com.ruoyi.basic.mapper.StandardTreeMapper; |
| | | import com.ruoyi.inspect.dto.SampleProductDto; |
| | | import com.ruoyi.inspect.mapper.InsOrderMapper; |
| | | import com.ruoyi.inspect.mapper.InsProductMapper; |
| | | import com.ruoyi.inspect.mapper.InsSampleMapper; |
| | | import com.ruoyi.inspect.pojo.InsOrder; |
| | | import com.ruoyi.inspect.pojo.InsReport; |
| | | import com.ruoyi.inspect.service.InsOrderService; |
| | | import com.ruoyi.inspect.service.InsReportService; |
| | | import com.ruoyi.inspect.service.RawMaterialOrderService; |
| | | import com.ruoyi.common.numgen.NumberGenerator; |
| | | import com.ruoyi.framework.exception.ErrorException; |
| | | import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; |
| | | import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; |
| | | import com.ruoyi.system.mapper.UserMapper; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | |
| | | |
| | | private StandardTreeMapper standardTreeMapper; |
| | | private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; |
| | | private GetLook getLook; |
| | | private UserMapper userMapper; |
| | | private InsOrderService insOrderService; |
| | | private InsOrderMapper insOrderMapper; |
| | |
| | | |
| | | |
| | | @Override |
| | | public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) { |
| | | if (StringUtils.isBlank(partNo)) { |
| | | throw new ErrorException("零件号丢失"); |
| | | } |
| | | public Result selectStandardTreeListByPartNo(String partNo) { |
| | | List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo); |
| | | if (CollectionUtil.isEmpty(factoryDtos)) { |
| | | throw new ErrorException("零件号为" + partNo + "的原材料没有对应的标准库配置"); |
| | | return Result.success(null, "零件号为" + partNo + "的原材料没有对应的标准库配置"); |
| | | } |
| | | RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto(); |
| | | for (FactoryDto factoryDto : factoryDtos) { |
| | | for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { |
| | | for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { |
| | | if (sampleTypeDto.getChildren().size() == 0) { |
| | | sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); |
| | | } |
| | | // 判断绑定的是否是当前零件号 |
| | | if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) { |
| | | // 添加对象 |
| | | rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" |
| | | + laboratoryDto.getValue() + "-" |
| | | + sampleTypeDto.getValue()); |
| | | rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode()); |
| | | rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel()); |
| | | rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue()); |
| | | rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren()); |
| | | } else { |
| | | for (SampleDto sampleDto : sampleTypeDto.getChildren()) { |
| | | if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) { |
| | | for (ObjectTypeDto objectTypeDto : laboratoryDto.getChildren()) { |
| | | for (WorkShopNameDto workShopNameDto : objectTypeDto.getChildren()) { |
| | | for (SampleTypeDto sampleTypeDto : workShopNameDto.getChildren()) { |
| | | if (sampleTypeDto.getChildren().size() == 0) { |
| | | sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); |
| | | } |
| | | // 判断绑定的是否是当前零件号 |
| | | if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) { |
| | | // 添加对象 |
| | | rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" |
| | | + laboratoryDto.getValue() + "-" |
| | | + sampleTypeDto.getValue() + "-" |
| | | + sampleDto.getValue()); |
| | | rawMaterialStandardTreeDto.setCode(sampleDto.getCode()); |
| | | rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel()); |
| | | rawMaterialStandardTreeDto.setValue(sampleDto.getValue()); |
| | | rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren()); |
| | | + laboratoryDto.getValue() + "-" + objectTypeDto.getValue() + "-" + workShopNameDto.getValue() + "-" |
| | | + sampleTypeDto.getValue()); |
| | | rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode()); |
| | | rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel()); |
| | | rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue()); |
| | | rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren()); |
| | | rawMaterialStandardTreeDto.setWorkShopName(sampleTypeDto.getWorkShopName()); |
| | | rawMaterialStandardTreeDto.setWorkShopId(sampleTypeDto.getWorkShopId()); |
| | | } else { |
| | | for (SampleDto sampleDto : sampleTypeDto.getChildren()) { |
| | | if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) { |
| | | // 添加对象 |
| | | rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-" |
| | | + laboratoryDto.getValue() + "-" + objectTypeDto.getValue() + "-" + workShopNameDto.getValue() + "-" |
| | | + sampleTypeDto.getValue() + "-" |
| | | + sampleDto.getValue()); |
| | | rawMaterialStandardTreeDto.setCode(sampleDto.getCode()); |
| | | rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel()); |
| | | rawMaterialStandardTreeDto.setValue(sampleDto.getValue()); |
| | | rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren()); |
| | | rawMaterialStandardTreeDto.setWorkShopName(sampleTypeDto.getWorkShopName()); |
| | | rawMaterialStandardTreeDto.setWorkShopId(sampleTypeDto.getWorkShopId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return rawMaterialStandardTreeDto; |
| | | return Result.success(rawMaterialStandardTreeDto); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("head", PrintChina.printChina(IfsInventoryQuantity.class)); |
| | | map.put("body", standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity))); |
| | | return map; |
| | | public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) { |
| | | return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) { |
| | | Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); |
| | | if (map1.get("look") == 1) { |
| | | //个人 |
| | | ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | // ifsInventoryQuantityDto.setOrderState(null); |
| | | map.put("head", PrintChina.printChina(IfsInventoryQuantityDto.class)); |
| | | map.put("body", standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto))); |
| | | return map; |
| | | public IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) { |
| | | return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 报检 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @Override |
| | | public int inspectionReport(List<Integer> ids) { |
| | | Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); |
| | | Integer userId = SecurityUtils.getUserId().intValue(); |
| | | ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() |
| | | .in(IfsInventoryQuantity::getId, ids) |
| | | .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) |
| | |
| | | |
| | | /** |
| | | * 撤销报检 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 打印标签查询 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 报检 |
| | | * |
| | | * @param ifsInventoryQuantity |
| | | * @return |
| | | */ |
| | | @Override |
| | | public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) { |
| | | Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); |
| | | Integer userId = SecurityUtils.getUserId().intValue(); |
| | | ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() |
| | | .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId()) |
| | | .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName()) |
| | |
| | | |
| | | /** |
| | | * 获取铜产业链检测数据 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料撤销接口 |
| | | * |
| | | * @param ifsInventoryId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料免检下单 |
| | | * |
| | | * @param list |
| | | * @param insOrder |
| | | * @return |
| | |
| | | |
| | | /** |
| | | * 查询待下单 |
| | | * |
| | | * @param page |
| | | * @param ifsInventoryQuantity |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Map<String, Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("head", PrintChina.printChina(IfsInventoryQuantityCheckDto.class)); |
| | | map.put("body", standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity))); |
| | | return map; |
| | | public IPage<IfsInventoryQuantityCheckDto> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) { |
| | | return standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)); |
| | | } |
| | | |
| | | /** |
| | | * 查询已检验 |
| | | * |
| | | * @param page |
| | | * @param ifsInventoryQuantityDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Map<String, Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { |
| | | Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); |
| | | if (map1.get("look") == 1) { |
| | | //个人 |
| | | ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); |
| | | } |
| | | public IPage<IfsInventoryQuantitySupplierDto> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { |
| | | // todo: 只看我 |
| | | String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); |
| | | String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); |
| | | ifsInventoryQuantityDto.setBeginDeclareDate(null); |
| | | ifsInventoryQuantityDto.setEndDeclareDate(null); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class)); |
| | | map.put("body", standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate)); |
| | | return map; |
| | | IPage<IfsInventoryQuantitySupplierDto> ifsByOver = standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); |
| | | return ifsByOver; |
| | | } |
| | | |
| | | /** |
| | | * 删除原材料报检信息 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料放行免检 |
| | | * |
| | | * @param ifsInventoryId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 0, 无提示, 1提示 当前批次的样品已检验过, 可以免检, 2 提示 当前批次的样品已超20吨, 需要多级多次检验 |
| | | * |
| | | * <p> |
| | | * 原材料下单通知免检或者多次检验 |
| | | * |
| | | * @param ifsInventoryId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 报检可以新增报检信息 |
| | | * |
| | | * @param ifsInventoryQuantity |
| | | */ |
| | | @Override |
| | |
| | | ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); |
| | | } |
| | | |
| | | @Override |
| | | public void shiftingParking(List<Integer> ids) { |
| | | for (Integer id : ids) { |
| | | InsOrder order = insOrderService.getById(id); |
| | | // todo: ifs直接移库 |
| | | insReportService.isRawMaterial(order); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 铜单丝下单免检 |
| | | * |
| | | * @param list |
| | | * @param insOrder |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料进厂撤销下单 |
| | | * |
| | | * @param enterOrderId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料季度撤销下单 |
| | | * |
| | | * @param quarterOrderId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料报检全部信息导出 |
| | | * |
| | | * @param ifsInventoryQuantityDto |
| | | * @param response |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 原材料查询可以季度检验的内容 |
| | | * |
| | | * @param page |
| | | * @param ifsInventoryQuantityDto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Map<String, Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { |
| | | Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne"); |
| | | if (map1.get("look") == 1) { |
| | | //个人 |
| | | ifsInventoryQuantityDto.setCreateUser(map1.get("userId")); |
| | | } |
| | | public IPage<IfsInventoryQuantitySupplierDto> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) { |
| | | |
| | | // todo: 只看我 |
| | | String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate(); |
| | | String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate(); |
| | | ifsInventoryQuantityDto.setBeginDeclareDate(null); |
| | | ifsInventoryQuantityDto.setEndDeclareDate(null); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class)); |
| | | map.put("body", standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate)); |
| | | return map; |
| | | return standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate); |
| | | } |
| | | |
| | | /** |
| | | * 提前入库 |
| | | * |
| | | * @param ifsInventoryId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 添加工时 |
| | | * |
| | | * @param insOrder |
| | | * @param ifsInventoryQuantity |
| | | */ |
| | |
| | | DateTime parse = DateUtil.parse(localDateTime.format(formatter)); |
| | | auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//星期 |
| | | auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//周次 |
| | | auxiliaryOutputWorkingHours.setCheck(getLook.selectPowerByMethodAndUserId(null).get("userId"));//检测人 |
| | | auxiliaryOutputWorkingHours.setCheck(SecurityUtils.getUserId().intValue());//检测人 |
| | | auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//单价 |
| | | |
| | | auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); |