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

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

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