liding
2025-04-08 09ddece4effc738f2611c053d8f0f1fb22102597
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -12,20 +12,35 @@
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;
@@ -53,7 +68,6 @@
    private StandardTreeMapper standardTreeMapper;
    private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
    private GetLook getLook;
    private UserMapper userMapper;
    private InsOrderService insOrderService;
    private InsOrderMapper insOrderMapper;
@@ -67,83 +81,77 @@
    @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())
@@ -181,6 +189,7 @@
    /**
     * 撤销报检
     *
     * @param id
     * @return
     */
@@ -194,6 +203,7 @@
    /**
     * 打印标签查询
     *
     * @param ids
     * @return
     */
@@ -204,12 +214,13 @@
    /**
     * 报检
     *
     * @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())
@@ -234,6 +245,7 @@
    /**
     * 获取铜产业链检测数据
     *
     * @param id
     * @return
     */
@@ -244,6 +256,7 @@
    /**
     * 原材料撤销接口
     *
     * @param ifsInventoryId
     * @return
     */
@@ -270,6 +283,7 @@
    /**
     * 原材料免检下单
     *
     * @param list
     * @param insOrder
     * @return
@@ -346,44 +360,38 @@
    /**
     * 查询待下单
     *
     * @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
     */
@@ -394,6 +402,7 @@
    /**
     * 原材料放行免检
     *
     * @param ifsInventoryId
     * @return
     */
@@ -447,8 +456,9 @@
    /**
     * 0, 无提示, 1提示  当前批次的样品已检验过, 可以免检, 2 提示 当前批次的样品已超20吨, 需要多级多次检验
     *
     * <p>
     * 原材料下单通知免检或者多次检验
     *
     * @param ifsInventoryId
     * @return
     */
@@ -488,6 +498,7 @@
    /**
     * 报检可以新增报检信息
     *
     * @param ifsInventoryQuantity
     */
    @Override
@@ -498,17 +509,10 @@
        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
     */
@@ -605,6 +609,7 @@
    /**
     * 原材料进厂撤销下单
     *
     * @param enterOrderId
     * @return
     */
@@ -643,6 +648,7 @@
    /**
     * 原材料季度撤销下单
     *
     * @param quarterOrderId
     * @return
     */
@@ -683,6 +689,7 @@
    /**
     * 原材料报检全部信息导出
     *
     * @param ifsInventoryQuantityDto
     * @param response
     */
@@ -745,30 +752,26 @@
    /**
     * 原材料查询可以季度检验的内容
     *
     * @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
     */
@@ -796,6 +799,7 @@
    /**
     * 添加工时
     *
     * @param insOrder
     * @param ifsInventoryQuantity
     */
@@ -817,7 +821,7 @@
        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);