package com.steerinfo.dil.service.impl; import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper; import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper; import com.steerinfo.dil.service.ITmstruckSelfMachineService; import com.steerinfo.dil.util.DataChange; import org.checkerframework.checker.regex.RegexUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author luobang * @create 2021-11-17 20:59 */ @Service public class TmstruckSelfMachineService implements ITmstruckSelfMachineService { @Autowired TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper; @Autowired TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper; /** * 提货单信息 * @param orderNumber * @return */ @Override public Map getBillOrder(String orderNumber) { //1.根据运输订单号查询主干信息 Mapmap=tmstruckEnfactoryResultMapper.getBillOrder(orderNumber); if(map !=null){ //2.根据运输订单号查询枝叶信息-物资 List>list=tmstruckEnfactoryResultMapper.getBillOrderMaterial(orderNumber); map.put("materialList",list); } return map; } @Override public List> getBillOrderForPrinter(String orderNumber) { return tmstruckEnfactoryResultMapper.getBillOrderForPrinter(orderNumber); } @Override public Map getDeliveryOrder(String orderNumber) { Map map=new HashMap<>(); try { //1.根据运输订单号查询主干信息 map = tmstruckLeaveFactoryResultMapper.getDeliveryOrder(orderNumber); //备注信息的查找以及修改 //String note=tmstruckLeaveFactoryResultMapper.querynote(orderNumber); //Date date=tmstruckLeaveFactoryResultMapper.queryDate(orderNumber); //if (date!=null&&!("".equals(date))){ // map.put("note",note); //}else { // if(note!=null&&!("".equals(note))){ // String regex="\\d{1,2}\\.\\d{1,2}"; // Pattern pattern=Pattern.compile(regex); // Matcher matcher=pattern.matcher(note); // StringBuffer stringBuffer=new StringBuffer(); // stringBuffer.append(note); // String partOfNote = tmstruckLeaveFactoryResultMapper.querypartOfNote(orderNumber); // while (matcher.find()){ // String group = matcher.group(); // /*note=note.replace(group,partOfNote);*/ // note=matcher.replaceAll(partOfNote); // } // // }else { // map.put("note",""); // } //} map.put("orderNumber",orderNumber); if(map !=null){ List> deliveryOrderMaterialList = tmstruckLeaveFactoryResultMapper.getDeliveryOrderMaterial(orderNumber); //判断为棒材还是线材 for (Map map1:deliveryOrderMaterialList){ BigDecimal materialid = (BigDecimal) map1.get("materialId"); String materialName =(String) map1.get("materialName"); map.put("materialName",materialName); BigDecimal Bigdecimal1 = tmstruckLeaveFactoryResultMapper.queryNumber(materialid, orderNumber); map1.put("materialNumber",Bigdecimal1); //判断是实重还是理重的标志 BigDecimal isPoundSale = (BigDecimal) map1.get("isPoundSale"); //判断是否为盘螺materialName.contains("盘螺")||materialName.contains("盘元") //根据运输订单号查找实绩重量 List> netWeightlist = tmstruckLeaveFactoryResultMapper.getNetWeightByOrder(map); for (Map stringObjectMap : netWeightlist) { BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid"); if(materialid1 !=null&&!("".equals(materialid1))){ if (materialid.compareTo(materialid1) == 0) { BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight"); if (nowNetWeight != null) { map1.put("netWeightTime",stringObjectMap.get("netWeightTime")); if(stringObjectMap.get("saleMaterialId") != null) { String saleRemark = tmstruckLeaveFactoryResultMapper.getSaleRemark(DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId"))); map1.put("saleRemark",saleRemark); } } } }else { map1.put("netWeightTime", ""); } } if (isPoundSale !=null && isPoundSale.compareTo(BigDecimal.valueOf(0))==0){ for (Map stringObjectMap : netWeightlist) { BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid"); if(materialid1 !=null&&!("".equals(materialid1))){ if (materialid.compareTo(materialid1) == 0) { BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight"); if (nowNetWeight != null) { map1.put("materialWeight", nowNetWeight); } } }else { map1.put("materialWeight", ""); } } }else { //获取物资理重 List> theoryWeightlist = tmstruckLeaveFactoryResultMapper.getTheoryWeight(map); for (Map stringObjectMap : theoryWeightlist) { BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid"); if (materialid.compareTo(materialid1) == 0){ BigDecimal theoryWeight=(BigDecimal) stringObjectMap.get("theoreticalWeight"); if (theoryWeight != null){ map1.put("materialWeight",theoryWeight); } } } } } try { List> deleteList= new ArrayList(); for(Map lastMap : deliveryOrderMaterialList) { if(!(lastMap.get("materialWeight") != null && !"".equals(lastMap.get("materialWeight")))){ deleteList.add(lastMap); } } deliveryOrderMaterialList.removeAll(deleteList); } catch (Exception e) { e.printStackTrace(); } map.put("deliveryOrderMaterialList",deliveryOrderMaterialList); } }catch (Exception e){ System.out.println("e"+e.getMessage()); } return map; } /** * @author:zyf * @version:1.0 * @Date:2022-09-04 * @Description:查询出打印数量 */ public Map queryNumber(String orderNumber){ Map bigDecimal = tmstruckLeaveFactoryResultMapper.queryNumber1(orderNumber); return bigDecimal; } /** * @author:zyf * @version:1.0 * @Date:2022-09-04 * @Description:更新打印数量 */ public void changeNumber(String orderNumber){ tmstruckLeaveFactoryResultMapper.changeNumber(orderNumber); } }