diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java index fdceb4a1a..90c74f605 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.github.pagehelper.PageHelper; import com.xdadan.erp.common.annotation.Log; import com.xdadan.erp.common.core.controller.BaseController; import com.xdadan.erp.common.core.domain.AjaxResult; @@ -54,8 +55,17 @@ public class EmisCommissionQuoteController extends BaseController */ @PreAuthorize("@ss.hasPermi('emis:emisCommissionQuote:list')") @GetMapping("/list") - public TableDataInfo list(EmisCommissionQuote emisCommissionQuote) - { + public TableDataInfo list(EmisCommissionQuote emisCommissionQuote) { + if ("2".equals(emisCommissionQuote.getBlOpen())) { + // blOpen=2: 启用且已过期,修改为查询启用状态且结束日期早于当前日期 + emisCommissionQuote.setBlOpen("1"); + emisCommissionQuote.getParams().put("endDateBeforeNow", true); + } else if ("3".equals(emisCommissionQuote.getBlOpen())) { + // blOpen=3: 启用且未过期,修改为查询启用状态且结束日期晚于等于当前日期 + emisCommissionQuote.setBlOpen("1"); + emisCommissionQuote.getParams().put("endDateAfterNow", true); + } + startPage(); List list = emisCommissionQuoteService.selectEmisCommissionQuoteList(emisCommissionQuote); return getDataTable(list); 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 103f43b74..4243c5e31 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 @@ -772,6 +772,30 @@ public class EmisCommonController extends EmisBaseController } + /** + * 处理输入的历史虚拟单 + * @return + */ + @PostMapping("/handleInputVirtualWaybill") + public AjaxResult handleInputVirtualWaybill(@RequestBody List emisWaybills){ + String lockKey="handleInputVirtualWaybill"; + log.info("handleHistoryVirtualWaybill start"); + + // 加锁查询 + redissonService.lock(lockKey,300); + try{ + emisWaybillService.handleInputVirtualWaybill(emisWaybills); + }catch(Exception ex){ + ex.printStackTrace(); + log.error("handleInputVirtualWaybill exception:"+ex.getMessage()); + } + log.info("handleInputVirtualWaybill end"); + + redissonService.unlock(lockKey); + return AjaxResult.success("发送成功"); + + } + /** * 自动出账触发 * @return diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesCommissionRatioController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesCommissionRatioController.java index 4ae9ae37f..c4b78a96f 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesCommissionRatioController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesCommissionRatioController.java @@ -26,9 +26,18 @@ public class EmisSalesCommissionRatioController extends BaseController { /** * 查询销售计提比例配置列表 */ - @PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:list')") + @PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:list')") @GetMapping("/list") public TableDataInfo list(EmisSalesCommissionRatio query) { + if ("2".equals(query.getStatus())) { + // status=2: 启用且已过期,修改为查询启用状态且结束日期早于当前日期 + query.setStatus("1"); + query.getParams().put("endDateBeforeNow", true); + } else if ("3".equals(query.getStatus())) { + // status=3: 启用且未过期,修改为查询启用状态且结束日期晚于等于当前日期 + query.setStatus("1"); + query.getParams().put("endDateAfterNow", true); + } startPage(); List list = emisSalesCommissionRatioService.selectEmisSalesCommissionRatioList(query); return getDataTable(list); diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesMonthlyReviewController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesMonthlyReviewController.java new file mode 100644 index 000000000..fd2f3ae3c --- /dev/null +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSalesMonthlyReviewController.java @@ -0,0 +1,128 @@ +package com.xdadan.erp.web.emis; + +import com.alibaba.fastjson.JSONObject; +import com.xdadan.erp.common.annotation.Log; +import com.xdadan.erp.common.core.controller.BaseController; +import com.xdadan.erp.common.core.domain.AjaxResult; +import com.xdadan.erp.common.core.page.TableDataInfo; +import com.xdadan.erp.common.enums.BusinessType; +import com.xdadan.erp.common.utils.poi.ExcelUtil; +import com.xdadan.erp.emis.domain.EmisSalesMonthlyReview; +import com.xdadan.erp.emis.domain.EmisTransPlanRule; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.service.IEmisSalesMonthlyReviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 销售月评登记Controller + * + * @author heyu + */ +@RestController +@RequestMapping("/emis/salesMonthlyReview") +public class EmisSalesMonthlyReviewController extends BaseController { + @Autowired + private IEmisSalesMonthlyReviewService emisSalesMonthlyReviewService; + + /** + * 查询销售月评登记列表 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:list')") + @GetMapping("/list") + public TableDataInfo list(EmisSalesMonthlyReview review) { + startPage(); + List list = emisSalesMonthlyReviewService.selectEmisSalesMonthlyReviewList(review); + return getDataTable(list); + } + + /** + * 获取销售月评登记详细信息 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:query')") + @GetMapping("/{id}") + public AjaxResult getInfo(@PathVariable Long id) { + return AjaxResult.success(emisSalesMonthlyReviewService.selectEmisSalesMonthlyReviewById(id)); + } + + /** + * 新增销售月评登记 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:add')") + @Log(title = "销售月评登记", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody EmisSalesMonthlyReview review) throws EmisBizError { + return toAjax(emisSalesMonthlyReviewService.insertEmisSalesMonthlyReview(review)); + } + + /** + * 修改销售月评登记 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:edit')") + @Log(title = "销售月评登记", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody EmisSalesMonthlyReview review) throws EmisBizError { + return toAjax(emisSalesMonthlyReviewService.updateEmisSalesMonthlyReview(review)); + } + + /** + * 删除销售月评登记 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:remove')") + @Log(title = "销售月评登记", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(emisSalesMonthlyReviewService.deleteEmisSalesMonthlyReviewByIds(ids)); + } + + /** + * 导出销售月评登记列表 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:export')") + @Log(title = "销售月评登记", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, EmisSalesMonthlyReview review) { + List list = emisSalesMonthlyReviewService.selectEmisSalesMonthlyReviewList(review); + ExcelUtil util = new ExcelUtil<>(EmisSalesMonthlyReview.class); + util.exportExcel(response, list, "销售月评登记数据"); + } + + /** + * Excel草稿方式新增 + */ + @PreAuthorize("@ss.hasPermi('emis:salesMonthlyReview:draftSubmitReview')") + @PostMapping(value = "/draftSubmitReview") + public AjaxResult draftSubmitReview(@RequestBody EmisSalesMonthlyReview review) { + JSONObject jObjOut = new JSONObject(); + String result = "success"; + String msg = "提交成功"; + try { + emisSalesMonthlyReviewService.draftSubmitReview(review); + jObjOut.put("reviewDetail", review); + } catch (EmisBizError ex) { + ex.printStackTrace(); + result = "fail"; + msg = ex.getErrorCode() + ":" + ex.getMessage(); + } catch (DuplicateKeyException e) { + e.printStackTrace(); + result = "fail"; + msg = "数据重复"; + } catch (Exception ex) { + result = "fail"; + ex.printStackTrace(); + msg = "系统异常:" + ex.getMessage(); + if (ex instanceof EmisBizError) { + msg = ((EmisBizError) ex).getErrorCode() + ":" + ex.getMessage(); + } + } + jObjOut.put("result", result); + jObjOut.put("msg", msg); + return AjaxResult.success("成功", jObjOut); + } +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCommissionQuote.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCommissionQuote.java index 54405e46c..51c16314d 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCommissionQuote.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCommissionQuote.java @@ -65,7 +65,7 @@ public class EmisCommissionQuote extends BaseEntity private String postType; /* 快递类型:emis_biz_shipping_method */ private String transType; - /* 启用状态 1-启用 0-停用 */ + /* 启用状态 1-启用 0-停用 2-启用已过期 3-启用未过期 */ private String blOpen; /* 员工编号 */ private String empCode; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesCommissionRatio.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesCommissionRatio.java index 4f0807ff9..6bf8b7455 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesCommissionRatio.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesCommissionRatio.java @@ -1,8 +1,10 @@ package com.xdadan.erp.emis.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import com.xdadan.erp.common.core.domain.BaseEntity; import java.math.BigDecimal; +import java.util.Date; /** * 销售计提比例配置实体类 @@ -24,6 +26,12 @@ public class EmisSalesCommissionRatio extends BaseEntity { private String salesSupport; /** 销售支持占比 */ private BigDecimal salesSupportRatio; - /** 启用状态 1-启用 0-未启用 **/ + /** 启用状态 1-启用 0-未启用 2-启用已过期 3-启用未过期 **/ private String status; + /* 开始日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startDate; + /* 结束日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDate; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesMonthlyReview.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesMonthlyReview.java new file mode 100644 index 000000000..7ff7117be --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSalesMonthlyReview.java @@ -0,0 +1,34 @@ +package com.xdadan.erp.emis.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xdadan.erp.common.core.domain.BaseEntity; +import lombok.Data; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 销售月评登记对象 emis_sales_monthly_review + * + * @author linfso + */ +@Data +public class EmisSalesMonthlyReview extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + /** 员工姓名 */ + private String employeeName; + /** 所属部门 */ + private String department; + /** 岗位 */ + private String position; + /** 入职日期 yyyy-MM-dd */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date entryDate; + /** 考评月份 yyyy-MM */ + private String reviewMonth; + /** 考核分数 */ + private BigDecimal score; +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSalesMonthlyReviewMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSalesMonthlyReviewMapper.java new file mode 100644 index 000000000..b3dd7044e --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSalesMonthlyReviewMapper.java @@ -0,0 +1,70 @@ +package com.xdadan.erp.emis.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xdadan.erp.emis.domain.EmisSalesMonthlyReview; +import com.xdadan.erp.emis.domain.EmisSalesmenRel; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 销售月评登记Mapper接口 + * + * @author heyu + */ +public interface EmisSalesMonthlyReviewMapper extends BaseMapper { + /** + * 查询销售月评登记 + * + * @param id 主键ID + * @return 销售月评登记 + */ + EmisSalesMonthlyReview selectEmisSalesMonthlyReviewById(Long id); + + /** + * 查询销售月评登记列表 + * + * @param review 查询条件 + * @return 销售月评登记集合 + */ + List selectEmisSalesMonthlyReviewList(EmisSalesMonthlyReview review); + + /** + * 新增销售月评登记 + * + * @param review 销售月评登记 + * @return 结果 + */ + int insertEmisSalesMonthlyReview(EmisSalesMonthlyReview review); + + /** + * 修改销售月评登记 + * + * @param review 销售月评登记 + * @return 结果 + */ + int updateEmisSalesMonthlyReview(EmisSalesMonthlyReview review); + + /** + * 删除销售月评登记 + * + * @param id 主键ID + * @return 结果 + */ + int deleteEmisSalesMonthlyReviewById(Long id); + + /** + * 批量删除销售月评登记 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteEmisSalesMonthlyReviewByIds(Long[] ids); + + /** + * 唯一性校验 + * + * @param review + * @return + */ + EmisSalesMonthlyReview checkUnique(EmisSalesMonthlyReview review); +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSalesMonthlyReviewService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSalesMonthlyReviewService.java new file mode 100644 index 000000000..28d45b596 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSalesMonthlyReviewService.java @@ -0,0 +1,76 @@ +package com.xdadan.erp.emis.service; + +import com.xdadan.erp.emis.domain.EmisSalesMonthlyReview; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import java.util.List; + +/** + * 销售月评登记Service接口 + * + * @author linfso + */ +public interface IEmisSalesMonthlyReviewService { + /** + * 查询销售月评登记 + * + * @param id 主键ID + * @return 销售月评登记 + */ + EmisSalesMonthlyReview selectEmisSalesMonthlyReviewById(Long id) ; + + /** + * 查询销售月评登记列表 + * + * @param review 查询条件 + * @return 销售月评登记集合 + */ + List selectEmisSalesMonthlyReviewList(EmisSalesMonthlyReview review); + + /** + * 新增销售月评登记 + * + * @param review 销售月评登记 + * @return 结果 + */ + int insertEmisSalesMonthlyReview(EmisSalesMonthlyReview review) throws EmisBizError; + + /** + * 修改销售月评登记 + * + * @param review 销售月评登记 + * @return 结果 + */ + int updateEmisSalesMonthlyReview(EmisSalesMonthlyReview review) throws EmisBizError; + + /** + * 删除销售月评登记 + * + * @param id 主键ID + * @return 结果 + */ + int deleteEmisSalesMonthlyReviewById(Long id) ; + + /** + * 批量删除销售月评登记 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteEmisSalesMonthlyReviewByIds(Long[] ids) ; + + /** + * 唯一性校验 + * + * @param review + * @return + */ + EmisSalesMonthlyReview checkUnique(EmisSalesMonthlyReview review); + + /** + * 草稿新增 + * + * @param review + * @return + */ + int draftSubmitReview(EmisSalesMonthlyReview review) throws EmisBizError; +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java index 5988b5ab6..95db1fb89 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java @@ -306,4 +306,10 @@ public interface IEmisWaybillService extends IDataAuditService * */ void handleHistoryVirtualWaybill(); + + /** + * + * @param emisWaybills + */ + void handleInputVirtualWaybill(List emisWaybills); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesCommissionRatioServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesCommissionRatioServiceImpl.java index c25674d86..1548e5064 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesCommissionRatioServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesCommissionRatioServiceImpl.java @@ -29,7 +29,7 @@ public class EmisSalesCommissionRatioServiceImpl implements IEmisSalesCommission */ @Override public EmisSalesCommissionRatio selectEmisSalesCommissionRatioById(Long id) { - return emisSalesCommissionRatioMapper.selectById(id); + return emisSalesCommissionRatioMapper.selectEmisSalesCommissionRatioById(id); } /** diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesMonthlyReviewServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesMonthlyReviewServiceImpl.java new file mode 100644 index 000000000..9d290997b --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSalesMonthlyReviewServiceImpl.java @@ -0,0 +1,171 @@ +package com.xdadan.erp.emis.service.impl; + +import com.xdadan.erp.emis.domain.EmisSalesMonthlyReview; +import com.xdadan.erp.emis.mapper.EmisSalesMonthlyReviewMapper; +import com.xdadan.erp.emis.service.IEmisSalesMonthlyReviewService; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.math.BigDecimal; +import org.apache.commons.lang3.StringUtils; + +/** + * 销售月评登记Service实现 + * 负责销售月评登记的增删改查、唯一性校验等业务逻辑 + * + * @author heyu + */ +@Service +public class EmisSalesMonthlyReviewServiceImpl implements IEmisSalesMonthlyReviewService { + @Autowired + private EmisSalesMonthlyReviewMapper emisSalesMonthlyReviewMapper; + + private static final List VALID_DEPARTMENTS = java.util.Arrays.asList("销售一组", "销售二组", "销售三组", "销售四组", + "销售五组", "宁波站点", "上海站点", "柯桥站点", "杭州站点"); + private static final List VALID_POSITIONS = java.util.Arrays.asList("收派员", "销售顾问", "销售主管", "销售支持", "销售经理"); + + private void validateDraftReview(EmisSalesMonthlyReview review) throws EmisBizError { + if (review == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "参数不能为空"); + } + if (StringUtils.isBlank(review.getEmployeeName())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "员工姓名不能为空"); + } + if (StringUtils.isBlank(review.getDepartment())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "所属部门不能为空"); + } + if (StringUtils.isBlank(review.getPosition())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "岗位不能为空"); + } + if (review.getScore() == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "考核分数不能为空"); + } + if (StringUtils.isBlank(review.getReviewMonth())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "考评月份不能为空"); + } + if (review.getEntryDate() == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "入职日期不能为空"); + } + if (!VALID_DEPARTMENTS.contains(review.getDepartment())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "所属部门不在允许范围内"); + } + if (!VALID_POSITIONS.contains(review.getPosition())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "岗位不在允许范围内"); + } + // 校验考评月份格式 yyyy-MM + if (!review.getReviewMonth().matches("\\d{4}-\\d{2}")) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "考评月份格式错误,应为yyyy-MM"); + } + // 入职日期格式校验 yyyy-MM-dd + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + try { + sdf.format(review.getEntryDate()); + } catch (Exception e) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "入职日期格式错误,应为yyyy-MM-dd"); + } + } + + /** + * 根据主键ID查询销售月评登记 + * + * @param id 主键ID + * @return 销售月评登记对象 + */ + @Override + public EmisSalesMonthlyReview selectEmisSalesMonthlyReviewById(Long id) { + return emisSalesMonthlyReviewMapper.selectEmisSalesMonthlyReviewById(id); + } + + /** + * 查询销售月评登记列表 + * + * @param review 查询条件 + * @return 销售月评登记集合 + */ + @Override + public List selectEmisSalesMonthlyReviewList(EmisSalesMonthlyReview review) { + return emisSalesMonthlyReviewMapper.selectEmisSalesMonthlyReviewList(review); + } + + /** + * 新增销售月评登记,包含唯一性校验 + * + * @param review 销售月评登记对象 + * @return 插入结果 + * @throws EmisBizError 唯一性冲突或插入异常 + */ + @Override + public int insertEmisSalesMonthlyReview(EmisSalesMonthlyReview review) throws EmisBizError { + EmisSalesMonthlyReview unique = emisSalesMonthlyReviewMapper.checkUnique(review); + if (unique != null) { + throw new EmisBizError(EmisBizErrorType.EXISTS, "该员工本月该岗位该部门已登记"); + } + return emisSalesMonthlyReviewMapper.insertEmisSalesMonthlyReview(review); + } + + /** + * 草稿新增 + * + * @param review 销售月评登记对象 + * @return 插入结果 + * @throws EmisBizError 唯一性冲突或插入异常 + */ + @Override + public int draftSubmitReview(EmisSalesMonthlyReview review) throws EmisBizError { + validateDraftReview(review); + return insertEmisSalesMonthlyReview(review); + } + + /** + * 修改销售月评登记,包含唯一性校验 + * + * @param review 销售月评登记对象 + * @return 修改结果 + * @throws EmisBizError 唯一性冲突或修改异常 + */ + @Override + public int updateEmisSalesMonthlyReview(EmisSalesMonthlyReview review) throws EmisBizError { + EmisSalesMonthlyReview unique = emisSalesMonthlyReviewMapper.checkUnique(review); + if (unique != null && !unique.getId().equals(review.getId())) { + throw new EmisBizError(EmisBizErrorType.EXISTS, "该员工本月该岗位该部门已登记"); + } + return emisSalesMonthlyReviewMapper.updateEmisSalesMonthlyReview(review); + } + + /** + * 根据主键ID软删除销售月评登记 + * + * @param id 主键ID + * @return 删除结果 + */ + @Override + public int deleteEmisSalesMonthlyReviewById(Long id) { + return emisSalesMonthlyReviewMapper.deleteEmisSalesMonthlyReviewById(id); + } + + /** + * 批量软删除销售月评登记 + * + * @param ids 主键ID数组 + * @return 删除结果 + */ + @Override + public int deleteEmisSalesMonthlyReviewByIds(Long[] ids) { + return emisSalesMonthlyReviewMapper.deleteEmisSalesMonthlyReviewByIds(ids); + } + + /** + * 唯一性校验 + * + * @param review + * @return + */ + @Override + public EmisSalesMonthlyReview checkUnique(EmisSalesMonthlyReview review) { + return emisSalesMonthlyReviewMapper.checkUnique(review); + } +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 6945c5faf..3f8b82a36 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -987,6 +987,14 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if (CollectionUtil.isEmpty(salesmenUsers)) { throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "销售联系人不支持回款"); } +// SysUser payeeUser = getEmisStaffByEmpName(emisWaybillSave.getPayee()); +// if (Objects.isNull(payeeUser)) { +// throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "回款联系人不支持回款"); +// } +// SysUser salesUser = getEmisStaffByEmpName(emisWaybillSave.getSalesmen()); +// if (Objects.isNull(salesUser)) { +// throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "销售联系人不支持回款"); +// } // 包装类型 String packTypeStr = emisWaybillSave.getPackType(); @@ -6036,6 +6044,16 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } } + @Override + public void handleInputVirtualWaybill(List emisWaybills) { + for (EmisWaybill emisWaybill : emisWaybills) { + EmisWaybill oldWaybill = emisWaybillMapper + .selectMasterWaybillByBillCode(emisWaybill.getBillCode()); + emisWaybill.setId(oldWaybill.getId()); + updateWaybill(emisWaybill); + } + } + // 新增内部类用于返回统计结果 private static class ProblemHandleResult { int successCount; diff --git a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml index 1e14e0269..fe0a97ce8 100644 --- a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml @@ -60,7 +60,16 @@ and calc_weight_type=#{calcWeightType} and post_type=#{postType} and ( FIND_IN_SET(#{transType},trans_type) ) - and bl_open=#{blOpen} + + and bl_open = #{blOpen} + + + + and end_date < NOW() + + + and end_date >= NOW() + and ( FIND_IN_SET(#{empCode},emp_code) or emp_code='-1') and ( FIND_IN_SET(#{empName},emp_name) or emp_name='全部') @@ -78,6 +87,8 @@ order by create_time desc + + + del_flag='0' AND sales_executive like concat('%', #{salesExecutive}, '%') AND salesmen like concat('%', #{salesmen}, '%') AND sales_support like concat('%', #{salesSupport}, '%') AND status = #{status} AND del_flag = #{delFlag} + AND start_date = #{startDate} + AND end_date = #{endDate} + + + and end_date < NOW() + + + and end_date >= NOW() + ORDER BY id DESC @@ -33,7 +45,7 @@ @@ -47,6 +59,8 @@ sales_support, sales_support_ratio, status, + start_date, + end_date, remark, del_flag, create_by, @@ -64,6 +78,8 @@ #{salesSupport}, #{salesSupportRatio}, #{status}, + #{startDate}, + #{endDate}, #{remark}, #{delFlag}, #{createBy}, @@ -86,6 +102,8 @@ sales_support = #{salesSupport}, sales_support_ratio = #{salesSupportRatio}, status = #{status}, + start_date = #{startDate}, + end_date = #{endDate}, remark = #{remark}, del_flag = #{delFlag}, update_by = #{updateBy}, @@ -112,16 +130,19 @@ - + \ No newline at end of file diff --git a/emis-biz/src/main/resources/mapper/EmisSalesMonthlyReviewMapper.xml b/emis-biz/src/main/resources/mapper/EmisSalesMonthlyReviewMapper.xml new file mode 100644 index 000000000..17c22ae85 --- /dev/null +++ b/emis-biz/src/main/resources/mapper/EmisSalesMonthlyReviewMapper.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO emis_sales_monthly_review + + employee_name, + department, + position, + entry_date, + review_month, + score, + remark, + create_by, + create_time, + create_site, + update_by, + update_time, + update_site, + del_flag, + + + #{employeeName}, + #{department}, + #{position}, + #{entryDate}, + #{reviewMonth}, + #{score}, + #{remark}, + #{createBy}, + #{createTime}, + #{createSite}, + #{updateBy}, + #{updateTime}, + #{updateSite}, + #{delFlag}, + + + + + + UPDATE emis_sales_monthly_review + + employee_name = #{employeeName}, + department = #{department}, + position = #{position}, + entry_date = #{entryDate}, + review_month = #{reviewMonth}, + score = #{score}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime}, + update_site = #{updateSite}, + + WHERE id = #{id} AND del_flag = 0 + + + + + UPDATE emis_sales_monthly_review SET del_flag = 1 WHERE id = #{id} + + + + + UPDATE emis_sales_monthly_review SET del_flag = 1 WHERE id IN + + #{id} + + + + + + \ No newline at end of file diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml index c8d52cae1..770e1a78e 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml @@ -205,7 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and w.send_date #{params.endSendDate} - and w.send_site_code=#{params.privSiteCode} + and (w.start_site_code=#{params.privSiteCode} or w.send_site_code=#{params.privSiteCode}) order by w.bill_code desc @@ -267,8 +267,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND k.trans_manager like concat('%', #{transManager}, '%') - and (m.start_site_code=#{params.privSiteCode} or m.next_site_code=#{params.privSiteCode} or - r.manager=#{params.privEmpName} or k.trans_manager=#{params.privEmpName}) + and (w.start_site_code=#{params.privSiteCode} or w.send_site_code=#{params.privSiteCode}) AND m.line_code = #{lineCode} diff --git a/emis-biz/src/main/resources/mapper/EmisTransProductMapper.xml b/emis-biz/src/main/resources/mapper/EmisTransProductMapper.xml index 98c91c0ae..e7f91c795 100644 --- a/emis-biz/src/main/resources/mapper/EmisTransProductMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTransProductMapper.xml @@ -40,7 +40,12 @@ and prod_name_en like concat('%', #{prodNameEn}, '%') and status = #{status} and country=#{country} - and trans_line_code=#{transLineCode} + + and trans_line_code in + + #{item} + + and trans_line like concat('%', #{transLine}, '%') and carry_type=#{carryType} and trans_type= #{transType} diff --git a/emis-biz/src/main/resources/mapper/EmisWarehouseInMapper.xml b/emis-biz/src/main/resources/mapper/EmisWarehouseInMapper.xml index df56454c0..80f710b37 100644 --- a/emis-biz/src/main/resources/mapper/EmisWarehouseInMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWarehouseInMapper.xml @@ -265,6 +265,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ewb.send_site_code=#{params.sendSiteCode} + + + and ewb.send_country=#{params.sendCountry} + + + + and ewb.receive_country=#{params.receiveCountry} + + + + and ewb.trans_line_type=#{params.transLineType} + + + + and ewb.product_type=#{params.productType} + ) diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 57c1ddf09..9f3bf713f 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -1075,6 +1075,13 @@ and a.order_date #{params.endOrderDate} + + and a.pick_start_date = ]]> #{params.beginPickStartDate} + + + and a.pick_start_date #{params.endPickStartDate} + + and a.payee=#{payee} @@ -3858,8 +3865,11 @@