Commit 1cf01e70 authored by 刘_震's avatar 刘_震

code转一二级分类(代码修改)-添加费用来源

parent 137782ef
......@@ -16,5 +16,7 @@ public interface ActSuppliesMaterialMapper {
void delete(@Param("mineId") String mineId, @Param("dateColumn") String dateColumn);
List<ActSuppliesMaterialDetails> getInfo(@Param("mineId") String mineId, @Param("dateColumn")String dateColumn);
//void save(ActSuppliesMaterialInfo actSuppliesMaterialInfo);
}
......@@ -50,4 +50,12 @@
where mine_id = #{mineId} and date_column = #{dateColumn}
</delete>
<select id="getInfo" resultMap="ActSuppliesMaterialDetailsResult">
select name_column, code_column, department_column, number_column,
money_column, money, unit, model, mine_name,
mine_id, one_level, two_level, date_column, source_coloumn,spare
from act_supplies_material_info
where mine_id = #{mineId} and date_column = #{dateColumn}
</select>
</mapper>
\ No newline at end of file
......@@ -23,6 +23,17 @@ public class WagesConversionData {
private String mineId;
private Integer templateId;
public Integer getTemplateId() {
return templateId;
}
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public String getMineId() {
return mineId;
}
......
......@@ -14,6 +14,17 @@ public class WagesConversionDataVO {
private String mineId;
private Integer templateId;
public Integer getTemplateId() {
return templateId;
}
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public String getMineId() {
return mineId;
}
......
......@@ -58,57 +58,62 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
ActSupplies actSupplies = asiccSuppliesMapper.selectByNum();
//存放处理之后的code (asiccDAO中的Code)
for (String code : asiccDAO.getCodes()) {
Map<String, String> codeList = new HashMap<>();
Map<String,Object> map = new HashMap<>();
//存放基本生产原煤的一级、二级分类
Map<String,Object> codeList1 = new HashMap<>();
//存放基本生产洗煤的一级、二级分类
Map<String,Object> codeList2 = new HashMap<>();
//存放其他费用来源的一级、二级分类
Map<String,Object> codeList3 = new HashMap<>();
String kmCode = StringUtils.substring(code, 0, 6);
if (codeMap.containsKey(kmCode)) {
Object sid = codeMap.get(kmCode);
String finalLevel = suppliesMap.get(sid);
String[] part = finalLevel.split("_");
String oneLevel = part[0];
String twoLevel = part[1];
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
voMap.put(code, codeList);
get(voMap, suppliesMap, codeMap, code, map, codeList1, codeList2, codeList3, kmCode);
} else {
kmCode = StringUtils.substring(kmCode, 0, 4);
if (codeMap.containsKey(kmCode)) {
if (mineId.equals("011704") && kmCode.equals("6199")) {
codeList.put("一级分类", "其他材料");
codeList.put("二级分类", null);
voMap.put(code, codeList);
codeList1.put("一级分类","其他材料");
codeList1.put("二级分类","其他");
codeList2.put("一级分类","其他材料");
codeList2.put("二级分类","其他");
} else {
Object sid = codeMap.get(kmCode);
String finalLevel = suppliesMap.get(sid);
String[] part = finalLevel.split("_");
String oneLevel = part[0];
String twoLevel = part[1];
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
voMap.put(code, codeList);
getId(suppliesMap, codeMap, codeList1, codeList2, kmCode);
}
codeList3.put("一级分类","其他材料");
codeList3.put("二级分类","其他");
map.put("基本生产原煤", codeList1);
map.put("基本生产洗煤", codeList2);
map.put("其他费用来源", codeList3);
voMap.put(code,map);
} else {
kmCode = StringUtils.substring(kmCode, 0, 2);
Range<String> range = Range.between("30", "36");
if (mineId.equals("011704") && range.contains(kmCode)) {
codeList.put("一级分类", "配件");
codeList.put("二级分类", null);
voMap.put(code, codeList);
codeList1.put("一级分类","配件");
codeList1.put("二级分类","配件");
codeList2.put("一级分类","配件");
codeList2.put("二级分类","配件");
} else if (codeMap.containsKey(kmCode)) {
Object sid = codeMap.get(kmCode);
String finalLevel = suppliesMap.get(sid);
String[] part = finalLevel.split("_");
String oneLevel = part[0];
String twoLevel = part[1];
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
voMap.put(code, codeList);
get(voMap, suppliesMap, codeMap, code, map, codeList1, codeList2, codeList3, kmCode);
} else {
//kmCode一律为10
String oneLevel = actSupplies.getSuppliesName();
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", null);
voMap.put(code, codeList);
codeList1.put("一级分类",oneLevel);
codeList1.put("二级分类",null);
if (oneLevel.equals("油脂")||oneLevel.equals("配件")) {
codeList2.put("一级分类",oneLevel);
codeList2.put("二级分类",null);
}else{
codeList2.put("一级分类","其他材料");
codeList2.put("二级分类","其他");
}
codeList3.put("一级分类","其他材料");
codeList3.put("二级分类","其他");
map.put("基本生产原煤", codeList1);
map.put("基本生产洗煤", codeList2);
map.put("其他费用来源", codeList3);
voMap.put(code,map);
}
}
}
......@@ -122,48 +127,38 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
});
for (String code : asiccDAO.getCodes()) {
boolean matched = false;
Map<String, String> codeList = new HashMap<>();
Map<String,Object> map = new HashMap<>();
//存放基本生产原煤的一级、二级分类
Map<String,Object> codeList1 = new HashMap<>();
//存放基本生产洗煤的一级、二级分类
Map<String,Object> codeList2 = new HashMap<>();
//存放其他费用来源的一级、二级分类
Map<String,Object> codeList3 = new HashMap<>();
for (ActSuppliesMaterialCode materialCode : materialCodeList) {
String kmCode = code;
String codeMin = materialCode.getCodeMin();
String codeMax = materialCode.getCodeMax();
Range<String> range = Range.between(codeMin, codeMax);
if (range.contains(kmCode)) {
String twoLevel = materialCode.getMaterialName();
String codeType = materialCode.getMaterialCodeType();
String oneLevel = suppliesMap.get(codeType);
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
getLevelInfo(voMap, suppliesMap, code, map, codeList1, codeList2, codeList3, materialCode);
matched = true;
break; // 跳出内部循环
} else {
kmCode = StringUtils.substring(kmCode, 0, 6);
if (range.contains(kmCode)) {
String twoLevel = materialCode.getMaterialName();
String codeType = materialCode.getMaterialCodeType();
String oneLevel = suppliesMap.get(codeType);
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
getLevelInfo(voMap, suppliesMap, code, map, codeList1, codeList2, codeList3, materialCode);
matched = true;
break; // 跳出内部循环
} else {
kmCode = StringUtils.substring(kmCode, 0, 4);
if (range.contains(kmCode)) {
String twoLevel = materialCode.getMaterialName();
String codeType = materialCode.getMaterialCodeType();
String oneLevel = suppliesMap.get(codeType);
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
getLevelInfo(voMap, suppliesMap, code, map, codeList1, codeList2, codeList3, materialCode);
matched = true;
break; // 跳出内部循环
} else {
kmCode = StringUtils.substring(kmCode, 0, 2);
if (range.contains(kmCode)) {
String twoLevel = materialCode.getMaterialName();
String codeType = materialCode.getMaterialCodeType();
String oneLevel = suppliesMap.get(codeType);
codeList.put("一级分类", oneLevel);
codeList.put("二级分类", twoLevel);
getLevelInfo(voMap, suppliesMap, code, map, codeList1, codeList2, codeList3, materialCode);
matched = true;
break; // 跳出内部循环
}
......@@ -171,14 +166,84 @@ public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
}
}
}
if (!matched) {
codeList.put("一级分类", "其他材料");
codeList.put("二级分类", null);
codeList1.put("一级分类","其他材料");
codeList1.put("二级分类","其他");
codeList2.put("一级分类","其他材料");
codeList2.put("二级分类","其他");
codeList3.put("一级分类","其他材料");
codeList3.put("二级分类","其他");
map.put("基本生产原煤", codeList1);
map.put("基本生产洗煤", codeList2);
map.put("其他费用来源", codeList3);
}
voMap.put(code, codeList);
voMap.put(code, map);
}
}
return voMap;
}
/**
* 返回各个费用来源对应的一级、二级分类(处理矿id存在的规则)
*/
private void getLevelInfo(Map<String, Object> voMap, Map<Object, String> suppliesMap,
String code, Map<String, Object> map,
Map<String,Object> codeList1, Map<String,Object> codeList2,
Map<String,Object> codeList3, ActSuppliesMaterialCode materialCode) {
String twoLevel = materialCode.getMaterialName();
String codeType = materialCode.getMaterialCodeType();
String oneLevel = suppliesMap.get(codeType);
codeList1.put("一级分类",oneLevel);
codeList1.put("二级分类",twoLevel);
if (oneLevel.equals("油脂及乳化液")||oneLevel.equals("配件")) {
codeList2.put("一级分类",oneLevel);
codeList2.put("二级分类",twoLevel);
}else{
codeList2.put("一级分类","其他材料");
codeList2.put("二级分类","其他");
}
codeList3.put("一级分类","其他材料");
codeList3.put("二级分类","其他");
map.put("基本生产原煤", codeList1);
map.put("基本生产洗煤", codeList2);
map.put("其他费用来源", codeList3);
voMap.put(code,map);
}
/**
* 返回各个费用来源对应的一级、二级分类(处理矿id不存在的规则)
*/
private void get(Map<String, Object> voMap, Map<Object, String> suppliesMap,
Map<String, Object> codeMap, String code, Map<String, Object> map,
Map<String,Object> codeList1, Map<String,Object> codeList2,
Map<String,Object> codeList3, String kmCode) {
getId(suppliesMap, codeMap, codeList1, codeList2, kmCode);
codeList3.put("一级分类","其他材料");
codeList3.put("二级分类","其他");
map.put("基本生产原煤", codeList1);
map.put("基本生产洗煤", codeList2);
map.put("其他费用来源", codeList3);
voMap.put(code,map);
}
/**
* 处理原煤和洗煤的一级和二级分类(处理矿id不存在)
*/
private void getId(Map<Object, String> suppliesMap, Map<String, Object> codeMap,
Map<String,Object> codeList1, Map<String,Object> codeList2, String kmCode) {
Object sid = codeMap.get(kmCode);
String finalLevel = suppliesMap.get(sid);
String[] part = finalLevel.split("_");
String oneLevel = part[0];
String twoLevel = part[1];
codeList1.put("一级分类",oneLevel);
codeList1.put("二级分类",twoLevel);
if (oneLevel.equals("油脂及乳化液")||oneLevel.equals("配件")) {
codeList2.put("一级分类",oneLevel);
codeList2.put("二级分类",twoLevel);
}else{
codeList2.put("一级分类","其他材料");
codeList2.put("二级分类","其他");
}
}
}
......@@ -12,11 +12,12 @@
<result property="updateTime" column="update_date"/>
<result property="yearMonth" column="wage_month"/>
<result property="mineId" column="mine_id"/>
<result property="templateId" column="template_id"/>
</resultMap>
<insert id="save">
insert into wages_conversion_data (json_data, if_generate_voucher, wage_month, value, mine_id)
values (#{jsonData}, 0, #{yearMonth}, #{value},#{mineId})
values (#{jsonData}, 0, #{yearMonth}, #{value},#{mineId},#{templateId})
</insert>
<delete id="deleteFromConversionToDate">
delete
......@@ -33,7 +34,9 @@
</select>
<select id="selectWagesConversionDataById" parameterType="integer"
resultMap="WagesConversionData">
select id, json_data, if_generate_voucher, wage_month, create_date, update_date
select id, json_data, if_generate_voucher,
wage_month, create_date, update_date,mine_id,
template_id
from wages_conversion_data
where id = #{id}
</select>
......
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