TMSController.java 40 KB

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