AmsSaleOrderController.java 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. package com.steerinfo.dil.controller;
  2. import com.steerinfo.dil.feign.ColumnDataFeign;
  3. import com.steerinfo.dil.model.AmsDispatchSaleOrder;
  4. import com.steerinfo.dil.model.AmsSaleOrder;
  5. import com.steerinfo.dil.service.IAmsSaleOrderService;
  6. import com.steerinfo.dil.service.impl.AmsDispatchSaleOrderServiceImpl;
  7. import com.steerinfo.dil.service.impl.AmsSaleOrderMaterialServiceImpl;
  8. import com.steerinfo.dil.util.BaseRESTfulController;
  9. import com.steerinfo.dil.util.ColumnDataUtil;
  10. import com.steerinfo.dil.util.PageListAdd;
  11. import com.steerinfo.framework.controller.RESTfulResult;
  12. import com.steerinfo.framework.service.pagehelper.PageHelper;
  13. import io.swagger.annotations.ApiImplicitParam;
  14. import io.swagger.annotations.ApiImplicitParams;
  15. import io.swagger.annotations.ApiModelProperty;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.math.BigDecimal;
  20. import java.util.Date;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * AmsSaleOrder RESTful接口:
  26. * @author generator
  27. * @version 1.0-SNAPSHORT 2021-09-06 07:10
  28. * 类描述
  29. * 修订历史:
  30. * 日期:2021-09-06
  31. * 作者:generator
  32. * 参考:
  33. * 描述:AmsSaleOrder RESTful接口
  34. * @see null
  35. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  36. */
  37. @RestController
  38. @RequestMapping("/${api.version}/amssaleorders")
  39. public class AmsSaleOrderController extends BaseRESTfulController {
  40. @Autowired
  41. IAmsSaleOrderService amsSaleOrderService;
  42. @Autowired
  43. AmsSaleOrderMaterialServiceImpl amsSaleOrderMaterialService;
  44. @Autowired
  45. AmsDispatchSaleOrderServiceImpl amsDispatchSaleOrderService;
  46. @Autowired
  47. ColumnDataFeign columnDataFeign;
  48. @Autowired
  49. ColumnDataUtil columnDataUtil;
  50. @ApiOperation(value="查询未上报销售订单信息")
  51. @ApiImplicitParams({
  52. @ApiImplicitParam(name = "apiId(98)", value = "表头", required = false, dataType = "Interger")
  53. })
  54. @PostMapping("/getSaleOrderInfo")
  55. public RESTfulResult getSaleOrderInfo(@RequestBody(required=false) Map<String,Object> mapValue,
  56. Integer apiId,
  57. Integer pageNum,
  58. Integer pageSize){
  59. List<Map<String, Object>> amsSaleOrder = amsSaleOrderService.getSaleOrderInfo(mapValue);
  60. PageHelper.startPage(pageNum,pageSize);
  61. List<Map<String, Object>> amsSaleOrder1 = amsSaleOrderService.getSaleOrderInfo(mapValue);
  62. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1);
  63. return success(pageList);
  64. }
  65. @ApiOperation(value="查询已上报销售订单信息")
  66. @ApiImplicitParams({
  67. @ApiImplicitParam(name = "apiId(98)", value = "表头", required = false, dataType = "Interger")
  68. })
  69. @PostMapping("/getSaleOrderReported")
  70. public RESTfulResult getSaleOrderReported(@RequestBody(required=false) Map<String,Object> mapValue,
  71. Integer apiId,
  72. Integer pageNum,
  73. Integer pageSize){
  74. List<Map<String, Object>> amsSaleOrder = amsSaleOrderService.getSaleOrderReported(mapValue);
  75. PageHelper.startPage(pageNum,pageSize);
  76. List<Map<String, Object>> amsSaleOrder1 = amsSaleOrderService.getSaleOrderReported(mapValue);
  77. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1);
  78. return success(pageList);
  79. }
  80. @ApiOperation(value="查询财务已审批销售订单信息")
  81. @ApiImplicitParams({
  82. @ApiImplicitParam(name = "apiId(105)", value = "表头", required = false, dataType = "Interger")
  83. })
  84. @PostMapping("/getAmsSaleOrderApproved")
  85. public RESTfulResult getAmsSaleOrderApproved(@RequestBody(required=false) Map<String,Object> mapValue,
  86. Integer apiId,
  87. Integer pageNum,
  88. Integer pageSize){
  89. List<Map<String, Object>> amsSaleOrder = amsSaleOrderService.getAmsSaleOrderApproved(mapValue);
  90. PageHelper.startPage(pageNum,pageSize);
  91. List<Map<String, Object>> amsSaleOrder1 = amsSaleOrderService.getAmsSaleOrderApproved(mapValue);
  92. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrder,amsSaleOrder1);
  93. return success(pageList);
  94. }
  95. @ApiOperation(value="根据销售订单号查询销售订单详细信息")
  96. @ApiImplicitParams({
  97. @ApiImplicitParam(name = "apiId(100)", value = "表头", required = false, dataType = "Interger")
  98. })
  99. @PostMapping("/getSaleOrderDetail")
  100. public RESTfulResult getSaleOrderDetail(BigDecimal saleOrderId,@RequestBody(required=false) Map<String,Object> mapValue,
  101. Integer apiId,
  102. Integer pageNum,
  103. Integer pageSize){
  104. if (mapValue == null) {
  105. mapValue = new HashMap<>();
  106. }
  107. mapValue.put("saleOrderId",saleOrderId);
  108. List<Map<String, Object>> amsSaleOrderDetail = amsSaleOrderService.getSaleOrderDetail(mapValue);
  109. PageHelper.startPage(pageNum,pageSize);
  110. List<Map<String, Object>> amsSaleOrderDetail1 = amsSaleOrderService.getSaleOrderDetail(mapValue);
  111. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrderDetail,amsSaleOrderDetail1);
  112. return success(pageList);
  113. }
  114. /**
  115. * 上传销售订单
  116. * @param saleOrderId
  117. * @return
  118. */
  119. @ApiOperation(value="上传销售订单")
  120. @ApiImplicitParams({
  121. @ApiImplicitParam(name = "saleOrderId", value = "销售订单ID", required = false, dataType = "java.math.BigDecimal")
  122. })
  123. @PostMapping(value = "/uploadSaleOrder/{saleOrderId}")
  124. public RESTfulResult uploadSaleOrder(@PathVariable("saleOrderId") BigDecimal saleOrderId){
  125. int i = amsSaleOrderService.uploadSaleOrder(saleOrderId);
  126. return success(i);
  127. }
  128. /**
  129. * 新增销售订单
  130. * @param amsSaleOrder
  131. * @return
  132. */
  133. @ApiOperation(value="新增销售订单")
  134. @ApiImplicitParams({
  135. @ApiImplicitParam(name = "amsSaleOrder", value = "销售订单对象", required = false, dataType = "AmsSaleOrder")
  136. })
  137. @PostMapping(value = "/addAmsSaleOrder")
  138. public RESTfulResult addAmsSaleOrder(@RequestBody(required = false) AmsSaleOrder amsSaleOrder){
  139. int i = amsSaleOrderService.addAmsSaleOrder(amsSaleOrder);
  140. return success(i);
  141. }
  142. /**
  143. * 通过主键渲染销售订单信息
  144. * @param saleOrderId
  145. * @return
  146. */
  147. @ApiOperation(value="通过主键渲染销售订单信息")
  148. @ApiImplicitParams({
  149. @ApiImplicitParam(name = "saleOrderId", value = "主键Id", required = false, dataType = "java.math.BigDecimal")
  150. })
  151. @PostMapping(value = "/getAmsSaleOrderBySaleOrderId/{saleOrderId}")
  152. public RESTfulResult getAmsSaleOrderBySaleOrderId(@PathVariable("saleOrderId") BigDecimal saleOrderId){
  153. List<Map<String, Object>> maps = amsSaleOrderService.selectBySaleOrderId(saleOrderId);
  154. return success(maps);
  155. }
  156. /**
  157. * 通过主键修改销售订单
  158. * @param amsSaleOrder
  159. * @return
  160. */
  161. @ApiOperation(value="通过主键修改销售订单")
  162. @ApiImplicitParams({
  163. @ApiImplicitParam(name = "amsSaleOrder", value = "销售订单对象", required = false, dataType = "AmsSaleOrder")
  164. })
  165. @PostMapping(value = "/updateAmsSaleOrder")
  166. public RESTfulResult updateAmsSaleOrder(@RequestBody(required = false) AmsSaleOrder amsSaleOrder){
  167. int i = amsSaleOrderService.updateAmsSaleOrder(amsSaleOrder);
  168. return success(i);
  169. }
  170. /**
  171. * 通过主键删除销售订单
  172. * @param saleOrderId
  173. * @return
  174. */
  175. @ApiOperation(value="通过主键删除销售订单")
  176. @ApiImplicitParams({
  177. @ApiImplicitParam(name = "saleOrderId", value = "主键Id", required = false, dataType = "java.math.BigDecimal")
  178. })
  179. @PostMapping(value = "/deleteAmsSaleOrderBySaleOrderId")
  180. public RESTfulResult deleteAmsSaleOrderBySaleOrderId(BigDecimal saleOrderId){
  181. int i = amsSaleOrderService.deleteAmsSaleOrderBySaleOrderId(saleOrderId);
  182. return success(i);
  183. }
  184. @ApiOperation(value="根据销售订单号查询销售订单修改日志")
  185. @ApiImplicitParams({
  186. @ApiImplicitParam(name = "apiId(100)", value = "表头", required = false, dataType = "Interger")
  187. })
  188. @PostMapping("/getSaleOrderUpdateLog")
  189. public RESTfulResult getSaleOrderUpdateLog(BigDecimal saleOrderId,@RequestBody(required=false) Map<String,Object> mapValue,
  190. Integer apiId,
  191. Integer pageNum,
  192. Integer pageSize){
  193. if (mapValue == null) {
  194. mapValue = new HashMap<>();
  195. }
  196. mapValue.put("saleOrderId",saleOrderId);
  197. List<Map<String, Object>> amsSaleOrderUpdate = amsSaleOrderService.getSaleOrderUpdateLog(mapValue);
  198. PageHelper.startPage(pageNum,pageSize);
  199. List<Map<String, Object>> amsSaleOrderUpdate1 = amsSaleOrderService.getSaleOrderUpdateLog(mapValue);
  200. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, amsSaleOrderUpdate,amsSaleOrderUpdate1);
  201. return success(pageList);
  202. }
  203. /**
  204. * 获取销售片区
  205. * @param
  206. * @return
  207. */
  208. @ApiOperation(value="获取销售片区")
  209. @ApiImplicitParams({
  210. })
  211. @GetMapping(value = "/getSaleArea")
  212. public RESTfulResult getSaleArea(){
  213. return success(amsSaleOrderService.getSaleArea());
  214. }
  215. /**
  216. * 获取发货单位
  217. * @param
  218. * @return
  219. */
  220. @ApiOperation(value="获取发货单位")
  221. @ApiImplicitParams({
  222. })
  223. @GetMapping(value = "/getShipperName")
  224. public RESTfulResult getShipperName(){
  225. return success(amsSaleOrderService.getShipperName());
  226. }
  227. /**
  228. * 获取收货单位
  229. * @param
  230. * @return
  231. */
  232. @ApiOperation(value="获取收货单位")
  233. @ApiImplicitParams({
  234. })
  235. @GetMapping(value = "/getConsigneeCompanyName")
  236. public RESTfulResult getConsigneeCompanyName(){
  237. return success(amsSaleOrderService.getConsigneeCompanyName());
  238. }
  239. /**
  240. * 展示销售公司已审核销售订单的车序号列表
  241. * @param mapValue
  242. * @param pageNum
  243. * @param pageSize
  244. * @param apiId
  245. * @return
  246. */
  247. @ApiModelProperty(value = "展示销售公司已审核销售订单的车序号列表")
  248. @ApiImplicitParams({
  249. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  250. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  251. @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal")
  252. })
  253. @PostMapping("/getSaleOrderList")
  254. public RESTfulResult getSaleOrderList(@RequestBody(required = false) Map<String,Object> mapValue,
  255. Integer pageNum,
  256. Integer pageSize,
  257. Integer apiId) {
  258. List<Map<String, Object>> list = amsSaleOrderService.getSaleOrderList(mapValue);
  259. PageHelper.startPage(pageNum, pageSize);
  260. //分页查询数据
  261. List<Map<String, Object>> columnList = amsSaleOrderService.getSaleOrderList(mapValue);
  262. PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
  263. return success(data);
  264. }
  265. /**
  266. * 固定派单:通过车序号查询收货地址,截取收货地址的区域,去资源管理中查询对应的承运商,将车序号与承运商绑定
  267. */
  268. @PostMapping("/addAmsDispatchSaleOrder")
  269. public RESTfulResult addAmsDispatchSaleOrder(@RequestBody(required = false) List<Map<String,Object>> mapValue){
  270. if(mapValue==null){
  271. return failed();
  272. }
  273. for (Map<String,Object> m:mapValue
  274. ) {
  275. //Integer id=amsSaleOrderMaterialService.selectByCxh(m);
  276. Integer id=Integer.parseInt(m.get("orderMaterialId").toString()) ;
  277. System.out.println(id);
  278. //通过主键Id获取地址id
  279. Integer a=amsSaleOrderMaterialService.selectById(new BigDecimal(id));
  280. //通过地址id查询承运商id
  281. List<Integer> carriers = amsSaleOrderService.getCarrier(a);
  282. //判断是否只有一个承运商
  283. if(carriers.size()==1) {
  284. //新增固定派单
  285. AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder();
  286. ad.setDispatchId(amsDispatchSaleOrderService.selectMaxId());
  287. ad.setSaleOrderMaterialId(new BigDecimal(id));
  288. ad.setCarrierId(new BigDecimal(carriers.get(0)));
  289. ad.setDispatchDealTime(new Date());
  290. ad.setDispatchTime(new Date());
  291. //成交类型(0:定向派单;1:公开抢单)
  292. ad.setDispatchType(new BigDecimal(0));
  293. //销售订单车序号状态(0:自由;1:锁定)
  294. ad.setDispatchStatus(new BigDecimal(1));
  295. amsDispatchSaleOrderService.insert(ad);
  296. return success("插入成功");
  297. }
  298. }
  299. return success();
  300. }
  301. /**
  302. * 公开派单:查询未分派车辆的销售订单的车序号
  303. */
  304. @ApiModelProperty(value = "展示车序号列表")
  305. @ApiImplicitParams({
  306. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  307. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  308. @ApiImplicitParam(name = "apiId", value = "182", required = false, dataType = "BigDecimal")
  309. })
  310. @PostMapping("/getAmsSaleOrderMaterial")
  311. public RESTfulResult getAmsSaleOrderMaterial(@RequestBody(required = false) Map<String,Object> mapValue,
  312. Integer pageNum,
  313. Integer pageSize,
  314. Integer apiId) {
  315. List<Map<String, Object>> list = amsSaleOrderMaterialService.getSaleMaterial(mapValue);
  316. PageHelper.startPage(pageNum, pageSize);
  317. //分页查询数据
  318. List<Map<String, Object>> columnList = amsSaleOrderMaterialService.getSaleMaterial(mapValue);
  319. PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
  320. return success(data);
  321. }
  322. /**
  323. * 公开派单:新增公开派单
  324. */
  325. @PostMapping("/addOpenAmsDispatchSaleOrder/{saleOrderMaterialId}")
  326. public RESTfulResult addOpenAmsDispatchSaleOrder(@PathVariable("saleOrderMaterialId") BigDecimal saleOrderMaterialId){
  327. if(saleOrderMaterialId==null){
  328. return failed();
  329. }
  330. //新增公开派单
  331. AmsDispatchSaleOrder ad = new AmsDispatchSaleOrder();
  332. ad.setDispatchId(amsDispatchSaleOrderService.selectMaxId());
  333. ad.setSaleOrderMaterialId(saleOrderMaterialId);
  334. //成交类型(0:定向派单;1:公开抢单)
  335. ad.setDispatchType(new BigDecimal(1));
  336. //销售订单车序号状态(0:自由;1:锁定)
  337. ad.setDispatchStatus(new BigDecimal(0));
  338. amsDispatchSaleOrderService.insert(ad);
  339. return success("插入成功");
  340. }
  341. /**
  342. * 删除公开派单
  343. */
  344. @PostMapping("/deleteAmsDispatchSaleOrder/{dispatchId}")
  345. public RESTfulResult deleteAmsDispatchSaleOrder(@PathVariable("dispatchId") BigDecimal dispatchId) {
  346. amsDispatchSaleOrderService.delete(dispatchId);
  347. return success("删除成功");
  348. }
  349. /**
  350. * 公开派单:查询公开派单
  351. */
  352. @ApiModelProperty(value = "展示公开派单")
  353. @ApiImplicitParams({
  354. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  355. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  356. @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal")
  357. })
  358. @PostMapping("/getOpenDispatchSaleOrder")
  359. public RESTfulResult getOpenDispatchSaleOrder(@RequestBody(required = false) Map<String,Object> mapValue,
  360. Integer pageNum,
  361. Integer pageSize,
  362. Integer apiId) {
  363. List<Map<String, Object>> list = amsDispatchSaleOrderService.getOpenDispatchSaleOrder(mapValue);
  364. PageHelper.startPage(pageNum, pageSize);
  365. //分页查询数据
  366. List<Map<String, Object>> columnList = amsDispatchSaleOrderService.getOpenDispatchSaleOrder(mapValue);
  367. PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
  368. return success(data);
  369. }
  370. /**
  371. *公开派单:修改公开派单
  372. */
  373. @PostMapping("/updateOpenDispatchSaleOrder")
  374. public RESTfulResult updateOpenDispatchSaleOrder(@RequestBody AmsDispatchSaleOrder amsDispatchSaleOrder) {
  375. if(amsDispatchSaleOrder.getCarrierId()!=null){
  376. amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(1));
  377. }
  378. amsDispatchSaleOrder.setDispatchDealTime(new Date());
  379. amsDispatchSaleOrder.setUpdateTime(new Date());
  380. amsDispatchSaleOrder.setUpdateUsername("admin");
  381. amsDispatchSaleOrderService.modify(amsDispatchSaleOrder);
  382. return success("修改成功");
  383. }
  384. }