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

code转一二级分类

parent a4b510fa
...@@ -20,9 +20,15 @@ import java.util.Map; ...@@ -20,9 +20,15 @@ import java.util.Map;
public class AsiccSuppliesController { public class AsiccSuppliesController {
private final AsiccSuppliesService asiccSuppliesService; private final AsiccSuppliesService asiccSuppliesService;
@PostMapping("/data") // @PostMapping("/data")
public AjaxResult getData(@RequestParam("mineId") String mineId){ // public AjaxResult getData(@RequestParam("mineId") String mineId){
List<Object> voList = asiccSuppliesService.getData(mineId); // List<Object> voList = asiccSuppliesService.getData(mineId);
// return AjaxResult.success(voList);
// }
@PostMapping("/getData")
public AjaxResult getData(@RequestBody AsiccDAO asiccDAO){
Map<String,Object> voList = asiccSuppliesService.getData(asiccDAO);
return AjaxResult.success(voList); return AjaxResult.success(voList);
} }
} }
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.ActSupplies; import com.ruoyi.system.domain.*;
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;
...@@ -28,4 +25,10 @@ public interface AsiccSuppliesMapper { ...@@ -28,4 +25,10 @@ public interface AsiccSuppliesMapper {
List<ActSupplies> select1(); List<ActSupplies> select1();
List<ActSupplies> select2(); List<ActSupplies> select2();
List<ActSuppliesDetails> select();
ActSupplies selectByNum();
ActSupplies selectById(@Param("id") Object sid);
} }
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author haiwe * @author haiwe
...@@ -8,5 +11,5 @@ import java.util.List; ...@@ -8,5 +11,5 @@ import java.util.List;
*/ */
public interface AsiccSuppliesService { public interface AsiccSuppliesService {
List<Object> getData(String mineId); Map<String,Object> getData(AsiccDAO asiccDAO);
} }
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.ActSupplies; import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesDetails;
import com.ruoyi.system.domain.ActSuppliesMaterialCode; 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;
...@@ -22,59 +25,66 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService { ...@@ -22,59 +25,66 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
private final AsiccSuppliesMapper asiccSuppliesMapper; private final AsiccSuppliesMapper asiccSuppliesMapper;
@Override @Override
public List<Object> getData(String mineId) { public Map<String,Object> getData(AsiccDAO asiccDAO) {
//查询level为1的数据 long begin = System.currentTimeMillis();
List<ActSupplies> suppliesList1 = asiccSuppliesMapper.select1(); List<ActSuppliesDetails> detailsList = asiccSuppliesMapper.select();
//查询level为2的数据
List<ActSupplies> suppliesList2 = asiccSuppliesMapper.select2(); //特殊处理最后没有匹配上的数据的id为10
List<ActSuppliesMaterialCode> codeList = asiccSuppliesMapper.selectByMineId(mineId); ActSupplies actSupplies = asiccSuppliesMapper.selectByNum();
List<Object> voList = new ArrayList<>();
if (!codeList.isEmpty()) { //存放detailsList中的code
for (ActSuppliesMaterialCode code : codeList) { Map<String, Object> map = new HashMap<>();
Map<String,String> map = new HashMap<>(); detailsList.forEach(v->{
String codeMax = code.getCodeMax(); String actCode = v.getCode();
String codeMin = code.getCodeMin(); Long sid = v.getSid();
//二级分类的名称 map.put(actCode,sid);
String materialName = code.getMaterialName(); });
//一级分类的编码 Map<String, Object> voMap = new HashMap<>();
String codeType = code.getMaterialCodeType(); //存放处理之后的code (asiccDAO中的Code)
for (ActSupplies supplies : suppliesList1) {
for (String code : asiccDAO.getCodes()) {
List<String> codeList = new ArrayList<>();
String kmCode = StringUtils.substring(code, 0, 6);
if (map.containsKey(kmCode)) {
Object sid = map.get(kmCode);
ActSupplies supplies = asiccSuppliesMapper.selectById(sid);
String oneLevel = supplies.getOneLevel(); String oneLevel = supplies.getOneLevel();
if (Objects.equals(codeType, oneLevel)){ String twoLevel = supplies.getTwoLevel();
//一级分类名称 codeList.add(oneLevel);
String suppliesName = supplies.getSuppliesName(); codeList.add(twoLevel);
map.put("最大编码",codeMax); voMap.put(code,codeList);
map.put("最小编码",codeMin); } else {
map.put("一级分类",suppliesName); kmCode = StringUtils.substring(kmCode, 0, 4);
map.put("二级分类",materialName); if (map.containsKey(kmCode)) {
voList.add(map); Object sid = map.get(kmCode);
} ActSupplies supplies = asiccSuppliesMapper.selectById(sid);
} String oneLevel = supplies.getOneLevel();
} String twoLevel = supplies.getTwoLevel();
return voList; codeList.add(oneLevel);
}else{ codeList.add(twoLevel);
//矿id不存在的情况 voMap.put(code,codeList);
for (ActSupplies supplies2 : suppliesList2) { } else {
Map<String,String> map = new HashMap<>(); kmCode = StringUtils.substring(kmCode, 0, 2);
//二级分类 if (map.containsKey(kmCode)) {
String twoLevel = supplies2.getSuppliesName(); Object sid = map.get(kmCode);
//最大编码和最小编码 ActSupplies supplies = asiccSuppliesMapper.selectById(sid);
String codeColumn = supplies2.getCode(); String oneLevel = supplies.getOneLevel();
String oneCode = supplies2.getOneLevel(); String twoLevel = supplies.getTwoLevel();
for (ActSupplies supplies1 : suppliesList1) { codeList.add(oneLevel);
String oneType = supplies1.getOneLevel(); codeList.add(twoLevel);
if (Objects.equals(oneCode, oneType)){ voMap.put(code,codeList);
//一级分类名称 }else {
String oneLevel = supplies1.getSuppliesName(); //kmCode一律为10
map.put("最大编码",codeColumn); String oneLevel = actSupplies.getSuppliesName();
map.put("最小编码",codeColumn); codeList.add(oneLevel);
map.put("一级分类",oneLevel); codeList.add("null");
map.put("二级分类",twoLevel); voMap.put(code,codeList);
voList.add(map);
} }
} }
} }
return voList;
} }
long end = System.currentTimeMillis();
System.err.println(end-begin);
return voMap;
} }
} }
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AsiccSuppliesMapper"> <mapper namespace="com.ruoyi.system.mapper.AsiccSuppliesMapper">
<resultMap type="com.ruoyi.system.domain.ActSupplies" id="ActSuppliesResult"> <resultMap type="com.ruoyi.system.domain.ActSupplies" id="ActSuppliesResult">
<result property="id" column="id" /> <result property="id" column="id"/>
<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="code" 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"/>
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time"/>
<result property="codeColumn" column="code_column"/> <result property="codeColumn" column="code_column"/>
</resultMap> </resultMap>
<resultMap type="com.ruoyi.system.domain.ActSuppliesMaterialCode" id="ActSuppliesMaterialCodeResult"> <resultMap type="com.ruoyi.system.domain.ActSuppliesMaterialCode" id="ActSuppliesMaterialCodeResult">
<result property="id" column="id" /> <result property="id" column="id"/>
<result property="mineId" column="mine_id" /> <result property="mineId" column="mine_id"/>
<result property="codeMin" column="code_min" /> <result property="codeMin" column="code_min"/>
<result property="codeMax" column="code_max" /> <result property="codeMax" column="code_max"/>
<result property="materialCodeType" column="material_code_type" /> <result property="materialCodeType" column="material_code_type"/>
<result property="materialName" column="material_name" /> <result property="materialName" column="material_name"/>
<result property="varietyOfCoal" column="variety_of_coal" /> <result property="varietyOfCoal" column="variety_of_coal"/>
</resultMap> </resultMap>
<select id="selectByCodeAndMineId" resultMap="ActSuppliesResult"> <select id="selectByCodeAndMineId" resultMap="ActSuppliesResult">
select distinct (act.one_level) as `one_level`, act.two_level as `two_level` , act.level `level`, act.supplies_name as supplies_name, select distinct (act.one_level) as `one_level`, act.two_level as `two_level` , act.level `level`,
act.supplies_name as supplies_name,
asicc1.code_column as code_column asicc1.code_column as code_column
from act_supplies_import_cleaning_copy1 asicc1 from act_supplies_import_cleaning_copy1 asicc1
LEFT JOIN act_supplies act on codes = asicc1.categories LEFT JOIN act_supplies act on codes = asicc1.categories
...@@ -48,7 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -48,7 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectByOneLevel" resultMap="ActSuppliesResult"> <select id="selectByOneLevel" 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 one_level = #{oneLevel} and level = 1 where one_level = #{oneLevel}
and level = 1
</select> </select>
<select id="selectByMineId" resultMap="ActSuppliesMaterialCodeResult"> <select id="selectByMineId" resultMap="ActSuppliesMaterialCodeResult">
select mine_id, code_min, code_max, material_code_type, material_name, variety_of_coal select mine_id, code_min, code_max, material_code_type, material_name, variety_of_coal
...@@ -69,4 +71,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -69,4 +71,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from act_supplies from act_supplies
where level = 2 where level = 2
</select> </select>
<select id="select" resultType="com.ruoyi.system.domain.ActSuppliesDetails">
select id,
sid,
one_level,
two_level,
three_level,
code,
details_name,
sysclassify,
level,
status,
create_by,
create_time,
update_by,
update_time
from act_supplies_details
</select>
<select id="selectByNum" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level
from act_supplies
where codes = '10';
</select>
<select id="selectById" resultMap="ActSuppliesResult">
SELECT CASE
WHEN asu.two_level IS NULL THEN asu.supplies_name
ELSE (SELECT a.supplies_name FROM act_supplies a WHERE a.one_level = asu.one_level LIMIT 1)
END
AS one_level,
CASE
WHEN asu.two_level IS NOT NULL THEN asu.supplies_name
END
AS two_level
FROM
act_supplies asu
WHERE
asu.id = #{id};
</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