李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
 *    Copyright (c) 2018-2025, ztt All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: ztt
 */
package com.chinaztt.mes.production.service.impl;
 
import cn.hutool.core.util.BooleanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chinaztt.mes.basic.service.CrewService;
import com.chinaztt.mes.basic.service.ShiftService;
import com.chinaztt.mes.basic.service.WorkstationService;
import com.chinaztt.mes.equipment.entity.Equipment;
import com.chinaztt.mes.equipment.mapper.EquipmentMapper;
import com.chinaztt.mes.mould.util.MouldUtil;
import com.chinaztt.mes.production.dto.MouldRegisterDTO;
import com.chinaztt.mes.production.dto.mould.ReadMouldListDTO;
import com.chinaztt.mes.production.dto.mould.UserMouldDTO;
import com.chinaztt.mes.production.entity.MouldRegister;
import com.chinaztt.mes.production.mapper.MouldRegisterMapper;
import com.chinaztt.mes.production.service.MouldRegisterService;
import com.chinaztt.ztt.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
/**
 * 模具登记表
 *
 * @author cxf
 * @date 2021-10-25 13:07:30
 */
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class MouldRegisterServiceImpl extends ServiceImpl<MouldRegisterMapper, MouldRegister> implements MouldRegisterService {
 
    private EquipmentMapper equipmentMapper;
    private final MouldUtil mouldUtil;
    private CrewService crewService;
    private ShiftService shiftService;
    private WorkstationService workstationService;
 
    @Override
    public JSONArray getMould(Integer equipmentId) {
        JSONArray data = new JSONArray();
        if (null != equipmentId) {
            Equipment equipment = equipmentMapper.selectById(equipmentId);
            if (null != equipment) {
                ReadMouldListDTO dto = new ReadMouldListDTO();
                dto.setMachineNum(equipment.getNumber());
                JSONObject jsonObject = mouldUtil.readTempCollectionRecord(JSON.toJSONString(dto));
                if (BooleanUtil.isTrue(jsonObject.getBoolean("success"))) {
                    return jsonObject.getJSONArray("data");
                }else {
                    throw new RuntimeException("请求模具失败:" +jsonObject.getString("message"));
                }
            }
        }
        return data;
    }
 
    @Override
    public boolean fullSave(MouldRegisterDTO mouldRegister) {
/*        int check = this.count(Wrappers.<MouldRegister>lambdaQuery().eq(MouldRegister::getWorkstationId, mouldRegister.getWorkstationId()));
        if (check > 0) {
            throw new RuntimeException("同时只能绑定一个模具");
        }*/
        Integer count = baseMapper.selectCount(Wrappers.<MouldRegister>lambdaQuery()
                .eq(MouldRegister::getEquipmentId, mouldRegister.getEquipmentId())
                .eq(MouldRegister::getMouldCode, mouldRegister.getMouldCode())
                .eq(MouldRegister::getWorkstationId,mouldRegister.getWorkstationId())
                .eq(MouldRegister::getActive,true));
        if(count>=1){
            throw new RuntimeException("此设备已经绑定该模具");
        }
        this.save(mouldRegister);
        UserMouldDTO dto = new UserMouldDTO();
        dto.setMouldCode(mouldRegister.getMouldCode());
        dto.setOperatorMan(SecurityUtils.getUser().getUsername());
        dto.setTeamName(crewService.getById(mouldRegister.getCrewId()).getCrewName());
        dto.setShiftsName(shiftService.getById(mouldRegister.getShiftId()).getName());
        dto.setMachineName(workstationService.getById(mouldRegister.getWorkstationId()).getName());
        //return mouldUtils.send(dto, "/Insert_collection_record");
        return true;
    }
 
    @Override
    public IPage<MouldRegisterDTO> getPage(Page page, QueryWrapper<MouldRegisterDTO> gen) {
        return this.baseMapper.getPage(page, gen);
    }
}