package com.goafanti.order.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.goafanti.common.bo.Result; import com.goafanti.common.constant.ErrorConstants; import com.goafanti.common.controller.CertifyApiController; import com.goafanti.common.model.TOrderNew; import com.goafanti.common.model.TOrderRefundWithBLOBs; import com.goafanti.common.model.TOrderTask; import com.goafanti.order.enums.ApprovalNewState; import com.goafanti.order.enums.OrderNewState; import com.goafanti.order.service.OrderNewService; @RestController @RequestMapping(value = "/open/api/admin/newOrder") public class AdminNewOrderApiController extends CertifyApiController { @Autowired private OrderNewService orderNewService; /** * 创建订单 * @param uid * @param orderType * @return */ @RequestMapping(value = "/createOrder",method = RequestMethod.POST) public Result createOrder(String uid,Integer orderType){ Result res = new Result(); if(StringUtils.isBlank(uid)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","客户编号")); return res; } if(orderType == null){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单类型")); return res; } res.data(orderNewService.createServiceOrder(uid,orderType)); return res; } /** * 添加项目 * @param t * @return */ @RequestMapping(value = "/addOrderTask",method = RequestMethod.POST) public Result addOrderTask(TOrderTask t){ Result res = new Result(); if(StringUtils.isBlank(t.getOrderNo())){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号")); return res; } if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) { res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在")); return res; } return res.data(orderNewService.addOrderTask(t)); } /** * 修改项目 * @param t * @return */ @RequestMapping(value = "/updateOrderTask",method = RequestMethod.POST) public Result updateOrderTask(TOrderTask t){ Result res=new Result(); if(null==t.getId()){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号")); return res; } if (t.getOrderNo()!=null&&orderNewService.checkOrderMain(t)) { res.getError().add(buildError("订单主要任务已存在","订单主要任务已存在")); return res; } return res.data(orderNewService.updateOrderTask(t)); } /** * 删除订单项目 * @param detailId * @return */ @RequestMapping(value = "/deleteOrderTask",method = RequestMethod.POST) public Result deleteOrderTask(Integer id){ Result res = new Result(); if(id==null){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","项目编号")); return res; } return res.data(orderNewService.delectOrderTask(id)); } /** * 删除订单 * @param detailId * @return */ @RequestMapping(value = "/deleteOrderNew",method = RequestMethod.POST) public Result deleteOrderNew(String orderNo){ Result res = new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号")); return res; } return res.data(orderNewService.deleteOrderNew(orderNo)); } /** * 获取订单项目信息 * @param orderNo * @return */ @RequestMapping(value = "/getOrderTask",method = RequestMethod.GET) public Result getOrderTask(String orderNo){ Result res = new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号")); return res; } res.setData(orderNewService.selectOrderTask(orderNo)); return res; } /** * 修改订单 * @param orderNo * @param firstPayment * @param orderAmount * @param signFirstPayment * @param signTotalAmount * @param approval * @param orderRemarks * @return */ @RequestMapping(value = "/updateServiceOrderNew",method = RequestMethod.POST) public Result updateServiceOrder(TOrderNew t,Integer isSubmit,String signDate){ Result res = new Result(); if(StringUtils.isBlank(t.getOrderNo())){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号")); return res; } if(null==t.getTotalAmount() || null==t.getFirstAmount()){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额")); return res; } if(StringUtils.isBlank(t.getContractPictureUrl())){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片")); return res; } if (isSubmit==1&&orderNewService.checkORderTask(t.getOrderNo())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "主项目")); return res; } if (StringUtils.isNotBlank(signDate)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { t.setSignTime(sdf.parse(signDate)); } catch (ParseException e) { e.printStackTrace(); } } res.setData(orderNewService.updateServiceOrder(t,isSubmit)); return res; } /** * 订单详情 * @param orderNo * @return */ @RequestMapping(value = "/getOrderNewDetail", method = RequestMethod.GET) public Result getOrderNewDetail(String orderNo){ Result res = new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号")); return res; } res.setData(orderNewService.getOrderNewDetail(orderNo)); return res; } /** * 收款截点编辑 */ @RequestMapping(value = "/createOrderDun", method = RequestMethod.POST) public Result createOrderDun(String orderDun,String orderNo){ Result res = new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号")); return res; } res.setData(orderNewService.createOrderDun(orderDun,orderNo)); return res; } /** * 查看订单收款截点 */ @RequestMapping(value = "/selectOrderDun", method = RequestMethod.GET) public Result selectOrderDun(String orderNo){ Result res = new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号")); return res; } res.setData(orderNewService.selectOrderDun(orderNo)); return res; } /** * 订单列表 */ @RequestMapping(value="/orderNewList", method = RequestMethod.GET) public Result orderNewList(String name,String orderNo,String starTime,String endTime ,Integer specially ,Integer distribution,Integer pageNo,Integer pageSize){ Result res=new Result(); res.data(orderNewService.orderNewList(name, orderNo, starTime, endTime, specially , distribution, pageNo, pageSize)); return res; } /** * 订单审核 */ @RequestMapping(value="/auditOrderNew", method = RequestMethod.POST) public Result auditOrderNewList(String orderNo,Integer orderStatus,String reason){ Result res=new Result(); if(StringUtils.isBlank(orderNo)){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号")); return res; } if(orderStatus==null||(orderStatus!=OrderNewState.QDSHTG.getCode()&&orderStatus!=OrderNewState.QDSHJJ.getCode())|| orderNewService.chekeOrderStatus(orderNo)){ res.getError().add(buildError( "审核状态错误","审核状态错误")); return res; } if (orderStatus==OrderNewState.QDSHJJ.getCode()&&StringUtils.isBlank(reason)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因")); return res; } return res.data(orderNewService.updateOrderNew(orderNo,orderStatus,reason)); } /** * 催款统计列表 */ @RequestMapping(value="/dunOrderNewList", method = RequestMethod.GET) public Result dunOrderNewList(String name,String orderNo,String starTime,String endTime,Integer specially,Integer pageNo,Integer pageSize){ Result res=new Result(); res.data(orderNewService.dunOrderNewList(name, orderNo, starTime, endTime,specially, pageNo, pageSize)); return res; } /** * 新增催款记录 */ @RequestMapping(value="/createDunLog", method = RequestMethod.POST) public Result createDunLog(String dunId,String dumTime,String remarks){ Result res=new Result(); if (StringUtils.isBlank(dunId)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID")); return res; } if (StringUtils.isBlank(dumTime)||StringUtils.isBlank(remarks)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "时间与描述","时间与描述")); return res; } res.data(orderNewService.createDunLog(dunId, dumTime, remarks)); return res; } /** * 催款记录查询 */ @RequestMapping(value="/selectDunLogList", method = RequestMethod.GET) public Result selectDunLogList(String dunId){ Result res=new Result(); if (StringUtils.isBlank(dunId)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "催款ID","催款ID")); return res; } res.data(orderNewService.selectDunLogList(dunId)); return res; } /** * 订单退单 */ @RequestMapping(value="/addOrderRefund", method = RequestMethod.POST) public Result addOrderRefund(TOrderRefundWithBLOBs t){ Result res=new Result(); if (StringUtils.isBlank(t.getOrderNo())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号","订单编号")); return res; } if(StringUtils.isBlank(t.getContractUrl())||StringUtils.isBlank(t.getApplicationUrl())){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "合同与申请表","合同与申请表")); return res; } if (StringUtils.isBlank(t.getReason())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "退单原因","退单原因")); return res; } if(orderNewService.checkOderSettlementAmount(t.getOrderNo())){ res.getError().add(buildError( "未达退单条件","未达退单条件")); return res; } res.data(orderNewService.addOrderRefund(t)); return res; } /** * 审批特批订单 * @param orderNo * @return */ @RequestMapping(value = "/approvalOrder",method = RequestMethod.POST) public Result approvalOrder(String orderNo,Integer confirm,String reason){ Result res = new Result(); if (StringUtils.isBlank(orderNo)||confirm==null) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号和审批","订单编号和审批")); return res; } if (confirm==ApprovalNewState.BH.getCode()&&StringUtils.isBlank(reason)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"驳回原因", "驳回原因")); return res; } if (orderNewService.chekeApprovalOrderStatus(orderNo)) { res.getError().add(buildError( "审核状态错误","审核状态错误")); return res; } return res.data(orderNewService.updateApprovalOrder(orderNo,confirm,reason)); } /** * 退单列表 */ @RequestMapping(value="/orderRefundList", method = RequestMethod.GET) public Result orderRefundList(String name,String orderNo,String starTime,String endTime,Integer specially,Integer pageNo,Integer pageSize){ Result res=new Result(); res.data(orderNewService.orderRefundList(name, orderNo, starTime, endTime,specially, pageNo, pageSize)); return res; } /** 退单文件上传 **/ @RequestMapping(value = "/uploadRefundOrderFile", method = RequestMethod.POST) public Result uploadRefundOrderFile(HttpServletRequest req,String sign){ Result res = new Result(); //order_refund_file res.setData(handleFile(res, "/order_refund_file/", false, req, sign)); return res; } }