AdminReleaseApiController.java 11 KB

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