浏览代码

Merge remote-tracking branch 'origin/develop' into develop

‘linchangsheng’ 9 月之前
父节点
当前提交
99dbe51662

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/bean/listvo/workorder/UserWaitVO.java

@@ -30,7 +30,7 @@ public class UserWaitVO {
     private String websitName;
 
     @ApiModelProperty(value = "师傅编号")
-    private String workerNnumber;
+    private String workerNumber;
 
     @ApiModelProperty(value = "名称")
     private String name;

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/constant/SysDictConstant.java

@@ -10,5 +10,6 @@ public class SysDictConstant {
     //工单渠道
     public final static String ORDER_CHANNEL = "ORDER_CHANNEL";
 
-
+    // 维修日结
+    public final static String REPAIR_DAILY = "REPAIR_DAILY";
 }

+ 19 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/settle/repair/DailyWithholdController.java

@@ -7,6 +7,7 @@ import com.gree.mall.manager.bean.settle.repair.DailyWithholdVO;
 import com.gree.mall.manager.helper.ResponseHelper;
 import com.gree.mall.manager.logic.settle.repair.DailyWithholdLogic;
 import com.gree.mall.manager.plus.entity.SettleDailyWithhold;
+import com.gree.mall.manager.plus.entity.SysDictCompany;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -15,6 +16,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+
 @Slf4j
 @RestController
 @Api(value = "维修日结算扣款配置API", tags = {"维修日结算扣款配置API"})
@@ -72,4 +75,20 @@ public class DailyWithholdController {
         dailyWithholdLogic.delete(id);
         return ResponseHelper.success();
     }
+
+    @PostMapping("/config/get")
+    @ApiOperation(value = "获取结算汇总暂扣款比例")
+    public ResponseHelper<SysDictCompany> getConfig()
+    {
+        SysDictCompany dict = dailyWithholdLogic.getConfig();
+        return ResponseHelper.success(dict);
+    }
+
+    @PostMapping("/config/save")
+    @ApiOperation(value = "配置结算汇总暂扣款比例")
+    public ResponseHelper saveConfig(
+            @ApiParam(required = true, value = "10%请传0.1") @RequestParam BigDecimal rate) {
+        dailyWithholdLogic.saveConfig(rate);
+        return ResponseHelper.success();
+    }
 }

+ 59 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/settle/repair/DailyWithholdLogic.java

@@ -5,15 +5,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.settle.repair.DailyWithholdVO;
 import com.gree.mall.manager.commonmapper.CommonMapper;
+import com.gree.mall.manager.constant.SysDictConstant;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.plus.entity.SettleDailyWithhold;
+import com.gree.mall.manager.plus.entity.SysDictCompany;
 import com.gree.mall.manager.plus.service.SettleDailyWithholdService;
+import com.gree.mall.manager.plus.service.SysDictCompanyService;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.Objects;
 
 @Service
 @Slf4j
@@ -23,6 +30,7 @@ public class DailyWithholdLogic {
     private final CommonLogic commonLogic;
     private final CommonMapper commonMapper;
     private final SettleDailyWithholdService settleDailyWithholdService;
+    private final SysDictCompanyService sysDictCompanyService;
 
     public IPage<DailyWithholdVO> page(ZfireParamBean zfireParamBean) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
@@ -56,4 +64,55 @@ public class DailyWithholdLogic {
     public void delete(String id) {
         settleDailyWithholdService.removeById(id);
     }
+
+    public SysDictCompany getConfig() {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        SysDictCompany dict = sysDictCompanyService.lambdaQuery()
+                .eq(Objects.nonNull(adminUser.getAdminCompanyWechat()), SysDictCompany::getCompanyWechatId, adminUser.getAdminCompanyWechat().getCompanyWechatId())
+                .eq(SysDictCompany::getDictCode, SysDictConstant.REPAIR_DAILY)
+                .last("limit 1")
+                .one();
+
+        if (Objects.isNull(dict)) {
+            dict = new SysDictCompany();
+            dict.setDictType(SysDictConstant.REPAIR_DAILY);
+            dict.setDictCode(SysDictConstant.REPAIR_DAILY);
+            dict.setDictValue("0");
+            dict.setRemark("维修日结算扣款配置-结算汇总暂扣款比例");
+            dict.setCompanyWechatId(adminUser.getAdminCompanyWechat().getCompanyWechatId());
+            dict.setCompanyName(adminUser.getAdminCompanyWechat().getCompanyWechatId());
+        }
+
+        return dict;
+    }
+
+    @Transactional
+    public void saveConfig(BigDecimal rate) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        if (adminUser.getType() == 2) {
+            throw new RemoteServiceException("平台账号禁止操作");
+        }
+
+        if (rate.doubleValue() > 1 || rate.doubleValue() < 0) {
+            throw new RemoteServiceException("不可大于100%,且必须为正数");
+        }
+        sysDictCompanyService.lambdaUpdate()
+                .eq(SysDictCompany::getCompanyWechatId, adminUser.getAdminCompanyWechat().getCompanyWechatId())
+                .eq(SysDictCompany::getDictCode, SysDictConstant.REPAIR_DAILY)
+                .remove();
+
+        SysDictCompany dict = new SysDictCompany();
+        dict.setDictType(SysDictConstant.REPAIR_DAILY);
+        dict.setDictCode(SysDictConstant.REPAIR_DAILY);
+        dict.setDictValue(String.valueOf(rate));
+        dict.setRemark("维修日结算扣款配置-结算汇总暂扣款比例");
+        dict.setCompanyWechatId(adminUser.getAdminCompanyWechat().getCompanyWechatId());
+        dict.setCompanyName(adminUser.getAdminCompanyWechat().getCompanyWechatId());
+
+
+        dict.insert();
+    }
+
 }

+ 8 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/user/UserLogic.java

@@ -315,6 +315,14 @@ public class UserLogic {
         if (StringUtils.isBlank(websitUser.getWorkerNumber())) {
             throw new RemoteServiceException("师傅编号不能为空");
         }
+        final Integer count = websitUserService.lambdaQuery()
+                .eq(WebsitUser::getWebsitId, websitUser.getWebsitId())
+                .eq(WebsitUser::getWorkerNumber, websitUser.getWorkerNumber())
+                .eq(WebsitUser::getExamineStatus, ExamineStatusEnum.OK.getKey())
+                .count();
+        if (count > 0) {
+            throw new RemoteServiceException(websitUser.getWebsitId() + "网点编号下已存在" + websitUser.getWorkerNumber() + "师傅编号");
+        }
         websitUser.setExamineStatus(examineStatus);
         websitUser.setExamineTime(new Date());
         websitUser.setExamineBy(adminUser.getNickName());