TEquipmentApplyController.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. package com.szwl.controller;
  2. import cn.com.crbank.ommo.bean.ResultMessage;
  3. import cn.com.crbank.ommo.esUtil.BeanUtils;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.szwl.constant.ResponseCodesEnum;
  9. import com.szwl.model.bean.TEquipmentDTO;
  10. import com.szwl.model.bo.R;
  11. import com.szwl.model.bo.ResponseModel;
  12. import com.szwl.model.entity.*;
  13. import com.szwl.model.utils.PushUtils;
  14. import com.szwl.service.*;
  15. import com.szwl.service.es.EsTEquipmentService;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.apache.commons.lang.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.http.HttpStatus;
  21. import org.springframework.http.ResponseEntity;
  22. import org.springframework.web.bind.annotation.GetMapping;
  23. import org.springframework.web.bind.annotation.PostMapping;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import java.math.BigDecimal;
  27. import java.util.*;
  28. import java.util.stream.Collectors;
  29. /**
  30. * <p>
  31. * 设备连接申请表 前端控制器
  32. * </p>
  33. *
  34. * @author wuhs
  35. * @since 2022-04-21
  36. */
  37. @RestController
  38. @Api(value = "/tEquipmentApply", tags = {"设备连接申请表"})
  39. @RequestMapping("/tEquipmentApply")
  40. public class TEquipmentApplyController {
  41. @Autowired
  42. TAdminService adminService;
  43. @Autowired
  44. TEquipmentApplyService equipmentApplyService;
  45. @Autowired
  46. TEquipmentService equipmentService;
  47. @Autowired
  48. TProductService productService;
  49. @Autowired
  50. TProportionService proportionService;
  51. @Autowired
  52. TEquipmentDescService equipmentDescService;
  53. @Autowired
  54. EsTEquipmentService esTEquipmentService;
  55. @ApiOperation(value = "查找机器审核列表")
  56. @GetMapping("/pageTEquipmentApply")
  57. public ResponseModel<IPage<?>> pageTEquipmentApply(String adminId, String clientId, String userName,String managerId,String statusType, long current, long size ) {
  58. LambdaQueryWrapper<TEquipmentApply> query = Wrappers.lambdaQuery();
  59. if(StringUtils.isNotEmpty(clientId)){
  60. query.like(TEquipmentApply::getClientId,clientId);
  61. }
  62. if(StringUtils.isNotEmpty(adminId)){
  63. TAdmin admin = adminService.getById(adminId);
  64. if(admin.getType()>1){
  65. query.eq(TEquipmentApply::getAdminId,adminId);
  66. }
  67. // 申泽平台管理员
  68. if (admin.getId() == 2738) {
  69. LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
  70. adminQuery.isNull(TAdmin::getCompanyType).or()
  71. .eq(TAdmin::getCompanyType, "0");
  72. List<Long> adminIds = adminService.list(adminQuery).stream()
  73. .map(TAdmin::getId).collect(Collectors.toList());
  74. query.in(TEquipmentApply::getAdminId,adminIds);
  75. }
  76. // 七云平台管理员
  77. if (admin.getId() == 2739) {
  78. LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
  79. adminQuery.eq(TAdmin::getCompanyType, "1");
  80. List<Long> adminIds = adminService.list(adminQuery).stream()
  81. .map(TAdmin::getId).collect(Collectors.toList());
  82. query.in(TEquipmentApply::getAdminId,adminIds);
  83. }
  84. }
  85. if(StringUtils.isNotEmpty(userName)){
  86. LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
  87. adminQuery.eq(TAdmin::getUsername,userName);
  88. List<TAdmin> list = adminService.list(adminQuery);
  89. if(list.size()>0){
  90. query.eq(TEquipmentApply::getAdminId,list.get(0).getId());
  91. }
  92. }
  93. if(StringUtils.isNotEmpty(statusType)){
  94. query.eq(TEquipmentApply::getStatusType,statusType);
  95. }
  96. if(StringUtils.isNotEmpty(managerId)){
  97. query.like(TEquipmentApply::getManagerId,managerId);
  98. }
  99. query.orderByDesc(TEquipmentApply::getCreateDate);
  100. Page<TEquipmentApply> page = new Page<>(current, size, true);
  101. IPage<TEquipmentApply> iPage = equipmentApplyService.page(page, query);
  102. return R.ok(iPage);
  103. }
  104. /**
  105. * 更新申请状态
  106. */
  107. @ApiOperation(value = "更新申请状态")
  108. @GetMapping("/changeStatus")
  109. public ResponseModel<?> changeStatus(Long id, String status) {
  110. if (null != id) {
  111. TEquipmentApply equipmentApply = equipmentApplyService.getById(id);
  112. Integer statusType = equipmentApply.getStatusType();
  113. if(statusType>1){
  114. return R.ok(null,"已处理");
  115. }
  116. if (equipmentApply != null) {
  117. if (!StringUtils.isEmpty(status)) {
  118. if (status.equals("agreed")) {
  119. String clientId = equipmentApply.getClientId();
  120. //判断是否设备初始化
  121. Long adminId = equipmentApply.getAdminId();
  122. TAdmin tAdmin = adminService.getById(adminId);
  123. String companyType = tAdmin.getCompanyType();
  124. String adminLevel = equipmentApply.getAdminLevel();
  125. String adminUserName = equipmentApply.getAdminUserName();
  126. Integer type = tAdmin.getType();
  127. String gtClientId = equipmentApply.getGtClientId();
  128. String equimentType = equipmentApply.getEquimentType();
  129. String machineType = equipmentApply.getMachineType();
  130. String clientId1 = equipmentApply.getClientId();
  131. //判断是否已经生成
  132. LambdaQueryWrapper<TEquipment> query3 = Wrappers.lambdaQuery();
  133. query3.eq(TEquipment::getClientId,clientId1);
  134. List<TEquipment> list3 = equipmentService.list(query3);
  135. if(list3.size()>0){
  136. return R.fail(ResponseCodesEnum.A0001,"已生成机器");
  137. }
  138. String old = "";
  139. // ArrayList<Filter> filters = new ArrayList<>();
  140. // filters.add(Filter.eq("clientId", clientId + "xxx"));
  141. // List<Equipment> list = equipmentService.findList(null, filters, null);
  142. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  143. query.like(TEquipment::getClientId,clientId+"xxx");
  144. List<TEquipment> list = equipmentService.list(query);
  145. equipmentApply.setStatusType(3);
  146. if (list.size() > 0) {
  147. //表示设备第二次申请了:主要为了区分脱离以及初始化
  148. old = "1";
  149. //重新修改设备名称
  150. TEquipment equipment = list.get(0);
  151. equipment.setCreateDate(new Date());
  152. equipment.setModifyDate(new Date());
  153. equipment.setClientId(clientId);
  154. equipment.setGtClientId(gtClientId);
  155. equipment.setAdminId(adminId);
  156. equipment.setAdminLevel(adminLevel);
  157. equipment.setAdminUserName(adminUserName);
  158. equipment.setType(type);
  159. equipment.setCompanyType(companyType); // 公司平台
  160. equipment.setMachineType(machineType); // 设备类型
  161. if(equimentType.equals("MG320-1")){
  162. if(!equipmentApply.getEquimentType().equals(equipment.getEquimentType())&&equipment.getEquimentType().equals("MG320")){
  163. // List<Filter> filter = new ArrayList<>();
  164. // filter.add(Filter.eq("equipmentId", equipment.getId()));
  165. // List<Product> productList = productService.findList(null, filter, null);
  166. LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
  167. queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
  168. List<TProduct> productList = productService.list(queryProduct);
  169. if(productList.size()==18){
  170. //从18种变成30种花型
  171. saveProductMG12(equipment.getId());
  172. }
  173. //从18种变成30种花型
  174. // saveProductMG12(equipment.getId());
  175. }
  176. equipment.setEquimentType("MG320");
  177. } else {
  178. equipment.setEquimentType(equimentType);
  179. }
  180. // if(equipmentApply.getEquimentType().equals("MG330")){
  181. // equipment.setEquimentType("MG330");
  182. // }
  183. // if(equipmentApply.getEquimentType().equals("POP320")) {
  184. // }
  185. equipmentService.updateById(equipment);
  186. LambdaQueryWrapper<TProportion> queryProportion = Wrappers.lambdaQuery();
  187. queryProportion.eq(TProportion::getEquipmentId,equipment.getId());
  188. List<TProportion> list1 = proportionService.list(queryProportion);
  189. if(list1.size()>0){
  190. for(TProportion proportion:list1){
  191. proportionService.removeById(proportion.getId());
  192. }
  193. }
  194. // String data = com.alibaba.fastjson.JSON.toJSONString(equipment);
  195. try {
  196. esTEquipmentService.updateDataById(equipment);
  197. }catch (Exception e) {
  198. e.printStackTrace();
  199. }
  200. equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString());
  201. if(StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  202. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  203. } else {
  204. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  205. }
  206. equipmentApplyService.updateById(equipmentApply);
  207. if(equipment.getEndDate()!=null){
  208. equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  209. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  210. }
  211. return R.ok(null,"审核成功");
  212. }
  213. TEquipment equipment = new TEquipment();
  214. equipment.setCreateDate(new Date());
  215. equipment.setModifyDate(new Date());
  216. equipment.setClientId(clientId);
  217. equipment.setManagerId(equipmentApply.getManagerId());
  218. equipment.setAdminId(adminId);
  219. equipment.setAdminLevel(adminLevel);
  220. equipment.setGtClientId(gtClientId);
  221. equipment.setAdminUserName(adminUserName);
  222. equipment.setIsUsing(true);
  223. equipment.setIsNetWork(true);
  224. equipment.setGuestPwd("123456");
  225. equipment.setAdminPwd("123456");
  226. equipment.setChannel("1");
  227. equipment.setProductTotal(0);
  228. equipment.setType(type);
  229. equipment.setCompanyType(companyType); // 公司平台
  230. equipment.setMachineType(machineType); // 设备类型
  231. //设置默认规则
  232. equipment.setTimeRuleId(Long.valueOf(1));
  233. if(equimentType.equals("MG320-1")){
  234. equipment.setEquimentType("MG320");
  235. }else {
  236. equipment.setEquimentType(equimentType);
  237. }
  238. // if(equipmentApply.getEquimentType().equals("MG330")){
  239. // equipment.setEquimentType("MG330");
  240. // }
  241. if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){
  242. Long monthBegin = getMonthBegin(new Date());
  243. long time = new Date().getTime();
  244. if(time<monthBegin){
  245. equipment.setEndDate(new Date(monthBegin));
  246. }else{
  247. Date date = nextMonthDate();
  248. equipment.setEndDate(date);
  249. }
  250. if(equipment.getEndDate()!=null){
  251. equipmentService.sentMessage(equipmentApply.getClientId(), PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  252. PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
  253. }
  254. }
  255. equipmentService.save(equipment);
  256. equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString());
  257. if(StringUtils.isEmpty(machineType) || machineType.equals("0")) {
  258. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  259. } else {
  260. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
  261. }
  262. //获取设备的id
  263. Long equipmentId = equipment.getId();
  264. if(equimentType !=null && equimentType.equals("MG280")){
  265. saveProductMG280(equipmentId);
  266. } else if(equimentType !=null&& equimentType.equals("MG320-1")){
  267. saveProductMG1(equipmentId);
  268. } else if(equimentType !=null&& equimentType.equals("POP320")){
  269. saveProductPOP320(equipmentId);
  270. } else {
  271. saveProduct(equipmentId);
  272. }
  273. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  274. query1.eq(TEquipment::getClientId,clientId);
  275. // List<TEquipment> list1 = equipmentService.list(query1);
  276. TEquipment tEquipment = equipmentService.getOne(query1);
  277. try {
  278. // if(list1.size()>0){
  279. // TEquipment tEquipment = list1.get(0);
  280. // esTEquipmentService.insertData(tEquipment);
  281. // }
  282. if(tEquipment != null) {
  283. esTEquipmentService.insertData(tEquipment);
  284. }
  285. }catch (Exception e) {
  286. e.printStackTrace();
  287. }
  288. TEquipmentDesc equipmentDesc = new TEquipmentDesc();
  289. equipmentDesc.setEquipmentId(tEquipment.getId());
  290. equipmentDescService.save(equipmentDesc);
  291. } else if (status.equals("unAgreed")) {
  292. equipmentApply.setModifyDate(new Date());
  293. equipmentApply.setStatusType(2);
  294. equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "rejected").toString());
  295. if(StringUtils.isEmpty(equipmentApply.getMachineType()) || equipmentApply.getMachineType().equals("0")) {
  296. PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString());
  297. } else {
  298. PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString());
  299. }
  300. }
  301. equipmentApplyService.updateById(equipmentApply);
  302. }
  303. }
  304. }
  305. return R.ok(null,"审核成功");
  306. }
  307. /**
  308. * 添加产品
  309. *
  310. * @param id
  311. */
  312. private void saveProduct(Long id) {
  313. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  314. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
  315. for (int i = 0; i < str.length; i++) {
  316. TProduct product = new TProduct();
  317. product.setModifyDate(new Date());
  318. product.setCreateDate(new Date());
  319. product.setEquipmentId(id);
  320. String[] split = str[i].split("-");
  321. product.setProductName(split[0]);
  322. product.setNo(split[1]);
  323. product.setRmbPrice(BigDecimal.ZERO);
  324. product.setCodePrice(BigDecimal.ZERO);
  325. productService.save(product);
  326. }
  327. }
  328. private void saveProductMG280(Long id) {
  329. String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
  330. for (int i = 0; i < str.length; i++) {
  331. TProduct product = new TProduct();
  332. product.setEquipmentId(id);
  333. product.setModifyDate(new Date());
  334. product.setCreateDate(new Date());
  335. String[] split = str[i].split("-");
  336. product.setProductName(split[0]);
  337. product.setNo(split[1]);
  338. product.setRmbPrice(BigDecimal.ZERO);
  339. product.setCodePrice(BigDecimal.ZERO);
  340. productService.save(product);
  341. }
  342. }
  343. private void saveProductMG1(Long id) {
  344. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
  345. "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
  346. "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28",
  347. "花样年华-A29","心花怒放-A30"};
  348. for (int i = 0; i < str.length; i++) {
  349. TProduct product = new TProduct();
  350. product.setModifyDate(new Date());
  351. product.setCreateDate(new Date());
  352. product.setEquipmentId(id);
  353. String[] split = str[i].split("-");
  354. product.setProductName(split[0]);
  355. product.setNo(split[1]);
  356. product.setRmbPrice(BigDecimal.ZERO);
  357. product.setCodePrice(BigDecimal.ZERO);
  358. productService.save(product);
  359. }
  360. }
  361. private void saveProductMG12(Long id) {
  362. String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24"
  363. ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"};
  364. for (int i = 0; i < str.length; i++) {
  365. TProduct product = new TProduct();
  366. product.setEquipmentId(id);
  367. product.setModifyDate(new Date());
  368. product.setCreateDate(new Date());
  369. String[] split = str[i].split("-");
  370. product.setProductName(split[0]);
  371. product.setNo(split[1]);
  372. product.setRmbPrice(BigDecimal.ZERO);
  373. product.setCodePrice(BigDecimal.ZERO);
  374. productService.save(product);
  375. }
  376. }
  377. private void saveProductMG22(Long id) {
  378. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  379. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"};
  380. for (int i = 0; i < str.length; i++) {
  381. TProduct product = new TProduct();
  382. product.setModifyDate(new Date());
  383. product.setCreateDate(new Date());
  384. product.setEquipmentId(id);
  385. String[] split = str[i].split("-");
  386. product.setProductName(split[0]);
  387. product.setNo(split[1]);
  388. product.setRmbPrice(BigDecimal.ZERO);
  389. product.setCodePrice(BigDecimal.ZERO);
  390. productService.save(product);
  391. }
  392. }
  393. private void saveProductMG26(Long id) {
  394. String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
  395. "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28",
  396. "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
  397. for (int i = 0; i < str.length; i++) {
  398. TProduct product = new TProduct();
  399. product.setEquipmentId(id);
  400. product.setModifyDate(new Date());
  401. product.setCreateDate(new Date());
  402. String[] split = str[i].split("-");
  403. product.setProductName(split[0]);
  404. product.setNo(split[1]);
  405. product.setRmbPrice(BigDecimal.ZERO);
  406. product.setCodePrice(BigDecimal.ZERO);
  407. productService.save(product);
  408. }
  409. }
  410. /**
  411. * 添加爆米花产品
  412. * @param id
  413. */
  414. private void saveProductPOP320(Long id) {
  415. String[] str = {"活力爆米花(正常糖)-B01", "活力爆米花(无糖)-B02", "活力爆米花(巧克力)-B03", "活力爆米花(焦糖)-B04", "活力爆米花(水蜜桃)-B05", "活力爆米花(蓝莓)-B06"};
  416. for (int i = 0; i < str.length; i++) {
  417. TProduct product = new TProduct();
  418. product.setCreateDate(new Date());
  419. product.setModifyDate(new Date());
  420. product.setEquipmentId(id);
  421. String[] split = str[i].split("-");
  422. product.setProductName(split[0]);
  423. product.setNo(split[1]);
  424. product.setRmbPrice(BigDecimal.ZERO);
  425. product.setCodePrice(BigDecimal.ZERO);
  426. productService.save(product);
  427. }
  428. }
  429. /**
  430. * 获取指定日期所在月份开始的时间戳
  431. * @param date 指定日期
  432. * @return
  433. */
  434. public static Long getMonthBegin(Date date) {
  435. Calendar c = Calendar.getInstance();
  436. c.setTime(date);
  437. //设置为10号,当前日期既为本月10号
  438. c.set(Calendar.DAY_OF_MONTH, 10);
  439. //将小时至0
  440. c.set(Calendar.HOUR_OF_DAY, 0);
  441. //将分钟至0
  442. c.set(Calendar.MINUTE, 0);
  443. //将秒至0
  444. c.set(Calendar.SECOND,0);
  445. //将毫秒至0
  446. c.set(Calendar.MILLISECOND, 0);
  447. // 获取本月第一天的时间戳
  448. return c.getTimeInMillis();
  449. }
  450. public static Date nextMonthDate() {
  451. Calendar calendar = Calendar.getInstance();
  452. calendar.set(Calendar.DAY_OF_MONTH,10);
  453. //将小时至0
  454. calendar.set(Calendar.HOUR_OF_DAY, 0);
  455. //将分钟至0
  456. calendar.set(Calendar.MINUTE, 0);
  457. //将秒至0
  458. calendar.set(Calendar.SECOND,0);
  459. //将毫秒至0
  460. calendar.set(Calendar.MILLISECOND, 0);
  461. calendar.add(Calendar.MONTH,1);
  462. return calendar.getTime();
  463. }
  464. }