TCtnpriceServiceImpl.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package com.ruoyi.shipping.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import com.alibaba.fastjson.JSONArray;
  7. import com.alibaba.fastjson.JSONObject;
  8. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  9. import com.ruoyi.common.core.domain.AjaxResult;
  10. import com.ruoyi.common.utils.DateUtils;
  11. import com.ruoyi.common.utils.SecurityUtils;
  12. import com.ruoyi.shipping.domain.TCntr;
  13. import com.ruoyi.shipping.domain.TCtnpriceItems;
  14. import com.ruoyi.shipping.mapper.TCntrMapper;
  15. import com.ruoyi.shipping.mapper.TCtnpriceItemsMapper;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import com.ruoyi.shipping.mapper.TCtnpriceMapper;
  19. import com.ruoyi.shipping.domain.TCtnprice;
  20. import com.ruoyi.shipping.service.ITCtnpriceService;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  23. /**
  24. * 海运运价Service业务层处理
  25. *
  26. * @author ruoyi
  27. * @date 2021-04-06
  28. */
  29. @Service
  30. public class TCtnpriceServiceImpl implements ITCtnpriceService
  31. {
  32. @Autowired
  33. private TCtnpriceMapper tCtnpriceMapper;
  34. @Autowired
  35. private TCtnpriceItemsMapper tCtnpriceItemsMapper;
  36. @Autowired
  37. private TCntrMapper tCntrMapper;
  38. /**
  39. * 查询海运运价
  40. *
  41. * @param fId 海运运价ID
  42. * @return 海运运价
  43. */
  44. @Override
  45. public TCtnprice selectTCtnpriceById(Long fId)
  46. {
  47. return tCtnpriceMapper.selectTCtnpriceById(fId);
  48. }
  49. @Override
  50. public AjaxResult selectTCtnprice(Long fId) {
  51. Map<String, Object> map = new HashMap<>();
  52. TCtnprice tCtnprice = tCtnpriceMapper.selectTCtnpriceById(fId);
  53. TCtnpriceItems tCtnpriceItems = new TCtnpriceItems();
  54. tCtnpriceItems.setfPid(fId);
  55. List<TCtnpriceItems> ctnpriceItems = tCtnpriceItemsMapper.selectTCtnpriceItemsList(tCtnpriceItems);
  56. map.put("tCtnprice",tCtnprice);
  57. map.put("ctnpriceItems",ctnpriceItems);
  58. return AjaxResult.success("成功",map);
  59. }
  60. /**
  61. * 查询海运运价列表
  62. *
  63. * @param tCtnprice 海运运价
  64. * @return 海运运价
  65. */
  66. @Override
  67. public List<TCtnprice> selectTCtnpriceList(TCtnprice tCtnprice)
  68. {
  69. return tCtnpriceMapper.selectTCtnpriceList(tCtnprice);
  70. }
  71. /**
  72. * 新增海运运价
  73. *
  74. * @param tCtnprice 海运运价
  75. * @return 结果
  76. */
  77. @Override
  78. public int insertTCtnprice(TCtnprice tCtnprice)
  79. {
  80. tCtnprice.setCreateTime(DateUtils.getNowDate());
  81. tCtnprice.setCreateBy(SecurityUtils.getUsername());
  82. return tCtnpriceMapper.insertTCtnprice(tCtnprice);
  83. }
  84. @Override
  85. @Transactional
  86. public AjaxResult insertTCtnpriceNew(String tCtnprice, String tCtnpriceItems) {
  87. TCtnprice ctnprice = JSONArray.parseObject(tCtnprice, TCtnprice.class);
  88. if (ctnprice.getfPortofloadid() == null){
  89. return AjaxResult.error("装货港不能为空");
  90. }
  91. if (ctnprice.getfDistinationid() == null){
  92. return AjaxResult.error("目的港不能为空");
  93. }
  94. /* if (ctnprice.getfPortoftransshipment() == null){
  95. return AjaxResult.error("中转港不能为空");
  96. }*/
  97. /*if (ctnprice.getfEtd() == null){
  98. return AjaxResult.error("预计开船日期不能为空");
  99. }
  100. if (ctnprice.getfEta() == null){
  101. return AjaxResult.error("预计到达日期不能为空");
  102. }*/
  103. if (ctnprice.getfBegindate() == null){
  104. return AjaxResult.error("有效期止不能为空");
  105. }
  106. List<TCtnprice> tCtnpriceList = tCtnpriceMapper.selectMessage(ctnprice);
  107. if (CollectionUtils.isNotEmpty(tCtnpriceList)){
  108. for (TCtnprice Price : tCtnpriceList) {
  109. if (ctnprice.getfId() != null && ctnprice.getfId() != Price.getfId()){
  110. return AjaxResult.error("当前起始港口的有效期内的运价条目重复,请确认");
  111. }else if (ctnprice.getfId() == null){
  112. return AjaxResult.error("当前起始港口的有效期内的运价条目重复,请确认");
  113. }
  114. }
  115. }
  116. List<TCtnpriceItems> ctnpriceItems = new ArrayList<>();
  117. if (ctnprice.getfId() == null){
  118. ctnprice.setCreateTime(DateUtils.getNowDate());
  119. ctnprice.setCreateBy(SecurityUtils.getUsername());
  120. /*if (ctnprice.getfDays()==null){
  121. long dateDay = DateUtils.getDateDay(ctnprice.getfEta(),ctnprice.getfEtd());
  122. ctnprice.setfDays(dateDay);
  123. }*/
  124. int i = tCtnpriceMapper.insertTCtnprice(ctnprice);
  125. JSONArray warehouseJSON = JSONArray.parseArray(tCtnpriceItems);
  126. ctnpriceItems = JSONObject.parseArray(warehouseJSON.toJSONString(), TCtnpriceItems.class);
  127. if (CollectionUtils.isNotEmpty(ctnpriceItems)){
  128. for (TCtnpriceItems ctnpriceItem : ctnpriceItems) {
  129. List<TCtnpriceItems> ctnpriceItemsList = tCtnpriceItemsMapper.selectItemMeaasge(ctnprice.getfId(), ctnpriceItem.getfCntrid());
  130. if (CollectionUtils.isNotEmpty(ctnpriceItemsList)){
  131. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  132. TCntr cntr = tCntrMapper.selectTCntrById(ctnpriceItem.getfCntrid());
  133. return AjaxResult.error("运价中集装箱编号"+cntr.getfNo()+"重复,请确认");
  134. }
  135. ctnpriceItem.setfPid(ctnprice.getfId());
  136. ctnpriceItem.setCreateTime(DateUtils.getNowDate());
  137. ctnpriceItem.setCreateBy(SecurityUtils.getUsername());
  138. int items = tCtnpriceItemsMapper.insertTCtnpriceItems(ctnpriceItem);
  139. }
  140. }
  141. }else {
  142. ctnprice.setUpdateTime(DateUtils.getNowDate());
  143. ctnprice.setUpdateBy(SecurityUtils.getUsername());
  144. /*if (ctnprice.getfDays()==null){
  145. long dateDay = DateUtils.getDateDay(ctnprice.getfEta(),ctnprice.getfEtd());
  146. ctnprice.setfDays(dateDay);
  147. }*/
  148. if (ctnprice.getfStatus().equals("T") ||ctnprice.getfStatus().equals("正常")){
  149. ctnprice.setfStatus("T");
  150. }else {
  151. ctnprice.setfStatus("F");
  152. }
  153. int updateTCtnprice = tCtnpriceMapper.updateTCtnprice(ctnprice);
  154. JSONArray warehouseJSON = JSONArray.parseArray(tCtnpriceItems);
  155. ctnpriceItems = JSONObject.parseArray(warehouseJSON.toJSONString(), TCtnpriceItems.class);
  156. if (CollectionUtils.isNotEmpty(ctnpriceItems)){
  157. tCtnpriceItemsMapper.deleteTCtnpriceItemsByfPid(ctnprice.getfId());
  158. for (TCtnpriceItems ctnpriceItem : ctnpriceItems) {
  159. List<TCtnpriceItems> ctnpriceItemsList = tCtnpriceItemsMapper.selectItemMeaasge(ctnprice.getfId(), ctnpriceItem.getfCntrid());
  160. if (CollectionUtils.isNotEmpty(ctnpriceItemsList)){
  161. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  162. TCntr cntr = tCntrMapper.selectTCntrById(ctnpriceItem.getfCntrid());
  163. return AjaxResult.error("运价中集装箱编号"+cntr.getfNo()+"重复,请确认");
  164. }
  165. ctnpriceItem.setfPid(ctnprice.getfId());
  166. ctnpriceItem.setCreateTime(DateUtils.getNowDate());
  167. ctnpriceItem.setCreateBy(SecurityUtils.getUsername());
  168. if (ctnpriceItem.getfStatus().equals("T") ||ctnpriceItem.getfStatus().equals("正常")){
  169. ctnpriceItem.setfStatus("T");
  170. }else {
  171. ctnpriceItem.setfStatus("F");
  172. }
  173. int items = tCtnpriceItemsMapper.insertTCtnpriceItems(ctnpriceItem);
  174. }
  175. }
  176. }
  177. Map<String, Object> map = new HashMap<>();
  178. map.put("ctnprice",ctnprice);
  179. map.put("ctnpriceItems",ctnpriceItems);
  180. return AjaxResult.success("成功",map);
  181. }
  182. /**
  183. * 修改海运运价
  184. *
  185. * @param tCtnprice 海运运价
  186. * @return 结果
  187. */
  188. @Override
  189. public int updateTCtnprice(TCtnprice tCtnprice)
  190. {
  191. tCtnprice.setUpdateTime(DateUtils.getNowDate());
  192. tCtnprice.setUpdateBy(SecurityUtils.getUsername());
  193. return tCtnpriceMapper.updateTCtnprice(tCtnprice);
  194. }
  195. /**
  196. * 批量删除海运运价
  197. *
  198. * @param fIds 需要删除的海运运价ID
  199. * @return 结果
  200. */
  201. @Override
  202. @Transactional
  203. public int deleteTCtnpriceByIds(Long[] fIds)
  204. {
  205. int i;
  206. i = tCtnpriceMapper.deleteTCtnpriceByIds(fIds);
  207. i = tCtnpriceItemsMapper.deleteTCtnpriceItemsByfPids(fIds);
  208. return i;
  209. }
  210. /**
  211. * 删除海运运价信息
  212. *
  213. * @param fId 海运运价ID
  214. * @return 结果
  215. */
  216. @Override
  217. public int deleteTCtnpriceById(Long fId)
  218. {
  219. return tCtnpriceMapper.deleteTCtnpriceById(fId);
  220. }
  221. @Override
  222. public List<TCtnprice> freightSelect(TCtnprice tCtnprice) {
  223. List<TCtnprice> tCtnprices = tCtnpriceMapper.selectTCtnpriceList(tCtnprice);
  224. if (CollectionUtils.isNotEmpty(tCtnprices)){
  225. for (TCtnprice ctnprice : tCtnprices) {
  226. TCtnpriceItems items = new TCtnpriceItems();
  227. items.setfPid(ctnprice.getfId());
  228. List<TCtnpriceItems> tCtnpriceItems = tCtnpriceItemsMapper.selectTCtnpriceItemsList(items);
  229. ctnprice.settCtnpriceItemsList(tCtnpriceItems);
  230. }
  231. }
  232. return tCtnprices;
  233. }
  234. }