diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
index fb3002024..af914a234 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
@@ -20,6 +20,7 @@ import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.core.redis.RedissonService;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.DateUtils;
+import com.xdadan.erp.common.utils.SecurityUtils;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisBrand;
import com.xdadan.erp.emis.domain.EmisPrintTpl;
@@ -53,8 +54,9 @@ import java.util.Map;
@RequestMapping("/emis/common")
public class EmisCommonController extends BaseController
{
+
@Autowired
- private IEmisElectronicPagService emisElectronicPagService;
+ private IEmisElectronicSitePagService emisElectronicSitePagService;
@Autowired
private IEmisRegionService emisRegionService;
@@ -73,10 +75,17 @@ public class EmisCommonController extends BaseController
* 获取电子面单单号
*/
@RequestMapping(value = "/realMatchWaybill")
- public AjaxResult realMatchWaybill()
+ public AjaxResult realMatchWaybill(String useSiteCode,String prefix)
{
try {
- String waybillNo = emisElectronicPagService.realMatchWaybill();
+ if(StringUtils.isEmpty(useSiteCode)){
+ try {
+ useSiteCode= SecurityUtils.getLoginUser().getUser().getOwnerSiteCode();
+ }catch (Exception ex){
+ ex.printStackTrace();
+ }
+ }
+ String waybillNo = emisElectronicSitePagService.realMatchWaybill(useSiteCode,"T7080");
return AjaxResult.success("处理成功",waybillNo);
}catch (Exception ex){
ex.printStackTrace();
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagApplyController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagApplyController.java
index 2f196b51d..15ecea1c1 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagApplyController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagApplyController.java
@@ -11,8 +11,13 @@
package com.xdadan.erp.web.emis;
+import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
+
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.emis.domain.vo.AddressParseResult;
+import com.xdadan.erp.emis.service.IEmisElectronicPagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
@@ -48,6 +53,9 @@ public class EmisElectronicPagApplyController extends BaseController
@Autowired
private IEmisElectronicPagApplyService emisElectronicPagApplyService;
+ @Autowired
+ private IEmisElectronicPagService emisElectronicPagService;
+
/**
* 查询网点电子面单申请列表
*/
@@ -91,9 +99,12 @@ public class EmisElectronicPagApplyController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody EmisElectronicPagApply emisElectronicPagApply)
{
+ emisElectronicPagApply.setPrefix("T7080");
return toAjax(emisElectronicPagApplyService.insertEmisElectronicPagApply(emisElectronicPagApply));
}
+
+
/**
* 修改网点电子面单申请
*/
@@ -105,6 +116,66 @@ public class EmisElectronicPagApplyController extends BaseController
return toAjax(emisElectronicPagApplyService.updateEmisElectronicPagApply(emisElectronicPagApply));
}
+
+ /**
+ * 申请发放
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisElectronicPagApply:send')")
+ @Log(title = "网点电子面单发放", businessType = BusinessType.UPDATE)
+ @PutMapping("/sendByApply")
+ public AjaxResult sendByApply(@RequestBody EmisElectronicPagApply emisElectronicPagApply)
+ {
+ try {
+ return toAjax(emisElectronicPagService.sendByApply(emisElectronicPagApply.getId()));
+ }catch (Exception ex){
+ ex.printStackTrace();
+ // 返回子定义异常
+ if(ex instanceof EmisBizError){
+ return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage());
+ }
+
+ return AjaxResult.error("服务器异常,联系客服");
+ }
+ }
+
+ /**
+ * 总部直接下发
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisElectronicPagApply:send')")
+ @Log(title = "网点电子面单发放", businessType = BusinessType.UPDATE)
+ @PutMapping("/sendByApply")
+ public AjaxResult sendByCenter(String prefix,String matialCode,String useSiteCode,Integer applyNum)
+ {
+ try {
+// prefix="T7080";
+ return toAjax(emisElectronicPagService.sendByCenter(useSiteCode,matialCode,"T7080",applyNum));
+ }catch (Exception ex){
+ ex.printStackTrace();
+ // 返回子定义异常
+ if(ex instanceof EmisBizError){
+ return AjaxResult.error("("+((EmisBizError)ex).getErrorCode()+")"+ex.getMessage());
+ }
+
+ return AjaxResult.error("服务器异常,联系客服");
+ }
+ }
+
+ /**
+ * 取消
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisElectronicPagApply:cancel')")
+ @Log(title = "网点电子面单取消", businessType = BusinessType.UPDATE)
+ @PutMapping("/cancel")
+ public AjaxResult cancel(@RequestBody EmisElectronicPagApply emisElectronicPagApply)
+ {
+ emisElectronicPagApply.setCancelDate(new Date());
+ emisElectronicPagApply.setCancelManCode(getLoginUser().getUser().getEmpCode());
+ emisElectronicPagApply.setCancelSiteCode(getLoginUser().getUser().getOwnerSiteCode());
+ emisElectronicPagApply.setBlCancel("1");
+
+ return toAjax(emisElectronicPagApplyService.updateEmisElectronicPagApply(emisElectronicPagApply));
+ }
+
/**
* 删除网点电子面单申请
*/
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagController.java
index 98505bb2e..1de669a56 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisElectronicPagController.java
@@ -83,20 +83,6 @@ public class EmisElectronicPagController extends BaseController
return AjaxResult.success(emisElectronicPagService.selectEmisElectronicPagById(id));
}
- /**
- * 获取电子面单单号
- */
- @PostMapping(value = "/realMatchWaybill")
- public AjaxResult realMatchWaybill()
- {
- try {
- String waybillNo = emisElectronicPagService.realMatchWaybill();
- return AjaxResult.success("处理成功",waybillNo);
- }catch (Exception ex){
- ex.printStackTrace();
- return AjaxResult.error(ex.getMessage());
- }
- }
/**
* 新增电子面单
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
index 826fb600a..1f3b9ca47 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
@@ -81,10 +81,8 @@ public class EmisWaybillController extends BaseController
@Autowired
private ISysUserService sysUserService;
-
-
@Autowired
- private IEmisElectronicPagService emisElectronicPagService;
+ private IEmisElectronicSitePagService emisElectronicSitePagService;
@Autowired
private IEmisTmsScanRecordService emisTmsScanRecordService;
@@ -141,7 +139,7 @@ public class EmisWaybillController extends BaseController
try {
if(StringUtils.isEmpty(waybillOrder.getBillCode()) ){
- waybillOrder.setBillCode(emisElectronicPagService.realMatchWaybill());
+ waybillOrder.setBillCode(emisElectronicSitePagService.realMatchWaybill("T7080"));
}
EmisWaybill emisWaybillSave = waybillOrder.toDb();
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPag.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPag.java
index fee7a9021..eeba508fe 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPag.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPag.java
@@ -2,7 +2,7 @@
* @Project: emis
* @Title: EmisElectronicPag.java
* @author linfso
- * @date 2024-05-27 05:38:24
+ * @date 2024-05-27 10:16:56
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description:
电子面单 实体类
@@ -26,7 +26,7 @@ import lombok.Data;
* @ClassName EmisElectronicPag
* @Description 电子面单
* @author linfso
- * @date 2024-05-27 05:38:24
+ * @date 2024-05-27 10:16:56
*/
@Data
public class EmisElectronicPag extends BaseEntity
@@ -35,12 +35,16 @@ public class EmisElectronicPag extends BaseEntity
/* id */
private Long id;
+ /* 运单前缀 */
+ private String prefix;
/* 开始编号 */
private String startNo;
/* 结束编号 */
private String endNo;
/* 单号数量 */
private Integer billCount;
+ /* 单价 */
+ private BigDecimal unitMoney;
/* 面单费 */
private BigDecimal billFee;
/* 已分配当前编号 */
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPagApply.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPagApply.java
index 06e9f40a7..617c66074 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPagApply.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicPagApply.java
@@ -35,6 +35,8 @@ public class EmisElectronicPagApply extends BaseEntity
/* id */
private Long id;
+ /* 运单前缀 */
+ private String prefix;
/* 申购序号 */
private String applySeq;
/* 申购时间 */
@@ -50,10 +52,10 @@ public class EmisElectronicPagApply extends BaseEntity
private String applyManCode;
/* 申购站点编号 */
private String applySiteCode;
- /* 单价 */
- private BigDecimal unitMoney;
/* 申请数量 */
private Integer applyCount;
+ /* 单价 */
+ private BigDecimal unitMoney;
/* 总金额 */
private BigDecimal sumMoney;
/* 是否已发放 */
@@ -65,6 +67,10 @@ public class EmisElectronicPagApply extends BaseEntity
private String sendManCode;
/* 发放站点代码 */
private String sendSiteCode;
+ /* 发放中心人编号 */
+ private String sendCenterManCode;
+ /* 发放中心站点代码 */
+ private String sendCenterSiteCode;
/* 是否取消 */
private String blCancel;
/* 取消人代码 */
@@ -76,16 +82,8 @@ public class EmisElectronicPagApply extends BaseEntity
private String cancelSiteCode;
/* 使用站点代码 */
private String userSiteCode;
- /* 分配开始编号 */
- private String startNo;
- /* 分配结束编号 */
- private String endNo;
- /* 已使用当前编号 */
- private String curStartNo;
- /* 剩余数量 */
- private String hasBillCount;
- /* 是否允许自动分配单号 */
- private String blAllowAllocate;
+ /* 发放标记 1-网点申请 2-总部直发 */
+ private String provideFlag;
// ------
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicSitePag.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicSitePag.java
index 87705b781..a3dc9b0a2 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicSitePag.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisElectronicSitePag.java
@@ -1,11 +1,11 @@
-/**
+/**
* @Project: emis
* @Title: EmisElectronicSitePag.java
* @author linfso
- * @date 2024-05-27 05:41:50
+ * @date 2024-05-27 12:02:16
* @Copyright: ShangHai Duta 2022 All rights reserved.
- * @version v1.0
- * @Description: 电子面单 实体类
+ * @version v1.0
+ * @Description: 站点电子面单 实体类
*/
package com.xdadan.erp.emis.domain;
@@ -24,33 +24,37 @@ import lombok.Data;
/**
* @ClassName EmisElectronicSitePag
- * @Description 电子面单
+ * @Description 站点电子面单
* @author linfso
- * @date 2024-05-27 05:41:50
+ * @date 2024-05-27 12:02:16
*/
- @Data
+@Data
public class EmisElectronicSitePag extends BaseEntity
{
private static final long serialVersionUID = 1L;
/* id */
private Long id;
- /* 使用站点编号 */
- private String useSiteCode;
- /* 物料编码 */
- private String materialCode;
+ /* 运单前缀 */
+ private String prefix;
/* 开始编号 */
private String startNo;
/* 结束编号 */
private String endNo;
+ /* 已分配当前编号 */
+ private String curStartNo;
+ /* 使用站点编号 */
+ private String useSiteCode;
+ /* 物料编码 */
+ private String materialCode;
/* 单号数量 */
private Integer billCount;
+ /* 单价 */
+ private BigDecimal unitMoney;
/* 剩余数量 */
private Integer hasBillCount;
/* 面单费 */
private BigDecimal billFee;
- /* 已分配当前编号 */
- private String curStartNo;
/* 发放日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date provideDate;
@@ -58,6 +62,12 @@ public class EmisElectronicSitePag extends BaseEntity
private String provideMan;
/* 发放站点 */
private String provideSite;
+ /* 流水号 */
+ private String applySeq;
+ /* 总部面单id */
+ private Long centerPagId;
+ /* 发放标记 1-网点申请 2-总部直发 */
+ private String provideFlag;
/* 状态 0-未启用 1-启用 */
private Integer status;
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/EmisBizErrorType.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/EmisBizErrorType.java
index 607d4817e..3d5667762 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/EmisBizErrorType.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/EmisBizErrorType.java
@@ -5,8 +5,6 @@ import lombok.Getter;
@Getter
public enum EmisBizErrorType {
-
-
PARAM_ERROR1("E001", "参数不完整"),
CALC_FEE_ERROR("E002", "运费计算错误"),
CALC_WEIGHT_ERROR("E003", "重量计算错误"),
@@ -18,11 +16,16 @@ public enum EmisBizErrorType {
PARSE_ADDRESS_ERROR("E980","地址解析错误"),
+ // 面单 Not enough
+ NOT_ENOUGH_PAG("E501","面单不足"),
+
SUCCESS("0000", "成功"),
SYS_EXCEPTION("9998", "系统异常"),
FAIL("9999", "失败"),
+
+
;
private String errorCode;
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicPagMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicPagMapper.java
index f36d9d5ee..7af1a89dc 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicPagMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicPagMapper.java
@@ -73,15 +73,36 @@ public interface EmisElectronicPagMapper extends BaseMapper
*/
public int deleteEmisElectronicPagByIds(Long[] ids);
- @Select("select count(1) from emis_electronic_pag where ('${startNo}'>=start_no and '${startNo}'<=end_no) or ('${endNo}'>=start_no and '${endNo}'<=end_no) ")
- public int checkPagIsExists(@Param("startNo") String startNo,@Param("endNo") String endNo);
+ /**
+ * 检查面单区段是否存在
+ * @param startNo
+ * @param endNo
+ * @return
+ */
+ @Select("select count(1) from emis_electronic_pag where prefix='${prefix}' and ('${startNo}'>=start_no and '${startNo}'<=end_no) or ('${endNo}'>=start_no and '${endNo}'<=end_no) ")
+ public int checkPagIsExists(@Param("prefix")String prefix,@Param("startNo") String startNo,@Param("endNo") String endNo);
- @Select("select * from emis_electronic_pag where has_bill_count>0 limit 1 ")
+ /**
+ * 获取总可用面单数
+ * @return
+ */
+ @Select("select sum(has_bill_count) as has_bill_count from emis_electronic_pag where prefix='${prefix}' and has_bill_count>0 ")
+ public int getTotalAvailablePag(@Param("prefix")String prefix);
+
+
+ @Select("select * from emis_electronic_pag where prefix='${prefix}' and has_bill_count>0 order by has_bill_count asc ")
@ResultMap("EmisElectronicPagResult")
- public EmisElectronicPag getOneAvailablePag();
+ public List getAvailablePagList(@Param("prefix")String prefix);
- @Update("update emis_electronic_pag set cur_start_no='${curStartNo}',has_bill_count=has_bill_count-1 where id=${id} ")
- public int updateRealMatchWaybill(@Param("curStartNo")String curStartNo,@Param("id")Long id);
+ /**
+ * 更新多区段面单
+ * @param curStartNo
+ * @param applyNum
+ * @param id
+ * @return
+ */
+ @Update("update emis_electronic_pag set cur_start_no='${curStartNo}',has_bill_count=has_bill_count-${applyNum} where id=${id} ")
+ public int updateRealMatchWaybillByApplyNum(@Param("curStartNo")String curStartNo,@Param("applyNum")Integer applyNum,@Param("id")Long id);
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicSitePagMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicSitePagMapper.java
index 4910b1e1c..ffc78b802 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicSitePagMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisElectronicSitePagMapper.java
@@ -12,7 +12,13 @@ package com.xdadan.erp.emis.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xdadan.erp.emis.domain.EmisElectronicPag;
import com.xdadan.erp.emis.domain.EmisElectronicSitePag;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.ResultMap;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
/**
* @ClassName EmisElectronicSitePagMapper
* @Description 电子面单 Mapper 接口
@@ -21,6 +27,26 @@ import com.xdadan.erp.emis.domain.EmisElectronicSitePag;
*/
public interface EmisElectronicSitePagMapper extends BaseMapper
{
+
+
+ /**
+ * 获取单个面单是否可用
+ * @return
+ */
+ @Select("select * from emis_electronic_site_pag where use_site_code='${useSiteCode}' prefix='${prefix}' and has_bill_count>0 limit 1 ")
+ @ResultMap("EmisElectronicSitePagResult")
+ public EmisElectronicSitePag getOneAvailablePag(@Param("useSiteCode")String useSiteCode,@Param("prefix")String prefix);
+
+ /**
+ * 更新面单占用
+ * @param curStartNo
+ * @param id
+ * @return
+ */
+ @Update("update emis_electronic_site_pag set cur_start_no='${curStartNo}',has_bill_count=has_bill_count-1 where id=${id} ")
+ public int updateRealMatchWaybill(@Param("curStartNo")String curStartNo,@Param("id")Long id);
+
+
/**
* 主键查询
* @param id
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagApplyService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagApplyService.java
index 19ebe8576..e1478fc85 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagApplyService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagApplyService.java
@@ -51,6 +51,13 @@ public interface IEmisElectronicPagApplyService
*/
public int updateEmisElectronicPagApply(EmisElectronicPagApply emisElectronicPagApply);
+ /**
+ * 发放
+ * @param emisElectronicPagApply
+ * @return
+ */
+ public int send(EmisElectronicPagApply emisElectronicPagApply);
+
/**
* 批量删除网点电子面单申请
*
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagService.java
index 071dc6809..511d9ddf2 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicPagService.java
@@ -10,9 +10,12 @@
package com.xdadan.erp.emis.service;
import java.util.List;
-import com.xdadan.erp.emis.domain.EmisElectronicPag;
+import java.util.Map;
-/**
+import com.xdadan.erp.emis.domain.EmisElectronicPag;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+
+ /**
* @ClassName EmisElectronicPagService
* @Description 电子面单
* @author linfso
@@ -27,9 +30,26 @@ public interface IEmisElectronicPagService
*/
public EmisElectronicPag selectEmisElectronicPagById(Long id);
- public String realMatchWaybill() throws Exception;
+ /**
+ * 总部根据申请单发放电子面单发放
+ * @param applyId
+ * @return
+ * @throws EmisBizError
+ */
+ public int sendByApply(Long applyId) throws EmisBizError;
/**
+ * 总部直接下发面单
+ * @param applySiteCode
+ * @param materialCode
+ * @param prefix
+ * @param applyNum
+ * @return
+ * @throws EmisBizError
+ */
+ public int sendByCenter(String applySiteCode,String materialCode,String prefix,Integer applyNum) throws EmisBizError;
+
+ /**
* 查询电子面单列表
*
* @param emisElectronicPag 电子面单
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicSitePagService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicSitePagService.java
index 4b6737090..c9665770c 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicSitePagService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisElectronicSitePagService.java
@@ -11,8 +11,9 @@ package com.xdadan.erp.emis.service;
import java.util.List;
import com.xdadan.erp.emis.domain.EmisElectronicSitePag;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
-/**
+ /**
* @ClassName EmisElectronicSitePagService
* @Description 电子面单
* @author linfso
@@ -20,6 +21,17 @@ import com.xdadan.erp.emis.domain.EmisElectronicSitePag;
*/
public interface IEmisElectronicSitePagService
{
+
+
+ /**
+ *
+ * @param useSiteCode
+ * @param prefix
+ * @return
+ * @throws EmisBizError
+ */
+ public String realMatchWaybill(String useSiteCode,String prefix) throws EmisBizError;
+
/**
* 主键查询
* @param id
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagApplyServiceImpl.java
index a4ef96603..b32a5f3ef 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagApplyServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagApplyServiceImpl.java
@@ -10,8 +10,10 @@
package com.xdadan.erp.emis.service.impl;
+import java.util.Date;
import java.util.List;
+import com.xdadan.erp.emis.mapper.EmisElectronicPagMapper;
import com.xdadan.erp.emis.service.EmisBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,6 +33,7 @@ public class EmisElectronicPagApplyServiceImpl extends EmisBaseService implement
@Autowired
private EmisElectronicPagApplyMapper emisElectronicPagApplyMapper;
+
/**
* 查询网点电子面单申请
*
@@ -83,6 +86,25 @@ public class EmisElectronicPagApplyServiceImpl extends EmisBaseService implement
return emisElectronicPagApplyMapper.updateEmisElectronicPagApply(emisElectronicPagApply);
}
+ /**
+ * 网点电子面单发放
+ * @param emisElectronicPagApply
+ * @return
+ */
+ @Override
+ public int send(EmisElectronicPagApply emisElectronicPagApply)
+ {
+ // 检查总部次数是否可用
+
+ // 扣减总部次数,增加总部运单分配范围
+ emisElectronicPagApply.setSendDate(new Date());
+ emisElectronicPagApply.setSendManCode(getCurrentUser().getEmpCode());
+ emisElectronicPagApply.setSendSiteCode(getCurrentUser().getOwnerSiteCode());
+ emisElectronicPagApply.setBlSend("1");
+
+ return emisElectronicPagApplyMapper.updateEmisElectronicPagApply(emisElectronicPagApply);
+ }
+
/**
* 批量删除网点电子面单申请
*
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagServiceImpl.java
index 615b1f0ff..41bda864a 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisElectronicPagServiceImpl.java
@@ -10,10 +10,19 @@
package com.xdadan.erp.emis.service.impl;
-import java.util.Date;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.xdadan.erp.common.core.redis.RedissonService;
+import com.xdadan.erp.common.utils.DateUtils;
+import com.xdadan.erp.emis.domain.EmisElectronicPagApply;
+import com.xdadan.erp.emis.domain.EmisElectronicSitePag;
+import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.emis.mapper.EmisElectronicPagApplyMapper;
+import com.xdadan.erp.emis.mapper.EmisElectronicSitePagMapper;
+import com.xdadan.erp.emis.service.EmisBaseService;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -22,23 +31,30 @@ import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.domain.EmisElectronicPag;
import com.xdadan.erp.emis.mapper.EmisElectronicPagMapper;
import com.xdadan.erp.emis.service.IEmisElectronicPagService;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
-/**
+ /**
* 电子面单Service业务层处理
*
* @author linfso
* @date 2024-03-01 10:49:49
*/
@Service
-public class EmisElectronicPagServiceImpl implements IEmisElectronicPagService
+public class EmisElectronicPagServiceImpl extends EmisBaseService implements IEmisElectronicPagService
{
@Autowired
private EmisElectronicPagMapper emisElectronicPagMapper;
+ @Autowired
+ private EmisElectronicPagApplyMapper emisElectronicPagApplyMapper;
+
+ @Autowired
+ private EmisElectronicSitePagMapper emisElectronicSitePagMapper;
+
@Autowired
RedissonService redissonService;
- public static String PAG_PREFIX="T7080";
/**
* 查询电子面单
@@ -53,39 +69,324 @@ public class EmisElectronicPagServiceImpl implements IEmisElectronicPagService
}
+
+
/**
- * 分配电子面单
+ * 总部根据申请单发放电子面单发放
+ * @param applyId
* @return
+ * @throws EmisBizError
*/
+ @Transactional
@Override
- public String realMatchWaybill() throws Exception {
+ public int sendByApply(Long applyId) throws EmisBizError {
+
+ EmisElectronicPagApply emisElectronicPagApply=emisElectronicPagApplyMapper.selectEmisElectronicPagApplyById(applyId);
+ if(emisElectronicPagApply==null){
+ throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"流水号不存在");
+ }
+
+ String prefix=emisElectronicPagApply.getPrefix();
+ Integer applyNum=emisElectronicPagApply.getApplyCount();
+
+ // 发放主单
+ if("1001".equals(emisElectronicPagApply.getMaterialCode())) {
+ // 获取电子面单号
+ // 获取分段电子面单数量
+ List