xboot-admin/pom.xml
@@ -82,6 +82,9 @@ </goals> </execution> </executions> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build> xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/FileManage.java
@@ -3,6 +3,7 @@ import cn.exrick.xboot.core.vo.OssSetting; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.Part; import java.io.InputStream; /** xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/impl/LocalFileManage.java
@@ -17,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; import java.io.*; /** @@ -60,7 +61,7 @@ if (f.exists()) { throw new XbootException("文件名已存在"); } try { try{ file.transferTo(f); return path + "/" + key; } catch (IOException e) { xboot-modules/xboot-your/pom.xml
@@ -25,9 +25,10 @@ </dependency> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.7.0</version> <groupId>cn.exrick</groupId> <artifactId>xboot-file</artifactId> <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> </project> xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderDetailOriginalController.java
New file @@ -0,0 +1,77 @@ package cn.exrick.xboot.your.controller; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.your.entity.OrderDetailOriginal; import cn.exrick.xboot.your.service.IOrderDetailOriginalService; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单详情原始表管理接口") @RequestMapping("/xboot/orderDetailOriginal") @Transactional public class OrderDetailOriginalController { @Autowired private IOrderDetailOriginalService iOrderDetailOriginalService; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result<OrderDetailOriginal> get(@PathVariable String id) { OrderDetailOriginal orderDetailOriginal = iOrderDetailOriginalService.getById(id); return new ResultUtil<OrderDetailOriginal>().setData(orderDetailOriginal); } @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "获取全部数据") public Result<List<OrderDetailOriginal>> getAll() { List<OrderDetailOriginal> list = iOrderDetailOriginalService.list(); return new ResultUtil<List<OrderDetailOriginal>>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result<IPage<OrderDetailOriginal>> getByPage(PageVo page) { IPage<OrderDetailOriginal> data = iOrderDetailOriginalService.page(PageUtil.initMpPage(page)); return new ResultUtil<IPage<OrderDetailOriginal>>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result<OrderDetailOriginal> saveOrUpdate(OrderDetailOriginal orderDetailOriginal) { if (iOrderDetailOriginalService.saveOrUpdate(orderDetailOriginal)) { return new ResultUtil<OrderDetailOriginal>().setData(orderDetailOriginal); } return new ResultUtil<OrderDetailOriginal>().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result<Object> delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iOrderDetailOriginalService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskOriginalController.java
New file @@ -0,0 +1,77 @@ package cn.exrick.xboot.your.controller; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.your.entity.OrderTaskOriginal; import cn.exrick.xboot.your.service.IOrderTaskOriginalService; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单任务原始表管理接口") @RequestMapping("/xboot/orderTaskOriginal") @Transactional public class OrderTaskOriginalController { @Autowired private IOrderTaskOriginalService iOrderTaskOriginalService; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result<OrderTaskOriginal> get(@PathVariable String id) { OrderTaskOriginal orderTaskOriginal = iOrderTaskOriginalService.getById(id); return new ResultUtil<OrderTaskOriginal>().setData(orderTaskOriginal); } @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "获取全部数据") public Result<List<OrderTaskOriginal>> getAll() { List<OrderTaskOriginal> list = iOrderTaskOriginalService.list(); return new ResultUtil<List<OrderTaskOriginal>>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result<IPage<OrderTaskOriginal>> getByPage(PageVo page) { IPage<OrderTaskOriginal> data = iOrderTaskOriginalService.page(PageUtil.initMpPage(page)); return new ResultUtil<IPage<OrderTaskOriginal>>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result<OrderTaskOriginal> saveOrUpdate(OrderTaskOriginal orderTaskOriginal) { if (iOrderTaskOriginalService.saveOrUpdate(orderTaskOriginal)) { return new ResultUtil<OrderTaskOriginal>().setData(orderTaskOriginal); } return new ResultUtil<OrderTaskOriginal>().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result<Object> delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iOrderTaskOriginalService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/face/FaceImgController.java
New file @@ -0,0 +1,161 @@ package cn.exrick.xboot.your.controller.face; import cn.exrick.xboot.core.common.constant.CommonConstant; import cn.exrick.xboot.core.common.constant.SettingConstant; import cn.exrick.xboot.core.common.redis.RedisTemplateHelper; import cn.exrick.xboot.core.common.utils.CommonUtil; import cn.exrick.xboot.core.entity.User; import cn.exrick.xboot.core.service.SettingService; import cn.exrick.xboot.core.service.UserService; import cn.exrick.xboot.core.vo.OssSetting; import cn.exrick.xboot.file.entity.File; import cn.exrick.xboot.file.manage.FileManageFactory; import cn.exrick.xboot.file.service.FileService; import cn.exrick.xboot.your.entity.Alarm; import cn.exrick.xboot.your.entity.Car; import cn.exrick.xboot.your.service.IAlarmService; import cn.exrick.xboot.your.service.ICarService; import cn.exrick.xboot.your.util.FaceSystem; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.gson.Gson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Part; import java.io.IOException; import java.io.InputStream; import java.util.Collection; import java.util.Iterator; import java.util.List; @RestController @RequestMapping("/hk") public class FaceImgController { @Autowired private FileManageFactory fileManageFactory; @Autowired private FileService fileService; @Autowired private ICarService iCarService; @Autowired private UserService userService; @Autowired private SettingService settingService; @Autowired private IAlarmService iAlarmService; @Autowired private RedisTemplateHelper redisTemplate; @RequestMapping(value = "/faceImg", method = RequestMethod.POST) public void saveOrUpdate(HttpServletRequest request) throws IOException, ServletException { OssSetting os = new Gson().fromJson(settingService.get(SettingConstant.LOCAL_OSS).getValue(), OssSetting.class); String faceCapture = request.getParameter("faceCapture"); if(StrUtil.isNotEmpty(faceCapture)){ JSONObject jsonObject = JSONUtil.parseObj(faceCapture); String faceCaptures = jsonObject.get("faceCapture").toString(); JSONArray objects = JSONUtil.parseArray(faceCaptures); JSONObject jsonObject1 = objects.getJSONObject(0); String targetAttrs = jsonObject1.get("targetAttrs").toString(); JSONObject jsonObject2 = JSONUtil.parseObj(targetAttrs); String deviceName = jsonObject2.get("deviceName").toString(); System.out.println(deviceName); QueryWrapper<Car> wrapper = new QueryWrapper<Car>(); wrapper.eq("car_no",deviceName.substring(0,deviceName.length()-1)); Car one = iCarService.getOne(wrapper); User user = userService.get(one.getUserId()); User user1 = userService.get(one.getFollowUserId()); Collection parts = request.getParts(); for (Iterator iterator = parts.iterator(); iterator.hasNext();) { Part part = (Part) iterator.next(); if(part.getContentType().equals("image/jpeg")){ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List<MultipartFile> imgs = multipartRequest.getFiles(part.getName()); for(MultipartFile multipartFile:imgs){ String result = ""; String fKey = CommonUtil.renamePic(part.getName())+".jpeg"; File f = new File(); try { InputStream inputStream = part.getInputStream(); result = fileManageFactory.getFileManage(null).inputStreamUpload(inputStream, fKey, multipartFile); f.setLocation(0).setName(multipartFile.getOriginalFilename()).setSize(multipartFile.getSize()).setType(multipartFile.getContentType()).setFKey(fKey).setUrl(result); fileService.save(f); int flag = 0; String avatar2 = os.getHttp() + os.getEndpoint() + "/" + f.getId(); if(user!=null){ String avatar = user.getAvatar(); int result1 = FaceSystem.getResult(avatar, avatar2); if(result1<70){ flag++; }else{ deleteFile(f.getId()); } } if(user1!=null){ String avatar = user1.getAvatar(); int result1 = FaceSystem.getResult(avatar, avatar2); if(result1<70){ flag++; }else{ deleteFile(f.getId()); } } if(flag>0){ Alarm alarm = new Alarm(); alarm.setCarNo(one.getCarNo()); alarm.setCarId(one.getId()); alarm.setCarUserId(one.getUserId()); alarm.setFollowUserId(one.getFollowUserId()); alarm.setType(5); alarm.setValue("车厢异常开启"); alarm.setAlarmImg(avatar2); iAlarmService.saveOrUpdate(alarm); } } catch (Exception e) { System.out.println(e.toString()); } } } } } } public void deleteFile(String id){ File file = fileService.get(id); // 特殊处理本地服务器 String key = file.getFKey(); if (CommonConstant.OSS_LOCAL.equals(file.getLocation())) { key = file.getUrl(); } fileManageFactory.getFileManage(file.getLocation()).deleteFile(key); fileService.delete(id); redisTemplate.delete("file::" + id); } // System.out.println("-----类型名称------->"+part.getName()); // System.out.println("-----提交的类型名称------->"+part.getSubmittedFileName()); // System.out.println("----流-------->"+part.getInputStream()); } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/orderSyn/OrderSynController.java
New file @@ -0,0 +1,43 @@ package cn.exrick.xboot.your.controller.orderSyn; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.your.entity.*; import cn.exrick.xboot.your.service.*; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单同步接口") @RequestMapping("/xboot/orderSyn") @Transactional public class OrderSynController { @Autowired private IOrderTaskOriginalService iOrderTaskOriginalService; @Autowired private IOrderDetailOriginalService iOrderDetailOriginalService; @RequestMapping(value = "/insert", method = RequestMethod.POST) public Object saveOrUpdate(@RequestBody List<OrderTaskOriginal> list) { System.out.println(list.size()); iOrderTaskOriginalService.saveBatch(list); return ResultUtil.success("成功"); } @RequestMapping(value = "/insert2", method = RequestMethod.POST) public Object saveOrUpdate2(@RequestBody List<OrderDetailOriginal> list) { System.out.println(list.size()); iOrderDetailOriginalService.saveBatch(list); return ResultUtil.success("成功"); } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java
New file @@ -0,0 +1,102 @@ package cn.exrick.xboot.your.controller.wx; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.your.entity.*; import cn.exrick.xboot.your.service.*; import cn.exrick.xboot.your.util.HttpUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.*; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单接口") @RequestMapping("/xboot/wx") @Transactional public class IndexController { @Autowired private IOrderTaskService iOrderTaskService; @Autowired private ICustomerService iCustomerService; @Autowired private IOrderDetailService iOrderDetailService; //获取今日配送订单 @RequestMapping("/getTodayOrder") public Object getTodayOrder(String customerId){ QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("customer_id",customerId); wrapper2.eq("send_date",format); OrderTask orderTask = iOrderTaskService.getOne(wrapper2); if(orderTask==null){ return ResultUtil.data(new ArrayList<>()); }else{ QueryWrapper<OrderDetail> wrapper = new QueryWrapper<OrderDetail>(); wrapper.eq("order_id",orderTask.getId()); List<OrderDetail> list = iOrderDetailService.list(wrapper); return ResultUtil.data(list); } } //微信绑定零售许可证 @RequestMapping("/bindWx") public Object bindWx(String licence,String openId){ QueryWrapper<Customer> wrapper = new QueryWrapper<>(); wrapper.eq("licence",licence); Customer one = iCustomerService.getOne(wrapper); if(one==null){ return ResultUtil.error("零售许可证无效");//首次登陆需绑定零售许可证 }else { one.setOpenId(openId); iCustomerService.saveOrUpdate(one); return ResultUtil.data(one,"登录成功"); } } //微信登陆 @RequestMapping("/login") public Object doLogin(String code){ JSONObject SessionKeyOpenId = getSessionKeyOrOpenId( code ); String openid = SessionKeyOpenId.getStr("openid"); if(StrUtil.isEmpty(openid)){ return ResultUtil.error(SessionKeyOpenId.toString()); } QueryWrapper<Customer> wrapper = new QueryWrapper<>(); wrapper.eq("open_id",openid); Customer one = iCustomerService.getOne(wrapper); if(one==null){ return ResultUtil.error(openid);//首次登陆需绑定零售许可证 }else { return ResultUtil.data(one,"登录成功"); } } public static JSONObject getSessionKeyOrOpenId(String code){ //微信端登录code String wxCode = code; String requestUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=wx0f10f6d253f3ee6b&secret=4d4cbc8da31a96559114ad693de70631&grant_type=authorization_code&js_code="+code; JSONObject jsonObject = JSONUtil.parseObj( HttpUtil.get(requestUrl)); return jsonObject; } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
@@ -53,4 +53,7 @@ @ApiModelProperty(value = "车机报警id") private String alarmId; @ApiModelProperty(value = "异常开启图片") private String alarmImg; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetail.java
@@ -35,6 +35,6 @@ private String product; @ApiModelProperty(value = "数量") private String num; private Integer num; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetailOriginal.java
New file @@ -0,0 +1,40 @@ package cn.exrick.xboot.your.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.util.Date; @Data @Entity @DynamicInsert @DynamicUpdate @Table(name = "t_order_detail_original") @TableName("t_order_detail_original") @ApiModel(value = "订单详情原始表") public class OrderDetailOriginal { @Id private String id; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") protected Date createTime;//创建时间 private String orderId;//订单id private String orderCode;//订单code唯一标识 private Integer num;//条数 private String productName;//产品名称 } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTaskOriginal.java
New file @@ -0,0 +1,64 @@ package cn.exrick.xboot.your.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.util.Date; @Data @DynamicInsert @DynamicUpdate @Table(name = "t_order_task_original") @TableName("t_order_task_original") @Entity @ApiModel(value = "订单任务原始表") public class OrderTaskOriginal { @Id private String id; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") protected Date createTime; private String code;//订单编号 private String customerName;//客户名称 private String customerCode;//客户代号 private String customerPhone;//客户电话 private String linker;//法人 private Integer seq;//送货顺序 private Integer num;//包数 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date orderDate;//订货日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date packetDate;//封包日期 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date sendDate;//配送日期 private String areaName;//片区名称 private String areaCode;//片区编号 private String areaSection;//片区段名称 private String sectionCode;//片区段编号 } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderDetailOriginalMapper.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.exrick.xboot.your.entity.OrderDetailOriginal; import java.util.List; /** * 订单详情原始表数据处理层 * @author whj */ public interface OrderDetailOriginalMapper extends BaseMapper<OrderDetailOriginal> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTaskOriginalMapper.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.exrick.xboot.your.entity.OrderTaskOriginal; import java.util.List; /** * 订单任务原始表数据处理层 * @author whj */ public interface OrderTaskOriginalMapper extends BaseMapper<OrderTaskOriginal> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
New file @@ -0,0 +1,175 @@ package cn.exrick.xboot.your.schedulings; import cn.exrick.xboot.your.entity.*; import cn.exrick.xboot.your.service.*; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; //订单处理 @Component public class OrderSynScheduleImpl { @Autowired private IOrderTaskOriginalService iOrderTaskOriginalService; @Autowired private IOrderDetailOriginalService iOrderDetailOriginalService; @Autowired private IOrderTaskService iOrderTaskService; @Autowired private IOrderDetailService iOrderDetailService; @Autowired private IAreaService iAreaService; @Autowired private IAreaSectionService iAreaSectionService; @Autowired private ICustomerService iCustomerService; @Autowired private ICarService iCarService; @Autowired private ICustomerReceiveService iCustomerReceiveService; @Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行 public void execute(){ QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>(); queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date())); List<OrderTaskOriginal> list = iOrderTaskOriginalService.list(); for(OrderTaskOriginal original:list){ OrderTask orderTask = new OrderTask(); orderTask.setCode(original.getCode()); orderTask.setAreaId(getArea(original.getAreaName())); orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection())); orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId())); orderTask.setEndDate(original.getPacketDate()); orderTask.setSendDate(original.getSendDate()); orderTask.setOrderDate(original.getOrderDate()); orderTask.setSeq(original.getSeq()); orderTask.setNum(original.getNum()); orderTask.setCarId(orderTask.getAreaId()); iOrderTaskService.saveOrUpdate(orderTask); updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone()); QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>(); wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date())); wrapper.eq("orderId",original.getId()); List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper); for(OrderDetailOriginal o:list1){ OrderDetail orderDetail = new OrderDetail(); orderDetail.setNum(o.getNum()); orderDetail.setOrderId(orderTask.getId()); orderDetail.setProduct(o.getProductName()); iOrderDetailService.saveOrUpdate(orderDetail); } } } public void updateCustomerRecive(String customerId,String linker,String phone){ QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>(); wrapper.eq("customer_id",customerId); wrapper.eq("name",linker); CustomerReceive one = iCustomerReceiveService.getOne(wrapper); if(one==null){ one = new CustomerReceive(); one.setCustomerId(customerId); one.setFstatus(0); one.setStatus(1); one.setName(linker); one.setPhone(phone); iCustomerReceiveService.saveOrUpdate(one); } } public String getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){ QueryWrapper<Customer> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("licence",customerCode); Customer one = iCustomerService.getOne(queryWrapper); if(one==null){ Customer customer = new Customer(); customer.setLicence(customerCode); customer.setName(customerName); customer.setPhone(customerPhone); customer.setLinker(linker); customer.setAreaId(areaId); customer.setAreaSectionId(areaSectionId); customer.setKstatus(1); iCustomerService.saveOrUpdate(customer); return customer.getId(); } one.setAreaId(areaId); one.setAreaSectionId(areaSectionId); iCustomerService.saveOrUpdate(one); return one.getId(); } public String getArea(String name){ QueryWrapper<Area> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("name",name); Area one = iAreaService.getOne(queryWrapper); if(one==null){ Area area = new Area(); area.setName(name); iAreaService.saveOrUpdate(area); return area.getId(); } return one.getId(); } public String getAreaSection(String areaId,String name){ QueryWrapper<AreaSection> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("name",name); queryWrapper.eq("area_id",areaId); AreaSection one = iAreaSectionService.getOne(queryWrapper); if(one==null){ AreaSection area = new AreaSection(); area.setName(name); area.setAreaId(areaId); iAreaSectionService.saveOrUpdate(area); return area.getId(); } return one.getId(); } public String getCarId(String areaId){ Area area = iAreaService.getById(areaId); String userId = area.getUserId(); if(StrUtil.isNotEmpty(userId)){ QueryWrapper<Car> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("follow_user_id",userId); Car one = iCarService.getOne(queryWrapper); return one.getId(); }else{ return null; } } public String dateStringFormat(Date strDate) { if (strDate == null) return ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(strDate)+" 00:00:00"; } public String dateStringFormat2(Date strDate) { if (strDate == null) return ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(strDate)+" 23:59:59"; } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java
@@ -34,7 +34,7 @@ @Autowired private IOrderTaskService iOrderTaskService; @Scheduled(cron="0 * * * * ?")//每小时执行一次 @Scheduled(cron="0 0 * * * ?")//每小时执行一次 public void execute(){ List<Area> list = iAreaService.list(); for(Area area:list){ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java
@@ -53,7 +53,7 @@ public static final String HEAD = "statistic1::"; @Scheduled(cron="0 */10 * * * ?")//每小时 @Scheduled(cron="0 0 * * * ?")//每小时 public void execute(){ redisTemplate.set(HEAD+"car",iCarService.count()+"");//车辆 redisTemplate.set(HEAD+"user",userService.countByType(0)+"");//司机 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
@@ -36,7 +36,7 @@ @Autowired private IAlarmService iAlarmService; @Scheduled(cron="0 0 * * * ?")//每晚凌晨1点执行 @Scheduled(cron="0 0 1 * * ?")//每晚凌晨1点执行 public void execute(){ List<User> all = userService.findAll(); for(User user:all){ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderDetailOriginalService.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.service; import com.baomidou.mybatisplus.extension.service.IService; import cn.exrick.xboot.your.entity.OrderDetailOriginal; import java.util.List; /** * 订单详情原始表接口 * @author whj */ public interface IOrderDetailOriginalService extends IService<OrderDetailOriginal> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTaskOriginalService.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.service; import com.baomidou.mybatisplus.extension.service.IService; import cn.exrick.xboot.your.entity.OrderTaskOriginal; import java.util.List; /** * 订单任务原始表接口 * @author whj */ public interface IOrderTaskOriginalService extends IService<OrderTaskOriginal> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderDetailOriginalServiceImpl.java
New file @@ -0,0 +1,26 @@ package cn.exrick.xboot.your.serviceimpl; import cn.exrick.xboot.your.mapper.OrderDetailOriginalMapper; import cn.exrick.xboot.your.entity.OrderDetailOriginal; import cn.exrick.xboot.your.service.IOrderDetailOriginalService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * 订单详情原始表接口实现 * @author whj */ @Slf4j @Service @Transactional public class IOrderDetailOriginalServiceImpl extends ServiceImpl<OrderDetailOriginalMapper, OrderDetailOriginal> implements IOrderDetailOriginalService { @Autowired private OrderDetailOriginalMapper orderDetailOriginalMapper; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTaskOriginalServiceImpl.java
New file @@ -0,0 +1,26 @@ package cn.exrick.xboot.your.serviceimpl; import cn.exrick.xboot.your.mapper.OrderTaskOriginalMapper; import cn.exrick.xboot.your.entity.OrderTaskOriginal; import cn.exrick.xboot.your.service.IOrderTaskOriginalService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * 订单任务原始表接口实现 * @author whj */ @Slf4j @Service @Transactional public class IOrderTaskOriginalServiceImpl extends ServiceImpl<OrderTaskOriginalMapper, OrderTaskOriginal> implements IOrderTaskOriginalService { @Autowired private OrderTaskOriginalMapper orderTaskOriginalMapper; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/FaceSystem.java
New file @@ -0,0 +1,127 @@ package cn.exrick.xboot.your.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Map; /** * 人脸系统 * * @author Administrator * */ public class FaceSystem { private static final String APP_ID = "10545313"; private static final String API_KEY = "QSh91rzoNgFvUum4ww34aVoS"; private static final String SECRET_KEY = "ln6sHT70qoFNEg6VmbvZ6XGvd3PF9KQg"; private static final String BAIDU_REG_GROUP = "hebeiboying"; public static int getResult(String img1,String img2) { List<Object> list = new ArrayList<>(); Map<String,String> map = new HashMap<>(); map.put("image",img1); map.put("image_type","URL"); Map<String,String> map2 = new HashMap<>(); map2.put("image",img2); map2.put("image_type","URL"); list.add(map); list.add(map2); String s = JSONObject.valueToString(list); return face(s); } public static int face(String jsonBody) { String result = HttpUtil.jsonPost2(jsonBody, "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=" + getAuth()); try { JSONObject jsonObject = new JSONObject(result); String access_token = jsonObject.getString("error_msg"); if(access_token.equals("SUCCESS")){ String result2 = jsonObject.get("result").toString(); JSONObject jsonObject2 = new JSONObject(result2); int score = jsonObject2.getInt("score"); return score; } } catch (Exception e) { e.printStackTrace(); } return 0; } /** * 获取权限token * @return 返回示例: * { * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567", * "expires_in": 2592000 * } */ public static String getAuth() { // 官网获取的 API Key 更新为你注册的 String clientId = API_KEY; // 官网获取的 Secret Key 更新为你注册的 String clientSecret = SECRET_KEY; return getAuth(clientId, clientSecret); } /** * 获取API访问token * 该token有一定的有效期,需要自行管理,当失效时需重新获取. * @param ak - 百度云官网获取的 API Key * @param sk - 百度云官网获取的 Securet Key * @return assess_token 示例: * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567" */ public static String getAuth(String ak, String sk) { // 获取token地址 String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; String getAccessTokenUrl = authHost // 1. grant_type为固定参数 + "grant_type=client_credentials" // 2. 官网获取的 API Key + "&client_id=" + ak // 3. 官网获取的 Secret Key + "&client_secret=" + sk; try { URL realUrl = new URL(getAccessTokenUrl); // 打开和URL之间的连接 HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection(); connection.setRequestMethod("GET"); connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 // for (String key : map.keySet()) { // System.err.println(key + "--->" + map.get(key)); // } // 定义 BufferedReader输入流来读取URL的响应 BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String result = ""; String line; while ((line = in.readLine()) != null) { result += line; } /** * 返回结果示例 */ //System.err.println("result:" + result); JSONObject jsonObject = new JSONObject(result); String access_token = jsonObject.getString("access_token"); return access_token; } catch (Exception e) { System.err.printf("获取token失败!"); e.printStackTrace(System.err); } return null; } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HttpUtil.java
New file @@ -0,0 +1,121 @@ package cn.exrick.xboot.your.util; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; public class HttpUtil { public static String get(String url) { BufferedReader in = null; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); // 建立实际的连接 connection.connect(); // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = in.readLine()) != null) { sb.append(line); } return sb.toString(); } catch (Exception e) { } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return null; } public static String jsonPost2(String params,String strURL) { try { URL url = new URL(strURL);// 创建连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestMethod("POST"); // 设置请求方式 connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式 connection.connect(); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码 out.append(params); out.flush(); out.close(); int code = connection.getResponseCode(); InputStream is = null; if (code == 200) { is = connection.getInputStream(); } else { is = connection.getErrorStream(); } BufferedReader bReader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String line, resultStr = ""; while (null != (line = bReader.readLine())) { resultStr += line; } bReader.close(); return resultStr; } catch (IOException e) { return "error"; } } public static String jsonPost3(StringBuffer params,String strURL) { try { URL url = new URL(strURL);// 创建连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestMethod("POST"); // 设置请求方式 connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式 connection.connect(); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码 out.append(params); out.flush(); out.close(); int code = connection.getResponseCode(); InputStream is = null; if (code == 200) { is = connection.getInputStream(); } else { is = connection.getErrorStream(); } BufferedReader bReader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String line, resultStr = ""; while (null != (line = bReader.readLine())) { resultStr += line; } //System.out.println(resultStr); bReader.close(); return resultStr; } catch (IOException e) { return "error"; } } } xboot-modules/xboot-your/src/main/resources/mapper/OrderDetailOriginalMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.exrick.xboot.your.mapper.OrderDetailOriginalMapper"> </mapper> xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskOriginalMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.exrick.xboot.your.mapper.OrderTaskOriginalMapper"> </mapper>