diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java index f09d18f3b9..85bb9d5dd8 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java @@ -15,10 +15,9 @@ public class AppIndexEnum { * 供应链 */ GYL("98ff0724-5df4-4fc7-ab6d-3996e7706acd", "供应链"), - YW("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028", "业务"), - - FK("fec4e243-491a-11ec-94cd-fa163e0cb33c", "风控"); + FK("fec4e243-491a-11ec-94cd-fa163e0cb33c", "风控"), + SH("fea6ee02-05cc-11ef-9a84-8032536963eb", "售后服务"); /** * code值 */ @@ -55,6 +54,9 @@ public class AppIndexEnum { JFKC("a204a3fa-c8ac-4795-966c-df1d0e131bcf", "家访考察"), FKZLSC("65dc12e0-9213-4364-ae81-18afa9c7e1ee", "放款资料上传"), DYBL("ab7df5a0-9708-48b1-b58a-60d7e024d0a2", "抵押办理"), + WXWB("c3a6be91-3e95-4520-b5a7-c805d8f187d7", "维修完毕-售后"), + SPSJ("781ce38b-b003-4efd-accf-fbee0ca33091", "商品上架-售后"), + PJJS("37905444-5454-4b08-897d-6c2c089c317d", "配件接收-售后"), ; /** diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexService.java index 58130a772e..ccbf4534bf 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexService.java @@ -17,6 +17,10 @@ import com.yxt.anrui.portal.biz.sysmobilemenu.SysMobileMenuService; import com.yxt.anrui.portal.biz.sysmobilemenurole.SysMobileMenuRoleService; import com.yxt.anrui.portal.biz.sysuser.SysUserService; import com.yxt.anrui.portal.biz.sysuserrole.SysUserRoleService; +import com.yxt.anrui.portal.fegin.as.AsBusrepairBillFeign; +import com.yxt.anrui.portal.fegin.as.AsToDoNumQuery; +import com.yxt.anrui.portal.fegin.wms.WmsShelfBillFeign; +import com.yxt.anrui.portal.fegin.wms.WmsToDoNumQuery; import com.yxt.anrui.riskcenter.api.loanfileexamine.LoanFileexamineFeign; import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.LoanHomevisitInvestigateFeign; import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.RiskToDoNumQuery; @@ -27,12 +31,12 @@ import com.yxt.anrui.scm.api.scmvehicleexamine.ScmVehicleExamineFeign; import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGressionFeign; import com.yxt.anrui.scm.api.scmvehicleinventory.ScmVehicleInventoryFeign; import com.yxt.anrui.scm.api.scmvehiclepatrolinspection.ScmVehiclePatrolinspectionFeign; -import com.yxt.anrui.terminal.api.risk.loanhomevisitinvestigate.LoanHomeVisitInvestigateFeign; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.result.ResultBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -74,6 +78,11 @@ public class AppIndexService { private LoanFileexamineFeign loanFileexamineFeign; @Autowired private LoanMortgageInformationTransactFeign loanMortgageInformationTransactFeign; + @Resource + private WmsShelfBillFeign wmsShelfBillFeign; + @Resource + private AsBusrepairBillFeign asBusrepairBillFeign; + public ResultBean> getBusinessList(String userSid, String appSid, String orgPath) { ResultBean> rb = ResultBean.fireFail(); if (StringUtils.isBlank(userSid) || StringUtils.isBlank(appSid)) { @@ -135,9 +144,13 @@ public class AppIndexService { CommonToDoNumQuery commonToDoNumQuery = new CommonToDoNumQuery(); BusToDoNumQuery busToDoNumQuery = new BusToDoNumQuery(); RiskToDoNumQuery riskToDoNumQuery = new RiskToDoNumQuery(); + WmsToDoNumQuery wmsToDoNumQuery = new WmsToDoNumQuery(); + AsToDoNumQuery asToDoNumQuery = new AsToDoNumQuery(); BeanUtil.copyProperties(appToDoNumQuery, commonToDoNumQuery); BeanUtil.copyProperties(appToDoNumQuery, busToDoNumQuery); BeanUtil.copyProperties(appToDoNumQuery, riskToDoNumQuery); + BeanUtil.copyProperties(appToDoNumQuery, wmsToDoNumQuery); + BeanUtil.copyProperties(appToDoNumQuery, asToDoNumQuery); //根据appSid查询菜单的信息 List sysMobileMenus = sysMobileMenuService.getMenu(appSid); List list = new ArrayList<>(); @@ -217,6 +230,28 @@ public class AppIndexService { } list.add(appIndexNumVo); } + }else if (AppIndexEnum.AppVersionSubAppSid.SH.getCode().equals(appSid)){ + //售后服务 + for (SysMobileMenu menu : sysMobileMenus) { + AppIndexNumVo appIndexNumVo = new AppIndexNumVo(); + appIndexNumVo.setSid(menu.getSid()); + //商品上架 + if (AppIndexEnum.AppMenu.SPSJ.getRemarks().equals(menu.getTitle())) { + String num = wmsShelfBillFeign.getToDoNum(wmsToDoNumQuery).getData(); + appIndexNumVo.setNum(num); + } + //配件接收 + if (AppIndexEnum.AppMenu.PJJS.getRemarks().equals(menu.getTitle())) { + String num = asBusrepairBillFeign.getToDoNum(asToDoNumQuery).getData(); + appIndexNumVo.setNum(num); + } + //维修完毕 + if (AppIndexEnum.AppMenu.WXWB.getRemarks().equals(menu.getTitle())) { + String num = asBusrepairBillFeign.getToDoNum2(asToDoNumQuery).getData(); + appIndexNumVo.setNum(num); + } + list.add(appIndexNumVo); + } } return rb.success().setData(list); diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsBusrepairBillFeign.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsBusrepairBillFeign.java new file mode 100644 index 0000000000..1b048fb103 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsBusrepairBillFeign.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.portal.fegin.as; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +@FeignClient( + contextId = "yxt-as-AsBusrepairBill", + name = "yxt-as", + path = "v1/AsBusrepairBill") +public interface AsBusrepairBillFeign { + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum") + @ResponseBody + ResultBean getToDoNum(@SpringQueryMap AsToDoNumQuery asToDoNumQuery); + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum2") + @ResponseBody + ResultBean getToDoNum2(@SpringQueryMap AsToDoNumQuery asToDoNumQuery); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsToDoNumQuery.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsToDoNumQuery.java new file mode 100644 index 0000000000..6fcc2212d6 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/as/AsToDoNumQuery.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.portal.fegin.as; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AsToDoNumQuery { + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("组织机构sid") + private String orgPath; +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsShelfBillFeign.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsShelfBillFeign.java new file mode 100644 index 0000000000..797f17ee53 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsShelfBillFeign.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.portal.fegin.wms; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @description: 售后商品上架 + * @author: fzz + * @date: 2024/3/7 + **/ +@FeignClient( + contextId = "yxt-wms-WmsShelfBill", + name = "yxt-wms", + path = "/apiadmin/WmsShelfBill" +) +public interface WmsShelfBillFeign { + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum") + @ResponseBody + ResultBean getToDoNum(@SpringQueryMap WmsToDoNumQuery wmsToDoNumQuery); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsToDoNumQuery.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsToDoNumQuery.java new file mode 100644 index 0000000000..1c0f5b76ea --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/fegin/wms/WmsToDoNumQuery.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.portal.fegin.wms; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class WmsToDoNumQuery { + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("组织机构sid") + private String orgPath; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/AsToDoNumQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/AsToDoNumQuery.java new file mode 100644 index 0000000000..c0fe092870 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/AsToDoNumQuery.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.as.api.asbusrepairbill.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AsToDoNumQuery { + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("组织机构sid") + private String orgPath; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java index f9b2526fbf..8e41f5fa35 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java @@ -81,4 +81,8 @@ public interface AsBusrepairBillMapper extends BaseMapper { @Update("update as_busrepair_bill set manuReportNo = #{manuReportNo},reportFirstDate = #{reportFirstDate} where sid = #{sid}") void updateManuReportNo(@Param("sid") String sid, @Param("manuReportNo") String manuReportNo, @Param("reportFirstDate") String reportFirstDate); + + int getToDoNum(@Param("userSid") String userSid); + + int getToDoNum2(@Param("useOrgSid") String useOrgSid); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml index de2ac33f8f..d97fce953a 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml @@ -242,6 +242,19 @@ GROUP BY i.sourceBillSid + + + + + + + diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java index b64622b887..b61caa6974 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java @@ -10,7 +10,6 @@ import com.yxt.anrui.as.api.asbusrepairbillvech.AsBusrepairBillVech; import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail; import com.yxt.anrui.as.biz.asbusrepairbillinvoice.AsBusrepairBillInvoiceService; import com.yxt.anrui.as.biz.asbusrepairbillsitem.AsBusrepairBillSitemService; -import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRepairerRest; import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRepairerService; import com.yxt.anrui.as.biz.asbusrepairbillvech.AsBusrepairBillVechService; import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService; @@ -19,6 +18,7 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -288,6 +288,13 @@ public class AsBusrepairBillRest { return rb.success().setData(pv); } + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum") + @ResponseBody + ResultBean getToDoNum(@SpringQueryMap AsToDoNumQuery asToDoNumQuery) { + return asBusrepairBillService.getToDoNum(asToDoNumQuery); + } + @PostMapping("/submitList") @ApiOperation("配件确认提交") ResultBean submitList(@RequestBody GoodsReceiveSubmit query) { @@ -311,6 +318,13 @@ public class AsBusrepairBillRest { return rb.success().setData(pv); } + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum2") + @ResponseBody + ResultBean getToDoNum2(@SpringQueryMap AsToDoNumQuery asToDoNumQuery) { + return asBusrepairBillService.getToDoNum2(asToDoNumQuery); + } + @PostMapping("/submitList2") @ApiOperation("维修确认提交") ResultBean submitList2(@RequestBody GoodsReceiveSubmit query) { diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index d7ae07c44e..fc94882891 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -2131,6 +2131,13 @@ public class AsBusrepairBillService extends MybatisBaseService getToDoNum(AsToDoNumQuery asToDoNumQuery) { + ResultBean rb = ResultBean.fireFail(); + String userSid = asToDoNumQuery.getUserSid(); + int count = baseMapper.getToDoNum(userSid); + return rb.success().setData(String.valueOf(count)); + } + public void submitList(GoodsReceiveSubmit query) { List list = query.getList(); if (!list.isEmpty()) { @@ -2176,6 +2183,24 @@ public class AsBusrepairBillService extends MybatisBaseService getToDoNum2(AsToDoNumQuery asToDoNumQuery) { + ResultBean rb = ResultBean.fireFail(); + String orgPath = asToDoNumQuery.getOrgPath(); + List split = Arrays.asList(orgPath.split("/")); + String useOrgSid = ""; + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + useOrgSid = sysOrganization1.getSid(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + useOrgSid = sysOrganization.getSid(); + } + String userSid = asToDoNumQuery.getUserSid(); + int count = baseMapper.getToDoNum2(useOrgSid); + return rb.success().setData(String.valueOf(count)); + } + public void submitList2(GoodsReceiveSubmit query) { List list = query.getList(); if (!list.isEmpty()) { @@ -2941,4 +2966,7 @@ public class AsBusrepairBillService extends MybatisBaseService getInit(@RequestParam("sid") String sid,@RequestParam("orgPath")String orgPath,@RequestParam("userSid")String userSid) { - return wmsShelfBillService.getInit(sid,orgPath,userSid); + ResultBean getInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid) { + return wmsShelfBillService.getInit(sid, orgPath, userSid); } @ApiOperation("确认") @@ -84,6 +82,13 @@ public class WmsShelfBillRest { return rb.success().setData(pv); } + @ApiOperation("手机端-查询本分公司下代办数量:切换机构") + @GetMapping("/getToDoNum") + @ResponseBody + ResultBean getToDoNum(@SpringQueryMap WmsToDoNumQuery wmsToDoNumQuery) { + return wmsShelfBillService.getToDoNum(wmsToDoNumQuery); + } + @ApiOperation("上架初始化") @GetMapping("shelvesOperaInit/{sid}") public ResultBean shelvesOperaInit(@PathVariable("sid") String sid) { @@ -93,8 +98,8 @@ public class WmsShelfBillRest { @ApiOperation("扫码") @GetMapping("scan") - public ResultBean scan(@RequestParam(value = "shelvesId", required = false) String shelvesId,@RequestParam(value = "content") String content) { - return wmsShelfBillService.scan(shelvesId,content); + public ResultBean scan(@RequestParam(value = "shelvesId", required = false) String shelvesId, @RequestParam(value = "content") String content) { + return wmsShelfBillService.scan(shelvesId, content); } @ApiOperation("上架保存") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java index abea45be14..5a51b40c58 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java @@ -24,4 +24,6 @@ public interface WmsShelfBillMapper extends BaseMapper { String selectCodeNum(String bill); IPage applistPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int getToDoNum(@Param("userSid") String userSid); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml index f0be9249bc..7c836db1bd 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml @@ -69,4 +69,8 @@ ${ew.sqlSegment} + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java index 28c76146a8..071b6dc736 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java @@ -38,8 +38,6 @@ import com.yxt.wms.biz.inventory.wmsshelfbill.app.*; import com.yxt.wms.biz.inventory.wmsshelfbilldetail.*; import com.yxt.wms.feign.as.AsBusrepairInventorybill; import com.yxt.wms.feign.as.AsBusrepairInventorybillFeign; -import com.yxt.wms.feign.as.asbusrepairbill.AsBusrepairBill; -import com.yxt.wms.feign.as.asbusrepairbill.AsBusrepairBillFeign; import com.yxt.wms.feign.as.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail; import com.yxt.wms.feign.as.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailFeign; import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpu; @@ -595,6 +593,13 @@ public class WmsShelfBillService extends MybatisBaseService getToDoNum(WmsToDoNumQuery wmsToDoNumQuery) { + ResultBean rb = ResultBean.fireFail(); + String userSid = wmsToDoNumQuery.getUserSid(); + int count = baseMapper.getToDoNum(userSid); + return rb.success().setData(String.valueOf(count)); + } + public ResultBean shelvesOperaInit(String sid) { ResultBean rb = ResultBean.fireFail(); AppShelInitVo vo = new AppShelInitVo(); @@ -1307,4 +1312,6 @@ public class WmsShelfBillService extends MybatisBaseService