TmstruckSelfMachineService.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.TmstruckEnfactoryResultMapper;
  3. import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
  4. import com.steerinfo.dil.service.ITmstruckSelfMachineService;
  5. import com.steerinfo.dil.util.DataChange;
  6. import org.checkerframework.checker.regex.RegexUtil;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import java.math.BigDecimal;
  10. import java.util.*;
  11. import java.util.regex.Matcher;
  12. import java.util.regex.Pattern;
  13. /**
  14. * @author luobang
  15. * @create 2021-11-17 20:59
  16. */
  17. @Service
  18. public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
  19. @Autowired
  20. TmstruckEnfactoryResultMapper tmstruckEnfactoryResultMapper;
  21. @Autowired
  22. TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
  23. /**
  24. * 提货单信息
  25. * @param orderNumber
  26. * @return
  27. */
  28. @Override
  29. public Map<String, Object> getBillOrder(String orderNumber) {
  30. //1.根据运输订单号查询主干信息
  31. Map<String,Object>map=tmstruckEnfactoryResultMapper.getBillOrder(orderNumber);
  32. if(map !=null){
  33. //2.根据运输订单号查询枝叶信息-物资
  34. List<Map<String,Object>>list=tmstruckEnfactoryResultMapper.getBillOrderMaterial(orderNumber);
  35. map.put("materialList",list);
  36. }
  37. return map;
  38. }
  39. @Override
  40. public List<Map<String, Object>> getBillOrderForPrinter(String orderNumber) {
  41. return tmstruckEnfactoryResultMapper.getBillOrderForPrinter(orderNumber);
  42. }
  43. @Override
  44. public Map<String, Object> getDeliveryOrder(String orderNumber) {
  45. Map<String,Object> map=new HashMap<>();
  46. try {
  47. //1.根据运输订单号查询主干信息
  48. map = tmstruckLeaveFactoryResultMapper.getDeliveryOrder(orderNumber);
  49. //备注信息的查找以及修改
  50. //String note=tmstruckLeaveFactoryResultMapper.querynote(orderNumber);
  51. //Date date=tmstruckLeaveFactoryResultMapper.queryDate(orderNumber);
  52. //if (date!=null&&!("".equals(date))){
  53. // map.put("note",note);
  54. //}else {
  55. // if(note!=null&&!("".equals(note))){
  56. // String regex="\\d{1,2}\\.\\d{1,2}";
  57. // Pattern pattern=Pattern.compile(regex);
  58. // Matcher matcher=pattern.matcher(note);
  59. // StringBuffer stringBuffer=new StringBuffer();
  60. // stringBuffer.append(note);
  61. // String partOfNote = tmstruckLeaveFactoryResultMapper.querypartOfNote(orderNumber);
  62. // while (matcher.find()){
  63. // String group = matcher.group();
  64. // /*note=note.replace(group,partOfNote);*/
  65. // note=matcher.replaceAll(partOfNote);
  66. // }
  67. //
  68. // }else {
  69. // map.put("note","");
  70. // }
  71. //}
  72. map.put("orderNumber",orderNumber);
  73. if(map !=null){
  74. List<Map<String, Object>> deliveryOrderMaterialList = tmstruckLeaveFactoryResultMapper.getDeliveryOrderMaterial(orderNumber);
  75. //判断为棒材还是线材
  76. for (Map<String,Object> map1:deliveryOrderMaterialList){
  77. BigDecimal materialid = (BigDecimal) map1.get("materialId");
  78. String materialName =(String) map1.get("materialName");
  79. map.put("materialName",materialName);
  80. BigDecimal Bigdecimal1 = tmstruckLeaveFactoryResultMapper.queryNumber(materialid, orderNumber);
  81. map1.put("materialNumber",Bigdecimal1);
  82. //判断是实重还是理重的标志
  83. BigDecimal isPoundSale = (BigDecimal) map1.get("isPoundSale");
  84. //判断是否为盘螺materialName.contains("盘螺")||materialName.contains("盘元")
  85. //根据运输订单号查找实绩重量
  86. List<Map<String, Object>> netWeightlist = tmstruckLeaveFactoryResultMapper.getNetWeightByOrder(map);
  87. for (Map<String, Object> stringObjectMap : netWeightlist) {
  88. BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
  89. if(materialid1 !=null&&!("".equals(materialid1))){
  90. if (materialid.compareTo(materialid1) == 0) {
  91. BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight");
  92. if (nowNetWeight != null) {
  93. map1.put("netWeightTime",stringObjectMap.get("netWeightTime"));
  94. if(stringObjectMap.get("saleMaterialId") != null) {
  95. String saleRemark = tmstruckLeaveFactoryResultMapper.getSaleRemark(DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId")));
  96. map1.put("saleRemark",saleRemark);
  97. }
  98. }
  99. }
  100. }else {
  101. map1.put("netWeightTime", "");
  102. }
  103. }
  104. if (isPoundSale !=null && isPoundSale.compareTo(BigDecimal.valueOf(0))==0){
  105. for (Map<String, Object> stringObjectMap : netWeightlist) {
  106. BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
  107. if(materialid1 !=null&&!("".equals(materialid1))){
  108. if (materialid.compareTo(materialid1) == 0) {
  109. BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight");
  110. if (nowNetWeight != null) {
  111. map1.put("materialWeight", nowNetWeight);
  112. }
  113. }
  114. }else {
  115. map1.put("materialWeight", "");
  116. }
  117. }
  118. }else {
  119. //获取物资理重
  120. List<Map<String, Object>> theoryWeightlist = tmstruckLeaveFactoryResultMapper.getTheoryWeight(map);
  121. for (Map<String, Object> stringObjectMap : theoryWeightlist) {
  122. BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
  123. if (materialid.compareTo(materialid1) == 0){
  124. BigDecimal theoryWeight=(BigDecimal) stringObjectMap.get("theoreticalWeight");
  125. if (theoryWeight != null){
  126. map1.put("materialWeight",theoryWeight);
  127. }
  128. }
  129. }
  130. }
  131. }
  132. try {
  133. List<Map<String,Object>> deleteList= new ArrayList();
  134. for(Map<String,Object> lastMap : deliveryOrderMaterialList) {
  135. if(!(lastMap.get("materialWeight") != null && !"".equals(lastMap.get("materialWeight")))){
  136. deleteList.add(lastMap);
  137. }
  138. }
  139. deliveryOrderMaterialList.removeAll(deleteList);
  140. } catch (Exception e) {
  141. e.printStackTrace();
  142. }
  143. map.put("deliveryOrderMaterialList",deliveryOrderMaterialList);
  144. }
  145. }catch (Exception e){
  146. System.out.println("e"+e.getMessage());
  147. }
  148. return map;
  149. }
  150. /**
  151. * @author:zyf
  152. * @version:1.0
  153. * @Date:2022-09-04
  154. * @Description:查询出打印数量
  155. */
  156. public Map<String,Object> queryNumber(String orderNumber){
  157. Map<String,Object> bigDecimal = tmstruckLeaveFactoryResultMapper.queryNumber1(orderNumber);
  158. return bigDecimal;
  159. }
  160. /**
  161. * @author:zyf
  162. * @version:1.0
  163. * @Date:2022-09-04
  164. * @Description:更新打印数量
  165. */
  166. public void changeNumber(String orderNumber){
  167. tmstruckLeaveFactoryResultMapper.changeNumber(orderNumber);
  168. }
  169. }