From ed643abfe59de5d2b354a34ef21f5b507c4fc650 Mon Sep 17 00:00:00 2001 From: hjc <459774188@qq.com> Date: Mon, 9 Dec 2019 21:06:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=AB=AFlogin=20dem?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BssApiBizController.java | 74 +++++ .../controller/BssApiLoginController.java | 73 +++++ .../controller/BssVatInvoiceController.java | 4 +- .../templates/business/vatInvoice/proof.html | 267 ++++++++++++++++++ .../cwhelp/common/api/baidu/BaiduAipOCR.java | 35 ++- .../baidu/entity/vatinvoice/TrainResult.java | 19 ++ .../entity/vatinvoice/TrainWordsResult.java | 56 ++++ .../com/cwhelp/common/constant/ApiConst.java | 38 +++ .../cwhelp/common/enums/InvoiceTypeEnum.java | 25 ++ .../java/com/cwhelp/common/vo/ResultVo.java | 10 + .../actionLog/action/UserAction.java | 5 + .../component/shiro/config/ShiroConfig.java | 1 + .../system/repository/UserRepository.java | 7 + .../modules/system/service/ApiBizService.java | 15 + .../system/service/ApiUserService.java | 11 + .../modules/system/service/UserService.java | 2 + .../service/impl/ApiBizServiceImpl.java | 144 ++++++++++ .../service/impl/ApiUserServiceImpl.java | 25 ++ .../system/service/impl/UserServiceImpl.java | 11 +- sdoc/~$发票形成会计凭证类.docx | Bin 162 -> 0 bytes sdoc/~$设计.docx | Bin 162 -> 0 bytes 21 files changed, 812 insertions(+), 10 deletions(-) create mode 100644 admin/src/main/java/com/cwhelp/admin/business/controller/BssApiBizController.java create mode 100644 admin/src/main/java/com/cwhelp/admin/business/controller/BssApiLoginController.java create mode 100644 admin/src/main/resources/templates/business/vatInvoice/proof.html create mode 100644 common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainResult.java create mode 100644 common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainWordsResult.java create mode 100644 common/src/main/java/com/cwhelp/common/constant/ApiConst.java create mode 100644 common/src/main/java/com/cwhelp/common/enums/InvoiceTypeEnum.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/system/service/ApiBizService.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/system/service/ApiUserService.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiBizServiceImpl.java create mode 100644 modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiUserServiceImpl.java delete mode 100644 sdoc/~$发票形成会计凭证类.docx delete mode 100644 sdoc/~$设计.docx diff --git a/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiBizController.java b/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiBizController.java new file mode 100644 index 0000000..980ad79 --- /dev/null +++ b/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiBizController.java @@ -0,0 +1,74 @@ +package com.cwhelp.admin.business.controller; + +import com.cwhelp.common.api.baidu.BaiduAipOCR; +import com.cwhelp.common.api.baidu.entity.vatinvoice.*; +import com.cwhelp.common.constant.ApiConst; +import com.cwhelp.common.enums.InvoiceTypeEnum; +import com.cwhelp.common.utils.ResultVoUtil; +import com.cwhelp.common.vo.ResultVo; +import com.cwhelp.component.fileUpload.FileUpload; +import com.cwhelp.component.fileUpload.enums.UploadResultEnum; +import com.cwhelp.devtools.generate.utils.jAngel.utils.StringUtil; +import com.cwhelp.modules.business.domain.BssVatInvoice; +import com.cwhelp.modules.system.domain.Upload; +import com.cwhelp.modules.system.service.ApiBizService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; + +/** + * Created by huangjc on 2019/12/1 0001. + */ +@RestController +@RequestMapping("/api_biz") +public class BssApiBizController { + + @Autowired + private ApiBizService apiBizService; + + @PostMapping("/invoiceOCR") + @ResponseBody + public ResultVo invoiceOCR(@RequestParam("image") MultipartFile multipartFile, + @RequestParam("invoiceType") int invoiceType, + @RequestParam("operator") String operator){ + + if (multipartFile.getSize() == 0){ + return new ResultVo(ApiConst.API_PARAM_BLANK_CODE, UploadResultEnum.NO_FILE_NULL.getMessage()); + } + + if(invoiceType == 0 || StringUtil.isBlank(operator)){ + return new ResultVo(ApiConst.API_PARAM_BLANK_CODE, ApiConst.API_PARAM_BLANK_MSG); + } + + // 创建Upload实体对象 + Upload upload = FileUpload.getFile(multipartFile, "/images"); + try { + FileUpload.transferTo(multipartFile, upload); + File destFile = FileUpload.getDestFile(upload); + + BssVatInvoice vatInvoice = new BssVatInvoice(); + if(invoiceType == InvoiceTypeEnum.TRAIN_INVOICE.getCode()){ + TrainResult trainResult = (TrainResult)BaiduAipOCR.queryBaiduVatInvoiceApi(destFile, invoiceType); + TrainWordsResult trainWordsResult = trainResult.getWords_result(); + vatInvoice = apiBizService.getResultByTrain(trainWordsResult, destFile.getPath()); + }else if(invoiceType == InvoiceTypeEnum.ADD_VALUE_TAX_INVOICE.getCode()){ + VatInvoiceResult vatInvoiceResult = (VatInvoiceResult)BaiduAipOCR.queryBaiduVatInvoiceApi(destFile, invoiceType); + WordsResult wordsResult = vatInvoiceResult.getWords_result(); + vatInvoice = apiBizService.getResultByAddValue(wordsResult, destFile.getPath()); + } + + + return ResultVoUtil.success(ApiConst.API_OPT_SUCCESS_MSG, vatInvoice); + + } catch (Exception e) { + return new ResultVo(ApiConst.API_UPLOAD_PICTURE_FAILED_CODE, ApiConst.API_UPLOAD_PICTURE_FAILED_MSG); + } + + + + } + + +} diff --git a/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiLoginController.java b/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiLoginController.java new file mode 100644 index 0000000..72ccd91 --- /dev/null +++ b/admin/src/main/java/com/cwhelp/admin/business/controller/BssApiLoginController.java @@ -0,0 +1,73 @@ +package com.cwhelp.admin.business.controller; + +import com.cwhelp.common.constant.ApiConst; +import com.cwhelp.common.utils.ResultVoUtil; +import com.cwhelp.common.vo.ResultVo; +import com.cwhelp.component.actionLog.action.UserAction; +import com.cwhelp.component.actionLog.annotation.ActionLog; +import com.cwhelp.devtools.generate.utils.jAngel.utils.StringUtil; +import com.cwhelp.modules.system.domain.Role; +import com.cwhelp.modules.system.domain.User; +import com.cwhelp.modules.system.service.ApiUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.Iterator; +import java.util.UUID; + +/** + * Created by huangjc on 2019/12/1 0001. + */ +@RestController +@RequestMapping("/api") +public class BssApiLoginController { + + @Autowired + private ApiUserService apiUserService; + + @PostMapping("/me/login") + @ResponseBody + @ActionLog(key = UserAction.API_USER_LOGIN, action = UserAction.class) + public ResultVo apiUserlogin(HttpServletRequest request, @RequestParam("telephone") String telephone, @RequestParam("password") String password){ + + if(StringUtil.isBlank(telephone) || StringUtil.isBlank(password)){ + return new ResultVo(ApiConst.API_PARAM_BLANK_CODE, ApiConst.API_PARAM_BLANK_MSG); + } + + User user = apiUserService.checkLoginPremission(telephone); + if(user == null){ + return new ResultVo(ApiConst.API_LOGIN_PWD_ERR_CODE, ApiConst.API_LOGIN_PWD_ERR_MSG); + }else { + Iterator iterator = user.getRoles().iterator(); + boolean hasPremission = false; + while(iterator.hasNext()){ + if (iterator.next().getName().contains(ApiConst.API_PREMISSION_USER_STR)) { + hasPremission = true; + break; + } + } + if (hasPremission) { + //暂定密码为 telephone后六位 + if(password.equals(telephone.substring(5, telephone.length()))){ + HttpSession session = request.getSession(); + String token = UUID.randomUUID().toString(); + session.setAttribute(token,user); + return ResultVoUtil.success(ApiConst.API_LOGIN_SUCCESS_MSG, token); + }else{ + return new ResultVo(ApiConst.API_LOGIN_PWD_ERR_CODE, ApiConst.API_LOGIN_PWD_ERR_MSG); + } + } else { + return new ResultVo(ApiConst.API_NOT_PREMISSION_CODE, ApiConst.API_NOT_PREMISSION_MSG); + } + } + } + + public static void main(String[] args) { + String tel = "16621001775"; + + System.out.println(tel.substring(5, tel.length())); + } + +} diff --git a/admin/src/main/java/com/cwhelp/admin/business/controller/BssVatInvoiceController.java b/admin/src/main/java/com/cwhelp/admin/business/controller/BssVatInvoiceController.java index 48f44ba..91856f5 100644 --- a/admin/src/main/java/com/cwhelp/admin/business/controller/BssVatInvoiceController.java +++ b/admin/src/main/java/com/cwhelp/admin/business/controller/BssVatInvoiceController.java @@ -2,10 +2,10 @@ package com.cwhelp.admin.business.controller; import com.alibaba.fastjson.JSONObject; import com.cwhelp.admin.business.validator.BssVatInvoiceCheckValid; -import com.cwhelp.admin.business.validator.BssVatInvoiceValid; import com.cwhelp.common.api.baidu.BaiduAipOCR; import com.cwhelp.common.api.baidu.entity.vatinvoice.*; import com.cwhelp.common.api.baidu.entity.vatinvoice.enums.VatInvoiceTypeEnum; +import com.cwhelp.common.enums.InvoiceTypeEnum; import com.cwhelp.common.enums.StatusEnum; import com.cwhelp.common.utils.*; import com.cwhelp.common.vo.ResultVo; @@ -186,7 +186,7 @@ public class BssVatInvoiceController { try { FileUpload.transferTo(multipartFile, upload); File destFile = FileUpload.getDestFile(upload); - VatInvoiceResult vatInvoiceResult = BaiduAipOCR.queryBaiduVatInvoiceApi(destFile); + VatInvoiceResult vatInvoiceResult = (VatInvoiceResult)BaiduAipOCR.queryBaiduVatInvoiceApi(destFile, InvoiceTypeEnum.ADD_VALUE_TAX_INVOICE.getCode()); WordsResult wordsResult = vatInvoiceResult.getWords_result(); BssVatInvoice vatInvoice = new BssVatInvoice(); Long bssplatformId = ShiroUtil.getSubject().getBssPlatform().getId(); diff --git a/admin/src/main/resources/templates/business/vatInvoice/proof.html b/admin/src/main/resources/templates/business/vatInvoice/proof.html new file mode 100644 index 0000000..60c21f1 --- /dev/null +++ b/admin/src/main/resources/templates/business/vatInvoice/proof.html @@ -0,0 +1,267 @@ + + + + + + + 生产凭证 +
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/java/com/cwhelp/common/api/baidu/BaiduAipOCR.java b/common/src/main/java/com/cwhelp/common/api/baidu/BaiduAipOCR.java index 7a0d505..8181ba5 100644 --- a/common/src/main/java/com/cwhelp/common/api/baidu/BaiduAipOCR.java +++ b/common/src/main/java/com/cwhelp/common/api/baidu/BaiduAipOCR.java @@ -2,7 +2,9 @@ package com.cwhelp.common.api.baidu; import com.alibaba.fastjson.JSON; import com.baidu.aip.ocr.AipOcr; +import com.cwhelp.common.api.baidu.entity.vatinvoice.TrainResult; import com.cwhelp.common.api.baidu.entity.vatinvoice.VatInvoiceResult; +import com.cwhelp.common.enums.InvoiceTypeEnum; import org.json.JSONObject; import java.io.File; @@ -41,9 +43,34 @@ public class BaiduAipOCR { * @param file * @return */ - public static VatInvoiceResult queryBaiduVatInvoiceApi(File file){ + public static Object queryBaiduVatInvoiceApi(File file, int invoiceType){ + byte[] data = null; + try { + data = getDataByFile(file); + } catch (Exception e) { + e.printStackTrace(); + } + JSONObject result = null; + if(invoiceType == InvoiceTypeEnum.TRAIN_INVOICE.getCode()){ + result = client.trainTicket(data, null); + return JSON.parseObject(result.toString(), TrainResult.class); + }else if(invoiceType == InvoiceTypeEnum.METRO_INVOICE.getCode()){ + return null; + }else if(invoiceType == InvoiceTypeEnum.MEAL_INVOICE.getCode()){ + return null; + }else { + result = client.vatInvoice(data, null); + return JSON.parseObject(result.toString(), VatInvoiceResult.class); + } + } + + /** + * 读取图片字节数组 + * @param file + * @return + */ + public static byte[] getDataByFile(File file){ byte[] data = null; - // 读取图片字节数组 try { InputStream in = new FileInputStream(file); data = new byte[in.available()]; @@ -52,9 +79,7 @@ public class BaiduAipOCR { } catch (IOException e) { e.printStackTrace(); } - JSONObject result = client.vatInvoice(data, null); - VatInvoiceResult vatInvoiceResult = JSON.parseObject(result.toString(), VatInvoiceResult.class); - return vatInvoiceResult; + return data; } } diff --git a/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainResult.java b/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainResult.java new file mode 100644 index 0000000..6574a67 --- /dev/null +++ b/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainResult.java @@ -0,0 +1,19 @@ +package com.cwhelp.common.api.baidu.entity.vatinvoice; + +import lombok.Data; + +/** + * Created by huangjc on 2019/12/3 0003. + */ +@Data +public class TrainResult { + + private String log_id; + + private TrainWordsResult words_result; + + private String words_result_num; + + private String direction; + +} diff --git a/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainWordsResult.java b/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainWordsResult.java new file mode 100644 index 0000000..b586597 --- /dev/null +++ b/common/src/main/java/com/cwhelp/common/api/baidu/entity/vatinvoice/TrainWordsResult.java @@ -0,0 +1,56 @@ +package com.cwhelp.common.api.baidu.entity.vatinvoice; + +import lombok.Data; + +/** + * Created by Administrator on 2019/12/7 0007. + */ +@Data +public class TrainWordsResult { + + /** + * 请求标识码,随机数,唯一。 + */ + private long logId; + + /** + * 车票号 + */ + private String ticketNum; + + /** + * 始发站 + */ + private String startingStation; + + /** + * 车次号 + */ + private String trainNum; + + /** + * 到达站 + */ + private String destinationStation; + + /** + * 出发日期 + */ + private String date; + + /** + * 车票金额 + */ + private String ticketRates; + + /** + * 席别 + */ + private String seatCategory; + + /** + * 乘客姓名 + */ + private String name; + +} diff --git a/common/src/main/java/com/cwhelp/common/constant/ApiConst.java b/common/src/main/java/com/cwhelp/common/constant/ApiConst.java new file mode 100644 index 0000000..c68a853 --- /dev/null +++ b/common/src/main/java/com/cwhelp/common/constant/ApiConst.java @@ -0,0 +1,38 @@ +package com.cwhelp.common.constant; + +/** + * Created by huangjc on 2019/12/2 0002. + */ +public class ApiConst { + + /** + * 假定用户角色名中包含‘api’的为小程序权限用户 + */ + public static final String API_PREMISSION_USER_STR = "api"; + + /** + * 操作成功 + */ + public static final int API_OPT_SUCCESS_CODE = 200; + + public static final String API_OPT_SUCCESS_MSG = "操作成功"; + + public static final String API_LOGIN_SUCCESS_MSG = "登录成功"; + + public static final int API_PARAM_BLANK_CODE = 201; + + public static final String API_PARAM_BLANK_MSG = "缺少必要参数"; + + public static final int API_NOT_PREMISSION_CODE = 202; + + public static final String API_NOT_PREMISSION_MSG = "没有权限,请到财务帮后台进行授权"; + + public static final int API_LOGIN_PWD_ERR_CODE = 203; + + public static final String API_LOGIN_PWD_ERR_MSG = "用户名或密码错误"; + + public static final int API_UPLOAD_PICTURE_FAILED_CODE = 204; + + public static final String API_UPLOAD_PICTURE_FAILED_MSG = "上传图片失败"; + +} diff --git a/common/src/main/java/com/cwhelp/common/enums/InvoiceTypeEnum.java b/common/src/main/java/com/cwhelp/common/enums/InvoiceTypeEnum.java new file mode 100644 index 0000000..02ec613 --- /dev/null +++ b/common/src/main/java/com/cwhelp/common/enums/InvoiceTypeEnum.java @@ -0,0 +1,25 @@ +package com.cwhelp.common.enums; + +import lombok.Getter; + +/** + * Created by huangjc on 2019/12/3 0003. + */ +@Getter +public enum InvoiceTypeEnum { + + TRAIN_INVOICE(1, "通用火车票"), + METRO_INVOICE(2, "地铁票"), + MEAL_INVOICE(3, "饭票"), + ADD_VALUE_TAX_INVOICE(4, "增值税发票"); + + InvoiceTypeEnum(int code, String name){ + this.code = code; + this.name = name; + } + + private int code; + + private String name; + +} diff --git a/common/src/main/java/com/cwhelp/common/vo/ResultVo.java b/common/src/main/java/com/cwhelp/common/vo/ResultVo.java index b3762a3..7b134a0 100644 --- a/common/src/main/java/com/cwhelp/common/vo/ResultVo.java +++ b/common/src/main/java/com/cwhelp/common/vo/ResultVo.java @@ -15,4 +15,14 @@ public class ResultVo { private String msg; // 响应数据 private T data; + + public ResultVo(){ + + } + + public ResultVo(Integer code, String msg){ + this.code = code; + this.msg = msg; + } + } diff --git a/component/actionLog/src/main/java/com/cwhelp/component/actionLog/action/UserAction.java b/component/actionLog/src/main/java/com/cwhelp/component/actionLog/action/UserAction.java index 003e3fe..5300cbf 100644 --- a/component/actionLog/src/main/java/com/cwhelp/component/actionLog/action/UserAction.java +++ b/component/actionLog/src/main/java/com/cwhelp/component/actionLog/action/UserAction.java @@ -25,6 +25,8 @@ public class UserAction extends ActionMap { public static final String EDIT_PWD = "edit_pwd"; public static final String EDIT_ROLE = "edit_role"; + public static final String API_USER_LOGIN = "api_user_login"; + @Override public void init() { // 用户登录行为 @@ -35,6 +37,9 @@ public class UserAction extends ActionMap { putMethod(EDIT_PWD, new BusinessMethod("用户密码","editPwd")); // 角色分配行为 putMethod(EDIT_ROLE, new BusinessMethod("角色分配","editRole")); + + // 用户登录行为 + putMethod(API_USER_LOGIN, new LoginMethod("API用户登录","apiUserLogin")); } // 用户登录行为方法 diff --git a/component/shiro/src/main/java/com/cwhelp/component/shiro/config/ShiroConfig.java b/component/shiro/src/main/java/com/cwhelp/component/shiro/config/ShiroConfig.java index 196ee8d..8da81b2 100644 --- a/component/shiro/src/main/java/com/cwhelp/component/shiro/config/ShiroConfig.java +++ b/component/shiro/src/main/java/com/cwhelp/component/shiro/config/ShiroConfig.java @@ -47,6 +47,7 @@ public class ShiroConfig { */ LinkedHashMap filterMap = new LinkedHashMap<>(); filterMap.put("/login", "anon"); + filterMap.put("/api/me/login", "anon"); filterMap.put("/logout", "anon"); filterMap.put("/captcha", "anon"); filterMap.put("/noAuth", "anon"); diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/repository/UserRepository.java b/modules/system/src/main/java/com/cwhelp/modules/system/repository/UserRepository.java index a38fa15..ae23114 100644 --- a/modules/system/src/main/java/com/cwhelp/modules/system/repository/UserRepository.java +++ b/modules/system/src/main/java/com/cwhelp/modules/system/repository/UserRepository.java @@ -44,4 +44,11 @@ public interface UserRepository extends BaseRepository, JpaSpecifica * @param ids ID列表 */ Integer deleteByIdIn(List ids); + + /** + * 根据手机号码查询用户数据 + * @param telephone 用户手机号码 + * @return 用户数据 + */ + User findByPhone(String telephone); } diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiBizService.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiBizService.java new file mode 100644 index 0000000..80ee81b --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiBizService.java @@ -0,0 +1,15 @@ +package com.cwhelp.modules.system.service; + +import com.cwhelp.common.api.baidu.entity.vatinvoice.TrainWordsResult; +import com.cwhelp.common.api.baidu.entity.vatinvoice.WordsResult; +import com.cwhelp.modules.business.domain.BssVatInvoice; + +/** + * Created by huangjc on 2019/12/3 0003. + */ +public interface ApiBizService { + + BssVatInvoice getResultByAddValue(WordsResult wordsResult, String path); + + BssVatInvoice getResultByTrain(TrainWordsResult wordsResult, String path); +} diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiUserService.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiUserService.java new file mode 100644 index 0000000..407d17e --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/ApiUserService.java @@ -0,0 +1,11 @@ +package com.cwhelp.modules.system.service; + +import com.cwhelp.modules.system.domain.User; + +/** + * Created by huangjc on 2019/12/1 0001. + */ +public interface ApiUserService { + + User checkLoginPremission(String telephone); +} diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/UserService.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/UserService.java index 6aecffa..7d36c93 100644 --- a/modules/system/src/main/java/com/cwhelp/modules/system/service/UserService.java +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/UserService.java @@ -63,4 +63,6 @@ public interface UserService { */ @Transactional Boolean updateStatus(StatusEnum statusEnum, List idList); + + User getByPhone(String telephone); } diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiBizServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiBizServiceImpl.java new file mode 100644 index 0000000..be6346c --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiBizServiceImpl.java @@ -0,0 +1,144 @@ +package com.cwhelp.modules.system.service.impl; + +import com.cwhelp.common.api.baidu.entity.vatinvoice.*; +import com.cwhelp.common.api.baidu.entity.vatinvoice.enums.VatInvoiceTypeEnum; +import com.cwhelp.common.enums.InvoiceTypeEnum; +import com.cwhelp.common.utils.ToolUtil; +import com.cwhelp.modules.business.domain.BssGoods; +import com.cwhelp.modules.business.domain.BssTaxinfo; +import com.cwhelp.modules.business.domain.BssVatInvoice; +import com.cwhelp.modules.business.service.BssTaxinfoService; +import com.cwhelp.modules.system.service.ApiBizService; +import org.jsoup.helper.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by huangjc on 2019/12/3 0003. + */ +@Service +public class ApiBizServiceImpl implements ApiBizService{ + + @Autowired + private BssTaxinfoService bssTaxinfoService; + + @Override + public BssVatInvoice getResultByAddValue(WordsResult wordsResult, String path) { + BssVatInvoice vatInvoice = new BssVatInvoice(); + Long bssplatformId = 0L; + //add by hjc 发票上扫到的买卖双方如果不在系统中先入库 + if(!StringUtil.isBlank(wordsResult.getSellerRegisterNum())){ + BssTaxinfo sellerTaxInfo = new BssTaxinfo(); + BssTaxinfo taxNo = bssTaxinfoService.getByTaxNo(wordsResult.getSellerRegisterNum()); + if(taxNo == null){ + //销售方 + sellerTaxInfo.setName(wordsResult.getSellerName()); + sellerTaxInfo.setTaxNo(wordsResult.getSellerRegisterNum()); + sellerTaxInfo.setAccount(wordsResult.getSellerBank()); + sellerTaxInfo.setAddressPhone(wordsResult.getSellerAddress()); + sellerTaxInfo.setPlatformId(bssplatformId); + bssTaxinfoService.save(sellerTaxInfo); + vatInvoice.setSalerTaxInfoId(sellerTaxInfo.getId()); + }else { + vatInvoice.setSalerTaxInfoId(taxNo.getId()); + } + } + + if(!StringUtil.isBlank(wordsResult.getPurchaserRegisterNum())){ + BssTaxinfo purchaserTaxInfo = new BssTaxinfo(); + BssTaxinfo taxNo = bssTaxinfoService.getByTaxNo(wordsResult.getPurchaserRegisterNum()); + if(taxNo == null){ + //购买方 + purchaserTaxInfo.setName(wordsResult.getPurchaserName()); + purchaserTaxInfo.setTaxNo(wordsResult.getPurchaserRegisterNum()); + purchaserTaxInfo.setAccount(wordsResult.getPurchaserBank()); + purchaserTaxInfo.setAddressPhone(wordsResult.getPurchaserAddress()); + purchaserTaxInfo.setPlatformId(bssplatformId); + bssTaxinfoService.save(purchaserTaxInfo); + vatInvoice.setBuyTaxInfoId(purchaserTaxInfo.getId()); + }else{ + vatInvoice.setBuyTaxInfoId(taxNo.getId()); + } + } + + //商品 + List goods = new ArrayList<>(); + List commodityNames = wordsResult.getCommodityName(); + List commodityTypes = wordsResult.getCommodityType(); + List commodityUnits = wordsResult.getCommodityUnit(); + List commodityNums = wordsResult.getCommodityNum(); + List commodityPrices = wordsResult.getCommodityPrice(); + List commodityAmounts = wordsResult.getCommodityAmount(); + List commodityTaxRates = wordsResult.getCommodityTaxRate(); + List commodityTaxs = wordsResult.getCommodityTax(); + + for (int i = 0; i < commodityNames.size(); i++) { + BssGoods good = new BssGoods(); + good.setName(commodityNames.get(i).getWord()); + if (ToolUtil.checkListSize(commodityTypes) && commodityTypes.size() > i && !StringUtil.isBlank(commodityTypes.get(i).getWord())) { + good.setSpecification(commodityTypes.get(i).getWord()); + } + if (ToolUtil.checkListSize(commodityUnits) && commodityUnits.size() > i && !StringUtil.isBlank(commodityUnits.get(i).getWord())) { + good.setUnit(commodityUnits.get(i).getWord()); + } + if (ToolUtil.checkListSize(commodityNums) && !StringUtil.isBlank(commodityNums.get(i).getWord())) { + good.setNum(Integer.valueOf(commodityNums.get(i).getWord())); + } + if (ToolUtil.checkListSize(commodityPrices) && commodityPrices.size() > i && !StringUtil.isBlank(commodityPrices.get(i).getWord())) { + good.setUnitPrice(commodityPrices.get(i).getWord()); + } + if (ToolUtil.checkListSize(commodityAmounts) && !StringUtil.isBlank(commodityAmounts.get(i).getWord())) { + good.setDetailAmount(new BigDecimal(commodityAmounts.get(i).getWord())); + } + if (ToolUtil.checkListSize(commodityTaxRates) && !StringUtil.isBlank(commodityTaxRates.get(i).getWord())) { + good.setTaxRate(commodityTaxRates.get(i).getWord()); + } + if (ToolUtil.checkListSize(commodityTaxs) && !StringUtil.isBlank(commodityTaxs.get(i).getWord())) { + good.setGoodTaxAmount(new BigDecimal(commodityTaxs.get(i).getWord())); + } + goods.add(good); + } + + vatInvoice.setInvoiceCode(wordsResult.getInvoiceCode()); + vatInvoice.setInvoiceNo(wordsResult.getInvoiceNum()); + vatInvoice.setInvoiceDate(wordsResult.getInvoiceDate()); + vatInvoice.setCheckCode(wordsResult.getCheckCode()); + vatInvoice.setInvoiceMoney(new BigDecimal(wordsResult.getTotalAmount())); + vatInvoice.setTaxAmount(new BigDecimal(wordsResult.getTotalTax())); + vatInvoice.setTotalAmount(new BigDecimal(wordsResult.getAmountInFiguers())); + vatInvoice.setTotalAmountCn(wordsResult.getAmountInWords()); + vatInvoice.setRemark(wordsResult.getRemarks()); + vatInvoice.setBssGoods(goods); + vatInvoice.setInvoiceImg(path); + vatInvoice.setInvoiceType(VatInvoiceTypeEnum.getVatInvoiceCode(wordsResult.getInvoiceType())); + + return vatInvoice; + } + + @Override + public BssVatInvoice getResultByTrain(TrainWordsResult wordsResult, String path) { + BssVatInvoice vatInvoice = new BssVatInvoice(); + + //商品 + List goods = new ArrayList<>(); + BssGoods good = new BssGoods(); + good.setName(InvoiceTypeEnum.TRAIN_INVOICE.getName()); + good.setDetailAmount(new BigDecimal(wordsResult.getTicketRates())); + good.setNum(1); + good.setUnit("张"); + good.setUnitPrice(wordsResult.getTicketRates()); + goods.add(good); + + vatInvoice.setInvoiceMoney(new BigDecimal(wordsResult.getTicketRates())); + vatInvoice.setTotalAmount(new BigDecimal(wordsResult.getTicketRates())); + vatInvoice.setRemark(wordsResult.getStartingStation().concat("至").concat(wordsResult.getDestinationStation())); + vatInvoice.setBssGoods(goods); + vatInvoice.setInvoiceImg(path); + + return vatInvoice; + } +} diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiUserServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiUserServiceImpl.java new file mode 100644 index 0000000..8401413 --- /dev/null +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/ApiUserServiceImpl.java @@ -0,0 +1,25 @@ +package com.cwhelp.modules.system.service.impl; + +import com.cwhelp.modules.system.domain.User; +import com.cwhelp.modules.system.repository.UserRepository; +import com.cwhelp.modules.system.service.ApiUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * Created by Administrator on 2019/12/2 0002. + */ +@Service +public class ApiUserServiceImpl implements ApiUserService { + + @Autowired + private UserRepository userRepository; + + @Override + public User checkLoginPremission(String telephone) { + return userRepository.findByPhone(telephone); + } + + +} diff --git a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java index 534fcde..c04dcc9 100644 --- a/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java +++ b/modules/system/src/main/java/com/cwhelp/modules/system/service/impl/UserServiceImpl.java @@ -4,7 +4,6 @@ import com.cwhelp.common.constant.AdminConst; import com.cwhelp.common.data.PageSort; import com.cwhelp.common.enums.StatusEnum; import com.cwhelp.modules.business.domain.BssPlatform; -import com.cwhelp.modules.business.repository.BssPlatformRepository; import com.cwhelp.modules.system.domain.Dept; import com.cwhelp.modules.system.domain.User; import com.cwhelp.modules.system.repository.UserRepository; @@ -34,8 +33,6 @@ public class UserServiceImpl implements UserService { @Autowired private DeptService deptService; - @Autowired - private BssPlatformRepository bssPlatformRepository; /** * 根据用户名查询用户数据 @@ -161,4 +158,12 @@ public class UserServiceImpl implements UserService { } return userRepository.updateStatus(statusEnum.getCode(), ids) > 0; } + + /** + * 根据手机号获取员工信息 + */ + @Override + public User getByPhone(String telephone) { + return userRepository.findByPhone(telephone); + } } diff --git a/sdoc/~$发票形成会计凭证类.docx b/sdoc/~$发票形成会计凭证类.docx deleted file mode 100644 index fcd42e3fa9819ae3c2e99e74ae57ff52b9d59275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 xcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oc1^`8%3f%wz diff --git a/sdoc/~$设计.docx b/sdoc/~$设计.docx deleted file mode 100644 index fcd42e3fa9819ae3c2e99e74ae57ff52b9d59275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 xcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oc1^`8%3f%wz