123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.TypeReference;
- import com.steerinfo.dil.mapper.RmsMaterialMapper;
- import com.steerinfo.dil.mapper.RmsMaterialSteelMapper;
- import com.steerinfo.dil.model.RmsMaterialSteel;
- import com.steerinfo.dil.service.IRmsMaterialSteelService;
- import com.steerinfo.dil.util.DataChange;
- import com.steerinfo.dil.util.DecompileUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @author luobang
- * @create 2021-09-26 20:23
- */
- @Service("rmsMaterialSteelService")
- public class RmsMaterialSteelServiceImpl implements IRmsMaterialSteelService {
- @Autowired
- RmsMaterialSteelMapper rmsMaterialSteelMapper;
- @Autowired
- RmsMaterialMapper rmsMaterialMapper;
- /**
- * 1.获取最大id数
- * @return
- */
- @Override
- public int count() {
- if(rmsMaterialSteelMapper.getCount()==null){
- return 0;
- }
- return rmsMaterialSteelMapper.getCount().intValue();
- }
- /**
- * 2.新增物资
- * @param
- * @param
- * @return
- */
- @Override
- public Integer insertRmsMaterialSteel(String str) throws ParseException {
- //将扫描吊牌结果根据分隔符截取字符串
- String[] split = str.split("-");
- //炉号
- String FurnaceNumber=split[2];
- //理重
- String TheoreticalWeight=split[4];
- //支数
- String materialCount =split[5];
- //生产日期
- String MaterialProductionDate =split[6];
- //唯一编码
- String MaterialOnlyCode=split[7];
- //编码
- String MaterialCode=split[8];
- //根据物资唯一编码去物资钢材表找物资,如果为空,则新增物资表,不为空,使用这一个ID
- HashMap<String, Object> mapRmsMaterialSteel = new HashMap<>();
- mapRmsMaterialSteel.put("materialOnlyCode",MaterialOnlyCode);
- BigDecimal k =getMaterialSteelId(mapRmsMaterialSteel);
- if(k !=null ){
- return k.intValue();
- }
- //根据物资编码规查找唯一的物资ID
- HashMap<String, Object> mapMaterial = new HashMap<>();
- String materialCode =MaterialCode.contains("\n")? MaterialCode.substring(0, MaterialCode.length() - 1):MaterialCode;
- mapMaterial.put("materialCode", materialCode);
- BigDecimal mi = rmsMaterialMapper.getMaterialId(mapMaterial);
- //开始创建实绩
- RmsMaterialSteel rmsMaterialSteel = new RmsMaterialSteel();
- //设置物资主键ID
- rmsMaterialSteel.setMaterialSteelId(rmsMaterialSteelMapper.getCount());
- //设置物资id
- rmsMaterialSteel.setMaterialId(mi);
- //设置物资唯一编码
- rmsMaterialSteel.setMaterialOnlyCode(MaterialOnlyCode);
- //设置炉号
- rmsMaterialSteel.setMaterialFurnaceNumber(FurnaceNumber);
- //设置物资理重
- //如果物资支数为空,就设置物资磅重
- if (materialCount.length()==0) {
- rmsMaterialSteel.setMaterialSingleBundleWeight(new BigDecimal(TheoreticalWeight));
- //反编译物资理重
- DecompileUtil decompileUtil=new DecompileUtil();
- int weight = decompileUtil.DecompileUtiltest(TheoreticalWeight);
- rmsMaterialSteel.setMaterialTheoreticalWeight(new BigDecimal(weight));
- }else {
- rmsMaterialSteel.setMaterialTheoreticalWeight(new BigDecimal(TheoreticalWeight));
- }
- //设置物资支数
- //判断支数不为空
- if (materialCount.length()!=0) {
- rmsMaterialSteel.setMaterialCount(new BigDecimal(materialCount));
- }
- if(MaterialProductionDate.substring(7, MaterialProductionDate.length()-1).length()!=0) {
- //设置物资生产日期,将字符串转换为时间
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- Date parse = sdf.parse(MaterialProductionDate);
- rmsMaterialSteel.setMaterialProductionDate(parse);
- }else {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- Date parse = sdf.parse(MaterialProductionDate);
- rmsMaterialSteel.setMaterialProductionDate(parse);
- }
- //设置常规字段
- rmsMaterialSteel.setInsertTime(new Date());
- rmsMaterialSteel.setInsertUsername("admin");
- rmsMaterialSteelMapper.insertSelective(rmsMaterialSteel);
- return rmsMaterialSteel.getId().intValue();
- }
- /**
- * 2.新增物资
- * @param
- * @param
- * @return
- */
- @Override
- public Map<String,Object> insertRmsMaterialSteel2(String str) throws ParseException {
- //将扫描吊牌结果根据分隔符截取字符串
- String[] split = str.split("-");
- //炉号
- String FurnaceNumber=split[2];
- //理重
- String TheoreticalWeight=split[4];
- //支数
- String materialCount =split[5];
- //生产日期
- String MaterialProductionDate =split[6];
- //唯一编码
- String MaterialOnlyCode=split[7];
- //编码
- String MaterialCode=split[8];
- //根据物资唯一编码去物资钢材表找物资,如果为空,则新增物资表,不为空,使用这一个ID
- HashMap<String, Object> mapRmsMaterialSteel = new HashMap<>();
- mapRmsMaterialSteel.put("materialOnlyCode",MaterialOnlyCode);
- Map<String,Object> k =getMaterialSteel(mapRmsMaterialSteel);
- //根据物资编码规查找唯一的物资ID
- HashMap<String, Object> mapMaterial = new HashMap<>();
- String materialCode =MaterialCode.contains("\n")? MaterialCode.substring(0, MaterialCode.length() - 1):MaterialCode;
- mapMaterial.put("materialCode", materialCode);
- Map<String,Object> mi= rmsMaterialMapper.getMaterialId2(mapMaterial);
- if(k !=null ){
- k.putAll(mi);
- return k;
- }
- //开始创建实绩
- RmsMaterialSteel rmsMaterialSteel = new RmsMaterialSteel();
- //设置物资主键ID
- rmsMaterialSteel.setMaterialSteelId(rmsMaterialSteelMapper.getCount());
- //设置物资id
- rmsMaterialSteel.setMaterialId(new BigDecimal(mi.get("materialId").toString()));
- //设置物资唯一编码
- rmsMaterialSteel.setMaterialOnlyCode(MaterialOnlyCode);
- //设置炉号
- rmsMaterialSteel.setMaterialFurnaceNumber(FurnaceNumber);
- //设置物资理重
- //如果物资支数为空,就设置物资磅重
- if (materialCount.length()==0) {
- rmsMaterialSteel.setMaterialSingleBundleWeight(new BigDecimal(TheoreticalWeight));
- //反编译物资理重
- DecompileUtil decompileUtil=new DecompileUtil();
- int weight = decompileUtil.DecompileUtiltest(TheoreticalWeight);
- rmsMaterialSteel.setMaterialTheoreticalWeight(new BigDecimal(weight));
- }else {
- rmsMaterialSteel.setMaterialTheoreticalWeight(new BigDecimal(TheoreticalWeight));
- }
- //设置物资支数
- //判断支数不为空
- if (materialCount.length()!=0) {
- rmsMaterialSteel.setMaterialCount(new BigDecimal(materialCount));
- }
- if(MaterialProductionDate.substring(7, MaterialProductionDate.length()-1).length()!=0) {
- //设置物资生产日期,将字符串转换为时间
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- Date parse = sdf.parse(MaterialProductionDate);
- rmsMaterialSteel.setMaterialProductionDate(parse);
- }else {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- Date parse = sdf.parse(MaterialProductionDate);
- rmsMaterialSteel.setMaterialProductionDate(parse);
- }
- //设置常规字段
- rmsMaterialSteel.setInsertTime(new Date());
- rmsMaterialSteel.setInsertUsername("admin");
- rmsMaterialSteelMapper.insertSelective(rmsMaterialSteel);
- mi.putAll(JSON.parseObject(JSON.toJSONString(rmsMaterialSteel),new TypeReference<Map<String,Object>>(){}));
- return mi;
- }
- private Map<String, Object> getMaterialSteel(HashMap<String, Object> mapRmsMaterialSteel) {
- return rmsMaterialSteelMapper.getMaterialSteel(mapRmsMaterialSteel);
- }
- /**
- * 3.根据物资唯一编码查询物资钢材ID
- * @param map
- * @return
- */
- @Override
- public BigDecimal getMaterialSteelId(Map<String, Object> map) {
- return rmsMaterialSteelMapper.selectMaterialSteelId(map);
- }
- }
|