123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- package com.pj.project.tb_business;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import cn.dev33.satoken.stp.StpUtil;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.util.StrUtil;
- import cn.hutool.json.JSONUtil;
- import cn.hutool.log.StaticLog;
- import com.pj.constants.UserTypeEnum;
- import com.pj.current.satoken.StpUserUtil;
- import com.pj.project.tb_account.AutomaticPay;
- import com.pj.project.tb_business_car.TbBusinessCar;
- import com.pj.project.tb_business_car.TbBusinessCarService;
- import com.pj.project.tb_business_item.TbBusinessItem;
- import com.pj.project.tb_business_item.TbBusinessItemService;
- import com.pj.project.tb_costomer.TbCostomerService;
- import com.pj.project.tb_declare.TbDeclareService;
- import com.pj.project.tb_item.TbItem;
- import com.pj.project.tb_notices.TbNoticesService;
- import com.pj.utils.sg.AjaxError;
- import com.pj.utils.sg.AjaxJson;
- import com.pj.utils.so.SoMap;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- /**
- * Controller: tb_business -- 入境登记
- *
- * @author qzy
- */
- @RestController
- @RequestMapping("/TbBusiness/")
- public class TbBusinessController {
- /**
- * 底层 Service 对象
- */
- @Autowired
- TbBusinessService tbBusinessService;
- @Resource
- private TbBusinessItemService tbBusinessItemService;
- @Resource
- private TbNoticesService tbNoticesService;
- @Resource
- private TbBusinessCarService tbBusinessCarService;
- @RequestMapping(value = "getMsg")
- public AjaxJson getMsg() {
- return AjaxJson.getSuccessData(BusinessMessageManager.get(StpUserUtil.getCustomerId()));
- }
- /**
- * 确认业务
- */
- @RequestMapping("confirm")
- @Transactional(rollbackFor = Exception.class)
- public AjaxJson confirm() {
- if (!StpUtil.hasPermissionAnd(TbBusiness.PERMISSION_CONFIRM) && !
- StrUtil.equals(StpUserUtil.getCustomerId(), UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("无确认业务权限");
- }
- SoMap so = SoMap.getRequestSoMap();
- List<String> ids = so.getListByComma("ids", String.class);
- tbBusinessService.confirm(ids);
- return AjaxJson.getSuccess();
- }
- /**
- * 确认业务
- */
- @RequestMapping("adminConfirmPay")
- @Transactional(rollbackFor = Exception.class)
- public AjaxJson adminConfirmPay() {
- if (!StrUtil.equals(StpUserUtil.getCustomerId(), UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("无确认支付权限");
- }
- SoMap so = SoMap.getRequestSoMap();
- List<String> ids = so.getListByComma("ids", String.class);
- String ticket = so.getString("payTicket");
- tbBusinessService.adminConfirmPay(ids, ticket);
- return AjaxJson.getSuccess();
- }
- /**
- * 查 - 根据id
- */
- @RequestMapping("getById")
- public AjaxJson getById(String id) {
- TbBusiness t = tbBusinessService.getById(id);
- List<TbBusinessItem> items = tbBusinessItemService.findByBusinessId(id);
- items.forEach(tbBusinessItem -> tbBusinessItem.setGoodsName(t.getGoodsName()).setCardNo(t.getCardNo()).setChinaCarNo(t.getChinaCarNo()));
- t.setItems(items);
- List<TbBusinessCar> cars = tbBusinessCarService.findOtherBusinessCar(id);
- t.setCars(cars);
- return AjaxJson.getSuccessData(t);
- }
- /**
- * 查 - 根据id
- */
- @RequestMapping("checkReport")
- public AjaxJson checkReport(String businessCarId) {
- List<TbBusiness> businessList = tbBusinessService.findOtherBusinessByCarId(businessCarId);
- return AjaxJson.getSuccessData(businessList);
- }
- /**
- * 查集合 - 根据条件(参数为空时代表忽略指定条件)
- */
- @RequestMapping("getList")
- public AjaxJson getList() {
- SoMap so = SoMap.getRequestSoMap();
- String currentCustomerId = StpUserUtil.getCustomerId();
- if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- so.put("customerId", currentCustomerId);
- }
- List<TbBusiness> list = tbBusinessService.getList(so.startPage());
- return AjaxJson.getPageData(so.getDataCount(), list);
- }
- /**
- * 查集合 - 根据条件(参数为空时代表忽略指定条件)
- */
- @RequestMapping("getCarDisincleList")
- public AjaxJson getCarDisincleList() {
- SoMap so = SoMap.getRequestSoMap();
- String currentCustomerId = StpUserUtil.getCustomerId();
- if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- so.put("customerId", currentCustomerId);
- }
- List<CarDisincle> list = tbBusinessService.getCarDisincleList(so.startPage());
- return AjaxJson.getPageData(so.getDataCount(), list);
- }
- /**
- * 查集合 - 根据条件(参数为空时代表忽略指定条件)
- */
- @RequestMapping("getOtherBusiness")
- public AjaxJson getOtherBusiness() {
- SoMap so = SoMap.getRequestSoMap();
- String currentCustomerId = StpUserUtil.getCustomerId();
- if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- so.put("createByCustomerId", currentCustomerId);
- }
- List<TbBusiness> list = tbBusinessService.getList(so.startPage());
- return AjaxJson.getPageData(so.getDataCount(), list);
- }
- /**
- * 改
- */
- @RequestMapping("pay")
- public AjaxJson pay() {
- if (!StpUtil.hasPermissionAnd("tb-business-pay") && !
- StrUtil.equals(StpUserUtil.getCustomerId(), UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("无支付权限");
- }
- SoMap so = SoMap.getRequestSoMap();
- String id = so.getString("id");
- String payTicket = so.getString("payTicket");
- tbBusinessService.pay(id, payTicket);
- return AjaxJson.getSuccess();
- }
- @RequestMapping("adminSetIn")
- public AjaxJson adminSetIn() {
- if (!StrUtil.equals(StpUserUtil.getCustomerId(), UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("无入场权限");
- }
- SoMap so = SoMap.getRequestSoMap();
- String id = so.getString("id");
- Date inTime = so.getDateTime("realInTime");
- Date chinaCarInTime = so.getDateTime("chinaCarInTime");
- TbBusiness tbBusiness = tbBusinessService.getById(id);
- tbBusiness.setChinaCarInTime(chinaCarInTime).setRealInTime(inTime).setAdminConfirmIn(1);
- tbBusinessService.updateById(tbBusiness);
- //更新境外车入场记录
- //更新中国车入场记录
- //发送消息
- String text = "您的车辆已入场,业务单号[" + tbBusiness.getNo() + "]";
- tbNoticesService.sendNotice(tbBusiness.getId(), tbBusiness.getNo(), tbBusiness.getCustomerId(), text);
- return AjaxJson.getSuccess();
- }
- @RequestMapping("complete")
- public AjaxJson complete(TbBusiness business) {
- if (!StrUtil.equals(StpUserUtil.getCustomerId(), UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("无生成账单权限");
- }
- business.setComplete(1);
- tbBusinessService.updateById(business);
- tbBusinessService.storeMsg(business.getCustomerId(), "业务订单【" + business.getNo() + "】账单已生成!" + DateUtil.now() + "。");
- //发送消息
- String text = "您的账单已生成,业务单号[" + business.getNo() + "]";
- tbNoticesService.sendNotice(business.getId(), business.getNo(), business.getCustomerId(), text);
- return AjaxJson.getSuccessData(business);
- }
- @RequestMapping("uploadReport")
- public AjaxJson uploadReport(@RequestBody TbBusiness tbBusiness) {
- tbBusinessService.uploadReport(tbBusiness);
- return AjaxJson.getSuccess();
- }
- @RequestMapping("getOtherBusinessById")
- public AjaxJson getOtherBusinessById(String id) {
- return AjaxJson.getSuccessData(tbBusinessService.getOtherBusinessById(id));
- }
- @RequestMapping("getZxBusinessById")
- public AjaxJson getZxBusinessById(String id) {
- return AjaxJson.getSuccessData(tbBusinessService.getZxBusinessById(id));
- }
- @RequestMapping("deleteOtherBusiness")
- public AjaxJson deleteOtherBusiness(String id, String businessCarId) {
- tbBusinessService.deleteOtherBusiness(id);
- return AjaxJson.getSuccess();
- }
- /**
- * 线下收费
- *
- * @return
- */
- @RequestMapping("manualConfirm")
- @SaCheckPermission(TbBusiness.PERMISSION_MANUAL_PAY)
- public AjaxJson manualConfirm() {
- SoMap so = SoMap.getRequestSoMap();
- String id = so.getString("id");
- String remark = so.getString("remark");
- String cars = so.getString("cars");
- Date payTime = so.getDateTime("payTime");
- int payChannelType = so.getInt("payChannelType");
- int payType = so.getInt("payType");
- String transactionId = so.getString("transactionId");
- List<TbBusinessCar> carList = JSONUtil.toList(cars, TbBusinessCar.class);
- tbBusinessService.manualConfirmPay(id, carList, remark,payTime,payChannelType,payType,transactionId);
- return AjaxJson.getSuccess();
- }
- @RequestMapping(value = "unBindCar")
- public AjaxJson unBindCar(String id, String businessCarId) {
- tbBusinessService.unBindCar(id, businessCarId);
- return AjaxJson.getSuccess();
- }
- @RequestMapping(value = "addOtherBusiness")
- @SaCheckPermission(value = TbBusiness.PERMISSION_FLAX_BUSINESS_ADD)
- public AjaxJson addOtherBusiness(OtherBusinessBO otherBusinessBO) {
- List<TbItem> items = JSONUtil.toList(otherBusinessBO.getItemJson(), TbItem.class);
- List<TbBusinessCar> cars = JSONUtil.toList(otherBusinessBO.getCarJson(), TbBusinessCar.class);
- otherBusinessBO.setItems(items).setCars(cars);
- tbBusinessService.addOtherBusiness(otherBusinessBO);
- return AjaxJson.getSuccess();
- }
- @RequestMapping(value = "editOtherBusiness")
- @SaCheckPermission(value = TbBusiness.PERMISSION_FLAX_BUSINESS_EDIT)
- public AjaxJson editOtherBusiness(OtherBusinessBO otherBusinessBO) {
- List<TbItem> items = JSONUtil.toList(otherBusinessBO.getItemJson(), TbItem.class);
- List<TbBusinessCar> cars = JSONUtil.toList(otherBusinessBO.getCarJson(), TbBusinessCar.class);
- otherBusinessBO.setItems(items).setCars(cars);
- tbBusinessService.editOtherBusiness(otherBusinessBO);
- return AjaxJson.getSuccess();
- }
- @RequestMapping(value = "bindOtherBusinessCar")
- @SaCheckPermission(value = TbBusiness.PERMISSION_FLAX_BUSINESS_EDIT)
- public AjaxJson bindOtherBusinessCar() {
- SoMap soMap = SoMap.getRequestSoMap();
- String businessId = soMap.getString("businessId");
- String businessCarIds = soMap.getString("businessCarIds");
- tbBusinessService.bindOtherBusinessCar(businessId, StrUtil.splitTrim(businessCarIds, ","));
- return AjaxJson.getSuccess();
- }
- /**
- * 选择的方式添加异常单
- *
- * @return
- */
- @RequestMapping("selectErrorBusiness")
- @SaCheckPermission(value = {TbBusiness.TB_SUPPLEMENT_ADD, TbBusiness.TB_SUPPLEMENT_PUSH})
- public AjaxJson selectErrorBusiness(ErrorBusinessBO errorBusinessBO) {
- if (StrUtil.isEmpty(errorBusinessBO.getSupplementReason())) {
- throw new AjaxError("填写补录原因");
- }
- List<TbBusinessCar> cars = JSONUtil.toList(errorBusinessBO.getCarJson(), TbBusinessCar.class);
- errorBusinessBO.setCars(cars);
- errorBusinessBO.setSupplementBy(StpUserUtil.getCreateBy());
- String currentCustomerId = StpUserUtil.getCustomerId();
- StaticLog.info("currentCustomerId============= :{}", currentCustomerId);
- tbBusinessService.selectErrorBusiness(errorBusinessBO, currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId()));
- return AjaxJson.getSuccess();
- }
- /**
- * 添加异常单
- *
- * @param errorBusinessBO
- * @return
- */
- @RequestMapping(value = "addErrorBusiness")
- @SaCheckPermission(value = TbBusiness.TB_SUPPLEMENT_ADD)
- public AjaxJson addErrorBusiness(ErrorBusinessBO errorBusinessBO) {
- List<TbItem> items = JSONUtil.toList(errorBusinessBO.getItemJson(), TbItem.class);
- List<TbBusinessCar> cars = JSONUtil.toList(errorBusinessBO.getCarJson(), TbBusinessCar.class);
- errorBusinessBO.setItems(items).setCars(cars);
- errorBusinessBO.setSupplementBy(StpUserUtil.getCreateBy());
- String currentCustomerId = StpUserUtil.getCustomerId();
- tbBusinessService.addErrorBusiness(errorBusinessBO, currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId()));
- return AjaxJson.getSuccess();
- }
- /**
- * 编辑异常单
- *
- * @param errorBusinessBO
- * @return
- */
- @RequestMapping(value = "editErrorBusiness")
- @SaCheckPermission(value = TbBusiness.TB_SUPPLEMENT_EDIT)
- public AjaxJson editErrorBusiness(ErrorBusinessBO errorBusinessBO) {
- List<TbItem> items = JSONUtil.toList(errorBusinessBO.getItemJson(), TbItem.class);
- List<TbBusinessCar> cars = JSONUtil.toList(errorBusinessBO.getCarJson(), TbBusinessCar.class);
- errorBusinessBO.setItems(items).setCars(cars);
- errorBusinessBO.setSupplementBy(StpUserUtil.getCreateBy());
- tbBusinessService.editErrorBusiness(errorBusinessBO);
- return AjaxJson.getSuccess();
- }
- /**
- * 发起OA流程
- *
- * @param id
- * @return
- */
- @RequestMapping("applyOA")
- @SaCheckPermission(value = {TbBusiness.TB_SUPPLEMENT_ADD, TbBusiness.TB_SUPPLEMENT_PUSH})
- public AjaxJson applyOA(@RequestParam String id) {
- String currentCustomerId = StpUserUtil.getCustomerId();
- if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
- return AjaxJson.getError("您无权发起流程");
- }
- tbBusinessService.applyOA(id, StpUserUtil.getAdmin().getNickname());
- return AjaxJson.getSuccess();
- }
- // ------------------------- 前端接口 -------------------------
- /**
- * 根据车辆记录查找业务
- *
- * @param businessCarId
- * @return
- */
- @RequestMapping("getByBusinessCarId")
- public AjaxJson getByBusinessCarId(@RequestParam String businessCarId) {
- return AjaxJson.getSuccessData(tbBusinessService.findOtherBusinessByCarId(businessCarId));
- }
- }
|