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

code转一二级分类

parent a4b510fa
......@@ -20,9 +20,15 @@ import java.util.Map;
public class AsiccSuppliesController {
private final AsiccSuppliesService asiccSuppliesService;
@PostMapping("/data")
public AjaxResult getData(@RequestParam("mineId") String mineId){
List<Object> voList = asiccSuppliesService.getData(mineId);
// @PostMapping("/data")
// public AjaxResult getData(@RequestParam("mineId") String 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);
}
}
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 com.ruoyi.system.domain.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -28,4 +25,10 @@ public interface AsiccSuppliesMapper {
List<ActSupplies> select1();
List<ActSupplies> select2();
List<ActSuppliesDetails> select();
ActSupplies selectByNum();
ActSupplies selectById(@Param("id") Object sid);
}
package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import java.util.List;
import java.util.Map;
/**
* @author haiwe
......@@ -8,5 +11,5 @@ import java.util.List;
*/
public interface AsiccSuppliesService {
List<Object> getData(String mineId);
Map<String,Object> getData(AsiccDAO asiccDAO);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesDetails;
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;
......@@ -22,59 +25,66 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
private final AsiccSuppliesMapper asiccSuppliesMapper;
@Override
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) {
public Map<String,Object> getData(AsiccDAO asiccDAO) {
long begin = System.currentTimeMillis();
List<ActSuppliesDetails> detailsList = asiccSuppliesMapper.select();
//特殊处理最后没有匹配上的数据的id为10
ActSupplies actSupplies = asiccSuppliesMapper.selectByNum();
//存放detailsList中的code
Map<String, Object> map = new HashMap<>();
detailsList.forEach(v->{
String actCode = v.getCode();
Long sid = v.getSid();
map.put(actCode,sid);
});
Map<String, Object> voMap = new HashMap<>();
//存放处理之后的code (asiccDAO中的Code)
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 twoLevel = supplies.getTwoLevel();
codeList.add(oneLevel);
codeList.add(twoLevel);
voMap.put(code,codeList);
} else {
kmCode = StringUtils.substring(kmCode, 0, 4);
if (map.containsKey(kmCode)) {
Object sid = map.get(kmCode);
ActSupplies supplies = asiccSuppliesMapper.selectById(sid);
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);
String twoLevel = supplies.getTwoLevel();
codeList.add(oneLevel);
codeList.add(twoLevel);
voMap.put(code,codeList);
} else {
kmCode = StringUtils.substring(kmCode, 0, 2);
if (map.containsKey(kmCode)) {
Object sid = map.get(kmCode);
ActSupplies supplies = asiccSuppliesMapper.selectById(sid);
String oneLevel = supplies.getOneLevel();
String twoLevel = supplies.getTwoLevel();
codeList.add(oneLevel);
codeList.add(twoLevel);
voMap.put(code,codeList);
}else {
//kmCode一律为10
String oneLevel = actSupplies.getSuppliesName();
codeList.add(oneLevel);
codeList.add("null");
voMap.put(code,codeList);
}
}
}
return voList;
}
long end = System.currentTimeMillis();
System.err.println(end-begin);
return voMap;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AsiccSuppliesMapper">
<resultMap type="com.ruoyi.system.domain.ActSupplies" id="ActSuppliesResult">
<result property="id" column="id" />
<result property="oneLevel" column="one_level" />
<result property="twoLevel" column="two_level" />
<result property="threeLevel" column="three_level" />
<result property="code" column="codes"/>
<result property="suppliesName" column="supplies_name" />
<result property="level" column="level" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="codeColumn" column="code_column"/>
<result property="id" column="id"/>
<result property="oneLevel" column="one_level"/>
<result property="twoLevel" column="two_level"/>
<result property="threeLevel" column="three_level"/>
<result property="code" column="codes"/>
<result property="suppliesName" column="supplies_name"/>
<result property="level" column="level"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="codeColumn" column="code_column"/>
</resultMap>
<resultMap type="com.ruoyi.system.domain.ActSuppliesMaterialCode" id="ActSuppliesMaterialCodeResult">
<result property="id" column="id" />
<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" />
<result property="id" column="id"/>
<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">
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
from act_supplies_import_cleaning_copy1 asicc1
LEFT JOIN act_supplies act on codes = asicc1.categories
where ssk_id = #{mineId} and code_column in
<foreach collection="codes" item="code" separator="," open="(" close=")">
#{code}
</foreach>
<foreach collection="codes" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</select>
<select id="selectByCodes" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
......@@ -48,7 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectByOneLevel" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
from act_supplies
where one_level = #{oneLevel} and level = 1
where one_level = #{oneLevel}
and level = 1
</select>
<select id="selectByMineId" resultMap="ActSuppliesMaterialCodeResult">
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"
from act_supplies
where level = 2
</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>
\ 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