Merge branch 'master' into develop

This commit is contained in:
smshen 2025-04-28 17:11:02 +08:00
commit 3c7c818a7c
18 changed files with 151 additions and 41 deletions

View File

@ -24,6 +24,7 @@ import com.xdadan.erp.common.utils.SecurityUtils;
import com.xdadan.erp.emis.domain.*; import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.BillPayStatInfo; import com.xdadan.erp.emis.domain.stat.BillPayStatInfo;
import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo;
import com.xdadan.erp.emis.domain.vo.AddressParseResult; import com.xdadan.erp.emis.domain.vo.AddressParseResult;
import com.xdadan.erp.emis.service.*; import com.xdadan.erp.emis.service.*;
import com.xdadan.erp.emis.service.kefu.RL7moorService; import com.xdadan.erp.emis.service.kefu.RL7moorService;
@ -408,7 +409,7 @@ public class EmisCommonController extends EmisBaseController
@GetMapping("/getBillPng/{uuid}") @GetMapping("/getBillPng/{uuid}")
public void getBillPng(HttpServletRequest request, HttpServletResponse response,@PathVariable("uuid")String uuid ) public void getBillPng(HttpServletRequest request, HttpServletResponse response,@PathVariable("uuid")String uuid )
{ {
// "https://api.emis.tanex56.com/api/bizsvr/emis/common/getBillPng/123123212.png" // "https://api-emis.tanex56.com/api/bizsvr/emis/common/getBillPng/123123212.png"
if(StringUtils.isEmpty(uuid)){ if(StringUtils.isEmpty(uuid)){
log.debug("参数错误"); log.debug("参数错误");
return; return;
@ -586,7 +587,6 @@ public class EmisCommonController extends EmisBaseController
} }
@GetMapping("/autoQueryInvoiceStatusTrigger") @GetMapping("/autoQueryInvoiceStatusTrigger")
public AjaxResult autoQueryInvoiceStatusTrigger(){ public AjaxResult autoQueryInvoiceStatusTrigger(){
String lockKey="autoQueryInvoiceStatusTrigger"; String lockKey="autoQueryInvoiceStatusTrigger";
@ -1127,9 +1127,9 @@ public class EmisCommonController extends EmisBaseController
@GetMapping("/autoDoGenerateNotifyTrigger") @GetMapping("/autoDoGenerateNotifyTrigger")
public AjaxResult autoDoSendNotifyTrigger() { public AjaxResult autoDoSendNotifyTrigger() {
// 0.催款,有超期回款的5分钟催一次 // 0.催款,有超期回款的5分钟催一次
EmisSettleBill emisSettleBill=new EmisSettleBill(); EmisSettleBill queryRecBill=new EmisSettleBill();
emisSettleBill.getParams().put("isNeedRecdPay",1); queryRecBill.getParams().put("isNeedRecdPay",1);
List<BillPayStatInfo> listExpireNoPayStatInfo = emisSettleBillService.selectBillPayStatInfoList(emisSettleBill); List<BillPayStatInfo> listExpireNoPayStatInfo = emisSettleBillService.selectBillPayStatInfoList(queryRecBill);
if(!CollectionUtils.isEmpty(listExpireNoPayStatInfo)){ if(!CollectionUtils.isEmpty(listExpireNoPayStatInfo)){
for (BillPayStatInfo item:listExpireNoPayStatInfo) { for (BillPayStatInfo item:listExpireNoPayStatInfo) {
String salesmen=item.getSalesmen(); String salesmen=item.getSalesmen();
@ -1140,16 +1140,22 @@ public class EmisCommonController extends EmisBaseController
} }
} }
// 1.销售开票统计通知 // 1.销售开票统计通知
EmisSettleBill queryInvoice=new EmisSettleBill();
queryInvoice.getParams().put("isNeedRecdInvoice",1);
List<OpenBillStatInfo> listExpireNoInvoiceStatInfo = emisSettleBillService.selectOpenBillStatInfoList(queryInvoice);
if(!CollectionUtils.isEmpty(listExpireNoInvoiceStatInfo)){
for (OpenBillStatInfo item:listExpireNoInvoiceStatInfo) {
String salesmen=item.getSalesmen();
String billMonth=item.getBillMonth();
String msg="截止"+DateUtils.parseDateToStr("yyyy-MM-dd HH点",new Date())+" 有账单未开票,尽快联系客户开票,账期:"+billMonth+",待开票:"+item.getNoOpenBillCount()+",超期未开票:"+item.getExpiredNoOpenBillCount()+"!";
AjaxResult rst=NoticeUtils.outSendNoticeToInner(msg,msg,"/ruyERj/BillPaybackSumList",salesmen,3);
log.info(msg);
}
}
// 2.开票收款统计通知 // 2.开票收款统计通知
// sysNoticeService.
// if(empcodes!=null && empcodes.length>0) { // if(empcodes!=null && empcodes.length>0) {
// for(int i=0;i<empcodes.length;i++){ // for(int i=0;i<empcodes.length;i++){
// String empCode=empcodes[i]; // String empCode=empcodes[i];

View File

@ -176,4 +176,28 @@ public class EmisSettlePayRecordController extends BaseController
{ {
return toAjax(emisSettlePayRecordService.deleteEmisSettlePayRecordByIds(ids)); return toAjax(emisSettlePayRecordService.deleteEmisSettlePayRecordByIds(ids));
} }
/**
* 修改账单收退款记录
*/
@PreAuthorize("@ss.hasPermi('emis:emisSettlePayRecord:edit')")
@Log(title = "收款回退", businessType = BusinessType.UPDATE)
@PostMapping("/payRecordReturn/{id}")
public AjaxResult payRecordReturn(@PathVariable Long id)
{
try {
return toAjax(emisSettlePayRecordService.payRecordReturn(id));
}
catch (Exception ex){
ex.printStackTrace();
// 返回子定义异常
if(ex instanceof EmisBizError){
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
}
return AjaxResult.error("服务器异常,联系客服");
}
}
} }

View File

@ -157,7 +157,7 @@ public class EmisStaffController extends EmisBaseController
} }
String empCode=getLoginUser().getUser().getEmpCode(); String empCode=getLoginUser().getUser().getEmpCode();
// String text="#小程序://探路速运/Nt29PF2JBvBkf2w?empCode="+empCode; // String text="#小程序://探路速运/Nt29PF2JBvBkf2w?empCode="+empCode;
String text="https://api.emis.tanex56.com/api/bizsvr/emis/common/getSpecialService?empCode="+empCode; String text="https://api-emis.jtrs56.com/api/bizsvr/emis/common/getSpecialService?empCode="+empCode;
text = URLDecoder.decode(text, "UTF-8"); text = URLDecoder.decode(text, "UTF-8");
String url=text; String url=text;
String showText=""; String showText="";

View File

@ -11,8 +11,11 @@
package com.xdadan.erp.web.emis; package com.xdadan.erp.web.emis;
import java.util.Arrays;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.xdadan.erp.emis.utils.WaybillHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -56,6 +59,12 @@ public class EmisTmsCostProfitController extends BaseController
public TableDataInfo list(EmisTmsCostProfit emisTmsCostProfit) public TableDataInfo list(EmisTmsCostProfit emisTmsCostProfit)
{ {
startPage(); startPage();
emisTmsCostProfit.setBillCode(WaybillHelper.formatQueryValue(emisTmsCostProfit.getBillCode()));
String[] billCodeSortList = emisTmsCostProfit.getBillCode().split(",");
if(billCodeSortList.length>1){
emisTmsCostProfit.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList));
}
List<EmisTmsCostProfit> list = emisTmsCostProfitService.selectEmisTmsCostProfitList(emisTmsCostProfit); List<EmisTmsCostProfit> list = emisTmsCostProfitService.selectEmisTmsCostProfitList(emisTmsCostProfit);
return getDataTable(list); return getDataTable(list);
} }

View File

@ -72,7 +72,7 @@ public class EmisTransLineController extends EmisBaseController
* 查询线路列表 -- 精简 * 查询线路列表 -- 精简
*/ */
// @PreAuthorize("@ss.hasPermi('emis:emisTransLine:list')") // @PreAuthorize("@ss.hasPermi('emis:emisTransLine:list')")
@JacksonFilter(include= {"id","lineCode","lineName","lineNameEn","meterRate",},value= EmisTransLine.class,type= JacksonFilter.JscksonFilterType.RESPONSE) @JacksonFilter(include= {"id","lineCode","lineName","lineNameEn","meterRate","transType"},value= EmisTransLine.class,type= JacksonFilter.JscksonFilterType.RESPONSE)
@GetMapping("/listSimple") @GetMapping("/listSimple")
public TableDataInfo listSimple(EmisTransLine emisTransLine) public TableDataInfo listSimple(EmisTransLine emisTransLine)
{ {
@ -84,6 +84,8 @@ public class EmisTransLineController extends EmisBaseController
emisTransLine.getParams().put("needFilterLogoTyoe","1"); emisTransLine.getParams().put("needFilterLogoTyoe","1");
} }
startPage(); startPage();
List<EmisTransLine> list = emisTransLineService.selectEmisTransLineList(emisTransLine); List<EmisTransLine> list = emisTransLineService.selectEmisTransLineList(emisTransLine);
return getDataTable(list); return getDataTable(list);

View File

@ -130,7 +130,17 @@ public class EmisWaybillAjustApplyController extends EmisBaseController
@PostMapping @PostMapping
public AjaxResult add(@RequestBody EmisWaybillAjustApply emisWaybillAjustApply) public AjaxResult add(@RequestBody EmisWaybillAjustApply emisWaybillAjustApply)
{ {
try {
return toAjax(emisWaybillAjustApplyService.insertEmisWaybillAjustApply(emisWaybillAjustApply)); return toAjax(emisWaybillAjustApplyService.insertEmisWaybillAjustApply(emisWaybillAjustApply));
}catch (Exception ex){
ex.printStackTrace();
// 返回子定义异常
if(ex instanceof EmisBizError){
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
}
return AjaxResult.error("申请异常,联系客服");
}
} }
/** /**

View File

@ -1075,7 +1075,7 @@ public class EmisWaybillController extends EmisBaseController
jObj.put("result", "success"); jObj.put("result", "success");
// jObj.put("billCodeItem", item); // jObj.put("billCodeItem", item);
// jObj.put("file", pdfBase64Data); // jObj.put("file", pdfBase64Data);
String imageUrl="https://api.emis.tanex56.com/api/bizsvr/emis/common/getBillPng/"+uuid; String imageUrl="https://api-emis.jtrs56.com/api/bizsvr/emis/common/getBillPng/"+uuid;
jObj.put("imageUrl", imageUrl); jObj.put("imageUrl", imageUrl);
jObj.put("fileType", "URL"); jObj.put("fileType", "URL");
@ -1114,7 +1114,7 @@ public class EmisWaybillController extends EmisBaseController
jObj.put("result", "success"); jObj.put("result", "success");
// jObj.put("billCodeItem", item); // jObj.put("billCodeItem", item);
// jObj.put("file", pdfBase64Data); // jObj.put("file", pdfBase64Data);
String imageUrl="https://api.emis.tanex56.com/api/bizsvr/emis/common/getBillPng/"+uuid; String imageUrl="https://api-emis.jtrs56.com/api/bizsvr/emis/common/getBillPng/"+uuid;
jObj.put("imageUrl", imageUrl); jObj.put("imageUrl", imageUrl);
jObj.put("fileType", "URL"); jObj.put("fileType", "URL");

View File

@ -194,6 +194,9 @@ public interface EmisWaybillMapper extends BaseMapper<EmisWaybill>
public int checkWaybillIsSign(@Param("billCode")String billCode); public int checkWaybillIsSign(@Param("billCode")String billCode);
// 判断是否已经接单
public int checkWaybillIsConfirm(@Param("billCode")String billCode);
/** /**

View File

@ -78,5 +78,13 @@ public interface IEmisSettlePayRecordService
public int deleteEmisSettlePayRecordById(Long id); public int deleteEmisSettlePayRecordById(Long id);
/**
* 账单退款
* @param id
* @return
*/
public int payRecordReturn(Long id) throws EmisBizError;
} }

View File

@ -53,7 +53,7 @@ public interface IEmisWaybillAjustApplyService
* @param emisWaybillAjustApply 运单调整申请 * @param emisWaybillAjustApply 运单调整申请
* @return 结果 * @return 结果
*/ */
public int insertEmisWaybillAjustApply(EmisWaybillAjustApply emisWaybillAjustApply); public int insertEmisWaybillAjustApply(EmisWaybillAjustApply emisWaybillAjustApply) throws EmisBizError;
/** /**
* 修改运单调整申请 * 修改运单调整申请

View File

@ -38,7 +38,6 @@ import com.xdadan.erp.emis.domain.stat.OpenBillStatInfo;
import com.xdadan.erp.emis.mapper.*; import com.xdadan.erp.emis.mapper.*;
import com.xdadan.erp.emis.service.EmisBaseService; import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.excelCellStrategy.CellStyleStrategy; import com.xdadan.erp.emis.service.excelCellStrategy.CellStyleStrategy;
import com.xdadan.erp.emis.service.excelCellStrategy.CustomCellWriteHandler;
import com.xdadan.erp.emis.utils.WaybillHelper; import com.xdadan.erp.emis.utils.WaybillHelper;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -175,7 +174,6 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
@Override @Override
public int insertEmisSettleBill(EmisSettleBill emisSettleBill) throws EmisBizError { public int insertEmisSettleBill(EmisSettleBill emisSettleBill) throws EmisBizError {
// 检查子账单是否可加入 // 检查子账单是否可加入
if(CollectionUtil.isEmpty(emisSettleBill.getSubBillList())){ if(CollectionUtil.isEmpty(emisSettleBill.getSubBillList())){
throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,未选择子账单"); throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,未选择子账单");
} }
@ -202,8 +200,7 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
Date sendDate = null; Date sendDate = null;
for (EmisSettleSubBill subBill: emisSettleBill.getSubBillList() for ( EmisSettleSubBill subBill: emisSettleBill.getSubBillList() ) {
) {
EmisSettleSubBill subBllOld = getSettleSubBillBySubBillNo(subBill.getBillNo()); EmisSettleSubBill subBllOld = getSettleSubBillBySubBillNo(subBill.getBillNo());
if(subBllOld==null){ if(subBllOld==null){
throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,子账单["+subBllOld.getBillCode()+"]不存在"); throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,子账单["+subBllOld.getBillCode()+"]不存在");

View File

@ -166,6 +166,27 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
return 1; return 1;
} }
/**
* 收款退款
* @param id
* @return
*/
@Override
public int payRecordReturn(Long id) throws EmisBizError {
EmisSettlePayRecord payRecordOld=emisSettlePayRecordMapper.selectEmisSettlePayRecordById(id);
if(payRecordOld==null){
throw new EmisBizError(EmisBizErrorType.FAIL,"收款单不存在!");
}
// 删除收款记录
emisSettlePayRecordMapper.deleteEmisSettlePayRecordById(id);
// 重新计算账单收款
emisSettleBillService.reCalcSettleBillPayStatus(payRecordOld.getSettleBillNo());
return 1;
}
/** /**

View File

@ -618,6 +618,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
return itemList; return itemList;
} }
// bug:1454,未开单不允许扫描
// 已签收不允许扫描 // 已签收不允许扫描
boolean isSign = checkWaybillIsSign(mainBillCode); boolean isSign = checkWaybillIsSign(mainBillCode);
if (isSign) { if (isSign) {

View File

@ -92,8 +92,24 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertEmisWaybillAjustApply(EmisWaybillAjustApply emisWaybillAjustApply) public int insertEmisWaybillAjustApply(EmisWaybillAjustApply emisWaybillAjustApply) throws EmisBizError {
{
// 判断单号是否存在
EmisWaybill emisWaybillOld=getWaybillByBillCode(emisWaybillAjustApply.getBillCode());
if(emisWaybillOld==null){
throw new EmisBizError(EmisBizErrorType.FAIL,"运单不存在!");
}
// 如果有待审核的单子,不允许提交新审核
EmisWaybillAjustApply queryCond = new EmisWaybillAjustApply();
queryCond.setBillCode(emisWaybillAjustApply.getBillCode());
queryCond.getParams().put("processStatus","6");
List<EmisWaybillAjustApply> listHasApply=emisWaybillAjustApplyMapper.selectEmisWaybillAjustApplyList(queryCond);
if(!CollectionUtils.isEmpty(listHasApply)){
throw new EmisBizError(EmisBizErrorType.FAIL,"有申请单审核中,待审核后再提交!");
}
// 插入数据
emisWaybillAjustApplyMapper.insertEmisWaybillAjustApply(emisWaybillAjustApply); emisWaybillAjustApplyMapper.insertEmisWaybillAjustApply(emisWaybillAjustApply);
SysUser sysUser=getEmisStaffByCode(emisWaybillAjustApply.getApplyManCode()); SysUser sysUser=getEmisStaffByCode(emisWaybillAjustApply.getApplyManCode());

View File

@ -89,7 +89,7 @@ public class Kd100Helper {
param.put("to", to); param.put("to", to);
param.put("key", KEY); param.put("key", KEY);
JSONObject parameters = new JSONObject(); JSONObject parameters = new JSONObject();
parameters.put("callbackurl", "http://api.emis.tanex56.com/api/bizsvr/emis/common/notifyTraceByKD100"); parameters.put("callbackurl", "http://api-emis.jtrs56.com/api/bizsvr/emis/common/notifyTraceByKD100");
parameters.put("salt", "tanex56"); parameters.put("salt", "tanex56");
parameters.put("phone", phone); parameters.put("phone", phone);
parameters.put("resultv2", "4"); parameters.put("resultv2", "4");

View File

@ -108,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and not exists( and not exists(
select 1 from emis_waybill_problem_info ewpi where a.bill_code=ewpi.bill_code and ewpi.del_flag='0' and ewpi.`problem_type` in(173,170,151) select 1 from emis_waybill_problem_info ewpi where a.bill_code=ewpi.bill_code and ewpi.del_flag='0' and ewpi.`problem_type` in(173,170,151)
) )
and b.bl_confirm_site != 2
and a.payment_type in('1','3') and a.payment_type in('1','3')
and a.trans_line_type=c.line_code and a.trans_line_type=c.line_code
and a.payee=#{salesmen} and a.payee=#{salesmen}

View File

@ -273,7 +273,8 @@
<select id="selectOpenBillStatInfoList" parameterType="EmisSettleBill" resultMap="OpenBillStatInfoResult"> <select id="selectOpenBillStatInfoList" parameterType="EmisSettleBill" resultMap="OpenBillStatInfoResult">
select tba.salesmen, select
tba.salesmen,
tba.billMonth, tba.billMonth,
tba.totalBillCount, tba.totalBillCount,
tbb.hasOpenBillCount, tbb.hasOpenBillCount,
@ -385,6 +386,11 @@
group by salesmen,bill_month group by salesmen,bill_month
) tbd on tba.salesmen=tbd.salesmen and tba.billMonth=tbd.billMonth ) tbd on tba.salesmen=tbd.salesmen and tba.billMonth=tbd.billMonth
where 1=1
<if test="params.isNeedRecdInvoice != null and params.isNeedRecdInvoice == 1">
and tbb.noOpenBillCount <![CDATA[ > ]]> 0
</if>
</select> </select>

View File

@ -269,6 +269,11 @@
select count(1) as cnt from emis_waybill where bill_code=#{billCode} and bl_sign='1' limit 1 select count(1) as cnt from emis_waybill where bill_code=#{billCode} and bl_sign='1' limit 1
</select> </select>
<!-- 检查运单号是否已接单 -->
<select id="checkWaybillIsConfirm" parameterType="String" resultType="int">
select count(1) as cnt from emis_waybill where bill_code=#{billCode} and bl_sign='1' limit 1
</select>
<select id="selectCommissionStatData" parameterType="String" resultType="map"> <select id="selectCommissionStatData" parameterType="String" resultType="map">
select waybill_status as waybillStatus,count(1) as cnt from emis_waybill select waybill_status as waybillStatus,count(1) as cnt from emis_waybill