BmstruckDetailsOrderController.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. package com.steerinfo.dil.controller;
  2. import com.github.pagehelper.PageHelper;
  3. import com.steerinfo.dil.feign.ColumnDataFeign;
  4. import com.steerinfo.dil.feign.ESFeign;
  5. import com.steerinfo.dil.mapper.BmstruckDetailsOrderMapper;
  6. import com.steerinfo.dil.service.impl.BmstruckDetailsOrderServiceImpl;
  7. import com.steerinfo.dil.util.BaseRESTfulController;
  8. import com.steerinfo.dil.util.ColumnDataUtil;
  9. import com.steerinfo.dil.util.DataChange;
  10. import com.steerinfo.dil.util.PageListAdd;
  11. import com.steerinfo.framework.controller.RESTfulResult;
  12. import io.swagger.annotations.ApiImplicitParam;
  13. import io.swagger.annotations.ApiImplicitParams;
  14. import io.swagger.annotations.ApiModelProperty;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.beans.factory.annotation.Required;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.math.BigDecimal;
  20. import java.text.SimpleDateFormat;
  21. import java.util.*;
  22. /**
  23. * @Description:
  24. * @Author:HuJianGuo
  25. * @GreateTime:2021/9/24 17:29
  26. * @Version:V2.0
  27. */
  28. @RestController
  29. @RequestMapping("/${api.version}/bmstruckdetailsorder")
  30. public class BmstruckDetailsOrderController extends BaseRESTfulController {
  31. @Autowired
  32. BmstruckDetailsOrderServiceImpl bmstruckDetailsOrderService;
  33. @Autowired
  34. ColumnDataUtil columnDataUtil;
  35. @Autowired
  36. ESFeign esFeign;
  37. @Autowired
  38. ColumnDataFeign columnDataFeign;
  39. @Autowired
  40. BmstruckDetailsOrderMapper bmstruckDetailsOrderMapper;
  41. private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  42. /**
  43. * 展示汽运详单信息
  44. *
  45. * @param mapValue
  46. * @param pageNum
  47. * @param pageSize
  48. * @param apiId
  49. * @return
  50. */
  51. @ApiModelProperty(value = "展示汽运详单信息")
  52. @ApiImplicitParams({
  53. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  54. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  55. @ApiImplicitParam(name = "apiId", value = "销售:176/采购:140", required = false, dataType = "BigDecimal"),
  56. @ApiImplicitParam(name = "orderType", value = "1:销售,3:采购", required = false, dataType = "Integer")
  57. })
  58. @PostMapping("/getTruckDetailsOrderList")
  59. public RESTfulResult getTruckDetailsOrderList(@RequestBody(required = false) Map<String, Object> mapValue,
  60. Integer pageNum,
  61. Integer pageSize,
  62. Integer apiId,
  63. Integer orderType,
  64. String carrierSsoId) {
  65. if (mapValue == null) {
  66. mapValue = new HashMap<>();
  67. }
  68. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  69. carrierSsoId = null;
  70. }
  71. if (carrierSsoId != null) {
  72. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  73. mapValue.put("carrierId",carrierId);
  74. }
  75. mapValue.put("orderType",orderType);
  76. //初始化过滤
  77. List<Map<String, Object>> truckDetailList = bmstruckDetailsOrderService.getTruckDetailsOrderList(mapValue);
  78. PageHelper.startPage(pageNum, pageSize);
  79. //分页查询数据
  80. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getTruckDetailsOrderList(mapValue);
  81. PageListAdd data = columnDataUtil.tableColumnData(apiId, truckDetailList, columnList);
  82. return success(data);
  83. }
  84. /**
  85. * 展示汽运未生成账单的详单信息
  86. *
  87. * @param mapValue
  88. * @param pageNum
  89. * @param pageSize
  90. * @param apiId
  91. * @return
  92. */
  93. @ApiModelProperty(value = "展示汽运未生成账单的详单信息")
  94. @ApiImplicitParams({
  95. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  96. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  97. @ApiImplicitParam(name = "apiId", value = "销售:176", required = false, dataType = "BigDecimal"),
  98. @ApiImplicitParam(name = "orderType", value = "1:销售", required = false, dataType = "Integer")
  99. })
  100. @PostMapping("/getUnFinishedTruckDetailsOrderList")
  101. public RESTfulResult getUnFinishedTruckDetailsOrderList(@RequestBody(required = false) Map<String, Object> mapValue,
  102. Integer pageNum,
  103. Integer pageSize,
  104. Integer apiId,
  105. Integer orderType,
  106. String carrierSsoId) {
  107. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  108. carrierSsoId = null;
  109. }
  110. if (carrierSsoId != null) {
  111. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  112. mapValue.put("carrierId",carrierId);
  113. }
  114. PageHelper.startPage(pageNum, pageSize);
  115. //分页查询数据
  116. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getUnFinishedTruckDetailsOrderList(mapValue, orderType);
  117. for (Map<String, Object> objectMap : columnList) {
  118. String priceids = (String) objectMap.get("priceids");
  119. if (priceids!=null&&"".equals(priceids)){
  120. String[] split = priceids.split(",");
  121. String address1="";
  122. for (String s : split) {
  123. //查询出运输订单的行
  124. Map<String, Object> queryaddress = bmstruckDetailsOrderMapper.queryaddress(new BigDecimal(s));
  125. String address = bmstruckDetailsOrderMapper.queryaddress1((BigDecimal) queryaddress.get("placeid"));
  126. address1+=address+",";
  127. }
  128. objectMap.put("realAddress",address1);
  129. }
  130. }
  131. PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  132. return success(data);
  133. }
  134. /*
  135. 内转计重计费详单
  136. */
  137. @PostMapping("/getInwardWeightDetailsOrder")
  138. public RESTfulResult getInwardWeightDetailsOrder(@RequestBody(required = false) Map<String,Object>mapValue,
  139. Integer pageNum,
  140. Integer pageSize,
  141. Integer apiId,
  142. String carrierSsoId,
  143. Integer detailStatus,
  144. Integer orderType,
  145. String userId,
  146. String startTime,
  147. String endTime,
  148. String capacityNo,
  149. String shipperNames,
  150. String transRangeValues,
  151. String materialTypeNames){
  152. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  153. carrierSsoId = null;
  154. }
  155. if (carrierSsoId != null) {
  156. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  157. mapValue.put("carrierId",carrierId);
  158. }
  159. if(userId != null && !"null".equals(userId)){
  160. mapValue.put("userId","%"+ userId +"%");
  161. }
  162. if(capacityNo != null && !"null".equals(capacityNo)){
  163. mapValue.put("capacityNo","%"+ capacityNo +"%");
  164. }
  165. if(shipperNames != null && !"null".equals(shipperNames)){
  166. mapValue.put("shipperNames","%"+ shipperNames +"%");
  167. }
  168. if(transRangeValues != null && !"null".equals(transRangeValues)){
  169. mapValue.put("transRangeValues","%"+ transRangeValues +"%");
  170. }
  171. if(materialTypeNames != null && !"null".equals(materialTypeNames)){
  172. mapValue.put("materialTypeNames","%"+ materialTypeNames +"%");
  173. }
  174. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  175. mapValue.put("detailStatus",detailStatus);
  176. PageHelper.startPage(pageNum, pageSize);
  177. //分页查询数据
  178. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType);
  179. PageListAdd data = columnDataUtil.tableColumnData5(apiId, null, columnList);
  180. return success(data);
  181. }
  182. @PostMapping("/getNoInwardDetails")
  183. public RESTfulResult getNoInwardDetails(@RequestBody(required = false) Map<String,Object>mapValue,
  184. Integer pageNum,
  185. Integer pageSize,
  186. Integer apiId,
  187. String carrierSsoId,
  188. String userId,
  189. String startTime,
  190. String endTime){
  191. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  192. carrierSsoId = null;
  193. }
  194. if (carrierSsoId != null) {
  195. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  196. mapValue.put("carrierId",carrierId);
  197. }
  198. if(userId != null){
  199. mapValue.put("userId","%"+ userId +"%");
  200. }
  201. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  202. PageHelper.startPage(pageNum, pageSize);
  203. //分页查询数据
  204. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getNoInwardDetails(mapValue);
  205. PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  206. return success(data);
  207. }
  208. /**
  209. * 展示汽运实绩信息
  210. *
  211. * @param mapVal
  212. * @param pageNum
  213. * @param pageSize
  214. * @param apiId
  215. * @return
  216. */
  217. @ApiModelProperty(value = "展示汽运实绩信息")
  218. @ApiImplicitParams({
  219. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  220. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  221. @ApiImplicitParam(name = "apiId", value = "销售:177/采购:142", required = false, dataType = "BigDecimal")
  222. })
  223. @PostMapping("/getTruckResultList")
  224. public RESTfulResult getTruckResultList(@RequestBody(required = false) Map<String, Object> mapVal,
  225. Integer pageNum,
  226. Integer pageSize,
  227. Integer apiId,
  228. BigDecimal orderId) {
  229. if (mapVal == null) {
  230. mapVal = new HashMap<>();
  231. }
  232. mapVal.put("orderId", orderId);
  233. List<Map<String, Object>> list = bmstruckDetailsOrderService.getTruckResultList(mapVal);
  234. PageHelper.startPage(pageNum, pageSize);
  235. //分页查询数据
  236. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getTruckResultList(mapVal);
  237. PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
  238. return success(data);
  239. }
  240. /**
  241. * 新增详单
  242. *
  243. * @param orderId
  244. * @return
  245. */
  246. @ApiModelProperty(value = "新增详单")
  247. @ApiImplicitParams({
  248. @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"),
  249. })
  250. @PostMapping("/addDetailsOrder/{orderId}")
  251. public RESTfulResult addDetailsOrder(@PathVariable("orderId") BigDecimal orderId) throws Exception {
  252. int code = bmstruckDetailsOrderService.insertSelective(orderId);
  253. return success(code);
  254. }
  255. @ApiModelProperty(value = "新增内转计费详单")
  256. @ApiImplicitParams({
  257. @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"),
  258. })
  259. @PostMapping("/addInwardDetailsOrder")
  260. public RESTfulResult addInwardDetailsOrder(@RequestBody(required = false) Map<String, Object> mapVal) {
  261. int code = bmstruckDetailsOrderService.inserInwardOrder(mapVal);
  262. return success(code);
  263. }
  264. /**
  265. * 修改详单
  266. *
  267. * @param mapValue
  268. * @return
  269. */
  270. @ApiModelProperty(value = "修改详单")
  271. @ApiImplicitParams({
  272. @ApiImplicitParam(name = "detailsId,priceId", value = "详单id,价格id", required = false, dataType = "BigDecimal"),
  273. })
  274. @PostMapping("/updateDetailsOrder")
  275. public RESTfulResult updateDetailsOrder(@RequestBody Map<String,Object> mapValue) throws Exception {
  276. int code = bmstruckDetailsOrderService.updateDetailsOrder(mapValue);
  277. return success(code);
  278. }
  279. /**addLossFeeOfCoke
  280. * 增加焦炭途损费
  281. *
  282. * @param map
  283. * @return
  284. */
  285. @ApiModelProperty(value = "增加焦炭途损费")
  286. @ApiImplicitParams({
  287. @ApiImplicitParam(name = "detailsId", value = "详单id", required = false, dataType = "BigDecimal"),
  288. })
  289. @PostMapping("/addLossFeeOfCoke")
  290. public RESTfulResult addLossFeeOfCoke(@RequestBody Map<String,Object> map) {
  291. int code = bmstruckDetailsOrderService.addLossFeeOfCoke(map);
  292. return success(code);
  293. }
  294. /**
  295. * 查询价格和地址
  296. *
  297. * @param priceId
  298. * @return
  299. */
  300. @ApiModelProperty(value = "查询价格和地址")
  301. @ApiImplicitParams({
  302. @ApiImplicitParam(name = "priceId", value = "价格id", required = false, dataType = "BigDecimal"),
  303. })
  304. @PostMapping("/findAddressAndPrice")
  305. public RESTfulResult findAddressAndPrice(@RequestParam Integer priceId) {
  306. Map<String,Object> map = bmstruckDetailsOrderService.findAddressAndPrice(priceId);
  307. return success(map);
  308. }
  309. @PostMapping("updateDetails")
  310. public int updateDetailsOrder(){
  311. int i = bmstruckDetailsOrderService.updateDetails();
  312. return i;
  313. }
  314. /*
  315. 内转计重+计时计费详单
  316. */
  317. @PostMapping("/getInwardWeightTimeDetailsOrder")
  318. public RESTfulResult getInwardWeightTimeDetailsOrder(@RequestBody(required = false) Map<String,Object>mapValue,
  319. Integer pageNum,
  320. Integer pageSize,
  321. Integer apiId,
  322. String carrierSsoId,
  323. Integer detailStatus,
  324. Integer orderType,
  325. String userId,
  326. String startTime,
  327. String endTime){
  328. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  329. carrierSsoId = null;
  330. }
  331. if (carrierSsoId != null) {
  332. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  333. mapValue.put("carrierId",carrierId);
  334. }
  335. if(userId != null){
  336. mapValue.put("userId","%"+ userId +"%");
  337. }
  338. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  339. mapValue.put("detailStatus",detailStatus);
  340. PageHelper.startPage(pageNum, pageSize);
  341. //分页查询数据
  342. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getInwardWeightTimeDetailsOrder(mapValue,orderType);
  343. PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  344. return success(data);
  345. }
  346. @ApiOperation(value = "获取钢材运费详单")
  347. @PostMapping("getSteelTruckDetailsOrder")
  348. public RESTfulResult getSteelTruckDetailsOrder(@RequestBody(required = false) Map<String, Object> mapValue,
  349. Integer pageNum,
  350. Integer pageSize,
  351. Integer apiId,
  352. Integer orderType,
  353. String carrierSsoId,
  354. String startTime,
  355. String endTime,
  356. String con){
  357. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  358. if (carrierSsoId != null && !"null".equals(carrierSsoId)) {
  359. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  360. mapValue.put("carrierId",carrierId);
  361. }
  362. if (con != null && !"null".equals(con)){
  363. mapValue.put("con","%" +con+ "%");
  364. }
  365. PageHelper.startPage(pageNum, pageSize);
  366. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getSteelTruckDetailsOrder(mapValue);
  367. List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
  368. int i=0;
  369. for (Map<String, Object> columnData : columnDataList) {
  370. //每个表头字段的过滤条件
  371. columnData.put("filters", setListMap(columnList,columnData.get("prop").toString()));
  372. if (i==1){
  373. columnData.put("min-width","83px");
  374. }else if (i==2){
  375. columnData.put("min-width","207px");
  376. }else if (i==5){
  377. columnData.put("min-width","101px");
  378. }else if (i==8){
  379. columnData.put("min-width","184px");
  380. }else if (i==10){
  381. columnData.put("min-width","242px");
  382. }else if (i==15){
  383. columnData.put("min-width","228px");
  384. }
  385. i++;
  386. }
  387. PageListAdd pageList = new PageListAdd(columnList);
  388. pageList.setColumnData(columnDataList);
  389. //PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  390. return success(pageList);
  391. }
  392. private Set<Map<String, Object>> setListMap(List<Map<String, Object>> list, String name) {
  393. Set<Map<String, Object>> setString = new HashSet<>();
  394. for (Map<String, Object> map : list) {//遍历每条数据
  395. Map<String, Object> map1 = new HashMap<>();
  396. //map.get(name)获取每条数据中对应表头字段的数据
  397. map1.put("text", map.get(name));
  398. if (map.get(name) != null) {
  399. map1.put("value", map.get(name));
  400. setString.add(map1);
  401. }
  402. }
  403. return setString;
  404. }
  405. }