package com.example.erp.service.sd; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.erp.entity.pp.FlowCard; import com.example.erp.entity.sd.*; import com.example.erp.mapper.sd.BomDataMapper; import com.example.erp.mapper.sd.BasicOtherMoneyMapper; import com.example.erp.mapper.sd.CustomerMapper; import org.springframework.stereotype.Service; import java.util.*; @Service @DS("sd") public class BomDataService { private final BomDataMapper bomDataMapper; private final CustomerMapper customerMapper; private final BasicOtherMoneyMapper basicOtherMoneyMapper; public BomDataService(BomDataMapper bomDataMapper, CustomerMapper customerMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) { this.bomDataMapper = bomDataMapper; this.customerMapper = customerMapper; this.basicOtherMoneyMapper = basicOtherMoneyMapper; } public Boolean saveMaterialBomDataSv(Map object) { Integer id = (Integer) object.get("MaterialId"); String name = (String) object.get("MaterialName"); Object consume = object.get("consume"); Object price = object.get("price"); Integer type = (Integer) object.get("type"); String unit=""; if (type.equals(1)){ unit = "㎡"; } else if (type.equals(2)) { unit = "m"; } else if (type.equals(3)) { unit = "片"; } if (id!=null){ //查询物料编号是否已存在 Integer countId = bomDataMapper.getMaterialId(id); if (countId == 0){ bomDataMapper.saveMaterialBomDataMp(id,name,consume,price,type,unit); }else { bomDataMapper.updateMaterialBomDataMp(id,name,consume,price,type,unit); } return true; }else { return false; } } public Object saveProductBOMSv(Map object) { // 遍历每个产品 for (Map.Entry entry : object.entrySet()) { String productName = entry.getKey(); Object value = entry.getValue(); if (value instanceof List) { List> rows = (List>) value; for (Map row : rows) { // 取每条数据 Object produceId = row.get("produceId"); Object tabId = row.get("tabId"); Object layer = row.get("layer"); if (tabId!=null){ bomDataMapper.saveProductBOMMp(produceId,tabId,layer); } } } } return true; } public Map getOrderBomDataSv(String orderId) { Map map = new HashMap<>(); map.put("data", bomDataMapper.getOrderBomDataMp(orderId)); map.put("sumData", bomDataMapper.getOrderBomSumDataMp(orderId)); map.put("sumDataDatils", bomDataMapper.getOrderBomsumDataDatilsMp(orderId)); return map; } public Map getBomDataProductSv(Map object) { Map map = new HashMap<>(); List> list = new ArrayList>(); List orderDetailsList = JSONArray.parseArray(JSONObject.toJSONString(object.get("productName")), OrderDetail.class); if (!orderDetailsList.isEmpty()) { for (OrderDetail od : orderDetailsList) { Map itemmap = new HashMap<>(); itemmap.put("data", bomDataMapper.getBOMDetails(od.getProductId(),od.getOrderId())); list.add(itemmap); } } map.put("data", list); return map; } public Map editProductBOMSv(String produceId) { Map map = new HashMap<>(); map.put("data", bomDataMapper.getEditProductBOMSv(produceId)); return map; } }