package com.szwl.controller; import cn.com.crbank.ommo.bean.ResultMessage; import cn.com.crbank.ommo.esUtil.BeanUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.szwl.constant.ResponseCodesEnum; import com.szwl.model.bean.TEquipmentDTO; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.entity.*; import com.szwl.model.utils.PushUtils; import com.szwl.service.*; import com.szwl.service.es.EsTEquipmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; /** *

* 设备连接申请表 前端控制器 *

* * @author wuhs * @since 2022-04-21 */ @RestController @Api(value = "/tEquipmentApply", tags = {"设备连接申请表"}) @RequestMapping("/tEquipmentApply") public class TEquipmentApplyController { @Autowired TAdminService adminService; @Autowired TEquipmentApplyService equipmentApplyService; @Autowired TEquipmentService equipmentService; @Autowired TProductService productService; @Autowired TProportionService proportionService; @Autowired TEquipmentDescService equipmentDescService; @Autowired EsTEquipmentService esTEquipmentService; @ApiOperation(value = "查找机器审核列表") @GetMapping("/pageTEquipmentApply") public ResponseModel> pageTEquipmentApply(String adminId, String clientId, String userName,String managerId,String statusType, long current, long size ) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); if(StringUtils.isNotEmpty(clientId)){ query.like(TEquipmentApply::getClientId,clientId); } if(StringUtils.isNotEmpty(adminId)){ TAdmin admin = adminService.getById(adminId); if(admin.getType()>1){ query.eq(TEquipmentApply::getAdminId,adminId); } // 申泽平台管理员 if (admin.getId() == 2738) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.isNull(TAdmin::getCompanyType).or() .eq(TAdmin::getCompanyType, "0"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TEquipmentApply::getAdminId,adminIds); } // 七云平台管理员 if (admin.getId() == 2739) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getCompanyType, "1"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TEquipmentApply::getAdminId,adminIds); } } if(StringUtils.isNotEmpty(userName)){ LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getUsername,userName); List list = adminService.list(adminQuery); if(list.size()>0){ query.eq(TEquipmentApply::getAdminId,list.get(0).getId()); } } if(StringUtils.isNotEmpty(statusType)){ query.eq(TEquipmentApply::getStatusType,statusType); } if(StringUtils.isNotEmpty(managerId)){ query.like(TEquipmentApply::getManagerId,managerId); } query.orderByDesc(TEquipmentApply::getCreateDate); Page page = new Page<>(current, size, true); IPage iPage = equipmentApplyService.page(page, query); return R.ok(iPage); } /** * 更新申请状态 */ @ApiOperation(value = "更新申请状态") @GetMapping("/changeStatus") public ResponseModel changeStatus(Long id, String status) { if (null != id) { TEquipmentApply equipmentApply = equipmentApplyService.getById(id); Integer statusType = equipmentApply.getStatusType(); if(statusType>1){ return R.ok(null,"已处理"); } if (equipmentApply != null) { if (!StringUtils.isEmpty(status)) { if (status.equals("agreed")) { String clientId = equipmentApply.getClientId(); //判断是否设备初始化 Long adminId = equipmentApply.getAdminId(); TAdmin tAdmin = adminService.getById(adminId); String companyType = tAdmin.getCompanyType(); String adminLevel = equipmentApply.getAdminLevel(); String adminUserName = equipmentApply.getAdminUserName(); Integer type = tAdmin.getType(); String gtClientId = equipmentApply.getGtClientId(); String equimentType = equipmentApply.getEquimentType(); String machineType = equipmentApply.getMachineType(); String clientId1 = equipmentApply.getClientId(); //判断是否已经生成 LambdaQueryWrapper query3 = Wrappers.lambdaQuery(); query3.eq(TEquipment::getClientId,clientId1); List list3 = equipmentService.list(query3); if(list3.size()>0){ return R.fail(ResponseCodesEnum.A0001,"已生成机器"); } String old = ""; // ArrayList filters = new ArrayList<>(); // filters.add(Filter.eq("clientId", clientId + "xxx")); // List list = equipmentService.findList(null, filters, null); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.like(TEquipment::getClientId,clientId+"xxx"); List list = equipmentService.list(query); equipmentApply.setStatusType(3); if (list.size() > 0) { //表示设备第二次申请了:主要为了区分脱离以及初始化 old = "1"; //重新修改设备名称 TEquipment equipment = list.get(0); equipment.setCreateDate(new Date()); equipment.setModifyDate(new Date()); equipment.setClientId(clientId); equipment.setGtClientId(gtClientId); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setAdminUserName(adminUserName); equipment.setType(type); equipment.setCompanyType(companyType); // 公司平台 equipment.setMachineType(machineType); // 设备类型 if(equimentType.equals("MG320-1")){ if(!equipmentApply.getEquimentType().equals(equipment.getEquimentType())&&equipment.getEquimentType().equals("MG320")){ // List filter = new ArrayList<>(); // filter.add(Filter.eq("equipmentId", equipment.getId())); // List productList = productService.findList(null, filter, null); LambdaQueryWrapper queryProduct = Wrappers.lambdaQuery(); queryProduct.eq(TProduct::getEquipmentId,equipment.getId()); List productList = productService.list(queryProduct); if(productList.size()==18){ //从18种变成30种花型 saveProductMG12(equipment.getId()); } //从18种变成30种花型 // saveProductMG12(equipment.getId()); } equipment.setEquimentType("MG320"); } else { equipment.setEquimentType(equimentType); } // if(equipmentApply.getEquimentType().equals("MG330")){ // equipment.setEquimentType("MG330"); // } // if(equipmentApply.getEquimentType().equals("POP320")) { // } equipmentService.updateById(equipment); LambdaQueryWrapper queryProportion = Wrappers.lambdaQuery(); queryProportion.eq(TProportion::getEquipmentId,equipment.getId()); List list1 = proportionService.list(queryProportion); if(list1.size()>0){ for(TProportion proportion:list1){ proportionService.removeById(proportion.getId()); } } // String data = com.alibaba.fastjson.JSON.toJSONString(equipment); try { esTEquipmentService.updateDataById(equipment); }catch (Exception e) { e.printStackTrace(); } equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString()); if(StringUtils.isEmpty(machineType) || machineType.equals("0")) { PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString()); } else { PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString()); } equipmentApplyService.updateById(equipmentApply); if(equipment.getEndDate()!=null){ equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString()); PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString()); } return R.ok(null,"审核成功"); } TEquipment equipment = new TEquipment(); equipment.setCreateDate(new Date()); equipment.setModifyDate(new Date()); equipment.setClientId(clientId); equipment.setManagerId(equipmentApply.getManagerId()); equipment.setAdminId(adminId); equipment.setAdminLevel(adminLevel); equipment.setGtClientId(gtClientId); equipment.setAdminUserName(adminUserName); equipment.setIsUsing(true); equipment.setIsNetWork(true); equipment.setGuestPwd("123456"); equipment.setAdminPwd("123456"); equipment.setChannel("1"); equipment.setProductTotal(0); equipment.setType(type); equipment.setCompanyType(companyType); // 公司平台 equipment.setMachineType(machineType); // 设备类型 //设置默认规则 equipment.setTimeRuleId(Long.valueOf(1)); if(equimentType.equals("MG320-1")){ equipment.setEquimentType("MG320"); }else { equipment.setEquimentType(equimentType); } // if(equipmentApply.getEquimentType().equals("MG330")){ // equipment.setEquimentType("MG330"); // } if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){ Long monthBegin = getMonthBegin(new Date()); long time = new Date().getTime(); if(time query1 = Wrappers.lambdaQuery(); query1.eq(TEquipment::getClientId,clientId); // List list1 = equipmentService.list(query1); TEquipment tEquipment = equipmentService.getOne(query1); try { // if(list1.size()>0){ // TEquipment tEquipment = list1.get(0); // esTEquipmentService.insertData(tEquipment); // } if(tEquipment != null) { esTEquipmentService.insertData(tEquipment); } }catch (Exception e) { e.printStackTrace(); } TEquipmentDesc equipmentDesc = new TEquipmentDesc(); equipmentDesc.setEquipmentId(tEquipment.getId()); equipmentDescService.save(equipmentDesc); } else if (status.equals("unAgreed")) { equipmentApply.setModifyDate(new Date()); equipmentApply.setStatusType(2); equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "rejected").toString()); if(StringUtils.isEmpty(equipmentApply.getMachineType()) || equipmentApply.getMachineType().equals("0")) { PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString()); } else { PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString()); } } equipmentApplyService.updateById(equipmentApply); } } } return R.ok(null,"审核成功"); } /** * 添加产品 * * @param id */ private void saveProduct(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setModifyDate(new Date()); product.setCreateDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG280(Long id) { String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setEquipmentId(id); product.setModifyDate(new Date()); product.setCreateDate(new Date()); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG1(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28", "花样年华-A29","心花怒放-A30"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setModifyDate(new Date()); product.setCreateDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG12(Long id) { String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24" ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setEquipmentId(id); product.setModifyDate(new Date()); product.setCreateDate(new Date()); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG22(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setModifyDate(new Date()); product.setCreateDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } private void saveProductMG26(Long id) { String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28", "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setEquipmentId(id); product.setModifyDate(new Date()); product.setCreateDate(new Date()); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } /** * 添加爆米花产品 * @param id */ private void saveProductPOP320(Long id) { String[] str = {"活力爆米花(正常糖)-B01", "活力爆米花(无糖)-B02", "活力爆米花(巧克力)-B03", "活力爆米花(焦糖)-B04", "活力爆米花(水蜜桃)-B05", "活力爆米花(蓝莓)-B06"}; for (int i = 0; i < str.length; i++) { TProduct product = new TProduct(); product.setCreateDate(new Date()); product.setModifyDate(new Date()); product.setEquipmentId(id); String[] split = str[i].split("-"); product.setProductName(split[0]); product.setNo(split[1]); product.setRmbPrice(BigDecimal.ZERO); product.setCodePrice(BigDecimal.ZERO); productService.save(product); } } /** * 获取指定日期所在月份开始的时间戳 * @param date 指定日期 * @return */ public static Long getMonthBegin(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); //设置为10号,当前日期既为本月10号 c.set(Calendar.DAY_OF_MONTH, 10); //将小时至0 c.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 c.set(Calendar.MINUTE, 0); //将秒至0 c.set(Calendar.SECOND,0); //将毫秒至0 c.set(Calendar.MILLISECOND, 0); // 获取本月第一天的时间戳 return c.getTimeInMillis(); } public static Date nextMonthDate() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH,10); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); calendar.add(Calendar.MONTH,1); return calendar.getTime(); } }