Commit a4b510fa authored by 刘_震's avatar 刘_震

根据矿id传回对应的物料名称以及编码

parent 4851c837
package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesMaterialDetails;
import com.ruoyi.system.domain.ActSuppliesMaterialInfo;
import com.ruoyi.system.service.ActSuppliesMaterialService;
import com.ruoyi.system.service.impl.ActSuppliesServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......
......@@ -62,17 +62,17 @@ public class ActSupplies extends BaseEntity {
* 物料编码
*/
@Excel(name = "物料编码")
private String codes;
private String code;
private String codeColumn;
public String getCode() {
return codes;
return code;
}
public void setCode(String code) {
this.codes = code;
this.code = code;
}
public String getCodeColumn() {
......
package com.ruoyi.system.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ActSuppliesMaterialCode {
/**
* $column.columnComment
*/
private String id;
/**
* 矿id
*/
private String mineId;
/**
* 物料编码最小值
*/
private String codeMin;
/**
* 物料编码最大值
*/
private String codeMax;
/**
* 物料编码类型
*/
private String materialCodeType;
/**
* 物料名称
*/
private String materialName;
/**
* 煤种
*/
private String varietyOfCoal;
}
\ No newline at end of file
......@@ -5,10 +5,7 @@ import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import com.ruoyi.system.service.AsiccSuppliesService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
......@@ -24,12 +21,8 @@ public class AsiccSuppliesController {
private final AsiccSuppliesService asiccSuppliesService;
@PostMapping("/data")
public AjaxResult getData(@RequestBody AsiccDAO asiccDAO){
Map<String,Object> voList = asiccSuppliesService.getData(asiccDAO);
if (!voList.isEmpty()) {
return AjaxResult.success(voList);
}else{
return AjaxResult.error();
}
public AjaxResult getData(@RequestParam("mineId") String mineId){
List<Object> voList = asiccSuppliesService.getData(mineId);
return AjaxResult.success(voList);
}
}
......@@ -2,6 +2,8 @@ package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesImportCleaningAcc;
import com.ruoyi.system.domain.ActSuppliesMaterialCode;
import com.ruoyi.system.domain.ActSuppliesMaterialDetails;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -19,9 +21,11 @@ public interface AsiccSuppliesMapper {
ActSupplies selectByOneLevel(@Param("oneLevel") String oneLevel);
List<ActSuppliesImportCleaningAcc> selectByMineId(@Param("mineId") String mineId);
List<ActSuppliesMaterialCode> selectByMineId(@Param("mineId") String mineId);
void selectByCode(@Param("code") String code);
List<ActSupplies> select();
List<ActSupplies> select1();
List<ActSupplies> select2();
}
......@@ -12,6 +12,12 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class AsiccVo {
//最大编码
private String maxCode;
//最小编码
private String minCode;
//一级分类
private String oneLevel;
//二级分类
private String twoLevel;
}
package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import java.util.List;
import java.util.Map;
/**
* @author haiwe
......@@ -12,5 +8,5 @@ import java.util.Map;
*/
public interface AsiccSuppliesService {
Map<String,Object> getData(AsiccDAO asiccDAO);
List<Object> getData(String mineId);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesImportCleaningAcc;
import com.ruoyi.system.domain.ActSuppliesMaterialCode;
import com.ruoyi.system.mapper.AsiccSuppliesMapper;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import com.ruoyi.system.service.AsiccSuppliesService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.xml.bind.SchemaOutputResolver;
import javax.accessibility.AccessibleValue;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author haiwe
......@@ -24,54 +22,59 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
private final AsiccSuppliesMapper asiccSuppliesMapper;
@Override
public Map<String,Object> getData(AsiccDAO asiccDAO) {
long begin = System.currentTimeMillis();
//建立一个map集合用于存储返回的数据
Map<String, Object> map = new HashMap<>();
List<String> codesList = asiccDAO.getCodes();
String mineId = asiccDAO.getMineId();
List<ActSuppliesImportCleaningAcc> list = asiccSuppliesMapper.selectByMineId(mineId);
// 将 list 转换为一个 code 的 Set 集合以加速查找
Set<String> validCodes = list.stream()
.map(ActSuppliesImportCleaningAcc::getCodeColumn)
.collect(Collectors.toSet());
// 使用 Stream API 过滤 codesList 中的有效 code
Set<String> filteredCodes = codesList.stream()
.filter(validCodes::contains)
.collect(Collectors.toSet());
List<ActSupplies> suppliesList = asiccSuppliesMapper.select();
List<ActSupplies> accInfos = asiccSuppliesMapper.selectByCodeAndMineId(mineId, filteredCodes);
for (ActSupplies accInfo : accInfos) {
List<String> voList = getList(accInfo, suppliesList);
map.put(accInfo.getCodeColumn(), voList);
}
long end = System.currentTimeMillis();
System.err.println(end-begin);
return map;
}
private static List<String> getList(ActSupplies accInfo, List<ActSupplies> suppliesList) {
List<String> voList = new ArrayList<>();
Long level = accInfo.getLevel();
if (level == 1) {
String suppliesName = accInfo.getSuppliesName();
voList.add(suppliesName);
voList.add("null"); // 添加一个 null,可能需要根据需求调整
}else if (level == 2) {
for (ActSupplies supplies : suppliesList) {
String oneLevel = supplies.getOneLevel();
if (oneLevel.equals(accInfo.getOneLevel())) {
String oneSupplies = supplies.getSuppliesName();
String twoSupplies = accInfo.getSuppliesName();
voList.add(oneSupplies);
voList.add(twoSupplies);
public List<Object> getData(String mineId) {
//查询level为1的数据
List<ActSupplies> suppliesList1 = asiccSuppliesMapper.select1();
//查询level为2的数据
List<ActSupplies> suppliesList2 = asiccSuppliesMapper.select2();
List<ActSuppliesMaterialCode> codeList = asiccSuppliesMapper.selectByMineId(mineId);
List<Object> voList = new ArrayList<>();
if (!codeList.isEmpty()) {
for (ActSuppliesMaterialCode code : codeList) {
Map<String,String> map = new HashMap<>();
String codeMax = code.getCodeMax();
String codeMin = code.getCodeMin();
//二级分类的名称
String materialName = code.getMaterialName();
//一级分类的编码
String codeType = code.getMaterialCodeType();
for (ActSupplies supplies : suppliesList1) {
String oneLevel = supplies.getOneLevel();
if (Objects.equals(codeType, oneLevel)){
//一级分类名称
String suppliesName = supplies.getSuppliesName();
map.put("最大编码",codeMax);
map.put("最小编码",codeMin);
map.put("一级分类",suppliesName);
map.put("二级分类",materialName);
voList.add(map);
}
}
}
return voList;
}else{
//矿id不存在的情况
for (ActSupplies supplies2 : suppliesList2) {
Map<String,String> map = new HashMap<>();
//二级分类
String twoLevel = supplies2.getSuppliesName();
//最大编码和最小编码
String codeColumn = supplies2.getCode();
String oneCode = supplies2.getOneLevel();
for (ActSupplies supplies1 : suppliesList1) {
String oneType = supplies1.getOneLevel();
if (Objects.equals(oneCode, oneType)){
//一级分类名称
String oneLevel = supplies1.getSuppliesName();
map.put("最大编码",codeColumn);
map.put("最小编码",codeColumn);
map.put("一级分类",oneLevel);
map.put("二级分类",twoLevel);
voList.add(map);
}
}
}
return voList;
}
return voList;
}
}
......@@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="oneLevel" column="one_level" />
<result property="twoLevel" column="two_level" />
<result property="threeLevel" column="three_level" />
<result property="codes" column="codes"/>
<result property="code" column="codes"/>
<result property="suppliesName" column="supplies_name" />
<result property="level" column="level" />
<result property="status" column="status" />
......@@ -20,21 +20,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="codeColumn" column="code_column"/>
</resultMap>
<resultMap type="com.ruoyi.system.domain.ActSuppliesImportCleaningAcc" id="ActSuppliesImportCleaningResultAcc">
<resultMap type="com.ruoyi.system.domain.ActSuppliesMaterialCode" id="ActSuppliesMaterialCodeResult">
<result property="id" column="id" />
<result property="hId" column="h_id" />
<result property="sskId" column="ssk_id" />
<result property="hdate" column="hdate" />
<result property="kmCode" column="km_code"/>
<result property="nameColumn" column="name_column"/>
<result property="codeColumn" column="code_column" />
<result property="departmentColumn" column="department_column" />
<result property="numberColumn" column="number_column" />
<result property="moneyColumn" column="money_column" />
<result property="moneyColumns" column="money_columns" />
<result property="dateColumn" column="date_column" />
<result property="sOfExpenses" column="source_of_expenses" />
<result property="categories" column="categories" />
<result property="mineId" column="mine_id" />
<result property="codeMin" column="code_min" />
<result property="codeMax" column="code_max" />
<result property="materialCodeType" column="material_code_type" />
<result property="materialName" column="material_name" />
<result property="varietyOfCoal" column="variety_of_coal" />
</resultMap>
<select id="selectByCodeAndMineId" resultMap="ActSuppliesResult">
......@@ -57,17 +50,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from act_supplies
where one_level = #{oneLevel} and level = 1
</select>
<select id="selectByMineId" resultMap="ActSuppliesImportCleaningResultAcc">
select distinct(categories) as categories,code_column
from act_supplies_import_cleaning_copy1
where ssk_id = #{mineId}
<select id="selectByMineId" resultMap="ActSuppliesMaterialCodeResult">
select mine_id, code_min, code_max, material_code_type, material_name, variety_of_coal
from act_supplies_material_code
where mine_id = #{mineId}
</select>
<select id="selectByCode" parameterType="java.lang.String">
</select>
<select id="select" resultMap="ActSuppliesResult">
<select id="select1" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
from act_supplies
where level = 1
</select>
<select id="select2" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
from act_supplies
where level = 2
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment