diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteService.java new file mode 100644 index 0000000..e43f37e --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteService.java @@ -0,0 +1,44 @@ +package com.lyms.platform.biz; + +import com.lyms.platform.common.utils.HttpClientUtil; +import com.lyms.platform.common.utils.PropertiesUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.text.MessageFormat; +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: litao + * @Date: 2017/5/16 0016 13:25 + * @Version: V1.0 + */ +@Service +public class RemoteService { + + private String BASE_URL; + + public static final String INVALID_COUPON_URL = "coupon/invalid"; + + @PostConstruct + public void init() { + String type = PropertiesUtil.getInstance().get("config","remote.url.type"); + if(StringUtils.isNotBlank(type)) { + this.BASE_URL = PropertiesUtil.getInstance().get("config", MessageFormat.format("platform.operate.api.{0}.url", type)); + } + } + + /** + * 作废优惠券相关 + * @param personId + */ + public void invalidCoupon(String personId, String couponTypes, RemoteUrlEnum urlEnum) { + Map params = new HashMap<>(); + params.put("personId", personId); + params.put("couponTypes", couponTypes); + HttpClientUtil.doPost(BASE_URL + urlEnum.getUrl(), params, "utf-8"); + } + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java new file mode 100644 index 0000000..a8f0f8f --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/RemoteUrlEnum.java @@ -0,0 +1,34 @@ +package com.lyms.platform.biz; + +/** + * @Author: litao + * @Date: 2017/5/16 0016 17:22 + * @Version: V1.0 + */ +public enum RemoteUrlEnum { + INVALID_COUPON_URL("coupon/invalid", "作废优惠券"); + + RemoteUrlEnum(String url, String desc) { + this.url = url; + this.desc = desc; + } + + private String url; + private String desc; + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GenSequenceIdService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GenSequenceIdService.java index 601ab6a..6d2d8a6 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GenSequenceIdService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GenSequenceIdService.java @@ -27,13 +27,13 @@ public class GenSequenceIdService { private int createSize; - public String poll() { + public String poll(String areaCode) { String s = genSequenceIdDao.poll(); if(StringUtils.isBlank(s)) { generateData(); s = genSequenceIdDao.poll(); } - return s; + return areaCode + s; } /** diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java index 5884835..e888202 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java @@ -1,5 +1,7 @@ package com.lyms.platform.biz.service; +import com.lyms.platform.biz.RemoteService; +import com.lyms.platform.biz.RemoteUrlEnum; import com.lyms.platform.biz.dal.*; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.SieveStatusEnums; @@ -23,7 +25,6 @@ import java.util.List; @Service public class PatientsService { - @Autowired private IPatientDao iPatientDao; @Autowired @@ -38,6 +39,8 @@ public class PatientsService { private IAntExRecordDao iAntExRecordDao; @Autowired private PatientCheckTicketService patientCheckTicketService; + @Autowired + private RemoteService remoteService; public Patients addPatient(Patients obj) { return iPatientDao.addPatient(obj); @@ -242,6 +245,7 @@ public class PatientsService { * 自动分娩产妇的 */ public void autoMatDeliver() { + Date endDate = DateUtil.addDay(new Date(), -294); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); @@ -259,8 +263,11 @@ public class PatientsService { // hujiaqi添加结束 updatePatient(patients); + /** 自动分娩 >> 作废未使用的产检券 */ + remoteService.invalidCoupon(patients.getPid(), "2", RemoteUrlEnum.INVALID_COUPON_URL); + //作废产检劵 - patientCheckTicketService.cancelCheckTicket(patients.getHospitalId(), patients.getId()); + /* patientCheckTicketService.cancelCheckTicket(patients.getHospitalId(), patients.getId()); PersonModelQuery personYunModelQuery = new PersonModelQuery(); personYunModelQuery.setYn(YnEnums.YES.getId()); personYunModelQuery.setId(patients.getPid()); @@ -269,7 +276,7 @@ public class PatientsService { PersonModel pm = list.get(0); pm.setType(3);//基本信息更新成产妇 personService.updatePerson(pm, pm.getId()); - } + }*/ } } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java index 89fb83f..07621b6 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java @@ -35,4 +35,10 @@ public interface CouponMapper { List> findOrgAreas(String hospitalId); Map findUrl(String code); + + void invalid(Map param); + + String findByUsedId(String usedId); + + String findCityId(String hospitalId); } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java index d341f12..a93d4e0 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/CouponService.java @@ -32,4 +32,8 @@ public interface CouponService{ BaseObjectResponse areas(String hospitalId); String findUrl(String code); + + void invalid(String personId, String couponTypes); + + String findByUsedId(String usedId); } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java index 14c4465..1eecfe0 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java @@ -117,10 +117,43 @@ public class CouponServiceImpl implements CouponService { if(CollectionUtils.isEmpty(temps)) { return RespBuilder.buildErro(ResponseCode.COUPON_TEMP_NOT_FOUND); } - sendCoupon(temps, hospitalId, createUserId, userId, person.getType()); + + String areaCode = getAreaCode(hospitalId); + if(StringUtils.isBlank(areaCode)) { + return RespBuilder.buildErro(ResponseCode.OUPON_HOSPITAL_NOT_BOUND_AREA); + } + + sendCoupon(temps, hospitalId, createUserId, userId, person.getType(), areaCode); return RespBuilder.buildSuccess(); } + /** + * 根据医院id查询区域id + * @param hospitalId + * @return + */ + private String getAreaCode(String hospitalId) { + String cityId = couponMapper.findCityId(hospitalId); + if(StringUtils.isNotBlank(cityId)) { + AreaCodeModel areaCodeModel = mongoTemplate.findOne(Query.query(Criteria.where("areaId").is(cityId)), AreaCodeModel.class); + if(areaCodeModel != null) { + String areaCode = areaCodeModel.getAreaCode(); + if(StringUtils.isNotBlank(areaCode)) { + int length = areaCode.length(); + + if(length == 4) { + return areaCode; + } else { + for (int i = 0; i < 4 - length; i++) { + areaCode = "0" + areaCode; + } + } + } + } + } + return null; + } + private boolean isCreated(String userId, String hospitalId) { Map param = new HashMap<>(); param.put("userId", userId); @@ -129,7 +162,7 @@ public class CouponServiceImpl implements CouponService { return CollectionUtils.isNotEmpty(list); } - private void sendCoupon(List> temps, String hospitalId, Integer createUserId, String userId, Integer personType) { + private void sendCoupon(List> temps, String hospitalId, Integer createUserId, String userId, Integer personType, String areaCode) { for (Map temp : temps) { Object sendType = temp.get("send_type"); if(sendType != null) {/** 1=全部发放 2=按有效时间发放 */ @@ -137,7 +170,7 @@ public class CouponServiceImpl implements CouponService { couponInfo.setCreateDate(new Date()); couponInfo.setCreateHospitalId(hospitalId); couponInfo.setCreateUserId(String.valueOf(createUserId)); - couponInfo.setSequenceId(genIdService.poll()); + couponInfo.setSequenceId(genIdService.poll(areaCode)); couponInfo.setStatus(1); couponInfo.setUserId(userId); if(temp.get("coupon_template_id") != null) { @@ -155,6 +188,7 @@ public class CouponServiceImpl implements CouponService { couponInfo.setUseDate(patients.getBookbuildingDate()); couponInfo.setOperatorUseId(patients.getBookbuildingDoctor()); couponInfo.setUsedHospitalId(patients.getHospitalId()); + couponInfo.setUsedId(patients.getId()); } } else { BabyModel baby = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), BabyModel.class); @@ -162,6 +196,7 @@ public class CouponServiceImpl implements CouponService { couponInfo.setUseDate(baby.getBuildDate()); couponInfo.setOperatorUseId(baby.getBuildDoctor()); couponInfo.setUsedHospitalId(baby.getHospitalId()); + couponInfo.setUsedId(baby.getId()); } } } @@ -177,9 +212,6 @@ public class CouponServiceImpl implements CouponService { continue; } - - - Object actualStart = temp.get("actual_start"); Object actualEnd = temp.get("actual_end"); Object unitType = temp.get("unit_type"); @@ -328,6 +360,9 @@ public class CouponServiceImpl implements CouponService { param.put("useDate", new Date()); param.put("userId", delUserId); couponMapper.update(param); + + /** 孕妇或儿童档案被删除 【所有未使用的优惠券】要自动作废 */ + invalid(delUserId, "1,2,3,4,5,6,7,8"); } @Override @@ -356,6 +391,19 @@ public class CouponServiceImpl implements CouponService { return jsonObject.get("url").toString(); } + @Override + public void invalid(String personId, String couponTypes) { + Map param = new HashMap<>(); + param.put("personId", personId); + param.put("couponTypes", com.lyms.platform.common.utils.StringUtils.covertToList(couponTypes, Integer.class)); + couponMapper.invalid(param); + } + + @Override + public String findByUsedId(String usedId) { + return couponMapper.findByUsedId(usedId); + } + /** 1=省 2=市 3=区 4=单医院 */ private boolean validateArea(String areaType, String createHospitalId, String useHospitald) { Organization createHospital = organizationService.getOrganization(Integer.parseInt(createHospitalId)); diff --git a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml index 5db436b..d5f1f98 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml @@ -18,7 +18,7 @@ - sequence_id,create_date,use_date, operator_use_id, user_id,create_user_id,coupon_template_id,create_hospital_id,used_hospital_id,status + sequence_id,create_date,use_date, operator_use_id, user_id,create_user_id,coupon_template_id,create_hospital_id,used_id,used_hospital_id,status - insert into coupon_info(id, ) values(#{id},#{sequenceId},#{createDate},#{useDate},#{operatorUseId},#{userId},#{createUserId},#{couponTemplateId},#{createHospitalId},#{usedHospitalId},#{status}) + insert into coupon_info(id, ) values(#{id},#{sequenceId},#{createDate},#{useDate},#{operatorUseId},#{userId},#{createUserId},#{couponTemplateId},#{createHospitalId},#{usedId},#{usedHospitalId},#{status}) + + update coupon_info a inner join ( + select a.id + from coupon_info a, coupon_template b, coupon_type c + where a.coupon_template_id = b.id and b.type_id = c.id and a.status=1 and c.type in + + #{type} + + and a.user_id = #{personId} + ) b on a.id = b.id set a.status = 3 + + + + + + \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java b/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java index 495dd86..b853e2a 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java +++ b/platform-common/src/main/java/com/lyms/platform/common/result/ResponseCode.java @@ -17,6 +17,7 @@ public enum ResponseCode { COUPON_IS_CREATED(1007, "该用户已生成优惠券"), COUPON_NOT_AVAILABLE(1008, "使用的优惠券类型不正确"), COUPON_AREA_NO_USE(1009, "该区域不能使用"), + OUPON_HOSPITAL_NOT_BOUND_AREA(1010, "该医院未绑定区域ID"), COUPON_NOT_FOUND(1001, "优惠券不存在"), COUPON_NOT_UNIQUE(1002, "优惠券有多个"), diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index eaf70db..a39877b 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -1,9 +1,8 @@ package com.lyms.platform.common.utils; -import org.apache.commons.lang.math.*; -import org.apache.commons.lang.math.NumberUtils; - +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * 添加类的一句话简单描述。 @@ -67,9 +66,7 @@ public final class StringUtils { stringBuilder.insert(stringBuilder.length() - 2, "."); return stringBuilder.toString(); } - public static void main(String[] args){ - System.out.println(cutBabyWeight("5000.1")); - } + public static Object isEmpty(Object obj, Object defaultVal) { if (null == obj) { return defaultVal; @@ -220,6 +217,16 @@ public final class StringUtils { return ""; } + public static List covertToList(String s, Class clazz) { + List list = new ArrayList<>(); + if (isNotEmpty(s)) { + String[] values = s.split(","); + for (String value : values) { + list.add((T) value); + } + } + return list; + } // public static void main(String[] arg) { // System.out.print(encryPhone("18382670036")); // } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java index 3dd253e..6f32cdd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java @@ -42,6 +42,8 @@ public class CouponController extends BaseController { @Autowired private PatientsService patientsService; + + /** * 创建用户产检券 * @param userId @@ -76,16 +78,7 @@ public class CouponController extends BaseController { return couponService.validate(code, type, autoMatchFacade.getHospitalId(getUserId(request))); } - /** - * 后期再建档的时候 先验证优惠券 然后再使用 这里先不验证优惠券 - * @return - */ - @RequestMapping(method = RequestMethod.POST, value = "/test") - @ResponseBody - public BaseObjectResponse testUse() { -// patientsService. - return RespBuilder.buildSuccess(); - } + /** * 获取当前登陆医生所属医院的所有人员 @@ -111,4 +104,24 @@ public class CouponController extends BaseController { return couponService.areas(autoMatchFacade.getHospitalId(getUserId(request))); } + + /** + * 作废用户优惠券 + * @param personId + * @param couponTypes 要删除的类型 + */ + @RequestMapping(method = RequestMethod.POST, value = "/invalid") + public void invalid(String personId, String couponTypes){ + couponService.invalid(personId, couponTypes); + } + + + @RequestMapping(method = RequestMethod.GET, value = "/test") + @ResponseBody + public BaseObjectResponse testUse() { + System.err.println("xxxxxxxxxxxxxxxxx"); + patientsService.autoMatDeliver(); + return RespBuilder.buildSuccess(); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 2117e50..1fd4381 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -1030,7 +1030,7 @@ public class TestController { @RequestMapping("/poll") @ResponseBody public String poll() { - return genIdService.poll(); + return genIdService.poll("1234"); } /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index f43845e..702388b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -1,8 +1,8 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.hospitalapi.dzfy.DzfyHisService; import com.lyms.hospitalapi.fnfy.FnfyHisService; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; -import com.lyms.hospitalapi.dzfy.DzfyHisService; import com.lyms.hospitalapi.qinglongxian.QingLongXianHisService; import com.lyms.hospitalapi.v2.HisService; import com.lyms.platform.biz.service.*; @@ -13,24 +13,20 @@ import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; -import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.utils.BabyListTask; -import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.GrowthCountTask; import com.lyms.platform.operate.web.utils.MessageCenterService; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.*; -import org.apache.commons.lang.math.*; -import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; @@ -41,7 +37,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; /** * @@ -127,6 +125,9 @@ public class BabyBookbuildingFacade { @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; + @Autowired + private CouponService couponService; + public BaseResponse getBabyBase(String babyId) { //查询儿童的基本信息 @@ -416,6 +417,15 @@ public class BabyBookbuildingFacade { */ public BaseObjectResponse addBabyBookbuilding(BabyBookbuildingAddRequest request,Integer userId) { + /** 验证产检券是否可用 可用就改为已使用状态 */ + if(org.apache.commons.lang3.StringUtils.isNotBlank(request.getCouponCode()) && request.getCouponType() != null) { + BaseObjectResponse resp = couponService.validate(request.getCouponCode(), request.getCouponType(), autoMatchFacade.getHospitalId(userId)); + if (resp.getErrorcode() != 0) { + return resp; + } + } + + BaseObjectResponse br = new BaseObjectResponse(); try { //判断儿童是否建档在该医院 @@ -481,6 +491,12 @@ public class BabyBookbuildingFacade { babyPerson.setYn(YnEnums.YES.getId()); babyPerson.setCreated(new Date()); resperson = personService.addPerson(babyPerson); + + /** 把优惠券设置为已使用状态 */ + if(org.apache.commons.lang3.StringUtils.isNotBlank(request.getCouponCode()) && request.getCouponType() != null) { + couponService.use(autoMatchFacade.getHospitalId(userId), request.getCouponCode(), userId, babyPerson.getId()); + } + babyPersonId = resperson.getId(); } @@ -531,6 +547,8 @@ public class BabyBookbuildingFacade { patientUpdate.setFmDate(StringUtils.isEmpty(request.getDueDate()) ? DateUtil.parseYMD(request.getBabyBirthday()) : DateUtil.parseYMD(request.getDueDate())); patientsService.updatePatientByPid(patientUpdate, pm.getId()); + /** 儿童建档对应孕妇分娩 【未使用的产检券】要自动作废 */ + couponService.invalid(pm.getId(), "2"); //作废产检劵 patientCheckTicketService.cancelCheckTicket(patients.getHospitalId(), patients.getId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 9a8b050..901368b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -490,11 +490,10 @@ public class BookbuildingFacade { ticket.setPatientId(p.getId()); ticket.setCreated(new Date()); // ticket.setId(areaCode.getAreaCode() + ticketPid + i); -// ticket.setId(genSequenceIdService.poll(areaCode.getAreaCode())); - ticket.setId(genSequenceIdService.poll()); + ticket.setId(genSequenceIdService.poll(areaCode.getAreaCode())); ticket.setPid(p.getPid()); ticket.setCoupon(CouponEnums.PRENATAL); - patientCheckTicketService.addTicket(ticket); +// patientCheckTicketService.addTicket(ticket); } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 6f84c8b..b83faf6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -1,5 +1,7 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.biz.RemoteService; +import com.lyms.platform.biz.RemoteUrlEnum; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.*; @@ -11,10 +13,11 @@ import com.lyms.platform.operate.web.request.MatDeliverAddRequest; import com.lyms.platform.operate.web.request.MatDeliverQueryRequest; import com.lyms.platform.operate.web.request.NewBabyManagerRequest; import com.lyms.platform.operate.web.result.*; -import com.lyms.platform.operate.web.utils.*; +import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; @@ -81,6 +84,12 @@ public class MatDeliverFacade { @Autowired private BasicConfigService basicConfigService; + @Autowired + private RemoteService remoteService; + + @Autowired + private CouponService couponService; + private static Map ONE_ENUMS = new HashMap<>(); @@ -131,6 +140,14 @@ public class MatDeliverFacade { * @return */ public BaseResponse addOrUpdateMatDeliver(MatDeliverAddRequest deliverAddRequest, Integer userId) { + /** 验证产检券是否可用 可用就改为已使用状态 */ + if(StringUtils.isNotBlank(deliverAddRequest.getCouponCode()) && deliverAddRequest.getCouponType() != null) { + BaseObjectResponse resp = couponService.validate(deliverAddRequest.getCouponCode(), deliverAddRequest.getCouponType(), autoMatchFacade.getHospitalId(userId)); + if (resp.getErrorcode() != 0) { + return resp; + } + } + List babyList = new ArrayList<>(); String hospitalId = autoMatchFacade.getHospitalId(userId); MaternalDeliverModel maternalDeliverModel = deliverAddRequest.convertToDataModel(); @@ -250,6 +267,12 @@ public class MatDeliverFacade { maternalDeliverModel.setYn(YnEnums.YES.getId()); matDeliverService.addMatDeliver(maternalDeliverModel); + + /** 使用优惠券 */ + if(StringUtils.isNotBlank(deliverAddRequest.getCouponCode()) && deliverAddRequest.getCouponType() != null) { + couponService.use(hospitalId, deliverAddRequest.getCouponCode(), userId, maternalDeliverModel.getId()); + } + //作废产检劵 patientCheckTicketService.cancelCheckTicket(hospitalId,deliverAddRequest.getParentId()); //修改 @@ -324,6 +347,9 @@ public class MatDeliverFacade { //修改分娩日期 updatePatientFmDate(patients.getPid(), fmDate, 3); + + /** 填写分娩表分娩 >> 作废未使用的产检券 */ + remoteService.invalidCoupon(patients.getPid(), "2", RemoteUrlEnum.INVALID_COUPON_URL); } } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("parentId 为空,找不到产妇"); @@ -760,6 +786,7 @@ public class MatDeliverFacade { matDeliverListResult.setRiskFactor(highScoreResult.getHighRisk()); matDeliverListResult.setRiskScore(highScoreResult.getScoreStr()); matDeliverListResult.setTireNumber1(tTireNumber); + } catch (Exception e) { } return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(matDeliverListResult); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java index 9cef928..89db42a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/StopPregnancyFacade.java @@ -13,6 +13,7 @@ import com.lyms.platform.operate.web.result.AntexListResult; import com.lyms.platform.operate.web.result.StopPregResult; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.model.UsersQuery; +import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; @@ -58,6 +59,9 @@ public class StopPregnancyFacade { @Autowired private PatientCheckTicketService patientCheckTicketService; + @Autowired + private CouponService couponService; + /** * 更新终止妊娠 * @@ -105,6 +109,11 @@ public class StopPregnancyFacade { } stopPregnancyService.updateStopPreg(model, request.getId()); + + /** 终止妊娠后 【未使用的产检券和分娩券】要自动作废 */ + couponService.invalid(request.getPid(), "2,4"); + + BaseResponse objectResponse = new BaseResponse(); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); objectResponse.setErrormsg("成功"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java index b2c4e5d..eaf45dc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java @@ -9,10 +9,14 @@ import com.lyms.platform.common.utils.ExceptionUtils; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.SystemConfig; import com.lyms.platform.operate.web.request.MatDeliverAddRequest; -import com.lyms.platform.operate.web.result.*; +import com.lyms.platform.operate.web.result.BabyCheckPageResult; +import com.lyms.platform.operate.web.result.BabyPageResult; +import com.lyms.platform.operate.web.result.HighScoreResult; +import com.lyms.platform.operate.web.result.ResidentsPageResult; import com.lyms.platform.operate.web.utils.*; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; @@ -67,6 +71,9 @@ public class ViewFacade { @Autowired private ResidentsArchiveService residentsArchiveService; + @Autowired + private CouponService couponService; + /** * 建档查询 * @param id @@ -169,6 +176,8 @@ public class ViewFacade { //建档孕周 map.put("buildDueWeek",ResolveUtils.getPregnancyWeek(data,data.getBookbuildingDate())); + /** 优惠券编号 */ + map.put("couponCode", couponService.findByUsedId(id)); br.setData(map); br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); @@ -541,6 +550,9 @@ public class ViewFacade { map.put("ydqjd",FunvCommonUtil.getBaseicConfigByid(ydqjd, basicConfigService)); map.put("bChao",data.getbChao()); + /** 优惠券编号 */ + map.put("couponCode", couponService.findByUsedId(id)); + //体重指数 yqWeight if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(data.getYqWeight()) && com.lyms.platform.common.utils.StringUtils.isNotEmpty(data.getHeight())) { @@ -742,6 +754,9 @@ public class ViewFacade { map.put("treatmentOpinion",data.getTreatmentOpinion()); map.put("guide",data.getGuide()); + /** 优惠券编号 */ + map.put("couponCode", couponService.findByUsedId(id)); + br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); br.setData(map); @@ -1126,6 +1141,9 @@ public class ViewFacade { map.put("baby", babyList); + /** 优惠券编号 */ + map.put("couponCode", couponService.findByUsedId(id)); + br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); br.setData(map); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java index 9476229..4032d8c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyBookbuildingAddRequest.java @@ -169,6 +169,26 @@ public class BabyBookbuildingAddRequest { //病历号(住院号) private String blNo; + private String couponCode; + + private Integer couponType; + + public String getCouponCode() { + return couponCode; + } + + public void setCouponCode(String couponCode) { + this.couponCode = couponCode; + } + + public Integer getCouponType() { + return couponType; + } + + public void setCouponType(Integer couponType) { + this.couponType = couponType; + } + public String getBlNo() { return blNo; } diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index e10e970..12eb325 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -65,3 +65,9 @@ jdbc.6.driver=oracle.jdbc.driver.OracleDriver jdbc.6.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl jdbc.6.username=LYMS_ODS jdbc.6.password=Welcome1 + +# 远程调用类型 1=本地 2=测试环境 3=线上环境 +remote.url.type=1 +platform.operate.api.1.url=http://localhost:9091/ +platform.operate.api.2.url=https://dev-rp.healthbaby.com.cn/ +platform.operate.api.3.url=https://dev-rp.healthbaby.com.cn/ \ No newline at end of file diff --git a/platform-operate-api/src/main/resources/database.properties b/platform-operate-api/src/main/resources/database.properties index 70877c9..9f4c546 100644 --- a/platform-operate-api/src/main/resources/database.properties +++ b/platform-operate-api/src/main/resources/database.properties @@ -80,7 +80,7 @@ mongo_crypto_key=Lymsh@2016 # sequence id configs sequence.create.size=3000 -sequence.index=200000000000 +sequence.index=20000000 sequence.min.size=300 sequence.schedule.expression=0 */1 * * * ?