diff --git a/running/pdf/contract_3.pdf b/running/pdf/contract_3.pdf new file mode 100644 index 000000000..6574cdd6e Binary files /dev/null and b/running/pdf/contract_3.pdf differ diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysContractController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysContractController.java index 9d3de4942..e55c3c705 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysContractController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysContractController.java @@ -1,6 +1,7 @@ package com.stdiet.web.controller.custom; import com.stdiet.common.annotation.Log; +import com.stdiet.common.constant.ContractContants; import com.stdiet.common.core.controller.BaseController; import com.stdiet.common.core.domain.AjaxResult; import com.stdiet.common.core.page.TableDataInfo; @@ -109,11 +110,22 @@ public class SysContractController extends BaseController { } else { Map data = new HashMap<>(); data.put("id", contract.getId().toString()); + data.put("projectId", contract.getProjectId().toString()); + data.put("projectName", contract.getProjectName()); data.put("amount", contract.getAmount().toString()); data.put("serveTime", contract.getServeTime() + ""); data.put("tutor", contract.getTutor()); data.put("servePromise", contract.getServePromise()); data.put("remark", contract.getRemark()); + data.put("companyName", ContractContants.companyName); + data.put("companyLegalPerson", ContractContants.companyLegalPerson); + data.put("companyAddress", ContractContants.companyAddress); + data.put("companyPhone", ContractContants.companyPhone); + data.put("bankName", ContractContants.bankName); + data.put("bankAccount", ContractContants.bankAccount); + data.put("hourDay", ContractContants.hourDay); + data.put("dayWeek", ContractContants.dayWeek); + data.put("replyIntervalTime", ContractContants.replyIntervalTime); ajax.put("data", data); } return ajax; diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerHealthyController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerHealthyController.java index d39b93abf..5c74ad5d3 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerHealthyController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysCustomerHealthyController.java @@ -5,14 +5,7 @@ import java.util.List; import com.stdiet.common.utils.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.stdiet.common.annotation.Log; import com.stdiet.common.core.controller.BaseController; import com.stdiet.common.core.domain.AjaxResult; @@ -77,7 +70,11 @@ public class SysCustomerHealthyController extends BaseController @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { - return AjaxResult.success(sysCustomerHealthyService.selectSysCustomerHealthyById(id)); + SysCustomerHealthy sysCustomerHealthy = sysCustomerHealthyService.selectSysCustomerHealthyById(id); + if(sysCustomerHealthy != null && StringUtils.isNotEmpty(sysCustomerHealthy.getPhone())){ + sysCustomerHealthy.setPhone(StringUtils.hiddenPhoneNumber(sysCustomerHealthy.getPhone())); + } + return AjaxResult.success(sysCustomerHealthy); } /** diff --git a/stdiet-common/src/main/java/com/stdiet/common/constant/ContractContants.java b/stdiet-common/src/main/java/com/stdiet/common/constant/ContractContants.java new file mode 100644 index 000000000..d195993f6 --- /dev/null +++ b/stdiet-common/src/main/java/com/stdiet/common/constant/ContractContants.java @@ -0,0 +1,57 @@ +package com.stdiet.common.constant; + +import java.util.HashMap; +import java.util.Map; + +/** + * 合同相关常量 + */ +public class ContractContants { + + //public static final Map CONTRACT_BASE = new HashMap<>(); + + /** + * 公司名称 + */ + public static final String companyName = "深圳市胜唐科技有限公司"; + + /** + * 公司法人 + */ + public static final String companyLegalPerson = "张玉"; + + /** + * 公司地址 + */ + public static final String companyAddress = "深圳市宝安区西乡街道宝民二路缤纷时代广场3楼318"; + + /** + * 公司联系电话 + */ + public static final String companyPhone = "深圳市宝安区西乡街道宝民二路缤纷时代广场3楼318"; + + /** + * 最长回复间隔 + */ + public static final String replyIntervalTime = "3.5"; + + /** + * 银行名称 + */ + public static final String bankName = "平安银行深圳新城支行"; + + /** + * 银行账户 + */ + public static final String bankAccount = "15000102247278"; + + /** + * 每天服务时间(小时) + */ + public static final String hourDay = "10.5"; + + /** + * 每周服务天数(天) + */ + public static final String dayWeek = "6"; +} diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysContract.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysContract.java index 63cb26de7..7325c8f86 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysContract.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysContract.java @@ -6,6 +6,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; /** * 合同对象 sys_contract @@ -22,6 +24,16 @@ public class SysContract extends BaseEntity { @Excel(name = "合同编号") private Long id; + /** + * 调理项目ID + */ + private Long projectId; + + /** + * 调理项目名称 + */ + private String projectName; + /** * 客户姓名 */ @@ -197,6 +209,22 @@ public class SysContract extends BaseEntity { this.serveTimeStr = serveTimeStr; } + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysContractServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysContractServiceImpl.java index 997f7c4d6..73f0c018f 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysContractServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysContractServiceImpl.java @@ -3,6 +3,7 @@ package com.stdiet.custom.service.impl; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.*; +import com.stdiet.common.constant.ContractContants; import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.StringUtils; import com.stdiet.custom.domain.SysContract; @@ -16,6 +17,8 @@ import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; @@ -123,21 +126,39 @@ public class SysContractServiceImpl implements ISysContractService { AcroFields form = stamper.getAcroFields(); form.addSubstitutionFont(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED)); - form.setField("name", sysContract.getSignName(), true); - form.setField("serveTime", sysContract.getServeTimeStr(), true); -// form.setField("tutor", sysContract.getTutor(), true); - form.setField("moneyUpper", sysContract.getAmountUpper(), true); - form.setField("money", sysContract.getAmount().intValue() + "", true); - form.setField("phone", sysContract.getPhone(), true); - form.setField("promise", sysContract.getServePromise(), true); - form.setField("date", DateUtils.getDate(), true); -// form.setField("date", sysContract.getSignDate()); - form.setField("cusId", sysContract.getCusId(), true); - if (StringUtils.isNotEmpty(sysContract.getRemark())) { - form.setField("remark", "(备注:" + sysContract.getRemark() + ")", true); + if(sysContract.getProjectId().intValue() == 0){ + form.setField("name", sysContract.getSignName(), true); + form.setField("serveTime", sysContract.getServeTimeStr(), true); + //form.setField("tutor", sysContract.getTutor(), true); + form.setField("moneyUpper", sysContract.getAmountUpper(), true); + form.setField("money", sysContract.getAmount().intValue() + "", true); + form.setField("phone", sysContract.getPhone(), true); + form.setField("promise", sysContract.getServePromise(), true); + form.setField("date", DateUtils.getDate(), true); + //form.setField("date", sysContract.getSignDate()); + form.setField("cusId", sysContract.getCusId(), true); + if (StringUtils.isNotEmpty(sysContract.getRemark())) { + form.setField("remark", "(备注:" + sysContract.getRemark() + ")", true); + } + }else{ + form.setField("companyName", ContractContants.companyName, true); + form.setField("companyLegalPerson", ContractContants.companyLegalPerson, true); + form.setField("name", sysContract.getSignName(), true); + form.setField("cusId", sysContract.getCusId(), true); + form.setField("phone", sysContract.getPhone(), true); + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + form.setField("expireTime", LocalDate.now().plusMonths(sysContract.getServeTime()/30).format(fmt), true); + form.setField("amount", sysContract.getAmount().intValue()+"", true); + form.setField("amountCapital", sysContract.getAmountUpper(), true); + form.setField("serveTime", sysContract.getServeTime()/30+"", true); + form.setField("bankName", ContractContants.bankName, true); + form.setField("bankAccount", ContractContants.bankAccount, true); + form.setField("hourDay", ContractContants.hourDay, true); + form.setField("dayWeek", ContractContants.dayWeek, true); + form.setField("replyIntervalTime", ContractContants.replyIntervalTime, true); + form.setField("tutor", sysContract.getTutor(), true); + form.setField("signTime", DateUtils.getDate(), true); } - - stamper.setFormFlattening(true);// 如果为false那么生成的PDF文件还能编辑,一定要设为true stamper.close(); diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysContractMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysContractMapper.xml index 29ce2573a..f8fdd4f3d 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysContractMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysContractMapper.xml @@ -6,6 +6,7 @@ + @@ -21,33 +22,39 @@ + + - select id, status, name, sign_name, phone, cus_id, serve_time, tutor, serve_promise, amount, path, create_by, create_time, update_by, update_time, remark from sys_contract + select sc.id, sc.project_id, sc.status, sc.name, sc.sign_name, sc.phone, sc.cus_id, sc.serve_time, sc.tutor, sc.serve_promise, sc.amount, + sc.path, sc.create_by, sc.create_time, sc.update_by, sc.update_time, sc.remark,cp.dict_label as project_name + from sys_contract as sc + LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'conditioning_project') as cp ON cp.dict_value = sc.project_id insert into sys_contract id, + project_id, status, name, sign_name, @@ -66,6 +73,7 @@ #{id}, + #{projectId}, #{status}, #{name}, #{signName}, @@ -87,6 +95,7 @@ update sys_contract + project_id = #{projectId}, status = #{status}, name = #{name}, sign_name = #{signName}, diff --git a/stdiet-ui/src/views/custom/contract/index.vue b/stdiet-ui/src/views/custom/contract/index.vue index d9ec18aaa..682a02cc6 100644 --- a/stdiet-ui/src/views/custom/contract/index.vue +++ b/stdiet-ui/src/views/custom/contract/index.vue @@ -117,6 +117,7 @@ + @@ -131,6 +241,7 @@ import {getFile, signContract} from "@/api/custom/contract"; import {digitUppercase, validatorIDCard} from "../../../utils/ruoyi"; + import dayjs from 'dayjs'; export default { name: 'sign', @@ -217,7 +328,8 @@ cusId: [ {required: false, trigger: "blur", validator: checkcusId} ] - } + }, + titleArray:["营养减脂服务合同","","","备孕营养调理指导服务合同",""] } }, mounted() { @@ -238,16 +350,15 @@ this.form = result.data; this.form.amount = parseInt(result.data.amount); this.form.amountUpper = digitUppercase(this.form.amount); - this.form.serveTimeStr = this.serveTimeIdOption.find(obj => obj.value === parseInt(result.data.serveTime)).label + this.form.serveTimeStr = this.serveTimeIdOption.find(obj => obj.value === parseInt(result.data.serveTime)).label; + this.form.expireTime = dayjs().add(this.form.serveTime/30, 'month').format('YYYY-MM-DD'); this.show = true; } }) }, submitForm() { - console.log("chdkscjksdc1"); this.$refs["form"].validate(valid => { if (valid) { - console.log("chdkscjksdc2"); signContract(this.form).then(result => { if (result.code === 200) { window.location.href = window.location.origin + result.url; diff --git a/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue b/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue index ea329118c..2e017135f 100644 --- a/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue +++ b/stdiet-ui/src/views/custom/subhealthy/investigation/index.vue @@ -34,7 +34,7 @@ - + 选取文件 - 移除文件 -
提示:最多可上传三份,且每份文件不超过20M
+ 移除文件 +
1、最多可上传三份,且每份文件不超过20M +
2、仅支持bmp,gif, jpg, jpeg, png, doc, docx, xls, xlsx, ppt, pptx, html, htm, txt, rar, zip, gz, bz2, pdf格式文件 +
@@ -797,6 +799,7 @@ export default { //是否支持同时选择多张 multiple: true }, + timer: null, rules: { name: [ { required: true, trigger: "blur", message: "请填写姓名" }, @@ -853,7 +856,7 @@ export default { submit(){ if (this.submitFlag) { this.$message({ - message: "请勿重复提交", + message: "请勿重复提交,1分钟后重试", type: "warning", }); return; @@ -863,7 +866,7 @@ export default { this.submitFlag = true; this.form.medicalReport = []; if(this.upload.fileList.length > 0){ - this.$refs.upload.submit();removeFile + this.$refs.upload.submit(); }else{ this.addCustomerHealthy(); } @@ -882,6 +885,7 @@ export default { this.healthyData['arrayName'].forEach(function (item, index) { cusMessage[item] = cusMessage[item] != null ? cusMessage[item].join(",") : null; }); + this.timer = setTimeout(this.fail,1000*60); addCustomerHealthy(cusMessage).then((response) => { if (response.code === 200) { this.$notify({ @@ -889,12 +893,16 @@ export default { message: "", type: "success", }); - }else{ - this.submitFlag = false; - this.upload.isUploading = false; } + }).catch(function() { + console.log("error"); }); }, + fail(){ + console.log("fail"); + this.submitFlag = false; + this.upload.isUploading = false; + }, nextStep(step){ this.$refs.form.validate((valid) => { if(valid || step < 0){ @@ -954,7 +962,7 @@ export default { }, // 文件上传成功处理 handleFileSuccess(response, file, fileList) { - console.log(file.name); + //console.log(file.name); if(response != null && response.code === 200){ this.form.medicalReport.push(response.fileName); this.form.medicalReportName.push(file.name); @@ -963,16 +971,14 @@ export default { this.addCustomerHealthy(); } }else{ - this.upload.isUploading = false; - this.submitFlag = false; + this.fail(); this.$message.error('文件上传失败,请检查文件格式'); } }, // 文件上传失败处理 handleFileFail(err, file, fileList){ this.$message.error('文件上传失败,请检查文件格式'); - this.upload.isUploading = false; - this.submitFlag = false; + this.fail(); }, //获取湿气 getMoistureDictData() {