AdminNewOrderApiController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. package com.goafanti.order.controller;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.goafanti.common.bo.Result;
  11. import com.goafanti.common.constant.ErrorConstants;
  12. import com.goafanti.common.controller.CertifyApiController;
  13. import com.goafanti.common.model.TOrderNew;
  14. import com.goafanti.common.model.TOrderRefundWithBLOBs;
  15. import com.goafanti.common.model.TOrderTask;
  16. import com.goafanti.order.enums.ApprovalNewState;
  17. import com.goafanti.order.enums.OrderNewState;
  18. import com.goafanti.order.service.OrderNewService;
  19. @RestController
  20. @RequestMapping(value = "/open/api/admin/newOrder")
  21. public class AdminNewOrderApiController extends CertifyApiController {
  22. @Autowired
  23. private OrderNewService orderNewService;
  24. /**
  25. * 创建订单
  26. * @param uid
  27. * @param orderType
  28. * @return
  29. */
  30. @RequestMapping(value = "/createOrder",method = RequestMethod.POST)
  31. public Result createOrder(String uid,Integer orderType){
  32. Result res = new Result();
  33. if(StringUtils.isBlank(uid)){
  34. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","客户编号"));
  35. return res;
  36. }
  37. if(orderType == null){
  38. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单类型"));
  39. return res;
  40. }
  41. res.data(orderNewService.createServiceOrder(uid,orderType));
  42. return res;
  43. }
  44. /**
  45. * 添加项目
  46. * @param t
  47. * @return
  48. */
  49. @RequestMapping(value = "/addOrderTask",method = RequestMethod.POST)
  50. public Result addOrderTask(TOrderTask t){
  51. Result res = new Result();
  52. if(StringUtils.isBlank(t.getOrderNo())){
  53. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  54. return res;
  55. }
  56. if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) {
  57. res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在"));
  58. return res;
  59. }
  60. return res.data(orderNewService.addOrderTask(t));
  61. }
  62. /**
  63. * 修改项目
  64. * @param t
  65. * @return
  66. */
  67. @RequestMapping(value = "/updateOrderTask",method = RequestMethod.POST)
  68. public Result updateOrderTask(TOrderTask t){
  69. Result res=new Result();
  70. if(null==t.getId()){
  71. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号"));
  72. return res;
  73. }
  74. if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) {
  75. res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在"));
  76. return res;
  77. }
  78. return res.data(orderNewService.updateOrderTask(t));
  79. }
  80. /**
  81. * 删除订单项目
  82. * @param detailId
  83. * @return
  84. */
  85. @RequestMapping(value = "/deleteOrderTask",method = RequestMethod.POST)
  86. public Result deleteOrderTask(Integer id){
  87. Result res = new Result();
  88. if(id==null){
  89. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号"));
  90. return res;
  91. }
  92. return res.data(orderNewService.delectOrderTask(id));
  93. }
  94. /**
  95. * 删除订单
  96. * @param detailId
  97. * @return
  98. */
  99. @RequestMapping(value = "/deleteOrderNew",method = RequestMethod.POST)
  100. public Result deleteOrderNew(String orderNo){
  101. Result res = new Result();
  102. if(StringUtils.isBlank(orderNo)){
  103. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  104. return res;
  105. }
  106. return res.data(orderNewService.deleteOrderNew(orderNo));
  107. }
  108. /**
  109. * 获取订单项目信息
  110. * @param orderNo
  111. * @return
  112. */
  113. @RequestMapping(value = "/getOrderTask",method = RequestMethod.GET)
  114. public Result getOrderTask(String orderNo){
  115. Result res = new Result();
  116. if(StringUtils.isBlank(orderNo)){
  117. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  118. return res;
  119. }
  120. res.setData(orderNewService.selectOrderTask(orderNo));
  121. return res;
  122. }
  123. /**
  124. * 修改订单
  125. * @param orderNo
  126. * @param firstPayment
  127. * @param orderAmount
  128. * @param signFirstPayment
  129. * @param signTotalAmount
  130. * @param approval
  131. * @param orderRemarks
  132. * @return
  133. */
  134. @RequestMapping(value = "/updateServiceOrderNew",method = RequestMethod.POST)
  135. public Result updateServiceOrder(TOrderNew t,Integer isSubmit,String signDate){
  136. Result res = new Result();
  137. if(StringUtils.isBlank(t.getOrderNo())){
  138. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
  139. return res;
  140. }
  141. if(null==t.getTotalAmount() || null==t.getFirstAmount()){
  142. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
  143. return res;
  144. }
  145. if(StringUtils.isBlank(t.getContractPictureUrl())){
  146. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
  147. return res;
  148. }
  149. if (isSubmit==1&&orderNewService.checkORderTask(t.getOrderNo())) {
  150. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "主项目"));
  151. return res;
  152. }
  153. if (StringUtils.isNotBlank(signDate)) {
  154. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  155. try {
  156. t.setSignTime(sdf.parse(signDate));
  157. } catch (ParseException e) {
  158. e.printStackTrace();
  159. }
  160. }
  161. res.setData(orderNewService.updateServiceOrder(t,isSubmit));
  162. return res;
  163. }
  164. /**
  165. * 订单详情
  166. * @param orderNo
  167. * @return
  168. */
  169. @RequestMapping(value = "/getOrderNewDetail", method = RequestMethod.GET)
  170. public Result getOrderNewDetail(String orderNo){
  171. Result res = new Result();
  172. if(StringUtils.isBlank(orderNo)){
  173. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  174. return res;
  175. }
  176. res.setData(orderNewService.getOrderNewDetail(orderNo));
  177. return res;
  178. }
  179. /**
  180. * 收款截点编辑
  181. */
  182. @RequestMapping(value = "/createOrderDun", method = RequestMethod.POST)
  183. public Result createOrderDun(String orderDun,String orderNo){
  184. Result res = new Result();
  185. if(StringUtils.isBlank(orderNo)){
  186. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  187. return res;
  188. }
  189. res.setData(orderNewService.createOrderDun(orderDun,orderNo));
  190. return res;
  191. }
  192. /**
  193. * 查看订单收款截点
  194. */
  195. @RequestMapping(value = "/selectOrderDun", method = RequestMethod.GET)
  196. public Result selectOrderDun(String orderNo){
  197. Result res = new Result();
  198. if(StringUtils.isBlank(orderNo)){
  199. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  200. return res;
  201. }
  202. res.setData(orderNewService.selectOrderDun(orderNo));
  203. return res;
  204. }
  205. /**
  206. * 订单列表
  207. */
  208. @RequestMapping(value="/orderNewList", method = RequestMethod.GET)
  209. public Result orderNewList(String name,String orderNo,String starTime,String endTime ,Integer specially ,Integer distribution,Integer pageNo,Integer pageSize){
  210. Result res=new Result();
  211. res.data(orderNewService.orderNewList(name, orderNo, starTime, endTime, specially , distribution, pageNo, pageSize));
  212. return res;
  213. }
  214. /**
  215. * 订单审核
  216. */
  217. @RequestMapping(value="/auditOrderNew", method = RequestMethod.POST)
  218. public Result auditOrderNewList(String orderNo,Integer orderStatus,String reason){
  219. Result res=new Result();
  220. if(StringUtils.isBlank(orderNo)){
  221. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  222. return res;
  223. }
  224. if(orderStatus==null||(orderStatus!=OrderNewState.QDSHTG.getCode()&&orderStatus!=OrderNewState.QDSHJJ.getCode())||
  225. orderNewService.chekeOrderStatus(orderNo)){
  226. res.getError().add(buildError( "审核状态错误","审核状态错误"));
  227. return res;
  228. }
  229. if (orderStatus==OrderNewState.QDSHJJ.getCode()&&StringUtils.isBlank(reason)) {
  230. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
  231. return res;
  232. }
  233. return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason));
  234. }
  235. /**
  236. * 催款统计列表
  237. */
  238. @RequestMapping(value="/dunOrderNewList", method = RequestMethod.GET)
  239. public Result dunOrderNewList(String name,String orderNo,String starTime,String endTime,Integer specially,Integer pageNo,Integer pageSize){
  240. Result res=new Result();
  241. res.data(orderNewService.dunOrderNewList(name, orderNo, starTime, endTime,specially, pageNo, pageSize));
  242. return res;
  243. }
  244. /**
  245. * 新增催款记录
  246. */
  247. @RequestMapping(value="/createDunLog", method = RequestMethod.POST)
  248. public Result createDunLog(String dunId,String dumTime,String remarks){
  249. Result res=new Result();
  250. if (StringUtils.isBlank(dunId)) {
  251. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID"));
  252. return res;
  253. }
  254. if (StringUtils.isBlank(dumTime)||StringUtils.isBlank(remarks)) {
  255. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "时间与描述","时间与描述"));
  256. return res;
  257. }
  258. res.data(orderNewService.createDunLog(dunId, dumTime, remarks));
  259. return res;
  260. }
  261. /**
  262. * 催款记录查询
  263. */
  264. @RequestMapping(value="/selectDunLogList", method = RequestMethod.GET)
  265. public Result selectDunLogList(String dunId){
  266. Result res=new Result();
  267. if (StringUtils.isBlank(dunId)) {
  268. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID"));
  269. return res;
  270. }
  271. res.data(orderNewService.selectDunLogList(dunId));
  272. return res;
  273. }
  274. /**
  275. * 订单退单
  276. */
  277. @RequestMapping(value="/addOrderRefund", method = RequestMethod.POST)
  278. public Result addOrderRefund(TOrderRefundWithBLOBs t){
  279. Result res=new Result();
  280. if (StringUtils.isBlank(t.getOrderNo())) {
  281. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  282. return res;
  283. }
  284. if(StringUtils.isBlank(t.getContractUrl())||StringUtils.isBlank(t.getApplicationUrl())){
  285. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "合同与申请表","合同与申请表"));
  286. return res;
  287. }
  288. if (StringUtils.isBlank(t.getReason())) {
  289. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单原因","退单原因"));
  290. return res;
  291. }
  292. if(orderNewService.checkOderSettlementAmount(t.getOrderNo())){
  293. res.getError().add(buildError( "未达退单条件","未达退单条件"));
  294. return res;
  295. }
  296. res.data(orderNewService.addOrderRefund(t));
  297. return res;
  298. }
  299. /**
  300. * 审批特批订单
  301. * @param orderNo
  302. * @return
  303. */
  304. @RequestMapping(value = "/approvalOrder",method = RequestMethod.POST)
  305. public Result approvalOrder(String orderNo,Integer confirm,String reason){
  306. Result res = new Result();
  307. if (StringUtils.isBlank(orderNo)||confirm==null) {
  308. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号和审批","订单编号和审批"));
  309. return res;
  310. }
  311. if (confirm==ApprovalNewState.BH.getCode()&&StringUtils.isBlank(reason)) {
  312. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
  313. return res;
  314. }
  315. if (orderNewService.chekeApprovalOrderStatus(orderNo)) {
  316. res.getError().add(buildError( "审核状态错误","审核状态错误"));
  317. return res;
  318. }
  319. return res.data(orderNewService.updateApprovalOrder(orderNo,confirm,reason));
  320. }
  321. /**
  322. * 退单列表
  323. */
  324. @RequestMapping(value="/orderRefundList", method = RequestMethod.GET)
  325. public Result orderRefundList(String name,String orderNo,String starTime,String endTime,Integer specially,Integer pageNo,Integer pageSize){
  326. Result res=new Result();
  327. res.data(orderNewService.orderRefundList(name, orderNo, starTime, endTime,specially, pageNo, pageSize));
  328. return res;
  329. }
  330. /** 退单文件上传 **/
  331. @RequestMapping(value = "/uploadRefundOrderFile", method = RequestMethod.POST)
  332. public Result uploadRefundOrderFile(HttpServletRequest req,String sign){
  333. Result res = new Result();
  334. //order_refund_file
  335. res.setData(handleFile(res, "/order_refund_file/", false, req, sign));
  336. return res;
  337. }
  338. }