From e5b46b3846d13fd1e15ac094751bd75dbf4a389d Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Thu, 24 Apr 2025 10:15:54 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=E4=BE=9B=E5=BA=94=E5=95=86=E7=BA=BF?= =?UTF-8?q?=E8=B7=AF=E8=A7=84=E5=88=92=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E5=9F=BA=E6=9C=AC=E5=8A=9F?= =?UTF-8?q?=E8=83=BD-=E5=88=9D=E7=89=88=E9=9B=8F=E5=BD=A2=20committer:=20h?= =?UTF-8?q?eyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/emis/EmisTransPlanRuleController.java | 101 ++++++ .../erp/emis/domain/EmisTransPlanRule.java | 62 ++++ .../emis/mapper/EmisTransPlanRuleMapper.java | 112 +++++++ .../service/IEmisTransPlanRuleService.java | 77 +++++ .../impl/EmisTransPlanRuleServiceImpl.java | 291 ++++++++++++++++++ .../mapper/EmisTransPlanRuleMapper.xml | 193 ++++++++++++ 6 files changed, 836 insertions(+) create mode 100644 emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransPlanRuleController.java create mode 100644 emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTransPlanRule.java create mode 100644 emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTransPlanRuleMapper.java create mode 100644 emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransPlanRuleService.java create mode 100644 emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java create mode 100644 emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransPlanRuleController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransPlanRuleController.java new file mode 100644 index 000000000..6007fb7b6 --- /dev/null +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransPlanRuleController.java @@ -0,0 +1,101 @@ +package com.xdadan.erp.web.emis; + +import java.util.List; +import java.util.Map; + +import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; +import com.xdadan.erp.common.core.domain.AjaxResult; +import com.xdadan.erp.common.core.page.TableDataInfo; +import com.xdadan.erp.emis.domain.EmisSupplier; +import com.xdadan.erp.emis.domain.EmisWaybill; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.xdadan.erp.emis.domain.EmisTransPlanRule; +import com.xdadan.erp.emis.service.IEmisTransPlanRuleService; + +/** + * 供应商线路规划Controller + * + * @author heyu + * @date 2024-04-21 + */ +@RestController +@RequestMapping("/emis/emisTransPlanRule") +public class EmisTransPlanRuleController extends EmisBaseController { + @Autowired + private IEmisTransPlanRuleService emisTransPlanRuleService; + + @GetMapping("/listSimple") + @JacksonFilter(include = { + "transType", "productTypeName", "supplierCode", "supplierName" + }, value = EmisTransPlanRule.class, type = JacksonFilter.JscksonFilterType.RESPONSE) + public TableDataInfo listSimple(EmisTransPlanRule emisTransPlanRule) { + startPage(); + List list = emisTransPlanRuleService.selectSupplierInfoByConditions(emisTransPlanRule); + return getDataTable(list); + } + + /** + * 查询供应商线路规划列表 + */ + // @PreAuthorize("@ss.hasPermi('emis:rule:list')") + @GetMapping("/list") + public TableDataInfo list(EmisTransPlanRule emisTransPlanRule) { + startPage(); + List list = emisTransPlanRuleService.selectEmisTransPlanRuleList(emisTransPlanRule); + return getDataTable(list); + } + + /** + * 获取供应商线路规划详细信息 + */ + // @PreAuthorize("@ss.hasPermi('emis:rule:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(emisTransPlanRuleService.selectEmisTransPlanRuleById(id)); + } + + /** + * 新增供应商线路规划 + */ + // @PreAuthorize("@ss.hasPermi('emis:rule:add')") + @PostMapping + public AjaxResult add(@RequestBody EmisTransPlanRule emisTransPlanRule) throws EmisBizError { + return toAjax(emisTransPlanRuleService.insertEmisTransPlanRule(emisTransPlanRule)); + } + + /** + * 修改供应商线路规划 + */ + // @PreAuthorize("@ss.hasPermi('emis:rule:edit')") + @PutMapping + public AjaxResult edit(@RequestBody EmisTransPlanRule emisTransPlanRule) throws EmisBizError { + return toAjax(emisTransPlanRuleService.updateEmisTransPlanRule(emisTransPlanRule)); + } + + /** + * 删除供应商线路规划 + */ + // @PreAuthorize("@ss.hasPermi('emis:rule:remove')") + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) throws EmisBizError { + return toAjax(emisTransPlanRuleService.deleteEmisTransPlanRuleByIds(ids)); + } + + /** + * 查询供应商线路规划树结构 + */ + @GetMapping("/tree") + public TableDataInfo tree(String lineName) { + return getDataTable(emisTransPlanRuleService.selectEmisTransPlanRuleTree(lineName)); + } +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTransPlanRule.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTransPlanRule.java new file mode 100644 index 000000000..d93b65739 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTransPlanRule.java @@ -0,0 +1,62 @@ +package com.xdadan.erp.emis.domain; + +import java.util.List; + +import com.xdadan.erp.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * 供应商线路规划表对象 emis_trans_plan_rule + * + * @author heyu + * @date 2024-04-22 + */ +@Data +public class EmisTransPlanRule extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 父id */ + private Long parentId; + + /** 祖先节点 */ + private String ancestors; + + /** 线路名称 */ + private String lineName; + + /** 运输方式 */ + private String transType; + + /** 产品类型 */ + private String productType; + + /** 产品类型名称 */ + private String productTypeName; + + /** 起始网点编码 */ + private String startSiteCode; + + /** 下一网点编码 */ + private String nextSiteCode; + + /** 起始网点名称 */ + private String startSiteName; + + /** 下一网点名称 */ + private String nextSiteName; + + /** 供应商编码 */ + private String supplierCode; + + /** 供应商名称 */ + private String supplierName; + + /** 状态 1-启用 0-不启用 */ + private String status; + + /** 子节点 */ + private List children; +} diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTransPlanRuleMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTransPlanRuleMapper.java new file mode 100644 index 000000000..90ebbaffa --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTransPlanRuleMapper.java @@ -0,0 +1,112 @@ +package com.xdadan.erp.emis.mapper; + +import java.util.List; +import java.util.Map; +import com.xdadan.erp.emis.domain.EmisTransPlanRule; +import org.apache.ibatis.annotations.Param; + +/** + * 供应商线路规划Mapper接口 + * + * @author heyu + * @date 2024-04-22 + */ +public interface EmisTransPlanRuleMapper { + /** + * 查询供应商线路规划 + * + * @param id 供应商线路规划主键 + * @return 供应商线路规划 + */ + public EmisTransPlanRule selectEmisTransPlanRuleById(Long id); + + /** + * 查询供应商线路规划列表 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 供应商线路规划集合 + */ + public List selectEmisTransPlanRuleList(EmisTransPlanRule emisTransPlanRule); + + /** + * 查询子节点列表 + * + * @param id 父节点ID + * @return 子节点列表 + */ + public List selectChildrenEmisTransPlanRuleById(Long id); + + /** + * 查询是否存在子节点 + * + * @param id 节点ID + * @return 结果 + */ + public int hasChildByEmisTransPlanRuleId(Long id); + + /** + * 新增供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + public int insertEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule); + + /** + * 修改供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + public int updateEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule); + + /** + * 修改子元素关系 + * + * @param children 子元素 + * @return 结果 + */ + public int updateEmisTransPlanRuleChildren(List children); + + /** + * 删除供应商线路规划 + * + * @param id 供应商线路规划主键 + * @return 结果 + */ + public int deleteEmisTransPlanRuleById(Long id); + + /** + * 批量删除供应商线路规划 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmisTransPlanRuleByIds(Long[] ids); + + /** + * 根据供应商编码查询供应商名称(逗号分隔) + * + * @param supplierCodes 供应商编码(逗号分隔) + * @return 供应商名称(逗号分隔) + */ + public String selectSupplierNamesByCodes(@Param("supplierCodes") String supplierCodes); + + /** + * 根据产品类型查询产品名称(逗号分隔) + * + * @param productType 产品类型编码(逗号分隔) + * @return 产品名称(逗号分隔) + */ + public String selectProductTypeNamesByCodes(@Param("productType") String productType); + + List selectEmisTransPlanRuleTree(EmisTransPlanRule emisTransPlanRule); + + /** + * 根据条件查询供应商信息 + * + * @param emisTransPlanRule 查询条件 + * @return 供应商信息列表 + */ + List selectSupplierInfoByConditions(EmisTransPlanRule emisTransPlanRule); +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransPlanRuleService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransPlanRuleService.java new file mode 100644 index 000000000..32a20d85a --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransPlanRuleService.java @@ -0,0 +1,77 @@ +package com.xdadan.erp.emis.service; + +import java.util.List; +import com.xdadan.erp.emis.domain.EmisTransPlanRule; +import com.xdadan.erp.emis.domain.exception.EmisBizError; + +/** + * 供应商线路规划Service接口 + * + * @author heyu + * @date 2024-04-22 + */ +public interface IEmisTransPlanRuleService { + /** + * 查询供应商线路规划 + * + * @param id 供应商线路规划主键 + * @return 供应商线路规划 + */ + public EmisTransPlanRule selectEmisTransPlanRuleById(Long id); + + /** + * 查询供应商线路规划列表 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 供应商线路规划集合 + */ + public List selectEmisTransPlanRuleList(EmisTransPlanRule emisTransPlanRule); + + /** + * 新增供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + public int insertEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule) throws EmisBizError; + + /** + * 修改供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + public int updateEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule) throws EmisBizError; + + /** + * 批量删除供应商线路规划 + * + * @param ids 需要删除的供应商线路规划主键集合 + * @return 结果 + */ + public int deleteEmisTransPlanRuleByIds(Long[] ids) throws EmisBizError; + + /** + * 删除供应商线路规划信息 + * + * @param id 供应商线路规划主键 + * @return 结果 + */ + public int deleteEmisTransPlanRuleById(Long id); + + /** + * 查询供应商线路规划树结构 + * + * @param lineName 线路名称 + * @return 供应商线路规划树结构 + */ + public List selectEmisTransPlanRuleTree(String lineName); + + /** + * 根据条件查询供应商信息 + * + * @param emisTransPlanRule 查询条件 + * @return 供应商信息列表 + */ + List selectSupplierInfoByConditions(EmisTransPlanRule emisTransPlanRule); +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java new file mode 100644 index 000000000..6926fb027 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java @@ -0,0 +1,291 @@ +package com.xdadan.erp.emis.service.impl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.beust.jcommander.internal.Lists; +import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import jodd.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import com.xdadan.erp.emis.domain.EmisTransPlanRule; +import com.xdadan.erp.emis.mapper.EmisTransPlanRuleMapper; +import com.xdadan.erp.emis.service.IEmisTransPlanRuleService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 供应商线路规划Service业务层处理 + * + * @author heyu + * @date 2024-04-22 + */ +@Service +public class EmisTransPlanRuleServiceImpl implements IEmisTransPlanRuleService { + private static final Logger log = LoggerFactory.getLogger(EmisTransPlanRuleServiceImpl.class); + + @Autowired + private EmisTransPlanRuleMapper emisTransPlanRuleMapper; + + /** + * 查询供应商线路规划 + * + * @param id 供应商线路规划主键 + * @return 供应商线路规划 + */ + @Override + public EmisTransPlanRule selectEmisTransPlanRuleById(Long id) { + EmisTransPlanRule rule = emisTransPlanRuleMapper.selectEmisTransPlanRuleById(id); + if (rule != null) { + setSupplierNames(Collections.singletonList(rule)); + setProductTypeNames(Collections.singletonList(rule)); + } + return rule; + } + + /** + * 查询供应商线路规划列表 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 供应商线路规划 + */ + @Override + public List selectEmisTransPlanRuleList(EmisTransPlanRule emisTransPlanRule) { + List list = emisTransPlanRuleMapper.selectEmisTransPlanRuleList(emisTransPlanRule); + setSupplierNames(list); + setProductTypeNames(list); + return list; + } + + /** + * 设置供应商名称 + */ + private void setSupplierNames(List rules) { + if (rules == null || rules.isEmpty()) { + return; + } + for (EmisTransPlanRule rule : rules) { + if (StringUtils.hasText(rule.getSupplierCode())) { + String supplierNames = emisTransPlanRuleMapper.selectSupplierNamesByCodes(rule.getSupplierCode()); + if(StringUtil.isEmpty(supplierNames)){ + return; + } + rule.setSupplierName(supplierNames); + } + } + } + + /** + * 设置产品类型名称 + */ + private void setProductTypeNames(List rules) { + if (rules == null || rules.isEmpty()) { + return; + } + for (EmisTransPlanRule rule : rules) { + if (StringUtils.hasText(rule.getProductType())) { + String productTypeNames = emisTransPlanRuleMapper.selectProductTypeNamesByCodes(rule.getProductType()); + if(StringUtil.isEmpty(productTypeNames)){ + return; + } + rule.setProductTypeName(productTypeNames); + } + } + } + + /** + * 新增供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + @Override + @Transactional + public int insertEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule) throws EmisBizError { + // 处理父节点 + if (emisTransPlanRule.getParentId() != null) { + EmisTransPlanRule parent = emisTransPlanRuleMapper + .selectEmisTransPlanRuleById(emisTransPlanRule.getParentId()); + if (parent == null) { + throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "父节点不存在"); + } + // 设置祖先节点 + String ancestors = parent.getAncestors() == null ? "" : parent.getAncestors(); + emisTransPlanRule.setAncestors(ancestors + "," + parent.getId()); + } else { + emisTransPlanRule.setParentId(0L); + emisTransPlanRule.setAncestors("0"); + } + + // 插入当前节点 + int rows = emisTransPlanRuleMapper.insertEmisTransPlanRule(emisTransPlanRule); + + // 如果有子节点,递归处理 + if (emisTransPlanRule.getChildren() != null && !emisTransPlanRule.getChildren().isEmpty()) { + for (EmisTransPlanRule child : emisTransPlanRule.getChildren()) { + child.setParentId(emisTransPlanRule.getId()); + insertEmisTransPlanRule(child); + } + } + + return rows; + } + + /** + * 修改供应商线路规划 + * + * @param emisTransPlanRule 供应商线路规划 + * @return 结果 + */ + @Override + @Transactional + public int updateEmisTransPlanRule(EmisTransPlanRule emisTransPlanRule) throws EmisBizError { + if (emisTransPlanRule.getParentId() == null) { + return emisTransPlanRuleMapper.updateEmisTransPlanRule(emisTransPlanRule); + } + // 检查父节点是否存在 + EmisTransPlanRule parent = emisTransPlanRuleMapper + .selectEmisTransPlanRuleById(emisTransPlanRule.getParentId()); + if (parent == null) { + throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "父节点不存在"); + } + + // 检查是否形成循环引用 + if (parent.getAncestors() != null && parent.getAncestors().contains(emisTransPlanRule.getId().toString())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "不能将节点移动到其子节点下"); + } + + // 更新祖先节点 + String ancestors = parent.getAncestors() == null ? "" : parent.getAncestors(); + emisTransPlanRule.setAncestors(ancestors + "," + parent.getId()); + + // 更新当前节点 + int rows = emisTransPlanRuleMapper.updateEmisTransPlanRule(emisTransPlanRule); + + // 更新子节点的祖先节点 + updateChildrenAncestors(emisTransPlanRule); + + return rows; + } + + /** + * 批量删除供应商线路规划 + * + * @param ids 需要删除的供应商线路规划主键集合 + * @return 结果 + */ + @Override + @Transactional + public int deleteEmisTransPlanRuleByIds(Long[] ids) throws EmisBizError { + for (Long id : ids) { + // 检查是否有子节点 + if (emisTransPlanRuleMapper.hasChildByEmisTransPlanRuleId(id) > 0) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "存在子节点,不允许删除"); + } + deleteEmisTransPlanRuleById(id); + } + return ids.length; + } + + /** + * 删除供应商线路规划信息 + * + * @param id 供应商线路规划主键 + * @return 结果 + */ + @Override + public int deleteEmisTransPlanRuleById(Long id) { + return emisTransPlanRuleMapper.deleteEmisTransPlanRuleById(id); + } + + /** + * 查询供应商线路规划树结构 + * + * @param lineName 线路名称 + * @return 供应商线路规划树结构 + */ + @Override + public List selectEmisTransPlanRuleTree(String lineName) { + List allRules = null; + if (StringUtil.isEmpty(lineName)) { + allRules = this.selectEmisTransPlanRuleList(new EmisTransPlanRule()); + return buildTree(allRules); + } + + EmisTransPlanRule query = new EmisTransPlanRule(); + query.setLineName(lineName); + allRules = emisTransPlanRuleMapper.selectEmisTransPlanRuleTree(query); + setSupplierNames(allRules); + setProductTypeNames(allRules); + return buildTree(allRules); + } + + /** + * 构建树形结构 + */ + private List buildTree(List allRules) { + if (allRules == null || allRules.isEmpty()) { + return new ArrayList<>(); + } + + // 使用 Map 存储 ID 到节点的映射,方便查找父节点 + Map map = allRules.stream() + .collect(Collectors.toMap(EmisTransPlanRule::getId, rule -> rule)); + + List tree = new ArrayList<>(); + for (EmisTransPlanRule rule : allRules) { + EmisTransPlanRule parent = map.get(rule.getParentId()); + // 如果 parent 不为 null 且在当前查询结果中,则添加到父节点的 children 列表 + if (parent != null) { + if (parent.getChildren() == null) { + parent.setChildren(new ArrayList<>()); + } + parent.getChildren().add(rule); + } + // 否则,如果 parentId 为 0 或者父节点不在当前查询结果中,则认为是根节点 + else if (rule.getParentId() == null || rule.getParentId() == 0L || !map.containsKey(rule.getParentId())) { + tree.add(rule); + } + } + return tree; + } + + /** + * 递归更新子节点的祖先节点 + */ + @Transactional + public void updateChildrenAncestors(EmisTransPlanRule parent) { + // 查询直接子节点 + EmisTransPlanRule childQuery = new EmisTransPlanRule(); + childQuery.setParentId(parent.getId()); + List children = emisTransPlanRuleMapper.selectEmisTransPlanRuleList(childQuery); + + if (children != null && !children.isEmpty()) { + String newAncestors = parent.getAncestors() + "," + parent.getId(); + for (EmisTransPlanRule child : children) { + child.setAncestors(newAncestors); + // 更新子节点,包括其祖先信息 + emisTransPlanRuleMapper.updateEmisTransPlanRule(child); + // 递归更新子节点 + updateChildrenAncestors(child); + } + } + } + + @Override + public List selectSupplierInfoByConditions(EmisTransPlanRule emisTransPlanRule) { + log.info("开始根据条件查询供应商信息,查询条件:{}", emisTransPlanRule); + emisTransPlanRule.setStatus("1"); + List result = this.selectEmisTransPlanRuleList(emisTransPlanRule); + log.info("查询完成,共获取{}条记录", result.size()); + return result; + } +} \ No newline at end of file diff --git a/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml b/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml new file mode 100644 index 000000000..157ae2ed2 --- /dev/null +++ b/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + select r.id, r.parent_id, r.ancestors, r.line_name, r.trans_type, r.product_type, r.start_site_code, + s1.site_name as start_site_name, r.next_site_code, s2.site_name as next_site_name, r.supplier_code, + r.status, r.remark, r.del_flag, r.create_by, r.create_time, r.update_by, r.update_time, r.create_site, r.update_site + from emis_trans_plan_rule r + left join emis_site s1 on r.start_site_code = s1.site_code and s1.del_flag=0 + left join emis_site s2 on r.next_site_code = s2.site_code and s2.del_flag=0 + + + + + + + + + + + + + + + + + + insert into emis_trans_plan_rule + + parent_id, + ancestors, + line_name, + trans_type, + product_type, + start_site_code, + next_site_code, + supplier_code, + status, + remark, + del_flag, + create_by, + create_time, + update_by, + update_time, + create_site, + update_site, + + + #{parentId}, + #{ancestors}, + #{lineName}, + #{transType}, + #{productType}, + #{startSiteCode}, + #{nextSiteCode}, + #{supplierCode}, + #{status}, + #{remark}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{createSite}, + #{updateSite}, + + + + + update emis_trans_plan_rule + + parent_id = #{parentId}, + ancestors = #{ancestors}, + line_name = #{lineName}, + trans_type = #{transType}, + product_type = #{productType}, + start_site_code = #{startSiteCode}, + next_site_code = #{nextSiteCode}, + supplier_code = #{supplierCode}, + status = #{status}, + remark = #{remark}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + create_site = #{createSite}, + update_site = #{updateSite}, + + where id = #{id} + + + + update emis_trans_plan_rule set del_flag = '1' where id = #{id} + + + + update emis_trans_plan_rule set del_flag = '1' where id in + + #{id} + + + + + \ No newline at end of file