FengChaoYu hace 6 meses
padre
commit
10fda869cd

+ 71 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/worker/WorkerTeamVO.java

@@ -0,0 +1,71 @@
+package com.gree.mall.manager.bean.worker;
+
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.enums.material.StateEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+@ZfireField(tbName = "a")
+public class WorkerTeamVO {
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户id")
+    private String companyWechatId;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户名称")
+    private String companyWechatName;
+
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "所属公司")
+    private String belongCompany;
+
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "所属公司编号")
+    private String belongCompanyCode;
+
+    @ApiModelProperty(value = "网点编号")
+    private String websitId;
+
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "网点名称")
+    private String name;
+
+    @ZfireField(tbName = "c", colName = "nick_name")
+    @ApiModelProperty(value = "大工师傅名称")
+    private String masterWorkerName;
+
+    @ApiModelProperty(value = "大工师傅编号")
+    private String masterWorkerId;
+
+    @ZfireField(tbName = "d", colName = "nick_name")
+    @ApiModelProperty(value = "小工师傅名称")
+    private String assistantWorkerName;
+
+    @ApiModelProperty(value = "小工师傅编号")
+    private String assistantWorkerId;
+
+    @ApiModelProperty(value = "状态")
+    private StateEnum status;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

+ 3 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CommonMapper.java

@@ -31,6 +31,7 @@ import com.gree.mall.manager.bean.settle.SettleExpenseVO;
 import com.gree.mall.manager.bean.settle.SettleMonthWagesVO;
 import com.gree.mall.manager.bean.settle.SettleMonthWagesWorkerVO;
 import com.gree.mall.manager.bean.settle.repair.*;
+import com.gree.mall.manager.bean.worker.WorkerTeamVO;
 import com.gree.mall.manager.bean.workorder.*;
 import com.gree.mall.manager.enums.UserTypeEnum;
 import com.gree.mall.manager.plus.entity.ComList;
@@ -729,4 +730,6 @@ public interface CommonMapper {
                                        @Param("onDate") Date onDate);
 
     List<String> selectMainContractIdByValidDate(@Param("companyId") String companyWechatId, @Param("onDate") Date validDate);
+
+    IPage<WorkerTeamVO> workerTeamPage(Page page, @Param("ex") ZfireParamBean zfireParamBean);
 }

+ 67 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/worker/WorkerTeamController.java

@@ -0,0 +1,67 @@
+package com.gree.mall.manager.controller.worker;
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.admin.AdminWebsitNewBean;
+import com.gree.mall.manager.bean.worker.WorkerTeamVO;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.helper.ResponseHelper;
+import com.gree.mall.manager.logic.worker.WorkerTeamLogic;
+import com.gree.mall.manager.plus.entity.WorkerTeam;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Slf4j
+@RestController
+@Api(value = "师傅组别", tags = {"师傅组别"})
+@RequestMapping(value = "/worker/team", produces = "application/json; charset=utf-8")
+public class WorkerTeamController {
+
+    @Resource
+    WorkerTeamLogic workerTeamLogic;
+
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "列表")
+    public ResponseHelper<IPage<WorkerTeamVO>> list(@RequestBody ZfireParamBean zfireParamBean) {
+        IPage<WorkerTeamVO> list = workerTeamLogic.list(zfireParamBean);
+        return ResponseHelper.success(list, new TypeReference<WorkerTeamVO>() {
+        });
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation(value = "导出")
+    public void listExport(@RequestBody ZfireParamBean zfireParamBean, HttpServletRequest request, HttpServletResponse response) throws Exception {
+        //2.查询要导出的内容
+        IPage<WorkerTeamVO> list = workerTeamLogic.list(zfireParamBean);
+        //3.导出
+        FieldUtils.exportData(list.getRecords(), zfireParamBean.getExportFields(), request, response);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("新增")
+    public ResponseHelper add(@RequestBody WorkerTeam workerTeam) throws RemoteServiceException, WxErrorException {
+        workerTeamLogic.add(workerTeam);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("修改")
+    public ResponseHelper update(@RequestBody WorkerTeam workerTeam) throws RemoteServiceException, WxErrorException {
+        workerTeamLogic.update(workerTeam);
+        return ResponseHelper.success();
+    }
+}

+ 2 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java

@@ -268,10 +268,10 @@ public class AdminWebsitLogic {
         AdminUserAddReqBean adminUser = new AdminUserAddReqBean();
         adminUser.setCompanyWechatId(adminWebsit.getCompanyWechatId())
                 .setCompanyName(adminWebsit.getCompanyWechatName())
-                .setUserName(adminWebsit.getWebsitId())
+                .setUserName(adminWebsit.getWebsitId() + "01")
                 .setNickName(adminWebsit.getName())
                 .setRoleId("1831614042544427009")
-                .setPassword(adminWebsit.getWebsitId() + "01")
+                .setPassword("123456")
                 .setPubNotice(true)
                 .setIsVender(false)
                 .setLinkPhone(adminWebsit.getLinkMobile());

+ 78 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/worker/WorkerTeamLogic.java

@@ -0,0 +1,78 @@
+package com.gree.mall.manager.logic.worker;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.bean.admin.AdminUserCom;
+import com.gree.mall.manager.bean.worker.WorkerTeamVO;
+import com.gree.mall.manager.commonmapper.CommonMapper;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.plus.entity.WorkerTeam;
+import com.gree.mall.manager.plus.service.WorkerTeamService;
+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.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class WorkerTeamLogic {
+
+    private final CommonLogic commonLogic;
+    private final CommonMapper commonMapper;
+    private final WorkerTeamService workerTeamService;
+
+    public IPage<WorkerTeamVO> list(ZfireParamBean zfireParamBean) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        FieldUtils.supplyParam(zfireParamBean, WorkerTeamVO.class, adminUser);
+        return commonMapper.workerTeamPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
+    }
+
+    public void add(WorkerTeam workerTeam) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        workerTeam.setCompanyWechatId(adminUser.getCompanyWechatId())
+                .setCompanyWechatName(adminUser.getCompanyName());
+        this.validParams(workerTeam);
+        this.checkUniqueTeam(workerTeam);
+
+        workerTeam.insert();
+    }
+
+    public void update(WorkerTeam workerTeam) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        final WorkerTeam old = workerTeamService.getById(workerTeam.getId());
+        workerTeam.setCompanyWechatId(old.getCompanyWechatId())
+                .setCompanyWechatName(old.getCompanyWechatName());
+        this.validParams(workerTeam);
+
+        workerTeam.updateById();
+    }
+
+    private void validParams(WorkerTeam workerTeam) {
+        if (StringUtils.isBlank(workerTeam.getWebsitId())) {
+            throw new RemoteServiceException("所属网点不能为空");
+        }
+        if (StringUtils.isBlank(workerTeam.getMasterWorkerId())) {
+            throw new RemoteServiceException("大工师傅不能为空");
+        }
+        if (StringUtils.isBlank(workerTeam.getAssistantWorkerId())) {
+            throw new RemoteServiceException("小工师傅不能为空");
+        }
+    }
+
+    private void checkUniqueTeam(WorkerTeam workerTeam) {
+        final Integer count = workerTeamService.lambdaQuery()
+                .eq(WorkerTeam::getCompanyWechatId, workerTeam.getCompanyWechatId())
+                .eq(WorkerTeam::getWebsitId, workerTeam.getWebsitId())
+                .eq(WorkerTeam::getMasterWorkerId, workerTeam.getMasterWorkerId())
+                .eq(WorkerTeam::getAssistantWorkerId, workerTeam.getAssistantWorkerId())
+                .ne(StringUtils.isNotBlank(workerTeam.getId()), WorkerTeam::getId, workerTeam.getId())
+                .count();
+        if (count > 0) {
+            throw new RemoteServiceException(workerTeam.getWebsitId() + "已存在一组同样师傅的记录" + workerTeam.getAssistantWorkerId() + "," + workerTeam.getAssistantWorkerId());
+        }
+    }
+}

+ 23 - 0
mall-server-api/src/main/resources/mapper/CommonMapper.xml

@@ -1513,4 +1513,27 @@
             AND `status` = 'ON'
             AND #{onDate} BETWEEN valid_date AND expire_date
     </select>
+
+    <select id="workerTeamPage" resultType="com.gree.mall.manager.bean.worker.WorkerTeamVO">
+        SELECT
+            ${ex.selected},
+            c.nick_name AS masterWorkerName,
+            d.nick_name AS assistantWorkerName
+        FROM
+            worker_team a
+            LEFT JOIN admin_websit b ON a.websit_id = b.websit_id
+            LEFT JOIN user c ON a.master_worker_id = c.worker_number
+            LEFT JOIN user d ON a.assistant_worker_id = d.worker_number
+        ${ex.query}
+        <if test="ex.adminWebsitIds != null and ex.adminWebsitIds.size > 0">
+            AND a.websit_id IN
+            <foreach item="item" index="index" collection="ex.adminWebsitIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
 </mapper>