PickUpCodeController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package com.kmall.admin.controller;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.Objects;
  8. import java.util.regex.Matcher;
  9. import java.util.regex.Pattern;
  10. import com.kmall.admin.entity.PickUpCodeEntity;
  11. import com.kmall.admin.service.PickUpCodeService;
  12. import com.kmall.admin.utils.ParamUtils;
  13. import com.kmall.admin.utils.SessionUtils;
  14. import com.kmall.admin.utils.ShiroUtils;
  15. import com.kmall.common.constant.Dict;
  16. import com.kmall.common.utils.PageUtils;
  17. import com.kmall.common.utils.Query;
  18. import com.kmall.common.utils.R;
  19. import org.apache.commons.lang.StringUtils;
  20. import org.apache.shiro.authz.annotation.RequiresPermissions;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.web.bind.annotation.*;
  24. /**
  25. * 小票码信息表Controller
  26. *
  27. * @author emato
  28. * @email admin@qhdswl.com
  29. * @date 2020-05-19 09:11:26
  30. */
  31. @Controller
  32. @RequestMapping("pickupcode")
  33. public class PickUpCodeController {
  34. @Autowired
  35. private PickUpCodeService pickUpCodeService;
  36. /**
  37. * 查看列表
  38. */
  39. @RequestMapping("/list")
  40. @RequiresPermissions("pickupcode:list")
  41. @ResponseBody
  42. public R list(@RequestParam Map<String, Object> params) {
  43. ParamUtils.setName(params, "name");
  44. String name = (String)params.get("name");
  45. if(org.apache.commons.lang3.StringUtils.isNotEmpty(name)){
  46. params.put("orderSn", name);
  47. }
  48. //查询列表数据
  49. Query query = new Query(params);
  50. List<PickUpCodeEntity> pickUpCodeList = pickUpCodeService.queryList(query);
  51. int total = pickUpCodeService.queryTotal(query);
  52. PageUtils pageUtil = new PageUtils(pickUpCodeList, total, query.getLimit(), query.getPage());
  53. return R.ok().put("page", pageUtil);
  54. }
  55. @RequestMapping("/queryByPickTime")
  56. @RequiresPermissions("pickupcode:list")
  57. @ResponseBody
  58. public R queryByPickTime(@RequestParam Map<String, Object> params) {
  59. String pickTime = (String)params.get("pickTime");
  60. //有日期检查格式,没有生成当天日期
  61. if (org.apache.commons.lang3.StringUtils.isNotEmpty(pickTime)){
  62. try{
  63. String regEx = "\\d{4}(\\-)\\d{2}\\1\\d{2}";
  64. // 编译正则表达式
  65. Pattern pattern = Pattern.compile(regEx);
  66. Matcher matcher = pattern.matcher(pickTime);
  67. // 字符串是否与正则表达式相匹配
  68. boolean rs = matcher.matches();
  69. if (!rs){
  70. throw new Exception();
  71. }
  72. }catch(Exception e){
  73. return R.error("传入日期格式错误,请修改日期格式为'yyyy-MM-dd'!");
  74. }
  75. } else {
  76. DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  77. pickTime = formatter.format(new Date());
  78. }
  79. params.put("pickUpCodeCreatetime", pickTime);
  80. //查询列表数据
  81. Query query = new Query(params);
  82. List<PickUpCodeEntity> pickUpCodeList = pickUpCodeService.queryList(query);
  83. int total = pickUpCodeService.queryTotal(query);
  84. PageUtils pageUtil = new PageUtils(pickUpCodeList, total, query.getLimit(), query.getPage());
  85. return R.ok().put("page", pageUtil);
  86. }
  87. /**
  88. * 查看信息
  89. */
  90. @RequestMapping("/info/{orderSn}")
  91. @RequiresPermissions("pickupcode:info")
  92. @ResponseBody
  93. public R info(@PathVariable("orderSn") String orderSn) {
  94. PickUpCodeEntity pickUpCode = pickUpCodeService.queryObject(orderSn);
  95. return R.ok().put("pickUpCode", pickUpCode);
  96. }
  97. /**
  98. * 生成小票码
  99. */
  100. @RequestMapping("/save")
  101. @RequiresPermissions("pickupcode:save")
  102. @ResponseBody
  103. public R save(@RequestBody PickUpCodeEntity pickUpCode) {
  104. if(org.apache.commons.lang3.StringUtils.isEmpty(pickUpCode.getOrderSn())){
  105. return R.error("订单编号为空!");
  106. }
  107. int result = pickUpCodeService.save(pickUpCode);
  108. if (result <= 0 ){
  109. return R.error("生成小票码失败!");
  110. }
  111. return R.ok().put("pickUpCode",pickUpCode );
  112. }
  113. /**
  114. * 小票码核销
  115. */
  116. @RequestMapping("/verification")
  117. @RequiresPermissions("pickupcode:update")
  118. @ResponseBody
  119. public R Verification(@RequestBody PickUpCodeEntity pickUpCode) {
  120. if(org.apache.commons.lang3.StringUtils.isEmpty(pickUpCode.getOrderSn())){
  121. return R.error("订单编号为空!");
  122. }
  123. String status = pickUpCodeService.queryPickUpCodeStatus(pickUpCode.getOrderSn());
  124. if(Dict.PickUpCodeStatusEnum.item_1.getStatus().equals(status)){
  125. return R.error("小票码已核销过!");
  126. }
  127. pickUpCode.setPickUpCodeStatus(Dict.PickUpCodeStatusEnum.item_1.getStatus());
  128. if (pickUpCode.getPickUpCodeCreatetime()==null){
  129. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
  130. pickUpCode.setPickUpCodeVerificationtime(df.format(new Date()));// new Date()为获取当前系统时间
  131. }
  132. pickUpCode.setModerSn(ShiroUtils.getUserEntity().getUserId().toString());
  133. pickUpCode.setModTime(new Date());
  134. int result = pickUpCodeService.update(pickUpCode);
  135. if (result <= 0 ){
  136. return R.error("小票码核销失败!");
  137. }
  138. PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(pickUpCode.getOrderSn());
  139. return R.ok().put("pickUpCode",pickUpCodeEntity );
  140. }
  141. /**
  142. * 确认提货
  143. * @param orderSn
  144. * @return
  145. */
  146. @RequestMapping("/confirmDelivery/{orderSn}")
  147. @ResponseBody
  148. public R confirmDelivery(@PathVariable("orderSn") String orderSn){
  149. if(StringUtils.isEmpty(orderSn)){
  150. return R.error("订单编号为空!");
  151. }
  152. PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(orderSn);
  153. if(Objects.isNull(pickUpCodeEntity)){
  154. return R.error("没有查找到该订单!");
  155. }
  156. if(!"1".equals(pickUpCodeEntity.getPickUpCodeStatus())){
  157. return R.error("该订单还不能提货!");
  158. }
  159. pickUpCodeEntity.setPickUpCodeStatus(Dict.PickUpCodeStatusEnum.item_5.getStatus());
  160. pickUpCodeEntity.setModerSn(String.valueOf(ShiroUtils.getUserId()));
  161. pickUpCodeEntity.setModTime(new Date());
  162. pickUpCodeService.update(pickUpCodeEntity);
  163. return R.ok("提货成功!");
  164. }
  165. /**
  166. * 删除
  167. */
  168. @RequestMapping("/delete")
  169. @RequiresPermissions("pickupcode:delete")
  170. @ResponseBody
  171. public R delete(@RequestBody String[]orderSns) {
  172. int result = pickUpCodeService.deleteBatch(orderSns);
  173. return R.ok().put("result", result);
  174. }
  175. /**
  176. * 查看所有列表
  177. */
  178. @RequestMapping("/queryAll")
  179. @ResponseBody
  180. public R queryAll(@RequestParam Map<String, Object> params) {
  181. List<PickUpCodeEntity> list = pickUpCodeService.queryList(params);
  182. return R.ok().put("list", list);
  183. }
  184. }