‘linchangsheng’ 5 mesiacov pred
rodič
commit
b9b9f8b852

+ 42 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/letter/LeDepartmentVO.java

@@ -0,0 +1,42 @@
+package com.gree.mall.manager.bean.letter;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.plus.entity.LeDepartment;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@ApiModel
+@Data
+public class LeDepartmentVO   {
+
+    @ZfireField(hide = true)
+    @TableId(value = "id", type = IdType.ID_WORKER_STR)
+    private String id;
+
+    @ApiModelProperty(value = "科室")
+    private String dapartment;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+}

+ 127 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/letter/LeLetterVO.java

@@ -0,0 +1,127 @@
+package com.gree.mall.manager.bean.letter;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.enums.LetterStatusEnum;
+import com.gree.mall.manager.plus.entity.LeLetter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@ApiModel
+@Data
+public class LeLetterVO  {
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "id")
+    @TableId(value = "le_letter_id", type = IdType.ID_WORKER_STR)
+    private String leLetterId;
+
+    @ApiModelProperty(value = "下发时间")
+    private Date sendTime;
+
+    @ApiModelProperty(value = "联络函编号")
+    private String letterNumber;
+
+    @ApiModelProperty(value = "状态")
+    private LetterStatusEnum status;
+
+    @ApiModelProperty(value = "所属公司")
+    private String belongCompany;
+
+    @ApiModelProperty(value = "所属公司编号")
+    private String belongCompanyCode;
+
+    @ApiModelProperty(value = "网点编号")
+    private String websitId;
+
+    @ApiModelProperty(value = "网点名称")
+    private String websitName;
+
+    @ApiModelProperty(value = "本年所发函件次数")
+    private Integer letterNum;
+
+    @ApiModelProperty(value = "本年该单位所发函件次数")
+    private Integer letteWebsitNum;
+
+    @ApiModelProperty(value = "工单编号")
+    private String orderId;
+
+    @ApiModelProperty(value = "工单类型")
+    private String orderSmallType;
+
+    @ApiModelProperty(value = "工单类型名称")
+    private String orderSmallTypeText;
+
+    @ApiModelProperty(value = "工单创建时间")
+    private Date orderCreateTime;
+
+    private String projectId;
+
+    @ApiModelProperty(value = "考核项目")
+    private String projectName;
+
+    @ApiModelProperty(value = "考核条例")
+    private String projectReg;
+
+    @ApiModelProperty(value = "考核规定")
+    private String projectText;
+
+    @ApiModelProperty(value = "考核金额")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "考核分数")
+    private BigDecimal fraction;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    @ApiModelProperty(value = "所属科室")
+    private String dapartment;
+
+    @ApiModelProperty(value = "科室id")
+    private String dapartmentId;
+
+    @ApiModelProperty(value = "审批人")
+    private String examineName;
+
+    @ApiModelProperty(value = "审批结果")
+    private String examineStatus;
+
+    @ApiModelProperty(value = "审批时间")
+    private Date examineTime;
+
+    @ApiModelProperty(value = "最终考核金额")
+    private BigDecimal examinePrice;
+
+    @ApiModelProperty(value = "最终考核分值")
+    private BigDecimal examineFration;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户编号")
+    private String companyWechatId;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户名称")
+    private String companyWechatName;
+}

+ 67 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/letter/LeProjectVO.java

@@ -0,0 +1,67 @@
+package com.gree.mall.manager.bean.letter;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.enums.StatusEnum;
+import com.gree.mall.manager.plus.entity.LeProject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@ApiModel
+@Data
+public class LeProjectVO  {
+
+
+    @ZfireField(hide = true)
+    @TableId(value = "project_id", type = IdType.ID_WORKER_STR)
+    private String projectId;
+
+    @ApiModelProperty(value = "考核项目")
+    private String projectName;
+
+    @ApiModelProperty(value = "考核条例")
+    private String projectReg;
+
+    @ApiModelProperty(value = "考核规定")
+    private String projectText;
+
+    @ApiModelProperty(value = "考核分数")
+    private BigDecimal fraction;
+
+    @ApiModelProperty(value = "考核金额")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "状态")
+    private StatusEnum status;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    @ApiModelProperty(value = "商户编号")
+    private String companyWechatId;
+
+    @ApiModelProperty(value = "商户名称")
+    private String companyWechatName;
+
+}

+ 69 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/letter/LeUserDepartmentVO.java

@@ -0,0 +1,69 @@
+package com.gree.mall.manager.bean.letter;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.plus.entity.LeUserDepartment;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ZfireField(tbName = "a")
+@ApiModel
+@Data
+public class LeUserDepartmentVO   {
+
+
+    @ZfireField(hide = true)
+    @TableId(value = "id", type = IdType.ID_WORKER_STR)
+    private String id;
+
+    @ApiModelProperty(value = "所属科室")
+    private String dapartment;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "科室id")
+    private String dapartmentId;
+
+    private String adminUserId;
+
+    @ApiModelProperty(value = "账号名称")
+    private String nickName;
+
+    @ApiModelProperty(value = "帐号")
+    private String userName;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    @ApiModelProperty(value = "网点编号")
+    private String websitId;
+
+    @ApiModelProperty(value = "网点名称")
+    private String websitName;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户编号")
+    private String companyWechatId;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商户名称")
+    private String companyWechatName;
+}

+ 30 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/LetterMapper.java

@@ -0,0 +1,30 @@
+package com.gree.mall.manager.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.bean.letter.LeDepartmentVO;
+import com.gree.mall.manager.bean.letter.LeLetterVO;
+import com.gree.mall.manager.bean.letter.LeProjectVO;
+import com.gree.mall.manager.bean.letter.LeUserDepartmentVO;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface LetterMapper {
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<LeDepartmentVO> list(Page page, @Param("ex") ZfireParamBean zfireParam,@Param("companyWechatIds")  List<String> adminCompanyIds);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<LeUserDepartmentVO> listUser(Page page,  @Param("ex")ZfireParamBean zfireParam, @Param("companyWechatIds")List<String> adminCompanyIds);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<LeProjectVO> listProject(Page page, @Param("ex")ZfireParamBean zfireParam,@Param("companyWechatIds") List<String> adminCompanyIds);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<LeLetterVO> listLetter(Page page,@Param("ex") ZfireParamBean zfireParam,@Param("companyWechatIds") List<String> adminCompanyIds);
+}

+ 289 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/letter/LetterController.java

@@ -0,0 +1,289 @@
+package com.gree.mall.manager.controller.letter;
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.letter.LeDepartmentVO;
+import com.gree.mall.manager.bean.letter.LeProjectVO;
+import com.gree.mall.manager.bean.letter.LeUserDepartmentVO;
+import com.gree.mall.manager.bean.policy.PolicyDetail;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.helper.ResponseHelper;
+import com.gree.mall.manager.logic.LetterLogic;
+import com.gree.mall.manager.plus.entity.LeConfig;
+import com.gree.mall.manager.plus.entity.LeDepartment;
+import com.gree.mall.manager.plus.entity.LeProject;
+import com.gree.mall.manager.plus.entity.LeUserDepartment;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
+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 io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(value = "工作联络函基础", tags = {"工作联络函基础"})
+@RequestMapping(value = "/letterManager", produces = "application/json; charset=utf-8")
+public class LetterController {
+
+    @Autowired
+    private LetterLogic letterLogic;
+
+
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "科室设置列表")
+    public ResponseHelper<IPage<LeDepartmentVO>> list(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) throws RemoteServiceException {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<LeDepartmentVO> policyOrderVOIPage = letterLogic.list(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        return ResponseHelper.success(policyOrderVOIPage, new TypeReference<LeDepartmentVO>() {
+        });
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation(value = "科室设置导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //1.组装查询条件
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        //2.查询要导出的内容
+        IPage<LeDepartmentVO> policyOrderVOIPage = letterLogic.list(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        //3.导出
+        FieldUtils.exportData(policyOrderVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
+    }
+
+
+    @PostMapping("/detail")
+    @ApiOperation("科室设置详情")
+    public ResponseHelper<LeDepartment> detail(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        LeDepartment leDepartment = letterLogic.detail(id);
+        return ResponseHelper.success(leDepartment);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("科室设置新增")
+    public ResponseHelper add(
+            @RequestBody LeDepartment leDepartment,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.add(leDepartment);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("科室设置修改")
+    public ResponseHelper update(
+            @RequestBody LeDepartment leDepartment,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.update(leDepartment);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/del")
+    @ApiOperation("科室设置删除")
+    public ResponseHelper del(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.del(id);
+        return ResponseHelper.success();
+    }
+
+
+    @ZfireList
+    @PostMapping("/listUser")
+    @ApiOperation(value = "所属科室列表")
+    public ResponseHelper<IPage<LeUserDepartmentVO>> listUser(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) throws RemoteServiceException {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<LeUserDepartmentVO> policyOrderVOIPage = letterLogic.listUser(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        return ResponseHelper.success(policyOrderVOIPage, new TypeReference<LeUserDepartmentVO>() {
+        });
+    }
+
+    @PostMapping("/listUser/export")
+    @ApiOperation(value = "所属科室列表导出")
+    public void listUserExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //1.组装查询条件
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        //2.查询要导出的内容
+        IPage<LeUserDepartmentVO> policyOrderVOIPage = letterLogic.listUser(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        //3.导出
+        FieldUtils.exportData(policyOrderVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
+    }
+
+
+
+    @PostMapping("/detailUser")
+    @ApiOperation("所属科室列表详情")
+    public ResponseHelper<LeUserDepartment> detailUser(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        LeUserDepartment leDepartment = letterLogic.detailUser(id);
+        return ResponseHelper.success(leDepartment);
+    }
+
+    @PostMapping("/addUser")
+    @ApiOperation("所属科室列表新增")
+    public ResponseHelper addUser(
+            @RequestBody LeUserDepartment leUserDepartment,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.addUser(leUserDepartment);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/updateUser")
+    @ApiOperation("所属科室列表修改")
+    public ResponseHelper updateUser(
+            @RequestBody LeUserDepartment leUserDepartment,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.updateUser(leUserDepartment);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/delUser")
+    @ApiOperation("所属科室列表置删除")
+    public ResponseHelper delUser(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.delUser(id);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/import")
+    @ApiOperation(value = "所属科室导入")
+    public ResponseHelper importUser(
+            @RequestParam MultipartFile file
+    ) throws RemoteServiceException, IOException {
+        List<Object> objects = ExcelUtils.importExcel(file);
+        letterLogic.importUser(objects);
+        return ResponseHelper.success();
+    }
+
+
+
+    @PostMapping("/configDeatil")
+    @ApiOperation("考核函时间设置")
+    public ResponseHelper<LeConfig> configDeatil(
+            HttpServletRequest request
+    ) throws ParseException {
+        LeConfig leConfig = letterLogic.configDeatil();
+        return ResponseHelper.success(leConfig);
+    }
+
+    @PostMapping("/addConfig")
+    @ApiOperation("所属科室列表新增")
+    public ResponseHelper addConfig(
+            @RequestBody LeConfig leConfig,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.addConfig(leConfig);
+        return ResponseHelper.success();
+    }
+
+
+
+    @ZfireList
+    @PostMapping("/listProject")
+    @ApiOperation(value = "考核项目设置")
+    public ResponseHelper<IPage<LeProjectVO>> listProject(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) throws RemoteServiceException {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<LeProjectVO> policyOrderVOIPage = letterLogic.listProject(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        return ResponseHelper.success(policyOrderVOIPage, new TypeReference<LeProjectVO>() {
+        });
+    }
+
+    @PostMapping("/listProject/export")
+    @ApiOperation(value = "考核项目设置导出")
+    public void listProjectExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //1.组装查询条件
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        //2.查询要导出的内容
+        IPage<LeProjectVO> policyOrderVOIPage = letterLogic.listProject(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        //3.导出
+        FieldUtils.exportData(policyOrderVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
+    }
+
+
+    @PostMapping("/detailProject")
+    @ApiOperation("考核项目详情")
+    public ResponseHelper<LeProject> detailProject(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        LeProject leProject = letterLogic.detailProject(id);
+        return ResponseHelper.success(leProject);
+    }
+
+    @PostMapping("/addProject")
+    @ApiOperation("考核项目新增")
+    public ResponseHelper addProject(
+            @RequestBody LeProject leProject,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.addProject(leProject);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/updateProject")
+    @ApiOperation("考核项目修改")
+    public ResponseHelper updateProject(
+            @RequestBody LeProject leProject,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.updateProject(leProject);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/delProject")
+    @ApiOperation("考核项目删除")
+    public ResponseHelper delProject(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.delProject(id);
+        return ResponseHelper.success();
+    }
+
+
+}

+ 113 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/letter/LetterProcessController.java

@@ -0,0 +1,113 @@
+package com.gree.mall.manager.controller.letter;
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.letter.LeDepartmentVO;
+import com.gree.mall.manager.bean.letter.LeLetterVO;
+import com.gree.mall.manager.bean.letter.LeProjectVO;
+import com.gree.mall.manager.bean.letter.LeUserDepartmentVO;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.helper.ResponseHelper;
+import com.gree.mall.manager.logic.LetterLogic;
+import com.gree.mall.manager.plus.entity.*;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
+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 io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(value = "工作联络函", tags = {"工作联络函"})
+@RequestMapping(value = "/letterProcess", produces = "application/json; charset=utf-8")
+public class LetterProcessController {
+
+    @Autowired
+    private LetterLogic letterLogic;
+
+
+
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "工作联络函列表")
+    public ResponseHelper<IPage<LeLetterVO>> listLetter(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) throws RemoteServiceException {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<LeLetterVO> policyOrderVOIPage = letterLogic.listLetter(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        return ResponseHelper.success(policyOrderVOIPage, new TypeReference<LeLetterVO>() {
+        });
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation(value = "工作联络函导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //1.组装查询条件
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        //2.查询要导出的内容
+        IPage<LeLetterVO> policyOrderVOIPage = letterLogic.listLetter(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        //3.导出
+        FieldUtils.exportData(policyOrderVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
+    }
+
+
+    @PostMapping("/detailLetter")
+    @ApiOperation("工作联络函详情")
+    public ResponseHelper<LeLetter> detailLetter(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        LeLetter leLetter = letterLogic.detailLetter(id);
+        return ResponseHelper.success(leLetter);
+    }
+
+    @PostMapping("/addLetter")
+    @ApiOperation("新增工作联络函")
+    public ResponseHelper addLetter(
+            @RequestBody LeLetter leLetter,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.addLetter(leLetter);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/updateLetter")
+    @ApiOperation("科室设置修改")
+    public ResponseHelper updateLetter(
+            @RequestBody LeDepartment leDepartment,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.updateLetter(leDepartment);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/delLetter")
+    @ApiOperation("科室设置删除")
+    public ResponseHelper delLetter(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        letterLogic.delLetter(id);
+        return ResponseHelper.success();
+    }
+
+
+}

+ 22 - 0
mall-server-api/src/main/java/com/gree/mall/manager/enums/LetterStatusEnum.java

@@ -0,0 +1,22 @@
+package com.gree.mall.manager.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.gree.mall.manager.enums.base.BaseEnum;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor(access = AccessLevel.PRIVATE)
+public enum LetterStatusEnum implements BaseEnum {
+
+    SEND("SEND","已发送"),
+    WAIT("WAIT","待发送"),
+    ;
+
+    @EnumValue
+    @JsonValue
+    private final String key;
+    private final String remark;
+}

+ 263 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/LetterLogic.java

@@ -0,0 +1,263 @@
+package com.gree.mall.manager.logic;
+
+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.letter.LeDepartmentVO;
+import com.gree.mall.manager.bean.letter.LeLetterVO;
+import com.gree.mall.manager.bean.letter.LeProjectVO;
+import com.gree.mall.manager.bean.letter.LeUserDepartmentVO;
+import com.gree.mall.manager.bean.policy.PolicyOrderVO;
+import com.gree.mall.manager.commonmapper.LetterMapper;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.plus.entity.*;
+import com.gree.mall.manager.plus.service.*;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class LetterLogic {
+
+    @Autowired
+    LetterMapper letterMapper;
+
+    @Autowired
+    CommonLogic commonLogic;
+
+    @Autowired
+    LeDepartmentService leDepartmentService;
+
+    @Autowired
+    LeUserDepartmentService leUserDepartmentService;
+
+    @Autowired
+    LeConfigService leConfigService;
+
+    @Autowired
+    AdminUserService adminUserService;
+
+    @Autowired
+    AdminWebsitService adminWebsitService;
+
+    @Autowired
+    LeProjectService leProjectService;
+
+    @Autowired
+    LeLetterService leLetterService;
+
+
+    public IPage<LeDepartmentVO> list(Page page, ZfireParamBean zfireParam) {
+        //获取当前登录企业id
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
+        //1.组装查询条件
+        zfireParam = FieldUtils.supplyParam(zfireParam, LeDepartmentVO.class, adminUser);
+
+        IPage<LeDepartmentVO> leDepartmentVOIPage = letterMapper.list(page, zfireParam, adminCompanyIds);
+        return leDepartmentVOIPage;
+    }
+
+    public LeDepartment detail(String id) {
+
+        LeDepartment leDepartment = leDepartmentService.getById(id);
+        return leDepartment;
+
+    }
+
+    public void add(LeDepartment leDepartment) {
+
+        if (leDepartmentService.lambdaQuery().eq(LeDepartment::getDapartment,leDepartment.getDapartment()).count() > 0)
+            throw new RemoteServiceException("重复科室名称");
+
+        leDepartment.insert();
+    }
+
+    public void update(LeDepartment leDepartment) {
+        if (leDepartmentService.lambdaQuery().eq(LeDepartment::getDapartment,leDepartment.getDapartment())
+                .ne(LeDepartment::getId,leDepartment.getId()).count() > 0)
+            throw new RemoteServiceException("重复科室名称");
+
+        leDepartment.updateById();
+    }
+
+    public void del(String id) {
+
+        leDepartmentService.removeById(id);
+    }
+
+    public IPage<LeUserDepartmentVO> listUser(Page page, ZfireParamBean zfireParam) {
+
+        //获取当前登录企业id
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
+        //1.组装查询条件
+        zfireParam = FieldUtils.supplyParam(zfireParam, LeUserDepartmentVO.class, adminUser);
+
+        IPage<LeUserDepartmentVO> leUserDepartmentVOIPage = letterMapper.listUser(page, zfireParam, adminCompanyIds);
+        return leUserDepartmentVOIPage;
+    }
+
+    public LeUserDepartment detailUser(String id) {
+        LeUserDepartment leUserDepartment = leUserDepartmentService.getById(id);
+        return leUserDepartment;
+    }
+
+    public void addUser(LeUserDepartment leUserDepartment) {
+
+        if (leUserDepartmentService.lambdaQuery().eq(LeUserDepartment::getAdminUserId,leUserDepartment.getAdminUserId())
+                .eq(LeUserDepartment::getWebsitId,leUserDepartment.getWebsitId())
+                .eq(LeUserDepartment::getDapartmentId,leUserDepartment.getDapartmentId()).count() > 0) {
+            throw new RemoteServiceException("该账号设置过科室");
+        }
+
+        leUserDepartment.insert();
+
+    }
+
+    public void updateUser(LeUserDepartment leUserDepartment) {
+
+        if (leUserDepartmentService.lambdaQuery().eq(LeUserDepartment::getAdminUserId,leUserDepartment.getAdminUserId())
+                .eq(LeUserDepartment::getWebsitId,leUserDepartment.getWebsitId())
+                .eq(LeUserDepartment::getDapartmentId,leUserDepartment.getDapartmentId())
+                .ne(LeUserDepartment::getId,leUserDepartment.getId())
+                .count() > 0) {
+            throw new RemoteServiceException("该账号设置过科室");
+        }
+
+        leUserDepartment.updateById();
+    }
+
+    public void delUser(String id) {
+        leUserDepartmentService.removeById(id);
+    }
+
+    public LeConfig configDeatil() {
+        if (leConfigService.lambdaQuery().eq(LeConfig::getLeConfigId,"1").count() < 1)
+            return new LeConfig();
+
+        return leConfigService.getById("1");
+    }
+
+    public void addConfig(LeConfig leConfig) {
+        if (leConfigService.lambdaQuery().eq(LeConfig::getLeConfigId,"1").count() < 1) {
+            leConfig.setLeConfigId("1");
+            leConfig.insert();
+        }
+
+        leConfig.setLeConfigId("1");
+        leConfig.updateById();
+    }
+
+    public void importUser(List<Object> objects) {
+
+        List<LeUserDepartment> leUserDepartments = new ArrayList<>();
+
+        for (Object o : objects) {
+            List<Object> row = (List<Object>) o;
+            List<AdminUser> adminUsers = adminUserService.lambdaQuery().eq(AdminUser::getUserName, (String) row.get(0)).list();
+
+            if (CollectionUtils.isEmpty(adminUsers))
+                throw new RemoteServiceException((String) row.get(0)+"未找到当前账号");
+
+            AdminWebsit adminWebsit = adminWebsitService.getById((String) row.get(1));
+
+            if (adminWebsit == null)
+                throw new RemoteServiceException((String) row.get(1)+"未找到当前网点");
+
+            List<LeDepartment> leDepartments = leDepartmentService.lambdaQuery().eq(LeDepartment::getDapartment, (String) row.get(2)).list();
+
+            if (CollectionUtils.isEmpty(leDepartments))
+                throw new RemoteServiceException((String) row.get(2)+"未找到当前科室");
+
+            AdminUser adminUser = adminUsers.get(0);
+
+            LeDepartment leDepartment = leDepartments.get(0);
+
+            LeUserDepartment leUserDepartment = new LeUserDepartment();
+
+            leUserDepartment.setAdminUserId(adminUser.getAdminUserId());
+            leUserDepartment.setNickName(adminUser.getNickName());
+            leUserDepartment.setUserName(adminUser.getUserName());
+            leUserDepartment.setDapartment(leDepartment.getDapartment());
+            leUserDepartment.setDapartmentId(leDepartment.getId());
+            leUserDepartment.setWebsitId(adminWebsit.getWebsitId());
+            leUserDepartment.setWebsitName(adminWebsit.getName());
+            leUserDepartment.setCompanyWechatId(adminWebsit.getCompanyWechatId());
+            leUserDepartment.setCompanyWechatName(adminWebsit.getCompanyWechatName());
+
+
+            leUserDepartments.add(leUserDepartment);
+        }
+
+        leUserDepartmentService.saveBatch(leUserDepartments);
+    }
+
+    public IPage<LeProjectVO> listProject(Page page, ZfireParamBean zfireParam) {
+
+        //获取当前登录企业id
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
+        //1.组装查询条件
+        zfireParam = FieldUtils.supplyParam(zfireParam, LeProjectVO.class, adminUser);
+
+        IPage<LeProjectVO> leProjectVOIPage = letterMapper.listProject(page, zfireParam, adminCompanyIds);
+        return leProjectVOIPage;
+    }
+
+    public LeProject detailProject(String id) {
+        LeProject leProject = leProjectService.getById(id);
+        return leProject;
+    }
+
+    public void addProject(LeProject leProject) {
+        leProject.insert();
+    }
+
+    public void updateProject(LeProject leProject) {
+        leProject.updateById();
+    }
+
+    public void delProject(String id) {
+        leProjectService.removeById(id);
+    }
+
+    public IPage<LeLetterVO> listLetter(Page page, ZfireParamBean zfireParam) {
+        //获取当前登录企业id
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
+        //1.组装查询条件
+        zfireParam = FieldUtils.supplyParam(zfireParam, LeLetterVO.class, adminUser);
+
+        IPage<LeLetterVO> leLetterVOIPage = letterMapper.listLetter(page, zfireParam, adminCompanyIds);
+        return leLetterVOIPage;
+
+    }
+
+    public LeLetter detailLetter(String id) {
+        LeLetter leLetter = leLetterService.getById(id);
+
+        return leLetter;
+    }
+
+    public void addLetter(LeLetter leLetter) {
+        leLetter.insert();
+    }
+
+    public void updateLetter(LeDepartment leDepartment) {
+    }
+
+    public void delLetter(String id) {
+    }
+}

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

@@ -304,7 +304,7 @@
           ${ex.selected}
         from order_small_type a
           ${ex.query}
-        order by a.id desc
+        order by a.sort_num desc
     </select>
 
 

+ 69 - 0
mall-server-api/src/main/resources/mapper/LetterMapper.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gree.mall.manager.commonmapper.LetterMapper">
+
+    <select id="list" resultType="com.gree.mall.manager.bean.letter.LeDepartmentVO">
+        SELECT
+        ${ex.selected}
+        FROM le_department a
+        ${ex.query}
+        <if test="companyWechatIds != null and companyWechatIds.size > 0">
+            AND a.company_wechat_id IN
+            <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
+    <select id="listUser" resultType="com.gree.mall.manager.bean.letter.LeUserDepartmentVO">
+        SELECT
+        ${ex.selected}
+        FROM le_user_department a
+        ${ex.query}
+        <if test="companyWechatIds != null and companyWechatIds.size > 0">
+            AND a.company_wechat_id IN
+            <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
+    <select id="listProject" resultType="com.gree.mall.manager.bean.letter.LeProjectVO">
+        SELECT
+        ${ex.selected}
+        FROM le_project a
+        ${ex.query}
+        <if test="companyWechatIds != null and companyWechatIds.size > 0">
+            AND a.company_wechat_id IN
+            <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
+    <select id="listLetter" resultType="com.gree.mall.manager.bean.letter.LeLetterVO">
+        SELECT
+        ${ex.selected}
+        FROM le_letter a
+        ${ex.query}
+        <if test="companyWechatIds != null and companyWechatIds.size > 0">
+            AND a.company_wechat_id IN
+            <foreach item="item" index="index" collection="companyWechatIds" 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>

BIN
mall-server-api/src/main/resources/template/科室人员导入模版.xlsx


BIN
mall-server-api/src/main/resources/template/违规项目导入模板.xlsx