AdminReleaseApiController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. package com.goafanti.weChat.controller;
  2. import java.lang.reflect.InvocationTargetException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import javax.annotation.Resource;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import com.goafanti.common.bo.Error;
  9. import com.goafanti.common.error.BusinessException;
  10. import com.goafanti.weChat.bo.*;
  11. import org.apache.commons.beanutils.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestMethod;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import com.goafanti.common.bo.Result;
  17. import com.goafanti.common.constant.ErrorConstants;
  18. import com.goafanti.common.controller.CertifyApiController;
  19. import com.goafanti.common.utils.StringUtils;
  20. import com.goafanti.common.utils.excel.NewExcelUtil;
  21. import com.goafanti.weChat.service.PublicReleaseService;
  22. @RestController
  23. @RequestMapping(value = "/api/admin/release")
  24. public class AdminReleaseApiController extends CertifyApiController{
  25. @Resource
  26. private PublicReleaseService publicReleaseService;
  27. @Value(value = "${upload.path}")
  28. private String uploadPath = null;
  29. /**
  30. * 发起外出申请
  31. */
  32. @RequestMapping(value = "/addPublicRelease", method = RequestMethod.POST)
  33. public Result addPublicRelease(InputPublicRelease in){
  34. Result res = new Result();
  35. if (StringUtils.isBlank(in.getUid())) {
  36. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"用户编号"));
  37. return res;
  38. }
  39. if (StringUtils.isBlank(in.getReleaseStarts())) {
  40. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出时间"));
  41. return res;
  42. }
  43. if (StringUtils.isBlank(in.getUserName())) {
  44. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出地点"));
  45. return res;
  46. }
  47. if (publicReleaseService.checkTime(in)) {
  48. res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
  49. return res;
  50. }
  51. if(in.getAssist()==null)in.setAssist(0);
  52. if (in.getAssist()==1&&in.getAssistAid()==null) {
  53. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"协单人员"));
  54. return res;
  55. }
  56. res.setData(publicReleaseService.addPublicRelease(in));
  57. return res;
  58. }
  59. /**
  60. * 修改外出申请
  61. * @return
  62. */
  63. @RequestMapping(value = "/updatePublicRelease", method = RequestMethod.POST)
  64. public Result updatePublicRelease(InputPublicRelease in){
  65. Result res = new Result();
  66. if (in.getStatus()!=3&&publicReleaseService.checkTime(in)) {
  67. res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
  68. return res;
  69. }
  70. res.setData(publicReleaseService.updatePublicRelease(in));
  71. return res;
  72. }
  73. /**
  74. * 外出打卡、公出打卡
  75. * @return
  76. */
  77. @RequestMapping(value = "/publicReleaseClockIn", method = RequestMethod.POST)
  78. public Result publicReleaseClockIn(Integer id,String photoUrl,Integer clockIn ,String clockInRemarks ){
  79. Result res =new Result();
  80. res.setData(publicReleaseService.pushPublicReleaseClockIn(id,photoUrl,clockIn,clockInRemarks));
  81. return res;
  82. }
  83. /**
  84. * 外出申请详情
  85. * @return
  86. */
  87. @RequestMapping(value = "/dtails", method = RequestMethod.GET)
  88. public Result dtails(Integer id){
  89. Result res =new Result();
  90. res.setData(publicReleaseService.dtails(id));
  91. return res;
  92. }
  93. /**
  94. * 外出申请详情
  95. * @return
  96. */
  97. @RequestMapping(value = "/followDtails", method = RequestMethod.GET)
  98. public Result followDtails(String id){
  99. Result res =new Result();
  100. res.setData(publicReleaseService.followDtails(id));
  101. return res;
  102. }
  103. /**
  104. * 外出申请列表
  105. * @return
  106. */
  107. @RequestMapping(value = "/listPublicRelease", method = RequestMethod.GET)
  108. public Result listPublicRelease(InputPublicReleaseList in){
  109. Result res =new Result();
  110. res.setData(publicReleaseService.listPublicRelease(in));
  111. return res;
  112. }
  113. /**
  114. * 外出审核
  115. * @return
  116. */
  117. @RequestMapping(value = "/examinePublicRelease", method = RequestMethod.POST)
  118. public Result examinePublicRelease(Integer id ,Integer status,String remarks){
  119. Result res =new Result();
  120. if (id==null) {
  121. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号"));
  122. return res;
  123. }
  124. if (status!=0&&status!=2) {
  125. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"审核状态"));
  126. return res;
  127. }
  128. if (remarks.length()>20) {
  129. res.getError().add(buildError("备注长度不能超过20个字符。"));
  130. return res;
  131. }
  132. res.setData(publicReleaseService.pushExaminePublicRelease(id,status,remarks));
  133. return res;
  134. }
  135. /**
  136. * 咨询驳回
  137. * @return
  138. */
  139. @RequestMapping(value = "/techReject", method = RequestMethod.POST)
  140. public Result techReject(Integer id ,String remarks){
  141. Result res =new Result();
  142. if (id==null) {
  143. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号"));
  144. return res;
  145. }
  146. if (remarks.length()>20) {
  147. res.getError().add(buildError("备注长度不能超过20个字符。"));
  148. return res;
  149. }
  150. res.setData(publicReleaseService.pushTechReject( id , remarks));
  151. return res;
  152. }
  153. /**
  154. * 外出审核日志列表
  155. * @return
  156. */
  157. @RequestMapping(value = "/listPublicReleaseLog", method = RequestMethod.GET)
  158. public Result listPublicReleaseLog(Integer id,String ufid){
  159. Result res =new Result();
  160. res.data(publicReleaseService.listPublicReleaseLog(id,ufid));
  161. return res;
  162. }
  163. /**
  164. * 公出统计
  165. * @return
  166. */
  167. @RequestMapping(value = "/publicReleaseStatistics", method = RequestMethod.GET)
  168. public Result publicReleaseStatistics(InputPublicStatistics in){
  169. Result res =new Result();
  170. res.data(publicReleaseService.publicReleaseStatistics(in));
  171. return res;
  172. }
  173. /**
  174. * 公出统计导出
  175. * @return
  176. */
  177. @RequestMapping(value = "/publicReleaseStatistics/export", method = RequestMethod.GET)
  178. public Result publicReleaseStatisticsExport(InputPublicStatistics in,HttpServletResponse response){
  179. List<OutPublicStatistics> list =publicReleaseService.publicReleaseStatisticsList(in);
  180. NewExcelUtil<OutPublicStatistics>excel=new NewExcelUtil<>(OutPublicStatistics.class);
  181. return excel.exportExcel(list,"公出统计列表",response);
  182. }
  183. /**
  184. * 公出详情列表
  185. * @return
  186. */
  187. @RequestMapping(value = "/publicReleaseDtails", method = RequestMethod.GET)
  188. public Result publicReleaseListDtails(InputPublicDtails in){
  189. Result res =new Result();
  190. res.data(publicReleaseService.publicReleaseListDtails(in));
  191. return res;
  192. }
  193. /**
  194. * 公出详情列表
  195. * @return
  196. */
  197. @RequestMapping(value = "/publicReleaseDtails/export", method = RequestMethod.GET)
  198. public Result publicReleaseListDtailsExport(InputPublicDtails in ,Integer exportType){
  199. if (exportType==null)exportType=0;
  200. List<OutPublicDtails> outList=publicReleaseService.publicReleaseListDtailsList(in);
  201. if (exportType==0){
  202. List<OutPublicDtails> list=outList;
  203. NewExcelUtil<OutPublicDtails>excel=new NewExcelUtil<>(OutPublicDtails.class);
  204. return excel.exportExcel(list,"公出详细列表",uploadPath);
  205. }else if (exportType==1){
  206. List<OutPublicDtailsFinance> list = new ArrayList<>();
  207. for (OutPublicDtails outPublicDtails : outList) {
  208. OutPublicDtailsFinance of= new OutPublicDtailsFinance();
  209. try {
  210. BeanUtils.copyProperties( of,outPublicDtails);
  211. } catch (Exception e) {
  212. throw new BusinessException("数据转换异常");
  213. }
  214. list.add(of);
  215. }
  216. NewExcelUtil<OutPublicDtailsFinance>excel=new NewExcelUtil<>(OutPublicDtailsFinance.class);
  217. return excel.exportExcel(list,"公出详细列表",uploadPath);
  218. }
  219. return null;
  220. }
  221. /** 上传图片 **/
  222. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  223. public Result uploadOrderInvoiceFile(HttpServletRequest req){
  224. Result res = new Result();
  225. res.setData(handleFile(res, "/publicRelease/", false, req, "publicRelease"));
  226. return res;
  227. }
  228. /**
  229. * 搜索
  230. * @return
  231. */
  232. @RequestMapping(value = "/addSupplement", method = RequestMethod.POST)
  233. public Result addSupplement(Integer id,String supplement,String nextPlan){
  234. Result res =new Result();
  235. if (id==null) {
  236. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号"));
  237. return res;
  238. }
  239. if (supplement==null) {
  240. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"本次公出目标总结"));
  241. return res;
  242. }
  243. if (nextPlan==null) {
  244. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"下次公出计划"));
  245. return res;
  246. }
  247. res.setData(publicReleaseService.addSupplement( id ,supplement,nextPlan));
  248. return res;
  249. }
  250. /**
  251. * 根据客户返回订单
  252. */
  253. @RequestMapping(value = "/selectOrderByUid",method =RequestMethod.GET)
  254. public Result selectOrderByUid(String uid){
  255. Result res = new Result();
  256. if (uid==null){
  257. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"客户编号"));
  258. return res;
  259. }
  260. res.data(publicReleaseService.selectOrderByUid(uid));
  261. return res;
  262. }
  263. /**
  264. * 查看上门记录
  265. */
  266. @RequestMapping(value = "/publicByOrder",method =RequestMethod.GET)
  267. public Result publicByOrder(String orderNo){
  268. Result res = new Result();
  269. if (orderNo==null){
  270. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,ErrorConstants.PARAM_EMPTY_ERROR,"订单编号"));
  271. return res;
  272. }
  273. res.data(publicReleaseService.publicByOrder(orderNo));
  274. return res;
  275. }
  276. /**
  277. * 打卡页面获取自己最新的打卡
  278. * @return
  279. */
  280. @RequestMapping(value = "/getMyNewPublic",method = RequestMethod.GET)
  281. public Result getMyNewPublic (){
  282. Result res =new Result();
  283. res.data(publicReleaseService.getMyNewPublic());
  284. return res;
  285. }
  286. /**
  287. * 新增协单助手
  288. * @param id 公出编号
  289. * @param aid 协单助手编号
  290. * @return
  291. */
  292. @RequestMapping(value = "/addAssistant",method = RequestMethod.POST)
  293. public Result addAssistant (Integer id,String aid){
  294. Result res =new Result();
  295. if (id==null||aid==null){
  296. res.getError().add(new Error(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号与人员编号"));
  297. return res;
  298. }
  299. if (publicReleaseService.checkaddAssistant(id,aid)){
  300. res.getError().add(new Error("协单助手已经存在"));
  301. return res;
  302. }
  303. res.data(publicReleaseService.addAssistant(id,aid));
  304. return res;
  305. }
  306. /**
  307. * 删除协单助手
  308. * @param id 公出编号
  309. * @param aid 协单助手编号
  310. * @return
  311. */
  312. @RequestMapping(value = "/deleteAssistant",method = RequestMethod.POST)
  313. public Result deleteAssistant (Integer id,String aid){
  314. Result res =new Result();
  315. if (id==null||aid==null){
  316. res.getError().add(new Error(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号与人员编号"));
  317. return res;
  318. }
  319. if (publicReleaseService.checkdeleteAssistant(id,aid)){
  320. res.getError().add(new Error("协单助手已经打卡,无法删除"));
  321. return res;
  322. }
  323. res.data(publicReleaseService.deleteAssistant(id,aid));
  324. return res;
  325. }
  326. }