zenglf
2023-08-18 499d6294b4b7881c5797a59a183c5fc0105599dd
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
111
112
113
114
115
116
117
118
119
120
121
122
package org.jeecg.modules.spare.service.impl;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.spare.entity.SparePartPurchaseStorage;
import org.jeecg.modules.spare.entity.SparePartPurchaseStorageDetail;
import org.jeecg.modules.spare.entity.SparesPartInventory;
import org.jeecg.modules.spare.mapper.SparePartPurchaseStorageDetailMapper;
import org.jeecg.modules.spare.service.ISparePartPurchaseStorageDetailService;
import org.jeecg.modules.spare.service.ISparePartPurchaseStorageService;
import org.jeecg.modules.spare.service.ISparesPartInventoryService;
import org.jeecg.modules.spare.vo.SupplierVo;
import org.jeecg.modules.spare.vo.WarehouseAreaVo;
import org.jeecg.modules.spare.vo.WarehouseLocationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
import java.util.Map;
 
/**
 * @Description: mom_eam_spare_part_purchase_storage_deatil
 * @Author: jeecg-boot
 * @Date:   2023-06-27
 * @Version: V1.0
 */
@Service
public class SparePartPurchaseStorageDetailServiceImpl extends ServiceImpl<SparePartPurchaseStorageDetailMapper, SparePartPurchaseStorageDetail> implements ISparePartPurchaseStorageDetailService {
 
 
    @Autowired
    private ISparePartPurchaseStorageService sparePartPurchaseStorageService;
 
    @Autowired
    private ISparesPartInventoryService sparesPartInventoryService;
 
    @Override
    public List<Map<String, Object>> getSparePartPurchaseStorageDeatilList(String sparePartPurchaseStorageId) {
        List<Map<String, Object>> sparePartPurchaseStorageDeatilList = this.baseMapper.getSparePartPurchaseStorageDeatilList(sparePartPurchaseStorageId);
        List<SupplierVo> suppliers = super.baseMapper.getSuppliers();
 
        for (Map<String, Object> map : sparePartPurchaseStorageDeatilList) {
            String warehouseId = (String)map.get("warehouseId");
            String warehouseAreaId = (String) map.get("warehouseAreaId");
            List<WarehouseAreaVo> warehouseAreas = super.baseMapper.getWarehouseAreas(warehouseId);
            List<WarehouseLocationVo> warehouseLocations = super.baseMapper.getWarehouseLocations(warehouseId, warehouseAreaId);
            map.put("suppliers",suppliers);
            map.put("warehouseAreas",warehouseAreas);
            map.put("warehouseLocations",warehouseLocations);
        }
        return sparePartPurchaseStorageDeatilList;
    }
 
    @Override
    public IPage<Map<String, Object>> getSparePartPurchaseStorageDeatilsById(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.getBaseMapper().getSparePartPurchaseStorageDeatilsById(pageData,params);
    }
 
    @Override
    @Transactional(rollbackFor = { Exception.class })
    public boolean sparePartStorage(SparePartPurchaseStorageDetail sparePartPurchaseStorageDetail) {
        String sparePartPurchaseStorageId = sparePartPurchaseStorageDetail.getSparePartPurchaseStorageId();
        SparePartPurchaseStorage sparePartPurchaseStorage = sparePartPurchaseStorageService.getById(sparePartPurchaseStorageId);
 
        //1.修改明细行状态  未入库改为已入库  0未入库,1已入库
        sparePartPurchaseStorageDetail.setStatus("1");
        boolean b = super.updateById(sparePartPurchaseStorageDetail);
        if(!b){
            return b;
        }
        //2.创建入库记录
        SparesPartInventory sparesPartInventory = new SparesPartInventory();
        sparesPartInventory.setSparePartId(sparePartPurchaseStorageDetail.getSparePartId());
        sparesPartInventory.setBatchNum(sparePartPurchaseStorageDetail.getBatchNum());
        sparesPartInventory.setConstructorId(sparePartPurchaseStorageDetail.getConstructorId());
        sparesPartInventory.setMainUnitId(sparePartPurchaseStorageDetail.getMainUnitId());
        sparesPartInventory.setMainQuantity(sparePartPurchaseStorageDetail.getMainQuantity());
        sparesPartInventory.setAuxiliaryUnitId(sparePartPurchaseStorageDetail.getAuxiliaryUnitId());
        sparesPartInventory.setAuxiliaryQuantity(sparePartPurchaseStorageDetail.getAuxiliaryQuantity());
        sparesPartInventory.setManufactureDate(sparePartPurchaseStorageDetail.getManufactureDate());
        sparesPartInventory.setSupplierId(sparePartPurchaseStorageDetail.getSupplierId());
        sparesPartInventory.setStatus("1");
        sparesPartInventory.setDelFlag(0);
        sparesPartInventory.setWarehouseId(sparePartPurchaseStorage.getWarehouseId());
        sparesPartInventory.setWarehouseAreaId(sparePartPurchaseStorageDetail.getWarehouseAreaId());
        sparesPartInventory.setWarehouseLocationId(sparePartPurchaseStorageDetail.getWarehouseLocationId());
        boolean b1 = sparesPartInventoryService.save(sparesPartInventory);
        if(!b1){
            return b1;
        }
 
        //3.判断单据明细是否已全部入库   修改单据状态
        List<SparePartPurchaseStorageDetail> storageDeatils = super.lambdaQuery()
                .eq(SparePartPurchaseStorageDetail::getSparePartPurchaseStorageId, sparePartPurchaseStorageId)
                .eq(SparePartPurchaseStorageDetail::getStatus, "0").eq(SparePartPurchaseStorageDetail::getDelFlag, 0)
                .list();
        if(storageDeatils.size()==0){
            sparePartPurchaseStorage.setStatus("4");
            sparePartPurchaseStorageService.updateById(sparePartPurchaseStorage);
        }
        return true;
    }
 
    @Override
    public List<SupplierVo> getSuppliers() {
        return super.baseMapper.getSuppliers();
    }
 
    @Override
    public List<WarehouseAreaVo> getWarehouseAreas(String warehouseId) {
        return super.baseMapper.getWarehouseAreas(warehouseId);
    }
 
    @Override
    public List<WarehouseLocationVo> getWarehouseLocations(String warehouseId, String warehouseAreaId) {
        return super.baseMapper.getWarehouseLocations(warehouseId,warehouseAreaId);
    }
}