package com.mvc.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.fastjson.JSON; import com.base.constants.SessionKeyConstants; import com.base.enums.InvoiceStatus; import com.base.enums.IsDelete; import com.mvc.entity.Contract; import com.mvc.entity.Invoice; import com.mvc.entity.User; import com.mvc.service.InvoiceService; import com.utils.Pager; import net.sf.json.JSONObject; /** * 发票 * * @author zjn * @date 2016年9月16日 */ @Controller @RequestMapping("/invoice") public class InvoiceController { @Autowired InvoiceService invoiceService; /** * 返回收据界面 * * @return */ @RequestMapping("/toBillMngInvoicePage.do") public String InvoiceReceivePage() { return "billInformation/index"; } /** * 主任获取发票任务列表 * * @param request * @param session * @return */ @RequestMapping(value = "/getZRInvoice.do") public @ResponseBody String getAllInvoiceList(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer invoState = Integer.valueOf(request.getParameter("invoState"));// 0:未审核;1:已审核 Integer totalRow = invoiceService.countByParam(user.getUser_id(), invoState); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Invoice> list = invoiceService.findByPage(user.getUser_id(), invoState, pager.getOffset(), pager.getLimit()); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); return jsonObject.toString(); } /** * 按发票状态获取列表 * * @param request * @param session * @return */ @RequestMapping(value = "/getWaitingDealInvoice.do") public @ResponseBody String getInvoiceListByState(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer invoiceState = Integer.valueOf(request.getParameter("invoState")); Integer totalRow = invoiceService.WaitingDealCountByParam(user.getUser_id(), invoiceState); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Invoice> list = invoiceService.WaitingDealFindByPage(user.getUser_id(), invoiceState, pager.getOffset(), pager.getLimit()); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); return jsonObject.toString(); } /** * 根据合同ID查询发票记录 * * @param request * @param session * @return */ @RequestMapping(value = "/selectInvoiceByContId.do") public @ResponseBody String getAllInvoiceByContId(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); Integer contId = Integer.valueOf(request.getParameter("contId")); Integer totalRow = invoiceService.countByContId(contId); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Invoice> list = invoiceService.findByContId(contId, pager.getOffset(), pager.getLimit()); jsonObject.put("list", list); jsonObject.put("totalRow", totalRow); jsonObject.put("totalPage", pager.getTotalPage()); return jsonObject.toString(); } /** * 根据发票ID查询发票详情 * * @param request * @param session * @return */ @RequestMapping(value = "/selectInvoiceById.do") public @ResponseBody String findByInvoiceId(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); Integer invoiceId = Integer.valueOf(request.getParameter("invoiceId")); Invoice invoice = invoiceService.findById(invoiceId); jsonObject.put("invoice", invoice); return jsonObject.toString(); } /** * 根据合同ID查询发票总金额 * * @param request * @return */ @RequestMapping(value = "/countInvoiceMoneyByContId.do") public @ResponseBody String totalMoney(HttpServletRequest request) { JSONObject jsonObject = new JSONObject(); Integer contId = Integer.valueOf(request.getParameter("contId")); Float totalMoney = invoiceService.totalMoneyOfInvoice(contId); Integer totalRow = invoiceService.countTotalRow(contId); jsonObject.put("totalMoney", totalMoney); jsonObject.put("totalRow", totalRow); return jsonObject.toString(); } /** * 创建发票 * * @param request * @param session * @return * @throws ParseException */ @RequestMapping(value = "/addInvoiceTask.do") public @ResponseBody String addInvoice(HttpServletRequest request, HttpSession session) throws ParseException { User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); String permission = user.getRole().getRole_permission();// 权限 String permissionStr=LoginController.numToPermissionStr(permission); JSONObject jsonObject = JSONObject.fromObject(request.getParameter("invoice")); Invoice invoice = new Invoice(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long time = System.currentTimeMillis(); Contract contract = new Contract(); contract.setCont_id(Integer.valueOf(request.getParameter("contId"))); invoice.setContract(contract); invoice.setInvo_money(Float.valueOf(jsonObject.getString("invoMoney"))); invoice.setInvo_firm(jsonObject.getString("invoFirm")); if (jsonObject.containsKey("auditId")) { User audit = new User(); audit.setUser_id(Integer.valueOf(jsonObject.getString("auditId"))); invoice.setAudit(audit); } Date sTime = format.parse(jsonObject.getString("invoStime")); invoice.setInvo_stime(sTime); Date eTime = format.parse(jsonObject.getString("invoEtime")); invoice.setInvo_etime(eTime); invoice.setInvo_remark(jsonObject.getString("invoRemark")); User creator = new User(); creator.setUser_id(user.getUser_id()); invoice.setCreator(creator); invoice.setInvo_isdelete(IsDelete.NO.value); invoice.setInvo_ctime(new Date(time)); if (permissionStr.contains("tInvoAudit")) {// 审核发票权限(主任) invoice.setInvo_state(InvoiceStatus.waitdealing.value);// 待处理 invoice.setAudit(user); } else { invoice.setInvo_state(InvoiceStatus.waitAudit.value);// 待审核 } boolean invoiceResult = false; if (jsonObject.containsKey("invo_id")) { invoice.setInvo_id(Integer.valueOf(jsonObject.getString("invo_id"))); invoiceResult = invoiceService.save(invoice); } else { invoiceResult = invoiceService.save(invoice); } return JSON.toJSONString(invoiceResult); } /** * 点击确认完成开发票任务 * * @param request * @param session * @return * @throws ParseException */ @RequestMapping(value = "/updateInvoiceState.do") public @ResponseBody String invoiceFinish(HttpServletRequest request, HttpSession session) throws ParseException { Integer invoiceId = Integer.parseInt(request.getParameter("invoiceId")); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date invoTime = format.parse(request.getParameter("invoTime")); boolean result = invoiceService.invoiceFinish(invoiceId, invoTime); return JSON.toJSONString(result); } /** * 主任转发发票 * * @param request * @param session * @return * @throws ParseException */ @RequestMapping(value = "/updateInvoice.do") public @ResponseBody String transmitInvoice(HttpServletRequest request, HttpSession session) throws ParseException { Integer invoiceId = Integer.valueOf(request.getParameter("invoId")); Integer receiverId = Integer.valueOf(request.getParameter("receiverId")); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date invoEtime = format.parse(request.getParameter("invoEtime")); boolean result = invoiceService.transmitInvoice(invoiceId, invoEtime, receiverId); return JSON.toJSONString(result); } /** * 根据权限,状态,页码 查找发票 * * @param request * @param session * @return list */ @RequestMapping(value = "/getInvoTaskListByState.do") public @ResponseBody String selectInvoTaskByState(HttpServletRequest request, HttpSession session) { Integer invoState = Integer.parseInt(request.getParameter("invoState"));// -1:全部,0:待审核,1:待处理,2:已完成 User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer user_id = user.getUser_id(); String permission = user.getRole().getRole_permission();// 权限 Integer totalRow = invoiceService.countByStateAndPerm(invoState, permission, user_id); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Invoice> list = invoiceService.selectInvoByStateAndPerm(invoState, permission, user_id, pager); JSONObject jsonObject = new JSONObject(); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); return jsonObject.toString(); } /** * 根据合同ID,状态,页码 查找发票 * * @param request * @return list */ @RequestMapping(value = "/getInvoiceListByContId.do") public @ResponseBody String selectInvoiceByContId(HttpServletRequest request) { Integer invoState = Integer.parseInt(request.getParameter("invoState"));// -1:全部,0:待审核,1:待处理,2:已完成 Integer cont_id = Integer.parseInt(request.getParameter("contId")); Integer totalRow = invoiceService.countByStateAndContId(invoState, cont_id); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Invoice> list = invoiceService.selectInvoByStateAndContId(invoState, cont_id, pager); JSONObject jsonObject = new JSONObject(); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); return jsonObject.toString(); } /** * 删除发票记录 * * @param request * @param session * @return */ @RequestMapping(value = "/deleteInvoice.do") public @ResponseBody String deleteInvoice(HttpServletRequest request, HttpSession session) { Integer invoiceId = Integer.valueOf(request.getParameter("invoiceId")); boolean result = invoiceService.delete(invoiceId); return JSON.toJSONString(result); } }