chenlu
2024-06-07 2f640b1038fa331954f78ed1f4317212cf5bb34d
north-glass-erp/src/main/java/com/example/erp/service/sd/BasicDateService.java
@@ -1,43 +1,157 @@
package com.example.erp.service.sd;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.BasicOtherMoney;
import com.example.erp.entity.sd.Customer;
import com.example.erp.mapper.sd.BasicDateMapper;
import com.example.erp.mapper.sd.BasicOtherMoneyMapper;
import com.example.erp.mapper.sd.CustomerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.erp.entity.sd.BasicData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
@DS("sd")
public class BasicDateService {
    @Autowired
    BasicDateMapper basicDateMapper;
    private final BasicDateMapper basicDateMapper;
    private final CustomerMapper customerMapper;
    private final BasicOtherMoneyMapper basicOtherMoneyMapper;
    public BasicDateService(BasicDateMapper basicDateMapper, CustomerMapper customerMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) {
        this.basicDateMapper = basicDateMapper;
        this.customerMapper = customerMapper;
        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
    }
    //获取订单基本数据
public Map<String, List<Object>> getOrderBasicData() {
    public Map<String, List<Object>> getOrderBasicData() {
        //获取订单基本数据类型
        List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType();
        //获取订单基本数据
        List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData();
        //创建Map对象
        Map<String, List<Object>> orderBasicDataMap = new HashMap<>(); ;
        //创建List对象
        orderBasicDataMap = getBasicDataByType("order");
        //获取客户列表
        List<Object> orderBasicDataList = new ArrayList<>();
        orderBasicDataMap.put("customer",orderBasicDataList);
        List<Customer> customerList = customerMapper.getCustomerList();
        for (Customer customer : customerList){
            orderBasicDataMap.get("customer").add(customer);
        }
        orderBasicDataMap.put("orderOtherMoney",
                Collections.singletonList(
                        basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>().eq("state",1))
                ));
        //返回Map对象
        return orderBasicDataMap;
    }
//    public Map<String, List<Object>> getBasicDataByType(String type) {
//        List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType(type);
//        //获取订单基本数据
//        List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData(type);
//        //创建Map对象
//        Map<String, List<Object>> orderBasicDataMap = new HashMap<>(); ;
//        //创建List对象
//
//        //遍历订单基本数据类型
//        for(String item :orderBasicDataType){
//            List<Object> orderBasicDataList = new ArrayList<>();
//            //将类型和List对象放入Map中
//            orderBasicDataMap.put(item,orderBasicDataList);
//        }
//        //遍历订单基本数据
//        for (BasicData item : orderBasicData){
//            //将数据放入List中
//            orderBasicDataMap.get(item.getBasicCategory()).add(item);
//        }
//        return orderBasicDataMap;
//    }
    public Map<String, List<Object>> getBasicDataByType(String type){
        //返回基础数据里的所有类型
        List<String> orderBasicDataType = basicDateMapper.getOrderBasicDataType(type);
        //返回此类型基础数据所有数据
        List<BasicData> orderBasicData = basicDateMapper.getOrderBasicData(type);
        Map<String, List<Object>> BasicDataMap = new HashMap<>();
        //创建List对象
        //遍历订单基本数据类型
        for(String item :orderBasicDataType){
            List<Object> orderBasicDataList = new ArrayList<>();
            //将类型和List对象放入Map中
            orderBasicDataMap.put(item,orderBasicDataList);
            BasicDataMap.put(item,orderBasicDataList);
        }
        //遍历订单基本数据
        for (BasicData item : orderBasicData){
            //将数据放入List中
            orderBasicDataMap.get(item.getBasicCategory()).add(item);
            BasicDataMap.get(item.getBasicCategory()).add(item);
        }
        //返回Map对象
        return orderBasicDataMap;
        BasicDataMap.put("deliveryOtherMoney", Collections.singletonList(basicOtherMoneyMapper.selectList(null)));
        return BasicDataMap;
    }
    public List<BasicData> getBasicDataByTypeAndChildType(String type, String childType) {
        Map<String, List<Object>> BasicDataMap = new HashMap<>();
        return basicDateMapper.getOrderBasicDataByTypeAndChildType(type, childType);
    }
    public List<BasicData> getBasicData() {
        return basicDateMapper.getBasicData();
    }
    public Object getBasicDataType() {
       List<BasicData> lastType =  basicDateMapper.getBasicDataLastType();
       List<BasicData> firstType= basicDateMapper.getBasicDataFirstType();
       List<Map<String,Object>> list = new ArrayList<>();
       if(!firstType.isEmpty()){
           firstType.forEach(item->{
               Map<String,Object> map = new HashMap<>();
               List<Map<String,String>> lastTypeList = new ArrayList<>();
               lastType.forEach(item1->{
                   Map<String,String> map1 = new HashMap<>();
                    if(Objects.equals(item.getBasicType(), item1.getBasicType())){
                        map1.put("value",item1.getBasicCategory());
                        map1.put("label",item1.getBasicCategory());
                        lastTypeList.add(map1);
                    }
               });
               map.put("children",lastTypeList);
               map.put("value",item.getBasicType());
               map.put("label",item.getBasicType());
               list.add(map);
           });
       }
    return list;
    }
    public boolean addBasicData(Map<String, Object> map) {
        List<String>  basicTypeList = (List<String>) map.get("basicType");
        if(basicTypeList.size()==2){
            BasicData basicData = new BasicData();
            basicData.setBasicType(basicTypeList.get(0));
            basicData.setBasicCategory(basicTypeList.get(1));
            basicData.setBasicName(map.get("input").toString());
            basicDateMapper.insert(basicData);
        }
        return true;
    }
    public int deleteBasicData(BasicData basicData) {
        return  basicDateMapper.deleteById(basicData.getId());
    }
    public int updateBasicData(BasicData basicData) {
        return  basicDateMapper.updateById(basicData);
    }
}