TmstruckSelfMachineService.java 6.6 KB

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