TMSController.java 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766
  1. package com.steerinfo.dil.controller;
  2. import com.steerinfo.dil.annotaion.LogAround;
  3. import com.steerinfo.dil.annotaion.RequestLimit;
  4. import com.steerinfo.dil.feign.AmsFeign;
  5. import com.steerinfo.dil.feign.RmsFeign;
  6. import com.steerinfo.dil.feign.TmsFeign;
  7. import com.steerinfo.dil.mapper.UniversalMapper;
  8. import com.steerinfo.dil.util.BaseRESTfulController;
  9. import com.steerinfo.dil.util.ExcelToolUtils;
  10. import com.steerinfo.framework.controller.RESTfulResult;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import java.io.File;
  18. import java.io.FileInputStream;
  19. import java.math.BigDecimal;
  20. import java.text.DateFormat;
  21. import java.text.ParseException;
  22. import java.text.SimpleDateFormat;
  23. import java.util.*;
  24. import java.util.stream.Collectors;
  25. import com.steerinfo.dil.util.DataChange;
  26. import org.springframework.web.multipart.MultipartRequest;
  27. /**
  28. * @author luobang
  29. * @create 2021-09-17 14:11
  30. */
  31. @RestController
  32. @RequestMapping("${api.version}/tms")
  33. public class TMSController extends BaseRESTfulController {
  34. @Autowired
  35. private TmsFeign tmsFeign;
  36. @Autowired
  37. private AmsFeign amsFeign;
  38. @Autowired
  39. private RmsFeign rmsFeign;
  40. @Autowired
  41. private UniversalMapper universalMapper;
  42. @ApiOperation(value = "车辆实绩")
  43. @ApiImplicitParams({
  44. @ApiImplicitParam(name = "map", value = "参数", required = false, dataType = "map"),
  45. @ApiImplicitParam(name = "apiId()", value = "动态表头", required = false, dataType = "Integer"),
  46. @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
  47. @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
  48. })
  49. @PostMapping(value = "/getcomprehensiveresults")
  50. public Map<String, Object> getecomprehensiveresultslist(@RequestBody(required = false) Map<String, Object> map, Integer apiId,
  51. Integer pageNum,
  52. Integer pageSize) {
  53. return tmsFeign.getAmsSalaryContracList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  54. }
  55. @ApiOperation(value = "新增车辆实绩")
  56. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  57. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计算公式"})
  58. @PostMapping("/addcomprehensiveresults")
  59. public Map<String, Object> insertcomprehensiveresults(@RequestBody(required = false) Map<String, Object> map) throws ParseException {
  60. if (!map.isEmpty()) {
  61. if (!map.get("resultTime").toString().isEmpty()) {
  62. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  63. Date resultTime = simpleDateFormat.parse(map.get("resultTime").toString());
  64. map.put("resultTime", resultTime);
  65. }
  66. }
  67. map.put("insertUsername", map.get("userName").toString());
  68. return tmsFeign.insertAmsSalaryContrac(map);
  69. }
  70. @ApiOperation(value = "车辆实绩删除")
  71. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  72. @PutMapping(value = "/comprehensiveresultslogicdelete")
  73. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计算公式"})
  74. public Map<String, Object> comprehensiveresultsLogicDelete(@RequestBody(required = false) Map<String, Object> map) {
  75. return tmsFeign.logicdeleteAmsSaalryContrac(map);
  76. }
  77. @ApiOperation(value = "修改车辆实绩")
  78. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  79. @PostMapping(value = "/comprehensiveresultsupadete")
  80. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计算公式"})
  81. public Map<String, Object> comprehensiveresultsUpdate(@RequestBody(required = false) Map<String, Object> map) {
  82. return tmsFeign.updateAmsSalaryContrac(map);
  83. }
  84. @ApiOperation(value = "派发运输订单")
  85. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  86. @PostMapping(value = "/dispatchOrder")
  87. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  88. public Map<String, Object> dispatchOrder(@RequestBody(required = false) Map<String, Object> map) {
  89. return tmsFeign.dispatchOrder(map);
  90. }
  91. @ApiOperation(value = "批量派发运输订单")
  92. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  93. @PostMapping(value = "/batchDispatch")
  94. @RequestLimit(seconds = 100)
  95. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  96. public Map<String, Object> batchDispatch(@RequestBody(required = false) Map<String, Object> map) {
  97. return tmsFeign.batchDispatch(map);
  98. }
  99. @ApiOperation(value = "批量派发运输订单")
  100. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  101. @PostMapping(value = "/batchDispatchSc")
  102. @RequestLimit(seconds = 100)
  103. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  104. public Map<String, Object> batchDispatchSc(@RequestBody(required = false) Map<String, Object> map) {
  105. return tmsFeign.batchDispatchSc(map);
  106. }
  107. @ApiOperation(value = "修改运输订单")
  108. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  109. @PostMapping(value = "/updateTransOrder")
  110. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  111. public Map<String, Object> updateTransOrder(@RequestBody(required = false) Map<String, Object> map) {
  112. return tmsFeign.updateTransOrder(map);
  113. }
  114. @ApiOperation(value = "合并运输订单")
  115. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  116. @PostMapping(value = "/mergeTransOrder")
  117. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  118. public Map<String, Object> mergeTransOrder(@RequestBody(required = false) Map<String, Object> map) {
  119. return tmsFeign.mergeTransOrder(map);
  120. }
  121. @ApiOperation(value = "更改运输订单状态")
  122. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  123. @PostMapping(value = "/changeTransOrder")
  124. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  125. public Map<String, Object> changeTransOrder(@RequestBody(required = false) Map<String, Object> map) {
  126. return tmsFeign.changeTransOrder(map);
  127. }
  128. @ApiOperation(value = "司机接收运单")
  129. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  130. @PostMapping(value = "/receiptOrder")
  131. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  132. public Map<String, Object> receiptOrder(@RequestBody(required = false) Map<String, Object> map) {
  133. return tmsFeign.receiptOrder(map);
  134. }
  135. @ApiOperation(value = "查询运输订单")
  136. @PostMapping("/getTransOrderList")
  137. public Map<String, Object> getTransOrderList(@RequestBody(required = false) Map<String, Object> map,
  138. Integer apiId,
  139. Integer pageNum,
  140. Integer pageSize) {
  141. return tmsFeign.getTransOrderList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  142. }
  143. @ApiOperation(value = "查询运输订单所有运输实绩")
  144. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  145. @PostMapping(value = "/getTransResult")
  146. public Map<String, Object> getTransResult(@RequestBody(required = false) Map<String, Object> map) {
  147. return tmsFeign.getTransResult(map);
  148. }
  149. @ApiOperation(value = "同步进厂")
  150. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  151. @PostMapping(value = "/syncEnfactoryResult")
  152. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"进厂实绩"})
  153. public Map<String, Object> syncEnfactoryResult(@RequestBody(required = false) Map<String, Object> map) {
  154. return tmsFeign.syncEnfactoryResult(map);
  155. }
  156. @ApiOperation(value = "同步出厂")
  157. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  158. @PostMapping(value = "/syncOutfactoryResult")
  159. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"出厂实绩"})
  160. public Map<String, Object> syncOutfactoryResult(@RequestBody(required = false) Map<String, Object> map) {
  161. return tmsFeign.syncOutfactoryResult(map);
  162. }
  163. @ApiOperation(value = "同步计量")
  164. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  165. @PostMapping(value = "/syncWeightResult")
  166. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计量实绩"})
  167. public Map<String, Object> syncWeightResult(@RequestBody(required = false) Map<String, Object> map) {
  168. return tmsFeign.syncWeightResult(map);
  169. }
  170. @ApiOperation(value="计时")
  171. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  172. @PostMapping(value = "/startend")
  173. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计时"})
  174. @RequestLimit
  175. public Map<String, Object> start(@RequestBody(required = false) Map<String, Object> map) {
  176. return tmsFeign.startend(map);
  177. }
  178. @ApiOperation(value = "查询计时")
  179. @PostMapping("/tmstimingresultsList")
  180. public Map<String, Object> tmstimingresultsList(@RequestBody(required = false) Map<String, Object> map,
  181. Integer apiId,
  182. Integer pageNum,
  183. Integer pageSize) {
  184. return tmsFeign.tmstimingresultsList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  185. }
  186. @ApiOperation(value = "修改计时")
  187. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  188. @PostMapping(value = "/tmstimingresultsUpdate")
  189. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"修改计时"})
  190. public Map<String, Object> tmstimingresultsUpdate(@RequestBody(required = false) Map<String, Object> map) {
  191. return tmsFeign.tmstimingresultsUpdate(map);
  192. }
  193. @ApiOperation(value = "销售派发运输订单")
  194. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  195. @PostMapping(value = "/saleDispatchOrder")
  196. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  197. public Map<String, Object> saleDispatchOrder(@RequestBody(required = false) Map<String, Object> map) {
  198. return tmsFeign.saleDispatchOrder(map);
  199. }
  200. @ApiOperation(value = "批量销售派发运输订单")
  201. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  202. @PostMapping(value = "/saleDispatchOrderList")
  203. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"运输订单"})
  204. public Map<String, Object> saleDispatchOrderList(@RequestBody(required = false) Map<String, Object> map) {
  205. return tmsFeign.saleDispatchOrderList(map);
  206. }
  207. @ApiOperation(value = "查询销售运输订单")
  208. @PostMapping("/getSaleTransOrderList")
  209. public Map<String, Object> getSaleTransOrderList(@RequestBody(required = false) Map<String, Object> map,
  210. Integer apiId,
  211. Integer pageNum,
  212. Integer pageSize) {
  213. return tmsFeign.getSaleTransOrderList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  214. }
  215. @ApiOperation(value = "同步质检")
  216. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  217. @PostMapping(value = "/syncQualityResult")
  218. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"质检实绩"})
  219. public Map<String, Object> syncQualityResult(@RequestBody(required = false) Map<String, Object> map) {
  220. return tmsFeign.syncQualityResult(map);
  221. }
  222. @ApiOperation(value = "签到")
  223. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  224. @PostMapping(value = "/signIn")
  225. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"签到实绩"})
  226. public Map<String, Object> signIn(@RequestBody(required = false) Map<String, Object> map) {
  227. return tmsFeign.signIn(map);
  228. }
  229. @ApiOperation(value = "换车头")
  230. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  231. @PostMapping(value = "/replaceFront")
  232. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"换车头实绩"})
  233. public Map<String, Object> replaceFront(@RequestBody(required = false) Map<String, Object> map) {
  234. return tmsFeign.replaceFront(map);
  235. }
  236. @ApiOperation(value = "装货")
  237. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  238. @PostMapping(value = "/load")
  239. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"装货实绩"})
  240. public Map<String, Object> load(@RequestBody(required = false) Map<String, Object> map) {
  241. return tmsFeign.load(map);
  242. }
  243. @ApiOperation(value = "装货修改")
  244. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  245. @PostMapping(value = "/loadUpd")
  246. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"装货实绩"})
  247. public Map<String, Object> loadUpd(@RequestBody(required = false) Map<String, Object> map) {
  248. return tmsFeign.loadUpd(map);
  249. }
  250. @ApiOperation(value = "卸货")
  251. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  252. @PostMapping(value = "/unload")
  253. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"卸货实绩"})
  254. public Map<String, Object> unload(@RequestBody(required = false) Map<String, Object> map) {
  255. return tmsFeign.unload(map);
  256. }
  257. @ApiOperation(value = "卸货修改")
  258. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  259. @PostMapping(value = "/unloadUpd")
  260. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"卸货实绩"})
  261. public Map<String, Object> unloadUpd(@RequestBody(required = false) Map<String, Object> map) {
  262. return tmsFeign.unloadUpd(map);
  263. }
  264. @ApiOperation(value = "抵达")
  265. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  266. @PostMapping(value = "/arrival")
  267. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"抵达实绩"})
  268. public Map<String, Object> arrival(@RequestBody(required = false) Map<String, Object> map) {
  269. return tmsFeign.arrival(map);
  270. }
  271. @ApiOperation(value = "签收")
  272. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  273. @PostMapping(value = "/receipt")
  274. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"签收实绩"})
  275. public Map<String, Object> receipt(@RequestBody(required = false) Map<String, Object> map) {
  276. return tmsFeign.receipt(map);
  277. }
  278. @ApiOperation(value = "查询厂内车辆数")
  279. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  280. @PostMapping(value = "/getCountEnfactory")
  281. public Map<String, Object> getCountEnfactory(@RequestBody(required = false) Map<String, Object> map) {
  282. return tmsFeign.getCountEnfactory(map == null ? new HashMap<>() : map);
  283. }
  284. @ApiOperation(value = "查询签到")
  285. @PostMapping("/getSignInResultList")
  286. public Map<String, Object> getSignInResultList(@RequestBody(required = false) Map<String, Object> map,
  287. Integer apiId,
  288. Integer pageNum,
  289. Integer pageSize) {
  290. return tmsFeign.getSignInResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  291. }
  292. @ApiOperation(value = "查询换车头")
  293. @PostMapping("/getReplaceFrontResultList")
  294. public Map<String, Object> getReplaceFrontResultList(@RequestBody(required = false) Map<String, Object> map,
  295. Integer apiId,
  296. Integer pageNum,
  297. Integer pageSize) {
  298. return tmsFeign.getReplaceFrontResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  299. }
  300. @ApiOperation(value = "查询进厂")
  301. @PostMapping("/getEnfactoryResultList")
  302. public Map<String, Object> getEnfactoryResultList(@RequestBody(required = false) Map<String, Object> map,
  303. Integer apiId,
  304. Integer pageNum,
  305. Integer pageSize) {
  306. return tmsFeign.getEnfactoryResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  307. }
  308. @ApiOperation(value = "查询出厂")
  309. @PostMapping("/getOutfactoryResultList")
  310. public Map<String, Object> getTmsOutfactoryResultList
  311. (@RequestBody(required = false) Map<String, Object> map,
  312. Integer apiId,
  313. Integer pageNum,
  314. Integer pageSize) {
  315. return tmsFeign.getOutfactoryResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  316. }
  317. @ApiOperation(value = "查询装货")
  318. @PostMapping("/getLoadResultList")
  319. public Map<String, Object> getLoadResultList(@RequestBody(required = false) Map<String, Object> map,
  320. Integer apiId,
  321. Integer pageNum,
  322. Integer pageSize) {
  323. return tmsFeign.getLoadResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  324. }
  325. @ApiOperation(value = "查询卸货")
  326. @PostMapping("/getUnloadResultList")
  327. public Map<String, Object> getUnloadResultList(@RequestBody(required = false) Map<String, Object> map,
  328. Integer apiId,
  329. Integer pageNum,
  330. Integer pageSize) {
  331. return tmsFeign.getUnloadResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  332. }
  333. @ApiOperation(value = "查询计量")
  334. @PostMapping("/getWeightResultList")
  335. public Map<String, Object> getWeightResultList(@RequestBody(required = false) Map<String, Object> map,
  336. Integer apiId,
  337. Integer pageNum,
  338. Integer pageSize) {
  339. return tmsFeign.getWeightResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  340. }
  341. @ApiOperation(value = "查询质检")
  342. @PostMapping("/getQualityResultList")
  343. public Map<String, Object> getQualityResult(@RequestBody(required = false) Map<String, Object> map,
  344. Integer apiId,
  345. Integer pageNum,
  346. Integer pageSize) {
  347. return tmsFeign.getQualityResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  348. }
  349. @ApiOperation(value = "查询抵达")
  350. @PostMapping("/getArrivalResultList")
  351. public Map<String, Object> getArrivalResultList(@RequestBody(required = false) Map<String, Object> map,
  352. Integer apiId,
  353. Integer pageNum,
  354. Integer pageSize) {
  355. return tmsFeign.getArrivalResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  356. }
  357. @ApiOperation(value = "查询签收")
  358. @PostMapping("/getReceiptResultList")
  359. public Map<String, Object> getReceiptResultList(@RequestBody(required = false) Map<String, Object> map,
  360. Integer apiId,
  361. Integer pageNum,
  362. Integer pageSize) {
  363. return tmsFeign.getReceiptResultList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  364. }
  365. @ApiOperation(value = "采购火运装货作业")
  366. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  367. @PostMapping(value = "/purchaseTrainLoad")
  368. // @LogAround(foreignKeys = {"resultId"},foreignKeyTypes = {"装货实绩"})
  369. public Map<String, Object> purchaseTrainLoad(@RequestBody MultipartFile file,
  370. String businessType,
  371. String userId,
  372. String userName) throws Exception {
  373. Map<String, Object> map = new HashMap<>();
  374. //获取Excel中包含的对象数组
  375. List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
  376. map.put("list", list);
  377. //统计通知单的重量车数和车牌号
  378. Set<String> capacitySet = new HashSet<>();//车牌号
  379. for (Map<String, Object> item : list) {
  380. //校验行
  381. if(item.get("通知单号")==null || item.get("通知单号").equals("")
  382. || item.get("车号")==null || item.get("车号").equals("")
  383. || item.get("装车日期")==null || item.get("装车日期").equals("")
  384. || item.get("净重")==null || item.get("净重").equals("")
  385. || item.get("皮重")==null || item.get("皮重").equals("")
  386. || item.get("毛重")==null || item.get("毛重").equals("")){
  387. throw new Exception("单元格数据异常(通知单号/车号/装车日期/净重/皮重/毛重),请检查模板或数据是否正确!");
  388. }
  389. //通知单统计
  390. String requirementNumber = item.get("通知单号").toString();
  391. if (map.get("requirementNumber") != null) {
  392. if (map.get("requirementNumber").equals(requirementNumber)) {
  393. //已存在,修改
  394. BigDecimal weight = DataChange.dataToBigDecimal(map.get("weight"));
  395. BigDecimal truckNumber = DataChange.dataToBigDecimal(map.get("truckNumber"));
  396. String loadTime = map.get("loadTime").toString();
  397. weight = weight.add(DataChange.dataToBigDecimal(item.get("净重")));
  398. truckNumber = truckNumber.add(new BigDecimal(1));
  399. map.put("weight", weight);
  400. map.put("truckNumber", truckNumber);
  401. if(!loadTime.equals(item.get("装车日期").toString())){
  402. throw new Exception("同一个Excel只允许一批车辆,请检查装车日期!");
  403. }
  404. } else {
  405. throw new Exception("同一个Excel文件中只允许有一个通知单号!");
  406. }
  407. } else {
  408. //不存在,新增
  409. BigDecimal weight = DataChange.dataToBigDecimal(item.get("净重"));
  410. BigDecimal truckNumber = new BigDecimal(1);
  411. String loadTime = item.get("装车日期").toString();
  412. map.put("requirementNumber", requirementNumber);
  413. map.put("weight", weight);
  414. map.put("truckNumber", truckNumber);
  415. map.put("loadTime",loadTime);
  416. }
  417. //车牌号去重
  418. capacitySet.add(item.get("车号").toString());
  419. }
  420. //校验当前excel是否已经导入过
  421. if (universalMapper.countTrainLoad(map) > 0) {
  422. throw new Exception("存在重复的装车信息!不允许重复导入!");
  423. }
  424. //新增火车运力资源
  425. String[] capacities = capacitySet.toArray(new String[0]);//车牌号
  426. if (capacities.length != list.size()) {
  427. throw new Exception("车号不允许重复!");
  428. } else {
  429. try{
  430. new Runnable() {
  431. @Override
  432. public void run() {
  433. Map<String, Object> capacityMap = new HashMap<>();
  434. capacityMap.put("capacities", capacities);
  435. capacityMap.put("userId", userId);
  436. capacityMap.put("userName", userName);
  437. rmsFeign.batchInsertCapacityTrain(capacityMap);
  438. }
  439. }.run();
  440. }catch (Exception e){e.printStackTrace();}
  441. }
  442. //新增AMS及TMS
  443. map.put("userId",userId);
  444. map.put("userName",userName);
  445. map.put("businessType",businessType);
  446. return tmsFeign.purchaseTrainLoad(map);
  447. }
  448. @ApiOperation(value = "查询采购火运装货")
  449. @PostMapping("/purchaseTrainLoadList")
  450. public Map<String, Object> purchaseTrainLoadList(@RequestBody(required = false) Map<String, Object> map,
  451. Integer apiId,
  452. Integer pageNum,
  453. Integer pageSize) {
  454. return tmsFeign.purchaseTrainLoadList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  455. }
  456. @ApiOperation(value = "采购火运计量作业")
  457. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  458. @PostMapping(value = "/purchaseTrainWeight")
  459. // @LogAround(foreignKeys = {"resultId"},foreignKeyTypes = {"计量实绩"})
  460. public Map<String, Object> purchaseTrainWeight(@RequestBody MultipartFile file,
  461. String businessType,
  462. String userId,
  463. String userName) throws Exception {
  464. Map<String, Object> map = new HashMap<>();
  465. //获取Excel中包含的对象数组
  466. List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
  467. map.put("list", list);
  468. Set<String> capacitySet = new HashSet<>();//车牌号
  469. for (Map<String, Object> item : list) {
  470. //校验行
  471. if(item.get("通知单号")==null || item.get("通知单号").equals("")
  472. || item.get("车号")==null || item.get("车号").equals("")
  473. || item.get("计量日期")==null || item.get("计量日期").equals("")
  474. || item.get("净重")==null || item.get("净重").equals("")
  475. || item.get("皮重")==null || item.get("皮重").equals("")
  476. || item.get("毛重")==null || item.get("毛重").equals("")){
  477. throw new Exception("单元格数据异常(通知单号/车号/计量日期/净重/皮重/毛重),请检查模板或数据是否正确!");
  478. }
  479. //校验数据
  480. String requirementNumber = item.get("通知单号").toString();
  481. if (map.get("requirementNumber") != null) {
  482. if (map.get("requirementNumber").equals(requirementNumber)) {
  483. String weightTime = map.get("weightTime").toString();
  484. if(!weightTime.equals(item.get("计量日期").toString())){
  485. throw new Exception("同一个Excel只允许一批车辆,请检查计量日期!");
  486. }
  487. //更新重量
  488. BigDecimal weight = DataChange.dataToBigDecimal(map.get("weight"));
  489. weight = weight.add(DataChange.dataToBigDecimal(item.get("净重")));
  490. map.put("weight", weight);
  491. } else {
  492. throw new Exception("同一个Excel文件中只允许有一个通知单号!");
  493. }
  494. } else {
  495. //不存在,新增
  496. map.put("requirementNumber", requirementNumber);
  497. map.put("weightTime",item.get("计量日期").toString());
  498. map.put("weight",DataChange.dataToBigDecimal(item.get("净重")));
  499. }
  500. //车牌号去重
  501. capacitySet.add(item.get("车号").toString());
  502. }
  503. String[] capacities = capacitySet.toArray(new String[0]);//车牌号
  504. if (capacities.length != list.size()) {
  505. throw new Exception("车号不允许重复!");
  506. }
  507. map.put("userId",userId);
  508. map.put("userName",userName);
  509. map.put("businessType",businessType);
  510. //获取火车运单及计量详情
  511. List<Map<String,Object>> orderList = universalMapper.findTrainWeight(map);
  512. if (orderList.size() <= 0) {
  513. throw new Exception("未查询到装车信息,请先上传装车作业!");
  514. } else if(orderList.size() != universalMapper.countTransOrder(orderList.get(0))){
  515. throw new Exception("计量信息与装车信息数量不一致,请重新上传!");
  516. } else if(orderList.get(0).get("unloadResultId")!=null){
  517. throw new Exception("车皮已卸车,不允许再上传计量!");
  518. }
  519. map.put("orderList",orderList);
  520. map.put("transPlanId",orderList.get(0).get("transPlanId"));
  521. map.put("materialId",orderList.get(0).get("materialId"));
  522. //新增TMS
  523. return tmsFeign.purchaseTrainWeight(map);
  524. }
  525. @ApiOperation(value = "查询采购火运计量")
  526. @PostMapping("/purchaseTrainWeightList")
  527. public Map<String, Object> purchaseTrainWeightList(@RequestBody(required = false) Map<String, Object> map,
  528. Integer apiId,
  529. Integer pageNum,
  530. Integer pageSize) {
  531. return tmsFeign.purchaseTrainWeightList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  532. }
  533. @ApiOperation(value = "采购火运卸车作业")
  534. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  535. @PostMapping(value = "/purchaseTrainUnload")
  536. // @LogAround(foreignKeys = {"resultId"},foreignKeyTypes = {"计量实绩"})
  537. public Map<String, Object> purchaseTrainUnload(@RequestBody MultipartFile file,
  538. String businessType,
  539. String userId,
  540. String userName) throws Exception {
  541. Map<String, Object> map = new HashMap<>();
  542. //获取Excel中包含的对象数组
  543. List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
  544. map.put("list", list);
  545. Set<String> capacitySet = new HashSet<>();//车牌号
  546. for (Map<String, Object> item : list) {
  547. //校验行
  548. if(item.get("通知单号")==null || item.get("通知单号").equals("")
  549. || item.get("车号")==null || item.get("车号").equals("")
  550. || item.get("卸车日期")==null || item.get("卸车日期").equals("")
  551. || item.get("净重")==null || item.get("净重").equals("")){
  552. throw new Exception("单元格数据异常(通知单号/车号/卸车日期/净重),请检查模板或数据是否正确!");
  553. }
  554. //校验数据
  555. String requirementNumber = item.get("通知单号").toString();
  556. BigDecimal weight = DataChange.dataToBigDecimal(item.get("净重"));
  557. if (map.get("requirementNumber") != null) {
  558. if (map.get("requirementNumber").equals(requirementNumber)) {
  559. String unloadTime = map.get("unloadTime").toString();
  560. if(!unloadTime.equals(item.get("卸车日期").toString())){
  561. throw new Exception("同一个Excel只允许一批车辆,请检查卸车日期!");
  562. }
  563. } else {
  564. throw new Exception("同一个Excel文件中只允许有一个通知单号!");
  565. }
  566. map.put("weight", weight.add(DataChange.dataToBigDecimal(map.get("weight"))));
  567. } else {
  568. //不存在,新增
  569. map.put("requirementNumber", requirementNumber);
  570. map.put("weight", weight);
  571. map.put("unloadTime",item.get("卸车日期").toString());
  572. }
  573. //车牌号去重
  574. capacitySet.add(item.get("车号").toString());
  575. }
  576. String[] capacities = capacitySet.toArray(new String[0]);//车牌号
  577. if (capacities.length != list.size()) {
  578. throw new Exception("车号不允许重复!");
  579. }
  580. map.put("userId",userId);
  581. map.put("userName",userName);
  582. map.put("businessType",businessType);
  583. //获取火车运单及计量详情
  584. List<Map<String,Object>> orderList = universalMapper.findTrainUnload(map);
  585. if (orderList.size() <= 0) {
  586. throw new Exception("未查询到装车信息,请先上传装车作业!");
  587. } else if(orderList.size() != universalMapper.countTransOrder(orderList.get(0))){
  588. throw new Exception("卸货信息与装车信息数量不一致,请重新上传!");
  589. }
  590. //获取原本重量之和
  591. BigDecimal weightOld = BigDecimal.ZERO;
  592. for(Map<String,Object> item : orderList){
  593. weightOld = weightOld.add(DataChange.dataToBigDecimal(item.get("unloadWeightOld")));
  594. }
  595. map.put("weightOld",weightOld);
  596. map.put("diff",DataChange.dataToBigDecimal(map.get("weight").toString()).subtract(weightOld));
  597. map.put("orderList",orderList);
  598. map.put("requirementSerialNumber",orderList.get(0).get("requirementSerialNumber"));
  599. map.put("transPlanId",orderList.get(0).get("transPlanId"));
  600. map.put("materialId",orderList.get(0).get("materialId"));
  601. map.put("unloadPointId",orderList.get(0).get("unloadPointId"));
  602. //新增TMS
  603. return tmsFeign.purchaseTrainUnload(map);
  604. }
  605. @ApiOperation(value = "查询采购火运卸车")
  606. @PostMapping("/purchaseTrainUnloadList")
  607. public Map<String, Object> purchaseTrainUnloadList(@RequestBody(required = false) Map<String, Object> map,
  608. Integer apiId,
  609. Integer pageNum,
  610. Integer pageSize) {
  611. return tmsFeign.purchaseTrainUnloadList(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  612. }
  613. @ApiOperation(value = "更改销售运输订单状态")
  614. @ApiImplicitParam(name = "map", value = "JSON格式数据", required = true, dataType = "Map<String, Object>")
  615. @PostMapping(value = "/changeSaleTransOrder")
  616. @LogAround(foreignKeys = {"transOrderId"}, foreignKeyTypes = {"销售运输订单"})
  617. public Map<String, Object> changeSaleTransOrder(@RequestBody(required = false) Map<String, Object> map) {
  618. return tmsFeign.changeSaleTransOrder(map);
  619. }
  620. @ApiOperation(value = "查询司机运输汇总")
  621. @PostMapping("/getDriverTotalResult")
  622. public Map<String, Object> getDriverTotalResult(@RequestBody(required = false) Map<String, Object> map,
  623. Integer apiId,
  624. Integer pageNum,
  625. Integer pageSize) {
  626. return tmsFeign.getDriverTotalResult(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  627. }
  628. @ApiOperation(value = "查询车辆运输汇总")
  629. @PostMapping("/getCapacityTotalResult")
  630. public Map<String, Object> getCapacityTotalResult(@RequestBody(required = false) Map<String, Object> map,
  631. Integer apiId,
  632. Integer pageNum,
  633. Integer pageSize) {
  634. return tmsFeign.getDriverTotalResult(map == null ? new HashMap<>() : map, apiId, pageNum, pageSize);
  635. }
  636. @ApiOperation("生产物流-调度任务新增")
  637. @PostMapping("/dispatchTask")
  638. Map<String,Object> dispatchTask(@RequestBody Map<String,Object> map) {
  639. return tmsFeign.dispatchTask(map);
  640. }
  641. @ApiOperation("获取销售派车单信息")
  642. @PostMapping("/getDlivDirnoSeqList/{id}")
  643. public RESTfulResult getDlivDirnoSeqList(@PathVariable("id") String id) {
  644. return tmsFeign.getDlivDirnoSeqList(id);
  645. }
  646. @ApiOperation("修改销售派车单信息")
  647. @PostMapping("/updateDlivDirnoSeq")
  648. @LogAround(foreignKeys = {"planChildId"}, foreignKeyTypes = {"修改销售运单"})
  649. public RESTfulResult updateDlivDirnoSeq(@RequestBody Map<String,Object> map) {
  650. return tmsFeign.updateDlivDirnoSeq(map);
  651. }
  652. @ApiOperation("查询销售派车单装车信息")
  653. @PostMapping("/selectDlivDirnoSeqDetails")
  654. public RESTfulResult selectDlivDirnoSeqDetails(@RequestBody Map<String,Object> map) {
  655. return tmsFeign.selectDlivDirnoSeqDetails(map);
  656. }
  657. @ApiOperation("查询订单厂内轨迹")
  658. @PostMapping("/getPathByOrder")
  659. public RESTfulResult getPathByOrder(@RequestBody Map<String,Object> map) {
  660. return tmsFeign.getPathByOrder(map);
  661. }
  662. @ApiOperation("上传定位,更新路径")
  663. @PostMapping("/uploadLocation")
  664. public RESTfulResult uploadLocation(@RequestBody Map<String,Object> map) {
  665. return tmsFeign.uploadLocation(map);
  666. }
  667. @ApiOperation("实收吨数")
  668. @PostMapping("/updateWeight")
  669. public RESTfulResult updateWeight(@RequestBody Map<String,Object> map) {
  670. return tmsFeign.updateWeight(map);
  671. }
  672. @ApiOperation("checkWeightResult")
  673. @PostMapping("/checkWeightResult")
  674. @LogAround(foreignKeys = {"resultId"}, foreignKeyTypes = {"计量实绩"})
  675. public Map<String,Object> checkWeightResult(@RequestBody Map<String,Object> map) {
  676. return tmsFeign.checkWeightResult(map);
  677. }
  678. @ApiOperation(value = "发运通知单直接派车", notes = "发运通知单直接派车")
  679. @ApiImplicitParams({
  680. @ApiImplicitParam(name = "map", value = "json格式具体参数", required = true, dataType = "Map<String,Object>")
  681. })
  682. @PostMapping(value = "/saleDispatchList")
  683. public RESTfulResult saleDispatchList(@RequestBody Map<String, Object> map) {
  684. return tmsFeign.saleDispatchList(map);
  685. }
  686. }