BmstruckDetailsOrderController.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  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. String isPage){
  153. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  154. carrierSsoId = null;
  155. }
  156. if (carrierSsoId != null) {
  157. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  158. mapValue.put("carrierId",carrierId);
  159. }
  160. if(userId != null && !"null".equals(userId)){
  161. mapValue.put("userId","%"+ userId +"%");
  162. }
  163. if(capacityNo != null && !"null".equals(capacityNo)){
  164. mapValue.put("capacityNo","%"+ capacityNo +"%");
  165. }
  166. if(shipperNames != null && !"null".equals(shipperNames)){
  167. mapValue.put("shipperNames","%"+ shipperNames +"%");
  168. }
  169. if(transRangeValues != null && !"null".equals(transRangeValues)){
  170. mapValue.put("transRangeValues","%"+ transRangeValues +"%");
  171. }
  172. if(materialTypeNames != null && !"null".equals(materialTypeNames)){
  173. mapValue.put("materialTypeNames","%"+ materialTypeNames +"%");
  174. }
  175. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  176. mapValue.put("detailStatus",detailStatus);
  177. if("yes".equals(isPage)){
  178. return success(bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType));
  179. }
  180. PageHelper.startPage(pageNum, pageSize);
  181. //分页查询数据
  182. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType);
  183. PageListAdd data = columnDataUtil.tableColumnData5(apiId, null, columnList);
  184. return success(data);
  185. }
  186. @PostMapping("/getNoInwardDetails")
  187. public RESTfulResult getNoInwardDetails(@RequestBody(required = false) Map<String,Object>mapValue,
  188. Integer pageNum,
  189. Integer pageSize,
  190. Integer apiId,
  191. String carrierSsoId,
  192. String userId,
  193. String startTime,
  194. String endTime,
  195. String orgCode,
  196. String capacityNo,
  197. String transRangeValues,
  198. String materialTypeNames,
  199. String shipperNames,
  200. String isPage){
  201. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  202. carrierSsoId = null;
  203. }
  204. if (carrierSsoId != null) {
  205. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  206. mapValue.put("carrierId",carrierId);
  207. }
  208. if(userId != null && !"null".equals(userId)){
  209. mapValue.put("userId","%"+ userId +"%");
  210. }
  211. if(capacityNo != null && !"null".equals(capacityNo)){
  212. mapValue.put("capacityNo","%"+ capacityNo +"%");
  213. }
  214. if(shipperNames != null && !"null".equals(shipperNames)){
  215. mapValue.put("shipperNames","%"+ shipperNames +"%");
  216. }
  217. if(transRangeValues != null && !"null".equals(transRangeValues)){
  218. mapValue.put("transRangeValues","%"+ transRangeValues +"%");
  219. }
  220. if(materialTypeNames != null && !"null".equals(materialTypeNames)){
  221. mapValue.put("materialTypeNames","%"+ materialTypeNames +"%");
  222. }
  223. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  224. if("yes".equals(isPage)){
  225. return success(bmstruckDetailsOrderService.getNoInwardDetails(mapValue));
  226. }
  227. PageHelper.startPage(pageNum, pageSize);
  228. //分页查询数据
  229. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getNoInwardDetails(mapValue);
  230. PageListAdd data = columnDataUtil.tableColumnData5(apiId, null, columnList);
  231. return success(data);
  232. }
  233. /**
  234. * 展示汽运实绩信息
  235. *
  236. * @param mapVal
  237. * @param pageNum
  238. * @param pageSize
  239. * @param apiId
  240. * @return
  241. */
  242. @ApiModelProperty(value = "展示汽运实绩信息")
  243. @ApiImplicitParams({
  244. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  245. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  246. @ApiImplicitParam(name = "apiId", value = "销售:177/采购:142", required = false, dataType = "BigDecimal")
  247. })
  248. @PostMapping("/getTruckResultList")
  249. public RESTfulResult getTruckResultList(@RequestBody(required = false) Map<String, Object> mapVal,
  250. Integer pageNum,
  251. Integer pageSize,
  252. Integer apiId,
  253. BigDecimal orderId) {
  254. if (mapVal == null) {
  255. mapVal = new HashMap<>();
  256. }
  257. mapVal.put("orderId", orderId);
  258. List<Map<String, Object>> list = bmstruckDetailsOrderService.getTruckResultList(mapVal);
  259. PageHelper.startPage(pageNum, pageSize);
  260. //分页查询数据
  261. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getTruckResultList(mapVal);
  262. PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
  263. return success(data);
  264. }
  265. /**
  266. * 新增详单
  267. *
  268. * @param orderId
  269. * @return
  270. */
  271. @ApiModelProperty(value = "新增详单")
  272. @ApiImplicitParams({
  273. @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"),
  274. })
  275. @PostMapping("/addDetailsOrder/{orderId}")
  276. public RESTfulResult addDetailsOrder(@PathVariable("orderId") BigDecimal orderId) throws Exception {
  277. int code = bmstruckDetailsOrderService.insertSelective(orderId);
  278. return success(code);
  279. }
  280. @ApiModelProperty(value = "新增内转计费详单")
  281. @ApiImplicitParams({
  282. @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"),
  283. })
  284. @PostMapping("/addInwardDetailsOrder")
  285. public synchronized RESTfulResult addInwardDetailsOrder(@RequestBody(required = false) Map<String, Object> mapVal) {
  286. int code = bmstruckDetailsOrderService.inserInwardOrder(mapVal);
  287. return success(code);
  288. }
  289. /**
  290. * 修改详单
  291. *
  292. * @param mapValue
  293. * @return
  294. */
  295. @ApiModelProperty(value = "修改详单")
  296. @ApiImplicitParams({
  297. @ApiImplicitParam(name = "detailsId,priceId", value = "详单id,价格id", required = false, dataType = "BigDecimal"),
  298. })
  299. @PostMapping("/updateDetailsOrder")
  300. public RESTfulResult updateDetailsOrder(@RequestBody Map<String,Object> mapValue) throws Exception {
  301. int code = bmstruckDetailsOrderService.updateDetailsOrder(mapValue);
  302. return success(code);
  303. }
  304. /**addLossFeeOfCoke
  305. * 增加焦炭途损费
  306. *
  307. * @param map
  308. * @return
  309. */
  310. @ApiModelProperty(value = "增加焦炭途损费")
  311. @ApiImplicitParams({
  312. @ApiImplicitParam(name = "detailsId", value = "详单id", required = false, dataType = "BigDecimal"),
  313. })
  314. @PostMapping("/addLossFeeOfCoke")
  315. public RESTfulResult addLossFeeOfCoke(@RequestBody Map<String,Object> map) {
  316. int code = bmstruckDetailsOrderService.addLossFeeOfCoke(map);
  317. return success(code);
  318. }
  319. /**
  320. * 查询价格和地址
  321. *
  322. * @param priceId
  323. * @return
  324. */
  325. @ApiModelProperty(value = "查询价格和地址")
  326. @ApiImplicitParams({
  327. @ApiImplicitParam(name = "priceId", value = "价格id", required = false, dataType = "BigDecimal"),
  328. })
  329. @PostMapping("/findAddressAndPrice")
  330. public RESTfulResult findAddressAndPrice(@RequestParam Integer priceId) {
  331. Map<String,Object> map = bmstruckDetailsOrderService.findAddressAndPrice(priceId);
  332. return success(map);
  333. }
  334. @PostMapping("updateDetails")
  335. public int updateDetailsOrder(){
  336. int i = bmstruckDetailsOrderService.updateDetails();
  337. return i;
  338. }
  339. /*
  340. 内转计重+计时计费详单
  341. */
  342. @PostMapping("/getInwardWeightTimeDetailsOrder")
  343. public RESTfulResult getInwardWeightTimeDetailsOrder(@RequestBody(required = false) Map<String,Object>mapValue,
  344. Integer pageNum,
  345. Integer pageSize,
  346. Integer apiId,
  347. String carrierSsoId,
  348. Integer detailStatus,
  349. Integer orderType,
  350. String userId,
  351. String startTime,
  352. String endTime){
  353. if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
  354. carrierSsoId = null;
  355. }
  356. if (carrierSsoId != null) {
  357. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  358. mapValue.put("carrierId",carrierId);
  359. }
  360. if(userId != null){
  361. mapValue.put("userId","%"+ userId +"%");
  362. }
  363. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  364. mapValue.put("detailStatus",detailStatus);
  365. PageHelper.startPage(pageNum, pageSize);
  366. //分页查询数据
  367. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getInwardWeightTimeDetailsOrder(mapValue,orderType);
  368. PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  369. return success(data);
  370. }
  371. @ApiOperation(value = "获取钢材运费详单")
  372. @PostMapping("getSteelTruckDetailsOrder")
  373. public RESTfulResult getSteelTruckDetailsOrder(@RequestBody(required = false) Map<String, Object> mapValue,
  374. Integer pageNum,
  375. Integer pageSize,
  376. Integer apiId,
  377. Integer orderType,
  378. String carrierSsoId,
  379. String startTime,
  380. String endTime,
  381. String con){
  382. DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
  383. if (carrierSsoId != null && !"null".equals(carrierSsoId)) {
  384. BigDecimal carrierId = bmstruckDetailsOrderService.getCarrierIdBySSO(carrierSsoId);
  385. mapValue.put("carrierId",carrierId);
  386. }
  387. if (con != null && !"null".equals(con)){
  388. mapValue.put("con","%" +con+ "%");
  389. }
  390. if(pageNum!=null&&!("".equals(pageNum))&&pageSize!=null&&!("".equals(pageSize))){
  391. PageHelper.startPage(pageNum, pageSize);
  392. }
  393. List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getSteelTruckDetailsOrder(mapValue);
  394. //查询多条数据
  395. for (Map<String, Object> objectMap : columnList) {
  396. String priceids = (String) objectMap.get("priceids");
  397. if (priceids!=null&&!("".equals(priceids))){
  398. String[] split = priceids.split(",");
  399. String address1="";
  400. for (String s : split) {
  401. //查询出运输订单的行
  402. Map<String, Object> queryaddress = bmstruckDetailsOrderMapper.queryaddress(new BigDecimal(s));
  403. String address = bmstruckDetailsOrderMapper.queryaddress1((BigDecimal) queryaddress.get("placeid"));
  404. address1+=address+",";
  405. }
  406. objectMap.put("realAddress",address1);
  407. }
  408. }
  409. List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
  410. int i=0;
  411. for (Map<String, Object> columnData : columnDataList) {
  412. //每个表头字段的过滤条件
  413. columnData.put("filters", setListMap(columnList,columnData.get("prop").toString()));
  414. if (i==1){
  415. columnData.put("min-width","83px");
  416. }else if (i==2){
  417. columnData.put("min-width","207px");
  418. }else if (i==5){
  419. columnData.put("min-width","101px");
  420. }else if (i==8){
  421. columnData.put("min-width","184px");
  422. }else if (i==10){
  423. columnData.put("min-width","242px");
  424. }else if (i==15){
  425. columnData.put("min-width","228px");
  426. }
  427. i++;
  428. }
  429. PageListAdd pageList = new PageListAdd(columnList);
  430. pageList.setColumnData(columnDataList);
  431. //PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
  432. return success(pageList);
  433. }
  434. @ApiOperation("根据运输订单ID查询计重结算需要的信息")
  435. @PostMapping("newInwardSettle")
  436. public RESTfulResult newInwardSettle(@RequestBody Map<String,Object> map){
  437. //接收到运输订单号数组
  438. List<Map<String,Object>> orderIds = (List<Map<String,Object>>)map.get("orderIds");
  439. int i = bmstruckDetailsOrderService.newInwardSettle(orderIds);
  440. return success(i);
  441. }
  442. private Set<Map<String, Object>> setListMap(List<Map<String, Object>> list, String name) {
  443. Set<Map<String, Object>> setString = new HashSet<>();
  444. for (Map<String, Object> map : list) {//遍历每条数据
  445. Map<String, Object> map1 = new HashMap<>();
  446. //map.get(name)获取每条数据中对应表头字段的数据
  447. map1.put("text", map.get(name));
  448. if (map.get(name) != null) {
  449. map1.put("value", map.get(name));
  450. setString.add(map1);
  451. }
  452. }
  453. return setString;
  454. }
  455. }