guoyuji
2024-05-23 ef5a518c3e2c1fe41aa60f56ca31ddafa0cb1561
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1,9 +1,11 @@
package com.example.erp.service.mm;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.entity.mm.*;
import com.example.erp.entity.pp.OptimizeUse;
import com.example.erp.entity.sd.Delivery;
import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.OrderDetail;
@@ -16,11 +18,14 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.List;
import java.util.ArrayList;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@Service
@DS("mm")
@@ -56,6 +61,14 @@
                    for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
                        //还原物料库存数
                        materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                        /*if(materialOutboundDetail.getUseId()!=null){
                            //还原优化工程库存数
                            materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                        }else{
                            //还原物料库存数
                            materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                        }*/
                    }
                }
                //删除材料出库明细的数据
@@ -77,8 +90,15 @@
                    //新增材料出库明细数据
                    materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
                    //修改物料库存表出库数量
                    System.out.println(materialOutboundDetail.getInventoryId());
                    materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                    /*if(materialOutboundDetail.getUseId()!=null){
                        //修改优化工程表出库数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                    }else{
                        //修改物料库存表出库数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                    }*/
                }
@@ -149,12 +169,52 @@
        return map;
    }
    public Map<String, Object> getSelectMaterialInventoryEngineeringDate(Integer pageNum, Integer pageSize, List<String> selectDate, MaterialInventory materialInventory) {
        Integer offset = (pageNum - 1) * pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
            }
            if(!selectDate.get(1).isEmpty()){
                endDate = selectDate.get(1);
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("data", materialInventoryMapper.getSelectMaterialInventoryEngineeringDate(offset, pageSize,startDate, endDate, materialInventory));
        map.put("total", materialInventoryMapper.getSelectMaterialInventoryEngineeringDatePageTotal(offset, pageSize,startDate, endDate, materialInventory));
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
        map.put("selectDate",list);
        return map;
    }
    public Map<String, Object> getSelectMaterialInventory(Integer pageNum, Integer pageSize, MaterialInventory materialInventory) {
        Integer offset = (pageNum - 1) * pageSize;
        Map<String, Object> map = new HashMap<>();
        map.put("data", materialInventoryMapper.getSelectMaterialInventory(offset, pageSize, materialInventory));
        map.put("total", materialInventoryMapper.getSelectMaterialInventoryPageTotal(offset, pageSize, materialInventory));
        List<Long> ids=new ArrayList<>();;
        if(materialInventory.getStockId()!=null && !materialInventory.getStockId().isEmpty()){
            List<String> result = StrUtil.split(materialInventory.getStockId(), '|');
            ids=result.stream().map(Long::valueOf).collect(Collectors.toList());
        }
        map.put("data", materialInventoryMapper.getSelectMaterialInventory(offset, pageSize, materialInventory,ids));
        map.put("total", materialInventoryMapper.getSelectMaterialInventoryPageTotal(offset, pageSize, materialInventory,ids));
        return map;
    }
    public Map<String, Object> getSelectMaterialInventoryEngineering(Integer pageNum, Integer pageSize, OptimizeUse optimizeUse) {
        Integer offset = (pageNum - 1) * pageSize;
        Map<String, Object> map = new HashMap<>();
        List<Long> ids=new ArrayList<>();;
        if(optimizeUse.getRawStockCode()!=null && !optimizeUse.getRawStockCode().isEmpty()){
            List<String> result = StrUtil.split(optimizeUse.getRawStockCode(), '|');
            ids=result.stream().map(Long::valueOf).collect(Collectors.toList());
        }
        map.put("data", materialInventoryMapper.getSelectMaterialInventoryEngineering(offset, pageSize, optimizeUse,ids));
        map.put("total", materialInventoryMapper.getSelectMaterialInventoryEngineeringPageTotal(offset, pageSize, optimizeUse,ids));
        return map;
    }
@@ -213,12 +273,21 @@
    public Map<String, Object> getSelectMaterialOutbound(Integer pageNum, Integer pageSize, MaterialOutboundDetail materialOutboundDetail) {
        Integer offset = (pageNum - 1) * pageSize;
        Map<String, Object> map = new HashMap<>();
        System.out.println("数据"+materialOutboundDetail);
        map.put("materialOutbound", materialInventoryMapper.getSelectMaterialOutbound(offset, pageSize, materialOutboundDetail));
        map.put("data", materialInventoryMapper.getSelectMaterialOutboundDetail(offset, pageSize, materialOutboundDetail));
        map.put("total", materialInventoryMapper.getSelectMaterialOutboundDetailPageTotal(offset, pageSize, materialOutboundDetail));
        List<MaterialOutboundDetail> materialOutboundDetailList= materialInventoryMapper.SelectMaterialOutboundDetail(offset, pageSize, materialOutboundDetail);
        if(materialOutboundDetailList.get(0).getUseId()==null){
            map.put("materialOutbound", materialInventoryMapper.getSelectMaterialOutbound(offset, pageSize, materialOutboundDetail));
            map.put("data", materialInventoryMapper.getSelectMaterialOutboundDetail(offset, pageSize, materialOutboundDetail));
            map.put("total", materialInventoryMapper.getSelectMaterialOutboundDetailPageTotal(offset, pageSize, materialOutboundDetail));
        }else{
            map.put("materialOutbound", materialInventoryMapper.getSelectMaterialOutbound(offset, pageSize, materialOutboundDetail));
            map.put("data", materialInventoryMapper.getSelectMaterialOutboundEngineering(offset, pageSize, materialOutboundDetail));
            map.put("total", materialInventoryMapper.getSelectMaterialOutboundDetailPageTotal(offset, pageSize, materialOutboundDetail));
        }
        return map;
    }
    public Boolean updateMaterialOutboundToExamine(Map<String,Object> object) {
        boolean saveState = true;
@@ -243,8 +312,11 @@
                List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
                if (!materialOutboundDetailList.isEmpty()) {
                    for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
                        //修改物料库存数量
                        materialInventoryMapper.updateMaterialInventoryInventoryOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                            //修改物料库存数量
                            materialInventoryMapper.updateMaterialInventoryInventoryOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                    }
                }
                materialInventoryMapper.updateMaterialOutboundToExamine(materialOutboundId,type,reviewed);
@@ -252,8 +324,11 @@
                List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
                if (!materialOutboundDetailList.isEmpty()) {
                    for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
                        //修改物料库存数量
                        materialInventoryMapper.updateMaterialInventoryInventoryInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                            //修改物料库存数量
                            materialInventoryMapper.updateMaterialInventoryInventoryInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                    }
                }
                materialInventoryMapper.updateMaterialOutboundCounterExamination(materialOutboundId,type,reviewed);
@@ -405,7 +480,7 @@
                if (!returningWarehouseDetailList.isEmpty()) {
                    for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
                        //修改物料库存数量
                        materialInventoryMapper.updateMaterialInventoryAvailableInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                        materialInventoryMapper.updateMaterialInventoryInventoryInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                    }
                }
                materialInventoryMapper.updateReturningWarehouseToExamine(returningId,type,reviewed);
@@ -414,7 +489,7 @@
                if (!returningWarehouseDetailList.isEmpty()) {
                    for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
                        //修改物料库存数量
                        materialInventoryMapper.updateMaterialInventoryAvailableOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                        materialInventoryMapper.updateMaterialInventoryInventoryOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                    }
                }
                materialInventoryMapper.updateReturningWarehouseCounterExamination(returningId,type,reviewed);