AdminNewOrderApiController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807
  1. package com.goafanti.order.controller;
  2. import java.io.IOException;
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.List;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import com.goafanti.common.enums.AttachmentType;
  9. import com.goafanti.common.model.*;
  10. import com.goafanti.core.shiro.token.TokenManager;
  11. import com.goafanti.order.bo.*;
  12. import com.goafanti.order.enums.SalesTypes;
  13. import com.goafanti.order.service.OrderAssistService;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.beans.factory.annotation.Value;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import com.goafanti.common.bo.Result;
  21. import com.goafanti.common.constant.ErrorConstants;
  22. import com.goafanti.common.controller.CertifyApiController;
  23. import com.goafanti.common.utils.excel.NewExcelUtil;
  24. import com.goafanti.order.enums.ApprovalNewState;
  25. import com.goafanti.order.enums.OrderNewState;
  26. import com.goafanti.order.service.OrderNewService;
  27. @RestController
  28. @RequestMapping(value = "/api/admin/newOrder")
  29. public class AdminNewOrderApiController extends CertifyApiController {
  30. @Autowired
  31. private OrderNewService orderNewService;
  32. @Autowired
  33. private OrderAssistService orderAssistService;
  34. @Value(value = "${upload.path}")
  35. private final String uploadPath = null;
  36. /**
  37. *
  38. * 创建订单、开单
  39. *
  40. * @param uid 客户编号
  41. * @param orderType 订单类型
  42. * @param salesType 销售类型
  43. * @param channelId 渠道编号
  44. * @param other 备注
  45. * @return
  46. */
  47. @RequestMapping(value = "/createOrder",method = RequestMethod.POST)
  48. public Result createOrder(String uid,Integer orderType,Integer userType,
  49. Integer salesType,String channelId,String other){
  50. Result res = new Result();
  51. if(StringUtils.isBlank(uid)){
  52. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","客户编号"));
  53. return res;
  54. }
  55. if(orderType == null){
  56. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单类型"));
  57. return res;
  58. }
  59. if(userType == null){
  60. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","客户类型"));
  61. return res;
  62. }
  63. if (salesType==null){
  64. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型"));
  65. return res;
  66. }else{
  67. if (salesType.equals(SalesTypes.qd.getCode()) ){
  68. if (StringUtils.isBlank(channelId)){
  69. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为渠道,渠道客户"));
  70. return res;
  71. }
  72. if (StringUtils.isBlank(other)){
  73. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为渠道,渠道客户名称"));
  74. return res;
  75. }
  76. }
  77. if ((salesType.equals(SalesTypes.qt.getCode()) ||salesType.equals(SalesTypes.zjs.getCode()))
  78. &&StringUtils.isBlank(other)){
  79. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为转介绍或者其他,请简单描述"));
  80. return res;
  81. }
  82. }
  83. res.data(orderNewService.createServiceOrder(uid,userType,orderType, salesType, channelId, other));
  84. return res;
  85. }
  86. /**
  87. * 添加项目
  88. */
  89. @RequestMapping(value = "/addOrderTask",method = RequestMethod.POST)
  90. public Result addOrderTask(TOrderTask t){
  91. Result res = new Result();
  92. if(StringUtils.isBlank(t.getOrderNo())){
  93. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  94. return res;
  95. }
  96. if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) {
  97. res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在"));
  98. return res;
  99. }
  100. t.setProcessStatus(3);
  101. return res.data(orderNewService.addOrderTask(t));
  102. }
  103. /**
  104. * 修改项目(营销员)
  105. */
  106. @RequestMapping(value = "/updateOrderTask",method = RequestMethod.POST)
  107. public Result updateOrderTask(TOrderTask t){
  108. Result res=new Result();
  109. if(null==t.getId()){
  110. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号"));
  111. return res;
  112. }
  113. if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) {
  114. res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在"));
  115. return res;
  116. }
  117. return res.data(orderNewService.updateOrderTask(t));
  118. }
  119. /**
  120. * 删除订单项目
  121. */
  122. @RequestMapping(value = "/deleteOrderTask",method = RequestMethod.POST)
  123. public Result deleteOrderTask(Integer id){
  124. Result res = new Result();
  125. if(id==null){
  126. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号"));
  127. return res;
  128. }
  129. return res.data(orderNewService.delectOrderTask(id));
  130. }
  131. /**
  132. * 删除订单
  133. */
  134. @RequestMapping(value = "/deleteOrderNew",method = RequestMethod.POST)
  135. public Result deleteOrderNew(String orderNo){
  136. Result res = new Result();
  137. if(StringUtils.isBlank(orderNo)){
  138. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  139. return res;
  140. }
  141. int i=orderNewService.deleteOrderNew(orderNo);
  142. if (i==-1) {
  143. res.getError().add(buildError("订单未达删除条件","订单未达删除条件"));
  144. return res;
  145. }
  146. return res.data(i);
  147. }
  148. /**
  149. * 获取订单项目信息
  150. * @param type 分类 0 所有 1通过审核
  151. * @param orderNo 订单编号
  152. */
  153. @RequestMapping(value = "/getOrderTask",method = RequestMethod.GET)
  154. public Result getOrderTask(String orderNo,Integer type){
  155. Result res = new Result();
  156. if(StringUtils.isBlank(orderNo)){
  157. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  158. return res;
  159. }
  160. res.setData(orderNewService.selectOrderTask(orderNo,type));
  161. return res;
  162. }
  163. /**
  164. * 修改订单
  165. */
  166. @RequestMapping(value = "/updateServiceOrderNew",method = RequestMethod.POST)
  167. public Result updateServiceOrder(TOrderNewWithBLOBs t,String isSubmit,String signDate){
  168. Result res = new Result();
  169. if(StringUtils.isBlank(t.getOrderNo())){
  170. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
  171. return res;
  172. }
  173. if(null==t.getTotalAmount() || null==t.getFirstAmount()){
  174. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
  175. return res;
  176. }
  177. if(StringUtils.isBlank(t.getContractPictureUrl())){
  178. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
  179. return res;
  180. }
  181. if(null==isSubmit){
  182. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "提交状态"));
  183. return res;
  184. }
  185. int i=Integer.valueOf(isSubmit);
  186. if (i==1) {
  187. if (orderNewService.checkORderTask(t.getOrderNo())) {
  188. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "主项目"));
  189. return res;
  190. }
  191. if (orderNewService.checkORderDun(t.getOrderNo())) {
  192. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "催款信息"));
  193. return res;
  194. }
  195. }
  196. if (StringUtils.isNotBlank(signDate)) {
  197. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  198. try {
  199. t.setSignTime(sdf.parse(signDate));
  200. } catch (ParseException e) {
  201. e.printStackTrace();
  202. }
  203. }
  204. res.setData(orderNewService.updateServiceOrder(t,i));
  205. return res;
  206. }
  207. /**
  208. * 订单详情
  209. * @param orderNo
  210. * @return
  211. */
  212. @RequestMapping(value = "/getOrderNewDetail", method = RequestMethod.GET)
  213. public Result getOrderNewDetail(String orderNo){
  214. Result res = new Result();
  215. if(StringUtils.isBlank(orderNo)){
  216. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  217. return res;
  218. }
  219. res.setData(orderNewService.getOrderNewDetail(orderNo));
  220. return res;
  221. }
  222. @RequestMapping(value = "/updateSalesType",method = RequestMethod.POST)
  223. public Result updateSalesType(TOrderNew in ){
  224. Result res = new Result();
  225. if(StringUtils.isBlank(in.getOrderNo())){
  226. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号"));
  227. return res;
  228. }
  229. if (in.getSalesType().equals(SalesTypes.qd.getCode()) ){
  230. if (StringUtils.isBlank(in.getChannelId())){
  231. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为渠道,渠道客户"));
  232. return res;
  233. }
  234. if (StringUtils.isBlank(in.getOther())){
  235. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为渠道,渠道客户名称"));
  236. return res;
  237. }
  238. }
  239. if ((in.getSalesType().equals(SalesTypes.qt.getCode()) ||in.getSalesType().equals(SalesTypes.zjs.getCode()))
  240. &&StringUtils.isBlank(in.getOther())){
  241. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","销售类型为转介绍或者其他,请简单描述"));
  242. return res;
  243. }
  244. res.data(orderNewService.updateSalesType(in));
  245. return res;
  246. }
  247. /**
  248. * 收款截点编辑
  249. */
  250. @RequestMapping(value = "/createOrderDun", method = RequestMethod.POST)
  251. public Result createOrderDun(String orderDun,String orderNo){
  252. Result res = new Result();
  253. if(StringUtils.isBlank(orderNo)){
  254. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  255. return res;
  256. }
  257. res.setData(orderNewService.createOrderDun(orderDun,orderNo));
  258. return res;
  259. }
  260. /**
  261. * 查看订单收款截点
  262. */
  263. @RequestMapping(value = "/selectOrderDun", method = RequestMethod.GET)
  264. public Result selectOrderDun(String orderNo){
  265. Result res = new Result();
  266. if(StringUtils.isBlank(orderNo)){
  267. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  268. return res;
  269. }
  270. res.setData(orderNewService.selectOrderDun(orderNo));
  271. return res;
  272. }
  273. /**
  274. * 订单列表
  275. * @param aid
  276. * @param name
  277. * @param orderNo
  278. * @param starTime
  279. * @param endTime
  280. * @param specially 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单
  281. * @param approval
  282. * @param distribution (咨询师管理列表 0 未分配 1部分 2全部
  283. * @param depId
  284. * @param contractNo
  285. * @param outsource
  286. * @param liquidationStatus
  287. * @param amountStatus 0 10万元以下 1 10万~20万 2 20万~30万 3 30万~40万 4 40万以上
  288. * @param contractStart
  289. * @param contractEnd
  290. * @param uid
  291. * @param projectType
  292. * @param processStatus
  293. * @param pageNo
  294. * @param pageSize
  295. * @return
  296. */
  297. @RequestMapping(value="/orderNewList", method = RequestMethod.GET)
  298. public Result orderNewList(String aid,String name,String orderNo,String starTime,String endTime ,Integer specially ,Integer approval,
  299. Integer distribution,String depId,String contractNo,Integer outsource,Integer liquidationStatus,Integer amountStatus,
  300. String contractStart,String contractEnd,String uid,Integer projectType,Integer processStatus,Integer pageNo,Integer pageSize){
  301. Result res=new Result();
  302. res.data(orderNewService.orderNewList(aid,name, orderNo, starTime, endTime, specially ,approval, distribution,depId,
  303. contractNo,outsource, liquidationStatus,amountStatus,contractStart, contractEnd,uid, projectType,processStatus,pageNo, pageSize));
  304. return res;
  305. }
  306. /**
  307. * 销售来源订单列表
  308. * @param in
  309. * @return
  310. */
  311. @RequestMapping(value="/statistics/orderList", method = RequestMethod.GET)
  312. public Result orderNewList(InputStatisticsOrderList in ){
  313. Result res=new Result();
  314. res.data(orderNewService.statisticsOrderList(in));
  315. return res;
  316. }
  317. /**
  318. * 订单审核
  319. */
  320. @RequestMapping(value="/auditOrderNew", method = RequestMethod.POST)
  321. public Result auditOrderNew(String orderNo,Integer orderStatus,String reason){
  322. Result res=new Result();
  323. if(StringUtils.isBlank(orderNo)){
  324. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  325. return res;
  326. }
  327. if(orderStatus==null||(orderStatus!=OrderNewState.QDSHTG.getCode()&&orderStatus!=OrderNewState.QDSHJJ.getCode())||
  328. orderNewService.chekeOrderStatus(orderNo)){
  329. res.getError().add(buildError( "审核状态错误","审核状态错误"));
  330. return res;
  331. }
  332. if (orderStatus==OrderNewState.QDSHJJ.getCode()&&StringUtils.isBlank(reason)) {
  333. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
  334. return res;
  335. }
  336. return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason,0,null));
  337. }
  338. /**
  339. * 催款统计列表
  340. * @param newStatus 0旧催款 1新催款
  341. * @param specially 0查看自己 1查看别人
  342. */
  343. @RequestMapping(value="/dunOrderNewList", method = RequestMethod.GET)
  344. public Result dunOrderNewList(String name,String orderNo,String contractNo,String starTime,String endTime,Integer specially,String aid,
  345. String adminName,String depId,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,
  346. Integer pageNo,Integer pageSize){
  347. Result res=new Result();
  348. res.data(orderNewService.dunOrderNewList(name, orderNo,contractNo, starTime, endTime,specially,aid, adminName, depId,newStatus,
  349. approval,amountStatus,memberType,pageNo, pageSize));
  350. return res;
  351. }
  352. /**
  353. * 催款统计列表
  354. */
  355. @RequestMapping(value="/arrearsDunList", method = RequestMethod.GET)
  356. public Result arrearsDunList(InputArrearsDunListBo in){
  357. Result res=new Result();
  358. res.data(orderNewService.arrearsDunList(in));
  359. return res;
  360. }
  361. /**
  362. * 新增催款记录
  363. */
  364. @RequestMapping(value="/createDunLog", method = RequestMethod.POST)
  365. public Result createDunLog(String dunId,String dumTime,String remarks,String attUrl){
  366. Result res=new Result();
  367. if (StringUtils.isBlank(dunId)) {
  368. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID"));
  369. return res;
  370. }
  371. if (StringUtils.isBlank(dumTime)||StringUtils.isBlank(remarks)) {
  372. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "时间与描述","时间与描述"));
  373. return res;
  374. }
  375. res.data(orderNewService.createDunLog(dunId, dumTime, remarks,attUrl));
  376. return res;
  377. }
  378. /**
  379. * 催款记录查询
  380. */
  381. @RequestMapping(value="/selectDunLogList", method = RequestMethod.GET)
  382. public Result selectDunLogList(String dunId){
  383. Result res=new Result();
  384. if (StringUtils.isBlank(dunId)) {
  385. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID"));
  386. return res;
  387. }
  388. res.data(orderNewService.selectDunLogList(dunId));
  389. return res;
  390. }
  391. /**
  392. * 订单退单
  393. */
  394. @RequestMapping(value="/addOrderRefund", method = RequestMethod.POST)
  395. public Result addOrderRefund(TOrderRefundWithBLOBs t){
  396. Result res=new Result();
  397. if (StringUtils.isBlank(t.getOrderNo())) {
  398. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  399. return res;
  400. }
  401. if(StringUtils.isBlank(t.getContractUrl())||StringUtils.isBlank(t.getApplicationUrl())){
  402. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "合同与申请表","合同与申请表"));
  403. return res;
  404. }
  405. if (StringUtils.isBlank(t.getReason())) {
  406. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单原因","退单原因"));
  407. return res;
  408. }
  409. if(orderNewService.checkOderSettlementAmount(t.getOrderNo())){
  410. res.getError().add(buildError( "未达退单条件","未达退单条件"));
  411. return res;
  412. }
  413. res.data(orderNewService.addOrderRefund(t));
  414. return res;
  415. }
  416. /**
  417. * 退单详情
  418. */
  419. @RequestMapping(value="/orderRefundDetail", method = RequestMethod.GET)
  420. public Result OrderRefund(String id){
  421. Result res=new Result();
  422. if (StringUtils.isBlank(id)) {
  423. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单编号","退单编号"));
  424. return res;
  425. }
  426. res.data(orderNewService.orderRefundDetail(id));
  427. return res;
  428. }
  429. /**
  430. * 订单退单
  431. */
  432. @RequestMapping(value="/updateOrderRefund", method = RequestMethod.POST)
  433. public Result updateOrderRefund(TOrderRefundWithBLOBs t){
  434. Result res=new Result();
  435. if (null==t.getId()) {
  436. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单编号","退单编号"));
  437. return res;
  438. }
  439. if(StringUtils.isBlank(t.getContractUrl())||StringUtils.isBlank(t.getApplicationUrl())){
  440. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "合同与申请表","合同与申请表"));
  441. return res;
  442. }
  443. if (StringUtils.isBlank(t.getReason())) {
  444. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单原因","退单原因"));
  445. return res;
  446. }
  447. res.data(orderNewService.updateOrderRefund(t));
  448. return res;
  449. }
  450. /**
  451. * 审批特批订单
  452. * @param orderNo
  453. * @return
  454. */
  455. @RequestMapping(value = "/approvalOrder",method = RequestMethod.POST)
  456. public Result approvalOrder(String orderNo,Integer confirm,String reason){
  457. Result res = new Result();
  458. if (StringUtils.isBlank(orderNo)||confirm==null) {
  459. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号和审批","订单编号和审批"));
  460. return res;
  461. }
  462. if (confirm==ApprovalNewState.BH.getCode()&&StringUtils.isBlank(reason)) {
  463. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因"));
  464. return res;
  465. }
  466. if (orderNewService.chekeApprovalOrderStatus(orderNo)) {
  467. res.getError().add(buildError( "审核状态错误","审核状态错误"));
  468. return res;
  469. }
  470. return res.data(orderNewService.updateApprovalOrder(orderNo,confirm,reason));
  471. }
  472. /**
  473. * 退单列表
  474. */
  475. @RequestMapping(value="/orderRefundList", method = RequestMethod.GET)
  476. public Result orderRefundList(String name,String orderNo,String starTime,String endTime,Integer specially,Integer pageNo,Integer pageSize){
  477. Result res=new Result();
  478. res.data(orderNewService.orderRefundList(name, orderNo, starTime, endTime,specially, pageNo, pageSize));
  479. return res;
  480. }
  481. /**
  482. * 订单结单
  483. */
  484. @RequestMapping(value="/OrderOver", method = RequestMethod.GET)
  485. public Result updateOrderOver(String orderNo){
  486. Result res=new Result();
  487. if (StringUtils.isBlank(orderNo)) {
  488. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  489. return res;
  490. }
  491. int i=orderNewService.updateOrderOver(orderNo);
  492. if (i==-1) {
  493. res.getError().add(buildError("不符合结单条件","不符合结单条件"));
  494. return res;
  495. }
  496. res.setData(i);
  497. return res;
  498. }
  499. /**
  500. * 咨询师驳回订单
  501. */
  502. @RequestMapping(value = "/technicianBackOrder", method = RequestMethod.POST)
  503. public Result technicianBackOrder(String orderNo,String reason){
  504. Result res = new Result();
  505. int i=orderNewService.updatetechnicianBackOrder(orderNo, reason);
  506. if (i==-1) {
  507. res.getError().add(buildError("不符合驳回条件","不符合驳回条件"));
  508. return res;
  509. }
  510. return res;
  511. }
  512. /**
  513. * 财务订单转交
  514. */
  515. @RequestMapping(value = "/updateFinance", method= RequestMethod.GET)
  516. public Result updateFinance(String orderNo,String newFinance) {
  517. Result res = new Result();
  518. orderNewService.updateFinance( orderNo, newFinance);
  519. return res;
  520. }
  521. /**
  522. * 查看订单日志
  523. */
  524. @RequestMapping(value ="/selectOrderLog", method=RequestMethod.GET)
  525. public Result selectOrderLog (String orderNo) {
  526. Result res=new Result();
  527. if (StringUtils.isBlank(orderNo)) {
  528. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号"));
  529. return res;
  530. }
  531. res.data(orderNewService.selectOrderLog(orderNo));
  532. return res;
  533. }
  534. /** 退单文件上传 **/
  535. @RequestMapping(value = "/uploadRefundOrderFile", method = RequestMethod.POST)
  536. public Result uploadRefundOrderFile(HttpServletRequest req,String sign){
  537. Result res = new Result();
  538. //order_refund_file
  539. res.setData(handleFile(res, "/order_refund_file/", false, req, sign));
  540. return res;
  541. }
  542. /**
  543. * 催款日志文件上传
  544. */
  545. @RequestMapping(value = "/uploadDunLogFile", method = RequestMethod.POST)
  546. public Result uploadDunLogFileResult(HttpServletRequest req, String sign) {
  547. Result res = new Result();
  548. AttachmentType attachmentType = AttachmentType.getField(sign);
  549. if (attachmentType == AttachmentType.DUN_LOG_ATTACHMENT) {
  550. res.setData(handleFiles(res, "/dun_log_attachment/", false, req, sign, TokenManager.getAdminId()));
  551. } else {
  552. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
  553. }
  554. return res;
  555. }
  556. /**
  557. * 催款列表下载
  558. * @throws IOException
  559. */
  560. @RequestMapping(value = "/exportOrderDunData", method = RequestMethod.GET)
  561. public Result exportOrderDunData(String name,String orderNo,String contractNo,String starTime,String endTime,Integer specially, String aid,String adminName,
  562. String depId,Integer newStatus,Integer approval,Integer amountStatus,Integer memberType,
  563. Integer pageNo,Integer pageSize){
  564. return orderNewService.exportOrderDunData( name, orderNo,contractNo, starTime, endTime,specially, aid, adminName, depId,newStatus
  565. , approval, amountStatus, memberType,pageNo, pageSize);
  566. }
  567. /**
  568. * 项目列表下载
  569. * @throws IOException
  570. */
  571. @RequestMapping(value = "/exportOrderTaskData", method = RequestMethod.GET)
  572. public Result exportOrderTaskData(String orderNo,Integer type,HttpServletResponse response){
  573. List<TOrderTaskBo> list=orderNewService.selectOrderTask(orderNo,type);
  574. NewExcelUtil<TOrderTaskBo>excel=new NewExcelUtil<>(TOrderTaskBo.class);
  575. return excel.exportExcel(list,"订单项目列表",response);
  576. }
  577. /**
  578. * 催款信息下载
  579. * @throws IOException
  580. */
  581. @RequestMapping(value = "/exportArrearsDunListData", method = RequestMethod.GET)
  582. public Result exportArrearsDunListData(InputArrearsDunListBo in,HttpServletResponse response){
  583. @SuppressWarnings("unchecked")
  584. List<OutArrearsDunListBo> list=(List<OutArrearsDunListBo>) orderNewService.arrearsDunList(in).getList();
  585. NewExcelUtil<OutArrearsDunListBo>excel=new NewExcelUtil<>(OutArrearsDunListBo.class);
  586. return excel.exportExcel(list,"欠款催款列表",response);
  587. }
  588. /**
  589. * 签单统计表
  590. * @throws IOException
  591. */
  592. @RequestMapping(value = "/statisticsList", method = RequestMethod.GET)
  593. public Result statisticsList(InputStatistics in){
  594. return res().data(orderNewService.statisticsList(in));
  595. }
  596. /**
  597. * 签单统计表
  598. * @throws IOException
  599. */
  600. @RequestMapping(value = "/statisticsListExprot", method = RequestMethod.GET)
  601. public Result statisticsListExprot(InputStatistics in){
  602. List<outStatisticsList> list =orderNewService.statisticsList(in);
  603. NewExcelUtil<outStatisticsList> excelUtil=new NewExcelUtil<>(outStatisticsList.class);
  604. StringBuffer sb=new StringBuffer("搜索条件=》");
  605. if (in.getDepName()!=null)sb=sb.append("部门:").append(in.getDepName()).append(",");
  606. if(in.getProvinceName()!=null)sb=sb.append("省份:").append(in.getProvinceName()).append(",");
  607. if(in.getSort()!=null){
  608. sb=sb.append("排序:");
  609. if (in.getSort()==0)sb=sb.append("按签单额");
  610. else if (in.getSort()==1)sb=sb.append("按签单总量");
  611. else if (in.getSort()==2)sb=sb.append("按签单人数");
  612. sb=sb.append(",");
  613. }
  614. if (in.getStartCreate()!=null&&in.getEndCreate()!=null){
  615. sb=sb.append("下单时间:").append(in.getStartCreate()).append("~").append(in.getEndCreate()).append(",");
  616. }
  617. if (in.getStartSign()!=null&&in.getEndSign()!=null){
  618. sb=sb.append("合同时间:").append(in.getStartSign()).append("~").append(in.getEndSign()).append(",");
  619. }
  620. return excelUtil.exportExcel(list,"签单统计表",uploadPath,sb.substring(0,sb.toString().length()-1));
  621. }
  622. /**
  623. * 省份签单统计表
  624. * a.total_amount>0.5,1,if(a.total_amount>0 and a.order_type=1,0.5,0)
  625. * 签单金额大于1万计做一个订单,小于0.5,如果是科技项目计做0.5单,其他计算成0单
  626. * @throws IOException
  627. */
  628. @RequestMapping(value = "/provinceStatisticsList", method = RequestMethod.GET)
  629. public Result provinceStatisticsList(InputStatistics in){
  630. return res().data(orderNewService.provinceStatisticsList(in));
  631. }
  632. /**
  633. * 签单统计表
  634. * @throws IOException
  635. */
  636. @RequestMapping(value = "/provinceStatisticsListExprot", method = RequestMethod.GET)
  637. public Result provinceStatisticsListExprot(InputStatistics in){
  638. List<outProvinceStatisticsList> list =orderNewService.provinceStatisticsList(in);
  639. NewExcelUtil<outProvinceStatisticsList> excelUtil=new NewExcelUtil<>(outProvinceStatisticsList.class);
  640. StringBuffer sb=new StringBuffer("搜索条件=》");
  641. if (in.getDepName()!=null)sb=sb.append("部门:").append(in.getDepName()).append(",");
  642. if(in.getProvinceName()!=null)sb=sb.append("省份:").append(in.getProvinceName()).append(",");
  643. if(in.getSort()!=null){
  644. sb=sb.append("排序:");
  645. if (in.getSort()==0)sb=sb.append("按签单额");
  646. else if (in.getSort()==1)sb=sb.append("按签单总量");
  647. else if (in.getSort()==2)sb=sb.append("按签单人数");
  648. sb=sb.append(",");
  649. }
  650. if (in.getStartCreate()!=null&&in.getEndCreate()!=null){
  651. sb=sb.append("下单时间:").append(in.getStartCreate()).append("~").append(in.getEndCreate()).append(",");
  652. }
  653. if (in.getStartSign()!=null&&in.getEndSign()!=null){
  654. sb=sb.append("合同时间:").append(in.getStartSign()).append("~").append(in.getEndSign()).append(",");
  655. }
  656. return excelUtil.exportExcel(list,"签单省份统计表",uploadPath,sb.substring(0,sb.toString().length()-1));
  657. }
  658. /**
  659. * 新增协单人员
  660. * @param in
  661. * @return
  662. */
  663. @RequestMapping(value = "/addAssist",method = RequestMethod.POST)
  664. public Result addAssist(TOrderAssist in){
  665. Result res = new Result();
  666. if (in.getAid()==null){
  667. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"协单人"));
  668. return res;
  669. }
  670. if (in.getOrderNo()==null){
  671. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"订单编号"));
  672. return res;
  673. }
  674. int i=orderAssistService.addAssistCheck(in);
  675. if (i==-1){
  676. res.getError().add(buildError(ErrorConstants.PARAM_BEING_ERROR,ErrorConstants.PARAM_BEING_ERROR,"协单人员"));
  677. return res;
  678. }
  679. return res.data(orderAssistService.addAssist(in));
  680. }
  681. /**
  682. * 删除订单协单人员
  683. * @return
  684. */
  685. @RequestMapping(value = "/deleteAssist",method = RequestMethod.POST)
  686. public Result deleteAssist(Integer id){
  687. Result res = new Result();
  688. if (id==null){
  689. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"协单人"));
  690. return res;
  691. }
  692. return res.data(orderAssistService.deleteAssist(id));
  693. }
  694. /**
  695. * 协单人员列表
  696. * @return
  697. */
  698. @RequestMapping(value = "/assistList",method = RequestMethod.GET)
  699. public Result assistList(String orderNo){
  700. Result res = new Result();
  701. if (orderNo==null){
  702. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"订单编号"));
  703. return res;
  704. }
  705. return res.data(orderAssistService.assistList(orderNo));
  706. }
  707. /**
  708. * 新增订单上门服务
  709. * @param in
  710. * @return
  711. */
  712. @RequestMapping(value = "/addOrderService",method = RequestMethod.POST)
  713. public Result addOrderService(TOrderServiceBo in){
  714. Result res = new Result();
  715. if (in.getServiceTimes()==null){
  716. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"服务时间"));
  717. return res;
  718. }
  719. if (in.getOrderNo()==null){
  720. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"订单编号"));
  721. return res;
  722. }
  723. return res.data(orderAssistService.addOrderService(in));
  724. }
  725. /**
  726. * 删除订单上门服务
  727. * @param id
  728. * @return
  729. */
  730. @RequestMapping(value = "/deleteOrderService",method = RequestMethod.POST)
  731. public Result deleteOrderService(Integer id){
  732. Result res = new Result();
  733. if (id==null){
  734. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"服务编号"));
  735. return res;
  736. }
  737. return res.data(orderAssistService.deleteOrderService(id));
  738. }
  739. /**
  740. * 订单上门服务列表
  741. * @return
  742. */
  743. @RequestMapping(value = "/orderServiceList",method = RequestMethod.GET)
  744. public Result orderServiceList(String orderNo){
  745. Result res = new Result();
  746. if (orderNo==null){
  747. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"订单编号"));
  748. return res;
  749. }
  750. return res.data(orderAssistService.orderServiceList(orderNo));
  751. }
  752. }