From 5a8f3e426736bff2f8678a47d05a3da24af6f470 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期二, 21 五月 2024 18:17:43 +0800 Subject: [PATCH] zjh 2024/05/21-1 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 383 insertions(+), 0 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java index ac27e20..1756b81 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java @@ -7,6 +7,8 @@ import java.time.OffsetTime; import java.util.*; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Resource; @@ -35,6 +37,7 @@ import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail; import com.ltkj.hosp.sqlDomain.LtkjMiddleHead; +import com.ltkj.hosp.sqlDomain.LtkjTjPat; import com.ltkj.hosp.vodomain.BingZhongVO; import com.ltkj.hosp.vodomain.HistoryTjOrder; import com.ltkj.hosp.vodomain.QjDomainVo; @@ -58,6 +61,7 @@ import org.springframework.http.HttpRequest; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; import org.springframework.web.bind.annotation.*; import com.ltkj.common.annotation.Log; import com.ltkj.common.core.controller.BaseController; @@ -152,6 +156,9 @@ @Resource private LtkjMiddleHeadService headService; + @Resource + private TjvLtkjvtjpatService tjvLtkjvtjpatService; + /** @@ -1004,6 +1011,382 @@ } + + @PostMapping("/addPlOrderAndDetail") + @ApiOperation(value = "浣撴鎵归噺绛惧埌鐧昏鎺ュ彛") + @Transactional //(鍒囨崲鏁版嵁搴撳嚭閿欙紝鎵�浠ユ敞閲�) + public AjaxResult addPlOrderAndDetail(@RequestBody List<String> cusIds){ + SysUser sysUser = UserHoder.getLoginUser().getUser(); + if(null !=cusIds && cusIds.size()>0){ + + ExecutorService threadPools = Executors.newFixedThreadPool(cusIds.size()); + for (String cusId : cusIds) { + threadPools.execute(new Runnable() { + @Override + public void run() { + getAjaxResults(cusId); + } + }); + } + LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); + wq.in(TjCustomer::getCusIdcard,cusIds); + List<Long> list = tjCustomerService.list(wq).stream().map(TjCustomer::getCusId).collect(Collectors.toList()); + if(list.size()>0){ + ExecutorService threadPool = Executors.newFixedThreadPool(list.size()); + for (Long aLong : list) { + threadPool.execute(new Runnable() { + @Override + public void run() { + try { + getAjaxResult(aLong,sysUser); + threadPool.shutdown(); + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + } + } + return AjaxResult.success("鎿嶄綔鎴愬姛"); + } + + private void getAjaxResults(String cusIdcard) { + if (!"".equals(cusIdcard) && cusIdcard != null) { + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 + final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); + if ("Y".equals(getInfoFromSqlData)){ + //鏍规嵁韬唤璇佸彿浠巋is鏌ヤ俊鎭� + LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(cusIdcard); + if(null != tjPatByIdCard){ + String fcardNo = tjPatByIdCard.getFcardNo(); + if(null !=fcardNo && !fcardNo.equals("")){ + fcardNo=fcardNo.trim(); + tjPatByIdCard.setFcardNo(fcardNo); + }else { + fcardNo=cusIdcard.trim(); + tjPatByIdCard.setFcardNo(fcardNo); + } + //鏍规嵁韬唤璇佸彿浠庢暟鎹簱鎷夸俊鎭� 娌℃湁鐨勮瘽淇濆瓨 + LtkjTjPat ltkjTjPat = tjvLtkjvtjpatService.getLtkjTjPatByCusIdCard(cusIdcard); + if(null==ltkjTjPat){ + tjvLtkjvtjpatService.save(tjPatByIdCard); + } + DynamicDataSourceContextHolder.clearDataSourceType(); + //鍐嶆牴鎹韩浠借瘉鍙峰啓customer琛� + TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(tjPatByIdCard.getFcardNo()); + if(null == tjCustomer){ + //涓虹┖鐨勮瘽鎺夊瓨鍌ㄨ繃绋嬩繚瀛樺埌瀹㈡埛琛� + testMapper.getTjPatByCusId(cusIdcard); + LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); + qw.eq(TjCustomer::getCusIdcard, tjPatByIdCard.getFcardNo()); + TjCustomer customer = tjCustomerService.getOne(qw); + customer.setReservationId(customer.getCardId()); + extracteds(customer); + }else { + String cardId = tjPatByIdCard.getFcardId(); + if(null !=cardId && !cardId.equals("0")){ + int i = tjOrderService.selectTjOrderByCardId(cardId); + if(i>0){ +// return AjaxResult.error("涓嶅彲閲嶅绛惧埌"); + } + } + tjCustomer.setReservationId(tjCustomer.getCardId()); + tjCustomer.setCardId(tjPatByIdCard.getFcardId()); + tjCustomerService.updateById(tjCustomer); + extracteds(tjCustomer); + } + + } + } + //end====2023.12.12 + LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>(); + wq.eq(TjReservation::getIdCard, cusIdcard); + wq.eq(TjReservation::getIsExpire, 2); + TjReservation tjReservation = tjReservationService.getOne(wq); + if (tjReservation != null) { + if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { +// return AjaxResult.error("鏈埌棰勭害鏃堕棿"); + } + if (null != tjReservation.getReservationTime() && DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { + tjReservation.setIsExpire(1); + tjReservationService.updateById(tjReservation); +// return AjaxResult.error("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�"); + } + LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); + qw.eq(TjCustomer::getCusIdcard, cusIdcard); + TjCustomer tjCustomer1 = tjCustomerService.getOne(qw); + if (tjCustomer1 != null) { + tjCustomer1.setTjType(tjReservation.getTjType()); + tjCustomer1.setCusName(tjReservation.getName()); + tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex())); + tjCustomer1.setCusBrithday(tjReservation.getBirthday()); + tjCustomer1.setCusPhone(tjReservation.getPhoe()); + tjCustomer1.setCusEmail(tjReservation.getEmail()); + tjCustomer1.setCusAddr(tjReservation.getAddress()); + tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); + tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation())); + tjCustomer1.setIdType(tjReservation.getIdType()); + tjCustomer1.setAge(tjReservation.getAge()); + tjCustomer1.setAgeUnit(tjReservation.getAgeUnit()); + tjCustomer1.setCareer(tjReservation.getCareer()); + tjCustomerService.updateById(tjCustomer1); + } + TjCustomer tjCustomer = new TjCustomer(); + tjCustomer.setCusIdcard(tjReservation.getIdCard()); + tjCustomer.setCusName(tjReservation.getName()); + tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex())); + tjCustomer.setCusBrithday(tjReservation.getBirthday()); + tjCustomer.setCusPhone(tjReservation.getPhoe()); + tjCustomer.setCusEmail(tjReservation.getEmail()); + tjCustomer.setCusAddr(tjReservation.getAddress()); + tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); + tjCustomer.setCusNational(String.valueOf(tjReservation.getNation())); + + tjCustomer.setIdType(tjReservation.getIdType()); + tjCustomer.setAge(tjReservation.getAge()); + tjCustomer.setAgeUnit(tjReservation.getAgeUnit()); + tjCustomer.setCareer(tjReservation.getCareer()); + tjCustomer.setDwPhone(tjReservation.getDwPhone()); + tjCustomer.setCardId(tjReservation.getCardId()); + tjCustomer.setIndexCard(tjReservation.getIndexCard()); + + //鎴彇瀵嗙爜鑷姩鐢熸垚set杩涘幓 + String substring = cusIdcard.substring(cusIdcard.length() - 6); + substring = DigestUtils.md5DigestAsHex(substring.getBytes()); + tjCustomer.setCusPassword(substring); + tjCustomer.setTjType(tjReservation.getTjType()); + tjCustomerService.save(tjCustomer); +// return success(tjCustomer); + } +// LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); +// qw.eq(TjCustomer::getCusIdcard, cusIdcard); +// TjCustomer tjCustomer = tjCustomerService.getOne(qw); +// return AjaxResult.success("鏆傛棤棰勭害淇℃伅",tjCustomer); + } +// return error("韬唤璇佸彿涓嶅瓨鍦�"); + } + + private void extracteds(TjCustomer customer) { + //浠巋is琛ㄦ姄鏁版嵁 + LtkjMiddleHead pat = testMapper.getMiddleHeadByPartId(customer.getCardId()); + if (null != pat) { + LambdaQueryWrapper<LtkjMiddleHead> wq1=new LambdaQueryWrapper<>(); + wq1.eq(LtkjMiddleHead::getFeadId,customer.getCardId()); + headService.remove(wq1); + LambdaQueryWrapper<LtkjMiddleDetail> wq0=new LambdaQueryWrapper<>(); + wq0.eq(LtkjMiddleDetail::getFheadId,pat.getFeadId()); + middleDetailService.remove(wq0); + List<LtkjMiddleDetail> list = testMapper.getMiddleDetailByFeadId(pat.getFeadId()); + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + LtkjMiddleHead o = headService.getMiddleHeadByPartId(customer.getCardId()); + if(o==null){ + headService.save(pat); + for (LtkjMiddleDetail ltkjMiddleDetail : list) { + middleDetailService.save(ltkjMiddleDetail); + } + } + testMapper.saveTjProByCusId(customer.getCardId(), customer.getCusIdcard()); + } + DynamicDataSourceContextHolder.clearDataSourceType(); + } + + private AjaxResult getAjaxResult(Long userId,SysUser sysUser) throws IOException { + + LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); + wq.eq(TjCustomer::getCusId,userId); + TjCustomer tjCustomer = tjCustomerService.getOne(wq); + if (tjCustomer == null) return AjaxResult.error("璇ュ鎴锋湭鐧昏鎴栦笉瀛樺湪"); + + LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>(); + wqq.eq(TjOrder::getUserId,userId); + wqq.eq(TjOrder::getCheckStatus, 0); + wqq.isNull(TjOrder::getFinishTime); + if (!tjCustomer.getCardId().equals("0")) { + wqq.eq(TjOrder::getCardId, tjCustomer.getCardId()); + } + TjOrder order = tjOrderService.getOne(wqq); + if (null != order) { + transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjCustomer.getCardId()); + return AjaxResult.error("涓嶅彲閲嶅鐧昏"); + } + TjOrder tjOrder=new TjOrder(); + tjOrder.setUserId(userId); + LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>(); + wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard()); + wq1.eq(TjReservation::getIsExpire, 2); + TjReservation tjReservation = tjReservationService.getOne(wq1); + MallOrder mallOrder = null; + if (tjReservation != null) { + mallOrder = mallOrderService.getOne(new LambdaQueryWrapper<MallOrder>().eq(MallOrder::getReservationId, tjReservation.getId())); + if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { + return AjaxResult.error("鏈埌棰勭害鏃堕棿"); + } + if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { + tjReservation.setIsExpire(1); + tjReservationService.updateById(tjReservation); + return AjaxResult.error("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�"); + } + if (null != tjReservation.getTeamNo()) tjOrder.setTeamNo(tjReservation.getTeamNo()); + if (null != tjReservation.getCompanyId()) tjOrder.setFirmId(tjReservation.getCompanyId()); + if (null != tjReservation.getDepartment()) tjOrder.setFirmDeptName(tjReservation.getDepartment()); + if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo()); + if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId()); + if (null != tjReservation.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory()); + if (null != tjReservation.getGroupingId()) { + tjOrder.setGroupId(tjReservation.getGroupingId()); + tjOrder.setFirmDeptId(tjReservation.getPacId()); + } + tjReservation.setIsExpire(1); + tjReservationService.updateById(tjReservation); + if (null != tjReservation.getTeamNo()) { + tjOrder.setTjType("1"); + } else { + tjOrder.setTjType("2"); + } + } + //鐢熸垚浣撴鍙� + String tjNumber = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); + tjOrder.setTjNumber(tjNumber); + if (null != tjOrder.getPhoto()) { + File file = new File(tjOrder.getPhoto()); + if (file.isFile()) { + FileInputStream fileInputStream = new FileInputStream(file); + byte[] bytes = new byte[fileInputStream.available()]; + fileInputStream.read(bytes); // 璇诲彇鍒� byte 閲岄潰 + fileInputStream.close(); + // 寰楀埌鏂囦欢 涔嬪悗杞垚beye 鐒跺悗浣跨敤base64杞爜 + String encode = Base64.encode(bytes); + tjOrder.setPhoto(encode); + } + } + if (tjOrder.getFirmId() == null) { + tjOrder.setFirmId("0"); + } + if (null == tjOrder.getPacId() && null != transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId()))) { + tjOrder.setPacId(transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId()))); + } + //鍒ゆ柇灏忕▼搴忎笂棰勭害鏄惁浠橀挶 + if (null != mallOrder) tjOrder.setMallOrderId(String.valueOf(mallOrder.getId())); + tjOrder.setStatus(TjConstants.TJ_BEGIN); + tjOrder.setCardId(tjCustomer.getCardId()); + if (tjOrderService.save(tjOrder)) { + //淇濆瓨鏀惰揣鍦板潃 + if ("2".equals(tjOrder.getGetType())) { + final TjReportGetAddress address = tjOrder.getAddAddress(); + if (address != null) { + address.setTjNumber(tjNumber); + tjReportGetAddressService.save(address); + } + } + Long cusNumber = tjCustomer.getCusNumber(); + cusNumber += 1; + tjCustomer.setCusNumber(cusNumber); +// BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())).divide(BigDecimal.valueOf(10)); + TjFlowingWater tjFlowingWater = new TjFlowingWater(); + tjFlowingWater.setPayStasus(0L); + if ("1".equals(tjOrder.getTjType())) { + if (null != tjReservation && tjReservation.getPayType() == 1) { + tjFlowingWater.setPayStasus(3L); + } + } + + //璋冪敤SQL server鎷垮彇鏀惰垂鎯呭喌 + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 + String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); + String isPay = configService.selectConfigByKey("isPay"); + if ("Y".equals(getInfoFromSqlData)) { + LtkjMiddleHead middleHead = headService.getMiddleHeadByPartId(tjCustomer.getCardId()); + if (null != middleHead) { + tjFlowingWater.setPayStasus(1L); + } + } + tjFlowingWater.setOrderId(tjOrder.getOrderId()); + Date date1 = new Date(System.currentTimeMillis()); + String s1 = sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmssSSS").format(date1); + tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), "").toUpperCase() + s1); + + +// tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith()); +// tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn()); +// tjFlowingWater.setDiscount(tjOrder.getTjFlowingWater().getDiscount()); + + if (isPay.equals("true")) { + if (null != mallOrder) { + if (mallOrder.getOrderStatus().equals(201L)) { + tjFlowingWater.setCopeWith(mallOrder.getActualPrice()); + tjFlowingWater.setPaidIn(mallOrder.getActualPrice()); + tjFlowingWater.setDiscount(String.valueOf(1)); + tjFlowingWater.setPayStasus(1L); + tjFlowingWater.setPayType(3L); + MallCheckLog checkLog = new MallCheckLog(); + checkLog.setCheckBy(sysUser.getNickName()); + checkLog.setUserId(mallOrder.getUserId()); + checkLog.setConsignee(mallOrder.getConsignee()); + checkLog.setIdCard(mallOrder.getIdCard()); + checkLog.setOrderId(String.valueOf(mallOrder.getId())); + checkLog.setOrderSn(mallOrder.getOrderSn()); + checkLog.setCheckTime(new Date()); + checkLog.setShipSn("HX" + s1); + mallCheckLogService.save(checkLog); + mallOrder.setOrderStatus(301L); + mallOrderService.updateById(mallOrder); + } + } + else { +// tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith()); +// tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn()); +// tjFlowingWater.setDiscount(tjOrder.getTjFlowingWater().getDiscount()); +// tjFlowingWater.setPayStasus(0L); + } + } + if (tjFlowingWaterService.save(tjFlowingWater)) { + tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber())); + tjOrderService.updateById(tjOrder); + + + } + + //鍥綋 +// if ("1".equals(tjOrder.getTjType())) { + asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater); +// } + //涓汉 +// if ("2".equals(tjOrder.getTjType())) { +// //asyncService.newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); +// newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); +// } + + //璋冪敤SQL server鎷垮彇鏀惰垂鎯呭喌 + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 +// final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); +// if ("Y".equals(getInfoFromSqlData)){ +// List<LtkjMiddleHead> one = testMapper.saveMiddleHeadByPatId(tjCustomer.getCusIdcard()); +// if (one!=null){ +// for (LtkjMiddleHead ltkjMiddleHead : one) { +// DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); +// headService.save(ltkjMiddleHead); +// DynamicDataSourceContextHolder.clearDataSourceType(); +// List<LtkjMiddleDetail> detailList = testMapper.getMiddleDetailByHeadId(ltkjMiddleHead.getFeadId()); +// if (detailList!=null){ +// for (LtkjMiddleDetail ltkjMiddleDetail : detailList) { +// DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); +// middleDetailService.save(ltkjMiddleDetail); +// DynamicDataSourceContextHolder.clearDataSourceType(); +// } +// } +// } +// +// } +// } + tjCustomer.setCardId("0"); + tjCustomerService.updateById(tjCustomer); + return AjaxResult.success(tjNumber); + } + return AjaxResult.error(); + } + + /** * 淇敼浣撴璁板綍 */ -- Gitblit v1.8.0