diff --git a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java index 0b10eb8..0e33192 100644 --- a/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java +++ b/han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java @@ -98,12 +98,12 @@ public class MpWxPayService { request.setDetail(productName); //商品详情 request.setTotalFee(price); //总金额|分计 request.setSpbillCreateIp(clientIp); //终端IP - request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 + request.setNotifyUrl("https://admin.teyizhao.com/employ-api/employ/vip/payNotify");//设置回调路径 request.setProductId(productId); //商品id request.setOpenid(openId); //JSAPI OPENID if (dev){ request.setTotalFee(price); - request.setNotifyUrl(wxPay.notifyUrlDev); + request.setNotifyUrl("https://admin.teyizhao.com/employ-api/employ/vip/payNotify"); } try { Object order = wxPayService.createOrder(request); diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/controller/EmployContractController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/controller/EmployContractController.java index 1d56905..dd61c91 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/controller/EmployContractController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/controller/EmployContractController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 电子合同表 * @Author: jeecg-boot - * @Date: 2024-12-21 + * @Date: 2025-02-07 * @Version: V1.0 */ @Api(tags="电子合同表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/entity/EmployContract.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/entity/EmployContract.java index 53c6538..6ecc9db 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/entity/EmployContract.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/entity/EmployContract.java @@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -20,7 +21,7 @@ import lombok.experimental.Accessors; /** * @Description: 电子合同表 * @Author: jeecg-boot - * @Date: 2024-12-21 + * @Date: 2025-02-07 * @Version: V1.0 */ @Data @@ -47,40 +48,68 @@ public class EmployContract implements Serializable { /**更新日期*/ @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; - /**合同文件*/ - @Excel(name = "合同文件", width = 15) - @ApiModelProperty(value = "合同文件") - private java.lang.String fileContract; - /**公司签署*/ - @Excel(name = "公司签署", width = 15, dicCode = "contract_status") + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + /**合同模板文件pdf*/ + @Excel(name = "合同模板文件pdf", width = 15) + @ApiModelProperty(value = "合同模板文件pdf") + private java.lang.String template; + /**合同文件pdf*/ + @Excel(name = "合同文件pdf", width = 15) + @ApiModelProperty(value = "合同文件pdf") + private java.lang.String contract; + /**求职者(乙方)签署状态*/ + @Excel(name = "求职者(乙方)签署状态", width = 15, dicCode = "contract_status") @Dict(dicCode = "contract_status") - @ApiModelProperty(value = "公司签署") - private java.lang.String signCompany; - /**求职者签署*/ - @Excel(name = "求职者签署", width = 15, dicCode = "contract_status") + @ApiModelProperty(value = "求职者(乙方)签署状态") + private java.lang.Integer employeeStatus; + /**求职者(乙方)签字坐标*/ + @Excel(name = "求职者(乙方)签字坐标", width = 15) + @ApiModelProperty(value = "求职者(乙方)签字坐标") + private java.lang.String employeePosition; + /**求职者(乙方)签字页码*/ + @Excel(name = "求职者(乙方)签字页码", width = 15) + @ApiModelProperty(value = "求职者(乙方)签字页码") + private java.lang.Integer employeePage; + /**求职者(乙方)签名图片*/ + @Excel(name = "求职者(乙方)签名图片", width = 15) + @ApiModelProperty(value = "求职者(乙方)签名图片") + private java.lang.String employeeImage; + /**招聘者(甲方)签署状态*/ + @Excel(name = "招聘者(甲方)签署状态", width = 15, dicCode = "contract_status") @Dict(dicCode = "contract_status") - @ApiModelProperty(value = "求职者签署") - private java.lang.String signPerson; - /**合同标题*/ - @Excel(name = "合同标题", width = 15) - @ApiModelProperty(value = "合同标题") - private java.lang.String title; - /**合同甲方名称*/ - @Excel(name = "合同甲方名称", width = 15) - @ApiModelProperty(value = "合同甲方名称") - private java.lang.String nameA; - /**合同乙方名称*/ - @Excel(name = "合同乙方名称", width = 15) - @ApiModelProperty(value = "合同乙方名称") - private java.lang.String nameB; + @ApiModelProperty(value = "招聘者(甲方)签署状态") + private java.lang.Integer bossStatus; + /**招聘者(甲方)签字坐标*/ + @Excel(name = "招聘者(甲方)签字坐标", width = 15) + @ApiModelProperty(value = "招聘者(甲方)签字坐标") + private java.lang.String bossPosition; + /**招聘者(甲方)签字页码*/ + @Excel(name = "招聘者(甲方)签字页码", width = 15) + @ApiModelProperty(value = "招聘者(甲方)签字页码") + private java.lang.Integer bossPage; + /**招聘者(甲方)签名图片*/ + @Excel(name = "招聘者(甲方)签名图片", width = 15) + @ApiModelProperty(value = "招聘者(甲方)签名图片") + private java.lang.String bossImage; + /**关联求职者id*/ + @Excel(name = "关联求职者id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") + @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") + @ApiModelProperty(value = "关联求职者id") + private java.lang.String employeeId; /**关联招聘者id*/ @Excel(name = "关联招聘者id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @ApiModelProperty(value = "关联招聘者id") private java.lang.String bossId; - /**关联求职者id*/ - @Excel(name = "关联求职者id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") - @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") - @ApiModelProperty(value = "关联求职者id") - private java.lang.String personId; + + //招聘者公司信息 + @TableField(exist = false) + String companyName; + + //求职者实名 + @TableField(exist = false) + String employeeName; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/mapper/EmployContractMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/mapper/EmployContractMapper.java index d9d611d..3069f5f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/mapper/EmployContractMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/mapper/EmployContractMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 电子合同表 * @Author: jeecg-boot - * @Date: 2024-12-21 + * @Date: 2025-02-07 * @Version: V1.0 */ public interface EmployContractMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/IEmployContractService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/IEmployContractService.java index 616db49..fc198e4 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/IEmployContractService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/IEmployContractService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 电子合同表 * @Author: jeecg-boot - * @Date: 2024-12-21 + * @Date: 2025-02-07 * @Version: V1.0 */ public interface IEmployContractService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/impl/EmployContractServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/impl/EmployContractServiceImpl.java index 09ce940..e43aa13 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/impl/EmployContractServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/service/impl/EmployContractServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 电子合同表 * @Author: jeecg-boot - * @Date: 2024-12-21 + * @Date: 2025-02-07 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/EmployContractList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/EmployContractList.vue index 94e9614..14b6139 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/EmployContractList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/EmployContractList.vue @@ -4,43 +4,6 @@
- - - - - - - - - - - - - - 查询 - 重置 - - {{ toggleSearchStatus ? '收起' : '展开' }} - - - -
@@ -160,45 +123,73 @@ } }, { - title:'合同文件', + title:'标题', align:"center", - dataIndex: 'fileContract', + dataIndex: 'title' + }, + { + title:'合同模板文件pdf', + align:"center", + dataIndex: 'template', scopedSlots: {customRender: 'fileSlot'} }, { - title:'公司签署', + title:'合同文件pdf', align:"center", - dataIndex: 'signCompany_dictText' + dataIndex: 'contract', + scopedSlots: {customRender: 'fileSlot'} }, { - title:'求职者签署', + title:'求职者(乙方)签署状态', align:"center", - dataIndex: 'signPerson_dictText' + dataIndex: 'employeeStatus_dictText' }, { - title:'合同标题', + title:'求职者(乙方)签字坐标', align:"center", - dataIndex: 'title' + dataIndex: 'employeePosition' }, { - title:'合同甲方名称', + title:'求职者(乙方)签字页码', align:"center", - dataIndex: 'nameA' + dataIndex: 'employeePage' }, { - title:'合同乙方名称', + title:'求职者(乙方)签名图片', align:"center", - dataIndex: 'nameB' + dataIndex: 'employeeImage', + scopedSlots: {customRender: 'imgSlot'} }, { - title:'关联招聘者id', + title:'招聘者(甲方)签署状态', align:"center", - dataIndex: 'bossId_dictText' + dataIndex: 'bossStatus_dictText' + }, + { + title:'招聘者(甲方)签字坐标', + align:"center", + dataIndex: 'bossPosition' + }, + { + title:'招聘者(甲方)签字页码', + align:"center", + dataIndex: 'bossPage' + }, + { + title:'招聘者(甲方)签名图片', + align:"center", + dataIndex: 'bossImage', + scopedSlots: {customRender: 'imgSlot'} }, { title:'关联求职者id', align:"center", - dataIndex: 'personId_dictText' + dataIndex: 'employeeId_dictText' + }, + { + title:'关联招聘者id', + align:"center", + dataIndex: 'bossId_dictText' }, { title: '操作', @@ -234,14 +225,19 @@ }, getSuperFieldList(){ let fieldList=[]; - fieldList.push({type:'string',value:'fileContract',text:'合同文件',dictCode:''}) - fieldList.push({type:'string',value:'signCompany',text:'公司签署',dictCode:'contract_status'}) - fieldList.push({type:'string',value:'signPerson',text:'求职者签署',dictCode:'contract_status'}) - fieldList.push({type:'string',value:'title',text:'合同标题',dictCode:''}) - fieldList.push({type:'string',value:'nameA',text:'合同甲方名称',dictCode:''}) - fieldList.push({type:'string',value:'nameB',text:'合同乙方名称',dictCode:''}) + fieldList.push({type:'string',value:'title',text:'标题',dictCode:''}) + fieldList.push({type:'Text',value:'template',text:'合同模板文件pdf',dictCode:''}) + fieldList.push({type:'Text',value:'contract',text:'合同文件pdf',dictCode:''}) + fieldList.push({type:'int',value:'employeeStatus',text:'求职者(乙方)签署状态',dictCode:'contract_status'}) + fieldList.push({type:'Text',value:'employeePosition',text:'求职者(乙方)签字坐标',dictCode:''}) + fieldList.push({type:'int',value:'employeePage',text:'求职者(乙方)签字页码',dictCode:''}) + fieldList.push({type:'Text',value:'employeeImage',text:'求职者(乙方)签名图片',dictCode:''}) + fieldList.push({type:'int',value:'bossStatus',text:'招聘者(甲方)签署状态',dictCode:'contract_status'}) + fieldList.push({type:'Text',value:'bossPosition',text:'招聘者(甲方)签字坐标',dictCode:''}) + fieldList.push({type:'int',value:'bossPage',text:'招聘者(甲方)签字页码',dictCode:''}) + fieldList.push({type:'Text',value:'bossImage',text:'招聘者(甲方)签名图片',dictCode:''}) + fieldList.push({type:'string',value:'employeeId',text:'关联求职者id',dictCode:"han_hai_member,nick_name,id"}) fieldList.push({type:'string',value:'bossId',text:'关联招聘者id',dictCode:"han_hai_member,nick_name,id"}) - fieldList.push({type:'string',value:'personId',text:'关联求职者id',dictCode:"han_hai_member,nick_name,id"}) this.superFieldList = fieldList } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/modules/EmployContractForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/modules/EmployContractForm.vue index c7eec64..261165b 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/modules/EmployContractForm.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue/modules/EmployContractForm.vue @@ -4,43 +4,68 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue3/EmployContract.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue3/EmployContract.data.ts index 3550ca3..7a7aa21 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue3/EmployContract.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContract/vue3/EmployContract.data.ts @@ -5,137 +5,160 @@ import { render } from '/@/utils/common/renderUtils'; //列表数据 export const columns: BasicColumn[] = [ { - title: '合同文件', + title: '标题', align:"center", - dataIndex: 'fileContract', + dataIndex: 'title' + }, + { + title: '合同模板文件pdf', + align:"center", + dataIndex: 'template', slots: { customRender: 'fileSlot' }, }, { - title: '公司签署', + title: '合同文件pdf', align:"center", - dataIndex: 'signCompany_dictText' + dataIndex: 'contract', + slots: { customRender: 'fileSlot' }, }, { - title: '求职者签署', + title: '求职者(乙方)签署状态', align:"center", - dataIndex: 'signPerson_dictText' + dataIndex: 'employeeStatus_dictText' }, { - title: '合同标题', + title: '求职者(乙方)签字坐标', align:"center", - dataIndex: 'title' + dataIndex: 'employeePosition' }, { - title: '合同甲方名称', + title: '求职者(乙方)签字页码', align:"center", - dataIndex: 'nameA' + dataIndex: 'employeePage' }, { - title: '合同乙方名称', + title: '求职者(乙方)签名图片', align:"center", - dataIndex: 'nameB' + dataIndex: 'employeeImage', + customRender:render.renderAvatar, }, { - title: '关联招聘者id', + title: '招聘者(甲方)签署状态', align:"center", - dataIndex: 'bossId_dictText' + dataIndex: 'bossStatus_dictText' + }, + { + title: '招聘者(甲方)签字坐标', + align:"center", + dataIndex: 'bossPosition' + }, + { + title: '招聘者(甲方)签字页码', + align:"center", + dataIndex: 'bossPage' + }, + { + title: '招聘者(甲方)签名图片', + align:"center", + dataIndex: 'bossImage', + customRender:render.renderAvatar, }, { title: '关联求职者id', align:"center", - dataIndex: 'personId_dictText' + dataIndex: 'employeeId_dictText' + }, + { + title: '关联招聘者id', + align:"center", + dataIndex: 'bossId_dictText' }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ - { - label: "公司签署", - field: "signCompany", - component: 'JDictSelectTag', - componentProps:{ - dictCode:"contract_status" - }, - colProps: {span: 6}, - }, - { - label: "求职者签署", - field: "signPerson", - component: 'JDictSelectTag', - componentProps:{ - dictCode:"contract_status" - }, - colProps: {span: 6}, - }, - { - label: "合同标题", - field: "title", - component: 'Input', - colProps: {span: 6}, - }, - { - label: "合同甲方名称", - field: "nameA", - component: 'Input', - colProps: {span: 6}, - }, - { - label: "合同乙方名称", - field: "nameB", - component: 'Input', - colProps: {span: 6}, - }, ]; //表单数据 export const formSchema: FormSchema[] = [ { - label: '合同文件', - field: 'fileContract', + label: '标题', + field: 'title', + component: 'Input', + }, + { + label: '合同模板文件pdf', + field: 'template', + component: 'JUpload', + componentProps:{ + }, + }, + { + label: '合同文件pdf', + field: 'contract', component: 'JUpload', componentProps:{ }, }, { - label: '公司签署', - field: 'signCompany', + label: '求职者(乙方)签署状态', + field: 'employeeStatus', component: 'JDictSelectTag', componentProps:{ dictCode:"contract_status" }, }, { - label: '求职者签署', - field: 'signPerson', + label: '求职者(乙方)签字坐标', + field: 'employeePosition', + component: 'Input', + }, + { + label: '求职者(乙方)签字页码', + field: 'employeePage', + component: 'InputNumber', + }, + { + label: '求职者(乙方)签名图片', + field: 'employeeImage', + component: 'JImageUpload', + componentProps:{ + }, + }, + { + label: '招聘者(甲方)签署状态', + field: 'bossStatus', component: 'JDictSelectTag', componentProps:{ dictCode:"contract_status" }, }, { - label: '合同标题', - field: 'title', + label: '招聘者(甲方)签字坐标', + field: 'bossPosition', component: 'Input', }, { - label: '合同甲方名称', - field: 'nameA', - component: 'Input', + label: '招聘者(甲方)签字页码', + field: 'bossPage', + component: 'InputNumber', }, { - label: '合同乙方名称', - field: 'nameB', - component: 'Input', + label: '招聘者(甲方)签名图片', + field: 'bossImage', + component: 'JImageUpload', + componentProps:{ + }, }, { - label: '关联招聘者id', - field: 'bossId', + label: '关联求职者id', + field: 'employeeId', component: 'JDictSelectTag', componentProps:{ dictCode:"han_hai_member,nick_name,id" }, }, { - label: '关联求职者id', - field: 'personId', + label: '关联招聘者id', + field: 'bossId', component: 'JDictSelectTag', componentProps:{ dictCode:"han_hai_member,nick_name,id" diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/controller/EmployContractTemplateController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/controller/EmployContractTemplateController.java new file mode 100644 index 0000000..545c590 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/controller/EmployContractTemplateController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.employContractTemplate.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import org.jeecg.modules.employContractTemplate.service.IEmployContractTemplateService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 电子合同模板表 + * @Author: jeecg-boot + * @Date: 2025-02-07 + * @Version: V1.0 + */ +@Api(tags="电子合同模板表") +@RestController +@RequestMapping("/employContractTemplate/employContractTemplate") +@Slf4j +public class EmployContractTemplateController extends JeecgController { + @Autowired + private IEmployContractTemplateService employContractTemplateService; + + /** + * 分页列表查询 + * + * @param employContractTemplate + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "电子合同模板表-分页列表查询") + @ApiOperation(value="电子合同模板表-分页列表查询", notes="电子合同模板表-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(EmployContractTemplate employContractTemplate, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(employContractTemplate, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = employContractTemplateService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param employContractTemplate + * @return + */ + @AutoLog(value = "电子合同模板表-添加") + @ApiOperation(value="电子合同模板表-添加", notes="电子合同模板表-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody EmployContractTemplate employContractTemplate) { + employContractTemplateService.save(employContractTemplate); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param employContractTemplate + * @return + */ + @AutoLog(value = "电子合同模板表-编辑") + @ApiOperation(value="电子合同模板表-编辑", notes="电子合同模板表-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody EmployContractTemplate employContractTemplate) { + employContractTemplateService.updateById(employContractTemplate); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "电子合同模板表-通过id删除") + @ApiOperation(value="电子合同模板表-通过id删除", notes="电子合同模板表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + employContractTemplateService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "电子合同模板表-批量删除") + @ApiOperation(value="电子合同模板表-批量删除", notes="电子合同模板表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.employContractTemplateService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "电子合同模板表-通过id查询") + @ApiOperation(value="电子合同模板表-通过id查询", notes="电子合同模板表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + EmployContractTemplate employContractTemplate = employContractTemplateService.getById(id); + if(employContractTemplate==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(employContractTemplate); + } + + /** + * 导出excel + * + * @param request + * @param employContractTemplate + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EmployContractTemplate employContractTemplate) { + return super.exportXls(request, employContractTemplate, EmployContractTemplate.class, "电子合同模板表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EmployContractTemplate.class); + } + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/entity/EmployContractTemplate.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/entity/EmployContractTemplate.java new file mode 100644 index 0000000..9f5cd74 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/entity/EmployContractTemplate.java @@ -0,0 +1,78 @@ +package org.jeecg.modules.employContractTemplate.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 电子合同模板表 + * @Author: jeecg-boot + * @Date: 2025-02-07 + * @Version: V1.0 + */ +@Data +@TableName("employ_contract_template") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="employ_contract_template对象", description="电子合同模板表") +public class EmployContractTemplate implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + /**合同模板文件pdf*/ + @Excel(name = "合同模板文件pdf", width = 15) + @ApiModelProperty(value = "合同模板文件pdf") + private java.lang.String template; + /**求职者(乙方)签字坐标*/ + @Excel(name = "求职者(乙方)签字坐标", width = 15) + @ApiModelProperty(value = "求职者(乙方)签字坐标") + private java.lang.String employeePosition; + /**求职者(乙方)签字页码*/ + @Excel(name = "求职者(乙方)签字页码", width = 15) + @ApiModelProperty(value = "求职者(乙方)签字页码") + private java.lang.Integer employeePage; + /**招聘者(甲方)签字位置*/ + @Excel(name = "招聘者(甲方)签字位置", width = 15) + @ApiModelProperty(value = "招聘者(甲方)签字位置") + private java.lang.String bossPosition; + /**招聘者(甲方)签字页码*/ + @Excel(name = "招聘者(甲方)签字页码", width = 15) + @ApiModelProperty(value = "招聘者(甲方)签字页码") + private java.lang.Integer bossPage; + /**关联招聘者id*/ + @Excel(name = "关联招聘者id", width = 15) + @ApiModelProperty(value = "关联招聘者id") + private java.lang.String userId; +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/EmployContractTemplateMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/EmployContractTemplateMapper.java new file mode 100644 index 0000000..57506fa --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/EmployContractTemplateMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.employContractTemplate.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 电子合同模板表 + * @Author: jeecg-boot + * @Date: 2025-02-07 + * @Version: V1.0 + */ +public interface EmployContractTemplateMapper extends BaseMapper { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/xml/EmployContractTemplateMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/xml/EmployContractTemplateMapper.xml new file mode 100644 index 0000000..9d5fdac --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/mapper/xml/EmployContractTemplateMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/IEmployContractTemplateService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/IEmployContractTemplateService.java new file mode 100644 index 0000000..a08bfb6 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/IEmployContractTemplateService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.employContractTemplate.service; + +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 电子合同模板表 + * @Author: jeecg-boot + * @Date: 2025-02-07 + * @Version: V1.0 + */ +public interface IEmployContractTemplateService extends IService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/impl/EmployContractTemplateServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/impl/EmployContractTemplateServiceImpl.java new file mode 100644 index 0000000..ac739ef --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/service/impl/EmployContractTemplateServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.employContractTemplate.service.impl; + +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import org.jeecg.modules.employContractTemplate.mapper.EmployContractTemplateMapper; +import org.jeecg.modules.employContractTemplate.service.IEmployContractTemplateService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 电子合同模板表 + * @Author: jeecg-boot + * @Date: 2025-02-07 + * @Version: V1.0 + */ +@Service +public class EmployContractTemplateServiceImpl extends ServiceImpl implements IEmployContractTemplateService { + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/EmployContractTemplateList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/EmployContractTemplateList.vue new file mode 100644 index 0000000..693ed92 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/EmployContractTemplateList.vue @@ -0,0 +1,207 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateForm.vue new file mode 100644 index 0000000..d45ea56 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateForm.vue @@ -0,0 +1,134 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.Style#Drawer.vue new file mode 100644 index 0000000..328480f --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.vue new file mode 100644 index 0000000..bda761d --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue/modules/EmployContractTemplateModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.api.ts new file mode 100644 index 0000000..3e3df77 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/employContractTemplate/employContractTemplate/list', + save='/employContractTemplate/employContractTemplate/add', + edit='/employContractTemplate/employContractTemplate/edit', + deleteOne = '/employContractTemplate/employContractTemplate/delete', + deleteBatch = '/employContractTemplate/employContractTemplate/deleteBatch', + importExcel = '/employContractTemplate/employContractTemplate/importExcel', + exportXls = '/employContractTemplate/employContractTemplate/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.data.ts new file mode 100644 index 0000000..1f0e161 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplate.data.ts @@ -0,0 +1,83 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '标题', + align:"center", + dataIndex: 'title' + }, + { + title: '合同模板文件pdf', + align:"center", + dataIndex: 'template' + }, + { + title: '求职者(乙方)签字坐标', + align:"center", + dataIndex: 'employeePosition' + }, + { + title: '求职者(乙方)签字页码', + align:"center", + dataIndex: 'employeePage' + }, + { + title: '招聘者(甲方)签字位置', + align:"center", + dataIndex: 'bossPosition' + }, + { + title: '招聘者(甲方)签字页码', + align:"center", + dataIndex: 'bossPage' + }, + { + title: '关联招聘者id', + align:"center", + dataIndex: 'userId' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '标题', + field: 'title', + component: 'Input', + }, + { + label: '合同模板文件pdf', + field: 'template', + component: 'Input', + }, + { + label: '求职者(乙方)签字坐标', + field: 'employeePosition', + component: 'Input', + }, + { + label: '求职者(乙方)签字页码', + field: 'employeePage', + component: 'InputNumber', + }, + { + label: '招聘者(甲方)签字位置', + field: 'bossPosition', + component: 'Input', + }, + { + label: '招聘者(甲方)签字页码', + field: 'bossPage', + component: 'InputNumber', + }, + { + label: '关联招聘者id', + field: 'userId', + component: 'Input', + }, +]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplateList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplateList.vue new file mode 100644 index 0000000..792205c --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/EmployContractTemplateList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/components/EmployContractTemplateModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/components/EmployContractTemplateModal.vue new file mode 100644 index 0000000..02d4ec2 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employContractTemplate/vue3/components/EmployContractTemplateModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot-module-system/jeecg-boot-module-system.iml b/jeecg-boot-module-system/jeecg-boot-module-system.iml index 23022c4..1cd874b 100644 --- a/jeecg-boot-module-system/jeecg-boot-module-system.iml +++ b/jeecg-boot-module-system/jeecg-boot-module-system.iml @@ -286,10 +286,15 @@ - - + + + + + + + diff --git a/jeecg-boot-module-system/pom.xml b/jeecg-boot-module-system/pom.xml index 65a800d..a435da1 100644 --- a/jeecg-boot-module-system/pom.xml +++ b/jeecg-boot-module-system/pom.xml @@ -74,6 +74,25 @@ compile + + + com.itextpdf + itextpdf + 5.5.13 + + + com.itextpdf + itext-asian + 5.2.0 + + + + + org.icepdf.os + icepdf-core + 6.1.2 + + diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ContractController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ContractController.java index 42c8773..d2c160c 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ContractController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ContractController.java @@ -7,6 +7,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.apiBean.PageBean; import org.jeecg.modules.apiService.ContractService; import org.jeecg.modules.employContract.entity.EmployContract; +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -27,17 +28,87 @@ public class ContractController { /******************************************************************************************************************/ //我的服务-电子合同 - @ApiOperation(value="电子合同-获取电子合同列表", notes="role(用户类型): 0-个人 1-企业") + @ApiOperation(value="电子合同-列表", notes="role(用户类型): 0-个人 1-企业") @RequestMapping(value = "/queryContractList", method = {RequestMethod.GET}) - public Result queryContractBossList(@RequestHeader("X-Access-Token")String token, String role, EmployContract employContract, PageBean pageBean){ + public Result queryContractList(@RequestHeader("X-Access-Token")String token, String role, EmployContract employContract, PageBean pageBean){ return contractService.queryContractList(token, role, employContract, pageBean); } //我的服务-电子合同 - @ApiOperation(value="电子合同-根据id查询电子合同详情", notes="电子合同-根据id查询电子合同详情") - @RequestMapping(value = "/queryContracById", method = {RequestMethod.GET}) - public Result queryContracById(@RequestHeader("X-Access-Token") String token, String contractId){ - return contractService.queryContracById(token, contractId); + @ApiOperation(value="电子合同-详情", notes="电子合同-详情") + @RequestMapping(value = "/queryContractById", method = {RequestMethod.GET}) + public Result queryContractById(@RequestHeader("X-Access-Token") String token, String contractId){ + return contractService.queryContractById(token, contractId); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同-添加", notes="电子合同-添加") + @RequestMapping(value = "/addContract", method = {RequestMethod.POST}) + public Result addContract(@RequestHeader("X-Access-Token") String token, EmployContract contract){ + return contractService.addContract(token, contract); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同-修改", notes="电子合同-修改") + @RequestMapping(value = "/updateContract", method = {RequestMethod.POST}) + public Result updateContract(@RequestHeader("X-Access-Token") String token, EmployContract contract){ + return contractService.updateContract(token, contract); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同-删除", notes="电子合同-删除") + @RequestMapping(value = "/deleteContract", method = {RequestMethod.POST}) + public Result deleteContract(@RequestHeader("X-Access-Token") String token, String contractId){ + return contractService.deleteContract(token, contractId); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同模板-列表", notes="电子合同模板-列表") + @RequestMapping(value = "/queryContractTemplateList", method = {RequestMethod.GET}) + public Result queryContractTemplateList(@RequestHeader("X-Access-Token")String token, PageBean pageBean){ + return contractService.queryContractTemplateList(token, pageBean); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同模板-详情", notes="电子合同模板-详情") + @RequestMapping(value = "/queryContractTemplateById", method = {RequestMethod.GET}) + public Result queryContractTemplateById(@RequestHeader("X-Access-Token") String token, String contractTemplateId){ + return contractService.queryContractTemplateById(token, contractTemplateId); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同模板-添加", notes="电子合同模板-添加") + @RequestMapping(value = "/addContractTemplate", method = {RequestMethod.POST}) + public Result addContractTemplate(@RequestHeader("X-Access-Token") String token, EmployContractTemplate contractTemplate){ + return contractService.addContractTemplate(token, contractTemplate); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同模板-修改", notes="电子合同模板-修改") + @RequestMapping(value = "/updateContractTemplate", method = {RequestMethod.POST}) + public Result updateContractTemplate(@RequestHeader("X-Access-Token") String token, EmployContractTemplate contractTemplate){ + return contractService.updateContractTemplate(token, contractTemplate); + } + + //我的服务-电子合同 + @ApiOperation(value="电子合同模板-删除", notes="电子合同模板-删除") + @RequestMapping(value = "/deleteContractTemplate", method = {RequestMethod.POST}) + public Result deleteContractTemplate(@RequestHeader("X-Access-Token") String token, String contractTemplateId){ + return contractService.deleteContractTemplate(token, contractTemplateId); + } + + //我的服务-电子合同 + @ApiOperation(value="工具-pdf转图片base64", notes="工具-pdf转图片base64") + @RequestMapping(value = "/pdf2imagebase64", method = {RequestMethod.GET}) + public Result pdf2imagebase64(String pdfPath){ + return contractService.pdf2imagebase64(pdfPath); + } + + //我的服务-电子合同 + @ApiOperation(value="工具-图片转pdf", notes="多个图片用;分隔") + @RequestMapping(value = "/image2pdf", method = {RequestMethod.GET}) + public Result image2pdf(String images){ + return contractService.image2pdf(images); } } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/JobController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/JobController.java index feafdf6..9d5f700 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/JobController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/JobController.java @@ -28,8 +28,8 @@ public class JobController { //查看工作列表 @ApiOperation(value="工作信息-查询工作信息列表", notes="工作信息-查询工作信息列表") @RequestMapping(value = "/queryJobList", method = {RequestMethod.GET}) - public Result queryJobList(EmployJob employJob, PageBean pageBean){ - return jobService.queryJobList(employJob, pageBean); + public Result queryJobList(EmployJob employJob, String userId, PageBean pageBean){ + return jobService.queryJobList(employJob, userId, pageBean); } //工作信息-根据Id查看工作详情 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/EmployeeApiController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/EmployeeApiController.java index 7b8df5e..5d3ce94 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/EmployeeApiController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/employController/EmployeeApiController.java @@ -143,18 +143,18 @@ public class EmployeeApiController { return employeeApiService.queryResumeByUserId(token, pageBean); } - //我的服务-电子合同 - @ApiOperation(value="电子合同-获取电子合同列表", notes="电子合同-获取电子合同列表") - @RequestMapping(value = "/queryContractList", method = {RequestMethod.GET}) - public Result queryContractList(@RequestHeader("X-Access-Token") String token, EmployContract employContract, PageBean pageBean){ - return employeeApiService.queryContractList(token, employContract, pageBean); - } - - //我的服务-电子合同 - @ApiOperation(value="电子合同-根据id查询电子合同详情", notes="电子合同-根据id查询电子合同详情") - @RequestMapping(value = "/queryContracById", method = {RequestMethod.GET}) - public Result queryContracById(@RequestHeader("X-Access-Token") String token, String contractId){ - return employeeApiService.queryContracById(token, contractId); - } +// //我的服务-电子合同 +// @ApiOperation(value="电子合同-获取电子合同列表", notes="电子合同-获取电子合同列表") +// @RequestMapping(value = "/queryContractList", method = {RequestMethod.GET}) +// public Result queryContractList(@RequestHeader("X-Access-Token") String token, EmployContract employContract, PageBean pageBean){ +// return employeeApiService.queryContractList(token, employContract, pageBean); +// } +// +// //我的服务-电子合同 +// @ApiOperation(value="电子合同-根据id查询电子合同详情", notes="电子合同-根据id查询电子合同详情") +// @RequestMapping(value = "/queryContracById", method = {RequestMethod.GET}) +// public Result queryContracById(@RequestHeader("X-Access-Token") String token, String contractId){ +// return employeeApiService.queryContracById(token, contractId); +// } } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ContractService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ContractService.java index afd904b..e92cdcc 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ContractService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ContractService.java @@ -1,8 +1,12 @@ package org.jeecg.modules.apiService; +import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.apiBean.PageBean; import org.jeecg.modules.employContract.entity.EmployContract; +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; public interface ContractService { @@ -22,6 +26,76 @@ public interface ContractService { * @param contractId * @return */ - public Result queryContracById(String token, String contractId); + public Result queryContractById(String token, String contractId); + + /** + * 添加电子合同信息 + * @param token + * @param contract + * @return + */ + public Result addContract(String token, EmployContract contract); + + /** + * 修改电子合同信息 + * @param token + * @param contract + * @return + */ + public Result updateContract(String token, EmployContract contract); + + /** + * 修改电子合同信息 + * @param token + * @param contractId + * @return + */ + public Result deleteContract(String token, String contractId); + + /** + * 电子合同模板-获取电子合同模板列表 + * @param token + * @param pageBean + * @return + */ + public Result queryContractTemplateList(String token, PageBean pageBean); + + /** + * 电子合同模板-获取电子合同模板详情 + * @param token + * @param contractTemplateId + * @return + */ + public Result queryContractTemplateById(String token, String contractTemplateId); + + /** + * 添加电子合同模板信息 + * @param token + * @param contractTemplate + * @return + */ + public Result addContractTemplate(String token, EmployContractTemplate contractTemplate); + + /** + * 修改电子合同模板信息 + * @param token + * @param contractTemplate + * @return + */ + public Result updateContractTemplate(String token, EmployContractTemplate contractTemplate); + + /** + * 删除电子合同模板信息 + * @param token + * @param contractTemplateId + * @return + */ + public Result deleteContractTemplate(String token, String contractTemplateId); + + //工具-pdf转图片base64 + public Result pdf2imagebase64(String pdfPath); + + //工具-图片转pdf(多个图片用;分隔) + public Result image2pdf(String images); } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/JobService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/JobService.java index 0fa1c5f..bde1e4f 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/JobService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/JobService.java @@ -13,7 +13,7 @@ public interface JobService { * @param pageBean * @return */ - public Result queryJobList(EmployJob employJob, PageBean pageBean); + public Result queryJobList(EmployJob employJob, String userId, PageBean pageBean); /** * 根据id查看工作详情 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/BossApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/BossApiServiceImpl.java index 976f33c..2644a0f 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/BossApiServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/BossApiServiceImpl.java @@ -396,11 +396,11 @@ public class BossApiServiceImpl implements BossApiService { .eq(EmployContract::getBossId, hanHaiMember.getId()); //组装查询条件 - if(null != employContract.getSignCompany()){ - query.like(EmployContract::getSignCompany, employContract.getSignCompany()); + if(null != employContract.getBossStatus()){ + query.like(EmployContract::getBossStatus, employContract.getBossStatus()); } - if(null != employContract.getSignPerson()){ - query.like(EmployContract::getSignPerson, employContract.getSignPerson()); + if(null != employContract.getEmployeeStatus()){ + query.like(EmployContract::getEmployeeStatus, employContract.getEmployeeStatus()); } //获取电子合同信息 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CheckServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CheckServiceImpl.java index c3ed195..751cc20 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CheckServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CheckServiceImpl.java @@ -125,7 +125,8 @@ public class CheckServiceImpl implements CheckService { @Override public Result queryWatchMeBoss(String token, PageBean pageBean) { //权限验证 - HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + HanHaiMember hanHaiMember = hanHaiMemberService.getById("1870164829569347586"); try{ //查询我发布的工作列表 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CollectionServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CollectionServiceImpl.java index f604770..54e9218 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CollectionServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/CollectionServiceImpl.java @@ -5,6 +5,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.config.shiro.ShiroRealm; import org.jeecg.modules.apiBean.PageBean; import org.jeecg.modules.apiService.CollectionService; +import org.jeecg.modules.employAuthenticationPerson.entity.EmployAuthenticationPerson; +import org.jeecg.modules.employAuthenticationPerson.service.IEmployAuthenticationPersonService; import org.jeecg.modules.employCollectionJob.entity.EmployCollectionJob; import org.jeecg.modules.employCollectionJob.service.IEmployCollectionJobService; import org.jeecg.modules.employCollectionResume.entity.EmployCollectionResume; @@ -58,6 +60,10 @@ public class CollectionServiceImpl implements CollectionService { //简历收藏表 @Resource private IEmployCollectionResumeService employCollectionResumeService; + + //用户实名信息表 + @Resource + private IEmployAuthenticationPersonService employAuthenticationPersonService; /******************************************************************************************************************/ //我的收藏-收藏工作信息 @@ -154,6 +160,12 @@ public class CollectionServiceImpl implements CollectionService { //获取用户信息 HanHaiMember member = hanHaiMemberService.getById(resume.getUserId()); resume.setHanHaiMember(member); + //获取用户实名信息 + EmployAuthenticationPerson ahthenticationPerson = employAuthenticationPersonService + .lambdaQuery() + .eq(EmployAuthenticationPerson::getUserId, resume.getUserId()) + .one(); + resume.setEmployAuthenticationPerson(ahthenticationPerson); //获取工作性质信息 EmployNature nature = employNatureService.getById(resume.getNatureId()); resume.setNatureId_dictText(nature.getName()); diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ContractServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ContractServiceImpl.java index 4b5b2fa..9055a11 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ContractServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ContractServiceImpl.java @@ -2,6 +2,12 @@ package org.jeecg.modules.apiService.impl; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.itextpdf.text.Document; +import com.itextpdf.text.DocumentException; +import com.itextpdf.text.Image; +import com.itextpdf.text.PageSize; +import com.itextpdf.text.pdf.PdfWriter; +import org.icepdf.core.util.GraphicsRenderingHints; import org.jeecg.common.api.vo.Result; import org.jeecg.config.shiro.ShiroRealm; import org.jeecg.modules.apiBean.PageBean; @@ -12,12 +18,21 @@ import org.jeecg.modules.employAuthenticationPerson.entity.EmployAuthenticationP import org.jeecg.modules.employAuthenticationPerson.service.IEmployAuthenticationPersonService; import org.jeecg.modules.employContract.entity.EmployContract; import org.jeecg.modules.employContract.service.IEmployContractService; +import org.jeecg.modules.employContractTemplate.entity.EmployContractTemplate; +import org.jeecg.modules.employContractTemplate.service.IEmployContractTemplateService; import org.jeecg.modules.employResume.entity.EmployResume; import org.jeecg.modules.employResume.service.IEmployResumeService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.springframework.stereotype.Service; +import sun.misc.BASE64Encoder; import javax.annotation.Resource; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.awt.image.RenderedImage; +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.*; @Service public class ContractServiceImpl implements ContractService { @@ -27,6 +42,9 @@ public class ContractServiceImpl implements ContractService { @Resource private ShiroRealm shiroRealm; + //电子合同模板表 + @Resource + private IEmployContractTemplateService employContractTemplateService; //电子合同表 @Resource @@ -61,23 +79,39 @@ public class ContractServiceImpl implements ContractService { //组装查询条件 if("0".equals(role)){ //用户为个人 - query.eq(EmployContract::getPersonId, hanHaiMember.getId()); + query.eq(EmployContract::getEmployeeId, hanHaiMember.getId()); }else if("1".equals(role)){ //用户为企业 query.eq(EmployContract::getBossId, hanHaiMember.getId()); }else { return Result.error("角色类型输入错误,电子合同列表查询失败"); } - if(null != employContract.getSignCompany()){ - query.eq(EmployContract::getSignCompany, employContract.getSignCompany()); + if(null != employContract.getBossStatus()){ + query.eq(EmployContract::getBossStatus, employContract.getBossStatus()); } - if(null != employContract.getSignPerson()){ - query.eq(EmployContract::getSignPerson, employContract.getSignPerson()); + if(null != employContract.getEmployeeStatus()){ + query.eq(EmployContract::getEmployeeStatus, employContract.getEmployeeStatus()); } //获取电子合同信息 Page pageList = query.page(page); + //电子合同补充公司名称 + for (EmployContract record : pageList.getRecords()) { + EmployAhthenticationCompany company = ahthenticationCompanyService + .lambdaQuery() + .eq(EmployAhthenticationCompany::getUserId, record.getBossId()) + .one(); + record.setCompanyName(company.getCompanyName()); + + //补充招聘者实名信息 + EmployAuthenticationPerson person = authenticationPersonService + .lambdaQuery() + .eq(EmployAuthenticationPerson::getUserId, record.getEmployeeId()) + .one(); + record.setEmployeeName(person.getName()); + } + return Result.OK("电子合同列表", pageList); }catch (Exception e){ e.printStackTrace(); @@ -88,7 +122,7 @@ public class ContractServiceImpl implements ContractService { //电子合同-获取电子合同详情 @Override - public Result queryContracById(String token, String contractId) { + public Result queryContractById(String token, String contractId) { //权限验证 HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); @@ -98,6 +132,20 @@ public class ContractServiceImpl implements ContractService { .eq(EmployContract::getId, contractId) .one(); + //补充公司名称 + EmployAhthenticationCompany company = ahthenticationCompanyService + .lambdaQuery() + .eq(EmployAhthenticationCompany::getUserId, one.getBossId()) + .one(); + one.setCompanyName(company.getCompanyName()); + + //补充招聘者实名信息 + EmployAuthenticationPerson person = authenticationPersonService + .lambdaQuery() + .eq(EmployAuthenticationPerson::getUserId, one.getEmployeeId()) + .one(); + one.setEmployeeName(person.getName()); + return Result.OK("电子合同详情", one); }catch (Exception e){ e.printStackTrace(); @@ -106,48 +154,338 @@ public class ContractServiceImpl implements ContractService { } //添加电子合同信息 - public Result addContract(String token, String resumeId) { + @Override + public Result addContract(String token, EmployContract contract) { //权限验证 HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); //返回信息 String message = "电子合同添加失败!"; - //电子合同对象 - EmployContract contract = new EmployContract(); try{ - //获取招聘者id + //执行合同添加操作 contract.setBossId(hanHaiMember.getId()); + boolean result = employContractService.save(contract); + if(result){ + return Result.OK("电子合同添加成功"); + }else { + return Result.error("电子合同添加失败"); + } - //获取招聘者实名公司名称 - EmployAhthenticationCompany company = ahthenticationCompanyService + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同添加失败"); + } + } + + //修改电子合同信息 + @Override + public Result updateContract(String token, EmployContract contract) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String message = "电子合同修改失败!"; + + try{ + //执行合同添加操作 + boolean result = employContractService.updateById(contract); + if(result){ + return Result.OK("电子合同修改成功"); + }else { + return Result.error("电子合同修改失败"); + } + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同修改失败"); + } + } + + //修改电子合同信息 + @Override + public Result deleteContract(String token, String contractId) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String message = "电子合同删除失败!"; + + try{ + //执行合同添加操作 + boolean result = employContractService.removeById(contractId); + if(result){ + return Result.OK("电子合同删除成功"); + }else { + return Result.error("电子合同删除失败"); + } + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同删除失败"); + } + } + + /*********************************************电子合同模板***********************************************************/ + //电子合同模板-获取电子合同模板列表 + @Override + public Result queryContractTemplateList(String token, PageBean pageBean) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + + try{ + //分页 + Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + LambdaQueryChainWrapper query = employContractTemplateService .lambdaQuery() - .eq(EmployAhthenticationCompany::getUserId, hanHaiMember.getId()) - .one(); - contract.setNameA(company.getCompanyName()); + .eq(EmployContractTemplate::getUserId, hanHaiMember.getId()); - //获取求职者id - EmployResume resume = employResumeService.getById(resumeId); - contract.setPersonId(resume.getUserId()); + //组装查询条件 + query.eq(EmployContractTemplate::getUserId, hanHaiMember.getId()); - //获取实名用户姓名 - EmployAuthenticationPerson person = authenticationPersonService + //获取电子合同信息 + Page pageList = query.page(page); + + return Result.OK("电子合同列表", pageList); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同列表查询失败"); + } + + } + + //电子合同模板-获取电子合同模板详情 + @Override + public Result queryContractTemplateById(String token, String contractTemplateId) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + + try{ + EmployContractTemplate one = employContractTemplateService .lambdaQuery() - .eq(EmployAuthenticationPerson::getUserId, resume.getUserId()) + .eq(EmployContractTemplate::getId, contractTemplateId) .one(); - contract.setNameB(person.getName()); + return Result.OK("电子合同模板详情", one); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同模板详情查询失败"); + } + } + + //添加电子合同模板信息 + public Result addContractTemplate(String token, EmployContractTemplate template) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String message = "电子合同模板添加失败!"; + + try{ //执行合同添加操作 - boolean result = employContractService.save(contract); + template.setUserId(hanHaiMember.getId()); + boolean result = employContractTemplateService.save(template); if(result){ - return Result.OK("电子合同添加成功"); + return Result.OK("电子合同模板添加成功"); }else { - return Result.error("电子合同添加失败"); + return Result.error("电子合同模板添加失败"); } }catch (Exception e){ e.printStackTrace(); - return Result.error("电子合同添加失败"); + return Result.error("电子合同模板添加失败"); + } + } + + //修改电子合同模板信息 + public Result updateContractTemplate(String token, EmployContractTemplate template) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String message = "电子合同模板修改失败!"; + + try{ + //执行合同添加操作 + boolean result = employContractTemplateService.updateById(template); + if(result){ + return Result.OK("电子合同模板修改成功"); + }else { + return Result.error("电子合同模板修改失败"); + } + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同模板修改失败"); + } + } + + //删除电子合同模板信息 + @Override + public Result deleteContractTemplate(String token, String templateId) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String message = "电子合同模板删除失败!"; + + try{ + //执行合同添加操作 + boolean result = employContractTemplateService.removeById(templateId); + if(result){ + return Result.OK("电子合同模板删除成功"); + }else { + return Result.error("电子合同模板删除失败"); + } + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("电子合同模板删除失败"); + } + } + + /*********************************************图片与pdf互转*********************************************************/ + //pdf转图片base64(一张pdf转成多个base64图片) + @Override + public Result pdf2imagebase64(String pdfPath){ + + //String pdfPath = "F:\\upload\\test_1736767131255.pdf";//pdf文件路径 + //获取当前时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + Date now = new Date(); + String formattedDate = sdf.format(now); + System.out.println(formattedDate); + String imagePath = "F:\\temp\\";//图片文件路径 + String fileName = formattedDate +"image_";//图片文件名字 + + //文件流对象 + InputStream in = null; + + List pathList = new ArrayList<>();//图片路径列表 + List codeList = new ArrayList<>();//base64列表 + + Map map = new HashMap<>(); + + try{ + org.icepdf.core.pobjects.Document document = new org.icepdf.core.pobjects.Document(); + document.setFile(pdfPath); + float scale = 2.5f;//缩放比例 + float rotation = 0f;//旋转角度 + + //pdf转图片 + for (int i = 0; i < document.getNumberOfPages(); i++) { + BufferedImage image = (BufferedImage) + document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale); + RenderedImage rendImage = image; + File fileDir = new File(imagePath); + if (!fileDir.exists()) { + fileDir.mkdirs(); + } + String imgName = fileName + i + ".png";//图片名称 + String filePath = imagePath + imgName;//图片文件路径 + File file = new File(filePath); + ImageIO.write(rendImage, "png", file); + image.flush(); + pathList.add(filePath); + } + document.dispose();//关闭流 + + //图片转base64 + for (String path : pathList) { + String imgFile = path;// 待处理的图片 + + byte[] data = null; + String encode = null; // 返回Base64编码过的字节数组字符串 + BASE64Encoder encoder = new BASE64Encoder();// 对字节数组Base64编码 + + // 读取图片字节数组 + in = new FileInputStream(imgFile); + data = new byte[in.available()]; + in.read(data); + encode = encoder.encode(data); + codeList.add(encode); + } + return Result.OK("pdf转图片base64成功", codeList); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("pdf转图片base64失败", codeList); + }finally { + try{ + if(null != in){ + in.close();//关闭文件流 + } + }catch (Exception e){ + e.printStackTrace(); + return Result.error("pdf转图片base64失败", codeList); + } + } } + + //图片转pdf + public Result image2pdf(String images){ + + //获取当前时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + Date now = new Date(); + String formattedDate = sdf.format(now); + System.out.println(formattedDate); + + //String images = "F:\\temp\\image_0.png;F:\\temp\\image_1.png;F:\\temp\\image_2.png";//图片文件地址 + String pdfPath = "F:\\temp\\"+formattedDate+".pdf"; // 输出pdf文件路径 + String[] imageList = images.split(";"); + + try{ + ArrayList imageUrllist = new ArrayList(); //图片list集合 + for (int i=0; i imageUrllist, String mOutputPdfFileName) { + Document doc = new Document(PageSize.A4, 0, 0, 0, 0); //new一个pdf文档 + try { + PdfWriter.getInstance(doc, new FileOutputStream(mOutputPdfFileName)); //pdf写入 + doc.open();//打开文档 + for (int i = 0; i < imageUrllist.size(); i++) { //循环图片List,将图片加入到pdf中 + doc.newPage(); //在pdf创建一页 + Image png1 = Image.getInstance(imageUrllist.get(i)); //通过文件路径获取image + float heigth = png1.getHeight(); + float width = png1.getWidth(); + int percent = getPercent2(heigth, width); + png1.setAlignment(Image.MIDDLE); + png1.scalePercent(percent + 3);// 表示是原来图像的比例; + doc.add(png1); + } + doc.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (DocumentException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + File mOutputPdfFile = new File(mOutputPdfFileName); //输出流 + if (!mOutputPdfFile.exists()) { + mOutputPdfFile.deleteOnExit(); + return null; + } + return mOutputPdfFile; //反回文件输出流 + } + public static int getPercent2(float h, float w) { + int p = 0; + float p2 = 0.0f; + p2 = 530 / w * 100; + p = Math.round(p2); + return p; + } + + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/EmployeeApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/EmployeeApiServiceImpl.java index 3e0c591..c85cc81 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/EmployeeApiServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/EmployeeApiServiceImpl.java @@ -564,16 +564,15 @@ public class EmployeeApiServiceImpl implements EmployeeApiService { //分页 Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); LambdaQueryChainWrapper query = employContractService - .lambdaQuery() - .eq(EmployContract::getPersonId, hanHaiMember.getId()); - - //组装查询条件 - if(null != employContract.getSignCompany()){ - query.like(EmployContract::getSignCompany, employContract.getSignCompany()); - } - if(null != employContract.getSignPerson()){ - query.like(EmployContract::getSignPerson, employContract.getSignPerson()); - } + .lambdaQuery(); +// +// //组装查询条件 +// if(null != employContract.getSignCompany()){ +// query.like(EmployContract::getSignCompany, employContract.getSignCompany()); +// } +// if(null != employContract.getSignPerson()){ +// query.like(EmployContract::getSignPerson, employContract.getSignPerson()); +// } //获取电子合同信息 Page pageList = query.page(page); @@ -596,7 +595,6 @@ public class EmployeeApiServiceImpl implements EmployeeApiService { EmployContract one = employContractService .lambdaQuery() .eq(EmployContract::getId, contractId) - .eq(EmployContract::getPersonId, hanHaiMember.getId()) .one(); return Result.OK("电子合同详情", one); diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java index 64f3578..9199498 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java @@ -69,7 +69,7 @@ public class JobServiceImpl implements JobService { //查询工作信息列表 @Override - public Result queryJobList(EmployJob employJob, PageBean pageBean) { + public Result queryJobList(EmployJob employJob, String userId, PageBean pageBean) { //返回信息 String message = "获取工作信息列表失败!"; //工作信息列表 @@ -103,6 +103,10 @@ public class JobServiceImpl implements JobService { //工作岗位名称 query.like(EmployJob::getTitle, employJob.getTitle()); } + if(null != userId){ + //工作岗位发布人id + query.like(EmployJob::getUserId, userId); + } //按时间倒序 query.orderByDesc(EmployJob::getCreateTime); diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ShareServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ShareServiceImpl.java index 8aeac34..d05e599 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ShareServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ShareServiceImpl.java @@ -14,6 +14,8 @@ import org.jeecg.modules.apiService.ShareService; import org.jeecg.modules.employConfig.entity.EmployConfig; import org.jeecg.modules.employConfig.service.IEmployConfigService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -36,16 +38,28 @@ public class ShareServiceImpl implements ShareService { @Resource private ShiroRealm shiroRealm; + //配置信息 + @Resource + private IHanHaiMemberService hanHaiMemberService; + //配置信息 @Resource private IEmployConfigService employConfigService; private String appid = "wxe631bce44d54667e";//小程序appid private String secret = "2f19c405ea9bb523f350b5a9fd01b878";//小程序密钥 - private String endpoint = "oss-cn-guangzhou.aliyuncs.com"; - private String accessKey = "LTAI5tPfZo39q2r9Sr5mW84u"; - private String secretKey = "XxExGallsV4O9nERHpVsQg2XtPCU7r"; - private String bucketName = "augcl"; + @Value("${jeecg.oss.endpoint}") + private String endpoint; + @Value("${jeecg.oss.accessKey}") + private String accessKey; + @Value("${jeecg.oss.secretKey}") + private String secretKey; + @Value("${jeecg.oss.bucketName}") + private String bucketName; +// private String endpoint = "oss-cn-beijing.aliyuncs.com"; +// private String accessKey = "LTAI5t5nV2Pw67wVC9ZvtFSb"; +// private String secretKey = "perarQgbRK9TPNNb2G97EojoJ6kb9H"; +// private String bucketName = "teyizhaoimg"; /*************************************************************************************/ //获取个人推荐二维码 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/VipServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/VipServiceImpl.java index 8d597fc..5d0c622 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/VipServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/VipServiceImpl.java @@ -51,6 +51,7 @@ public class VipServiceImpl implements VipService { EmployVipRecord vipRecord = new EmployVipRecord(); String payNo = IdWorker.getIdStr();//生成订单号 vipRecord.setPayNo(payNo);//订单号 + vipRecord.setId(payNo);//订单号 vipRecord.setUserId(hanHaiMember.getId());//关联用户id vipRecord.setVipTypeId(vipTypeId);//会员类型id @@ -72,9 +73,9 @@ public class VipServiceImpl implements VipService { Object appOrder = mpWxPayService.createOrder( "购买"+ productName , "127.0.0.1", - payNo, + vipRecord.getId(), i1, - payNo, + vipRecord.getId(), hanHaiMember.getAppletOpenid(), vipRecord.toString()); diff --git a/jeecg-boot-module-system/src/main/resources/application-dev.yml b/jeecg-boot-module-system/src/main/resources/application-dev.yml index b44e3a6..f1b344c 100644 --- a/jeecg-boot-module-system/src/main/resources/application-dev.yml +++ b/jeecg-boot-module-system/src/main/resources/application-dev.yml @@ -196,7 +196,7 @@ jeecg : secretKey: perarQgbRK9TPNNb2G97EojoJ6kb9H endpoint: oss-cn-beijing.aliyuncs.com bucketName: teyizhaoimg - staticDomain: https://img.teyizhao.com + staticDomain: https://img.teyizhao.com/ # ElasticSearch 6设置 elasticsearch: cluster-name: jeecg-ES