Commit c8f2520a69bfd91f7408a22d7ba01ee7e82adc87

Authored by 房远帅
2 parents 6137aed1 916887ed

Merge branch 'master_cj_zq' into master_sample_order

# Conflicts:
#	xingyun-api/src/main/resources/db/chujiang/base.sql
Showing 20 changed files with 249 additions and 27 deletions
@@ -1097,6 +1097,70 @@ CREATE TABLE `pending_delivery_order` ( @@ -1097,6 +1097,70 @@ CREATE TABLE `pending_delivery_order` (
1097 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='待交付订单' 1097 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='待交付订单'
1098 1098
1099 1099
  1100 +alter table shipments_order_info add column delivery_time datetime default null comment '签收时间';
  1101 +alter table shipments_plan add column auto_generate bool default true comment '是否系统自动生成';
  1102 +
  1103 +create table if not exists base_data_customer_short(
  1104 + id varchar(32) primary key comment 'ID',
  1105 + short_name varchar(32) not null comment '客户简称',
  1106 + customer_id varchar(32) not null comment '客户ID',
  1107 + type varchar(32) not null comment '客户类型',
  1108 + dept_id varchar(32) not null comment '办事处ID',
  1109 + region varchar(32) not null comment '区域ID',
  1110 + create_by_id varchar(32) not null comment '创建人ID',
  1111 + update_by_id varchar(32) not null comment '更新人ID',
  1112 + create_time datetime default now() comment '创建时间',
  1113 + update_time datetime default now() comment '更新时间'
  1114 +) comment '客户简称';
  1115 +
  1116 +-- 应收款台账明细数据
  1117 +CREATE TABLE `receipt_ledger_info` (
  1118 + `id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT 'ID',
  1119 + `customer_short_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '客户简称ID',
  1120 + `quota` decimal(15,4) DEFAULT NULL COMMENT '额度',
  1121 + `settle_term` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '结算期限',
  1122 + `dept_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '办事处ID',
  1123 + `region` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '区域',
  1124 + `stock_up_company_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备货单位ID',
  1125 + `customer_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '客户ID',
  1126 + `factory_type` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '厂别',
  1127 + `shipment_date` date DEFAULT NULL COMMENT '发货日期',
  1128 + `start_account_receivable` decimal(15,4) DEFAULT NULL COMMENT '期初应收账款',
  1129 + `arrival_date` date DEFAULT NULL COMMENT '到货日期',
  1130 + `processed_date` date DEFAULT NULL COMMENT '应办理日期',
  1131 + `actual_returned_date` date DEFAULT NULL COMMENT '实际回笼日期',
  1132 + `returned_amount` decimal(15,4) DEFAULT NULL COMMENT '回笼金额',
  1133 + `end_account_receivable` decimal(15,4) DEFAULT NULL COMMENT '期末应收账款',
  1134 + `apply_status` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '申请状态',
  1135 + `coordinate_date` date DEFAULT NULL COMMENT '协调办理日期',
  1136 + `remark` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注',
  1137 + `second_coordinate_date` date DEFAULT NULL COMMENT '二次协调日期',
  1138 + `third_coordinate_date` date DEFAULT NULL COMMENT '三次协调日期',
  1139 + `fourth_coordinate_date` date DEFAULT NULL COMMENT '四次协调日期',
  1140 + `fifth_coordinate_date` date DEFAULT NULL COMMENT '五次协调日期',
  1141 + `description` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '说明',
  1142 + `del_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
  1143 + `create_by_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '创建人ID',
  1144 + `update_by_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '更新人ID',
  1145 + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  1146 + `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  1147 + `parent_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '父ID',
  1148 + `debt_status` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '欠款状态',
  1149 + `type` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '类型:INSIDE-内贸;OUTSIDE-外贸',
  1150 + `shipment_order_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货单id',
  1151 + PRIMARY KEY (`id`)
  1152 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='应收款台账号明细表'
  1153 +
  1154 +alter table customer_develop_plan modify column monthly_usage varchar(50) comment '月用量';
  1155 +alter table customer_develop_plan modify column target_quantity varchar(50) comment '目标量';
  1156 +alter table customer_develop_plan modify column thickness varchar(50) comment '厚度';
  1157 +alter table customer_develop_plan modify column width varchar(50) comment '宽度';
  1158 +alter table customer_develop_plan modify column settle_days varchar(50) comment '结算天数';
  1159 +
  1160 +alter table draft_request_car_ticket add column freeze bool default false comment '是否冻结';
  1161 +alter table purchase_order_info add column freeze_count int default 0 comment '冻结次数';
  1162 +alter table draft_request_car_ticket add column freeze_count int default 0 comment '冻结次数';
  1163 +
1100 create table if not exists sample_result_feedback( 1164 create table if not exists sample_result_feedback(
1101 id varchar(32) primary key comment 'ID', 1165 id varchar(32) primary key comment 'ID',
1102 customer_id varchar(32) not null comment '客户ID', 1166 customer_id varchar(32) not null comment '客户ID',
@@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
96 </if> 96 </if>
97 </if> 97 </if>
98 </where> 98 </where>
99 - ORDER BY c.code 99 + ORDER BY c.create_time desc
100 </select> 100 </select>
101 101
102 <select id="getByName" resultMap="CustomerDto"> 102 <select id="getByName" resultMap="CustomerDto">
@@ -147,6 +147,6 @@ @@ -147,6 +147,6 @@
147 </choose> 147 </choose>
148 </if> 148 </if>
149 </where> 149 </where>
150 - ORDER BY c.code 150 + ORDER BY c.create_time desc
151 </select> 151 </select>
152 </mapper> 152 </mapper>
@@ -462,6 +462,12 @@ public class GetCustomerCreditBo extends BaseBo<CustomerCredit> implements BaseD @@ -462,6 +462,12 @@ public class GetCustomerCreditBo extends BaseBo<CustomerCredit> implements BaseD
462 @ApiModelProperty(value = "是否展示审核按钮") 462 @ApiModelProperty(value = "是否展示审核按钮")
463 private Boolean showExamine; 463 private Boolean showExamine;
464 464
  465 + /**
  466 + * 是否展示审核详情按钮(非持久化字段)
  467 + */
  468 + @ApiModelProperty(value = "是否展示审核按钮")
  469 + private Boolean showExamineDetail;
  470 +
465 471
466 /** 472 /**
467 * 企业操作类型 473 * 企业操作类型
@@ -147,6 +147,12 @@ public class GetPurchaseOrderLineBo extends BaseBo<PurchaseOrderLine> { @@ -147,6 +147,12 @@ public class GetPurchaseOrderLineBo extends BaseBo<PurchaseOrderLine> {
147 @ApiModelProperty("包装费") 147 @ApiModelProperty("包装费")
148 private BigDecimal packagingFee; 148 private BigDecimal packagingFee;
149 149
  150 + /**
  151 + * 是否已发货
  152 + */
  153 + @ApiModelProperty("是否已发货")
  154 + private Boolean shipment;
  155 +
150 public GetPurchaseOrderLineBo() { 156 public GetPurchaseOrderLineBo() {
151 157
152 } 158 }
@@ -128,7 +128,6 @@ public class GetReplenishmentOrderBo extends BaseBo<ReplenishmentOrder> { @@ -128,7 +128,6 @@ public class GetReplenishmentOrderBo extends BaseBo<ReplenishmentOrder> {
128 */ 128 */
129 @ApiModelProperty("状态名称") 129 @ApiModelProperty("状态名称")
130 private String statusName; 130 private String statusName;
131 -  
132 /** 131 /**
133 * 是否展示审核按钮(非持久化字段) 132 * 是否展示审核按钮(非持久化字段)
134 */ 133 */
@@ -71,6 +71,12 @@ public class GetDelayedShipmentBo extends BaseBo<DelayedShipment> { @@ -71,6 +71,12 @@ public class GetDelayedShipmentBo extends BaseBo<DelayedShipment> {
71 private Boolean showExamine; 71 private Boolean showExamine;
72 72
73 /** 73 /**
  74 + * 是否展示审核详情按钮(非持久化字段)
  75 + */
  76 + @ApiModelProperty("是否展示审核详情按钮")
  77 + private Boolean showExamineDetail;
  78 +
  79 + /**
74 * 是否是创建人(非持久化字段) 80 * 是否是创建人(非持久化字段)
75 */ 81 */
76 @ApiModelProperty("是否是创建人") 82 @ApiModelProperty("是否是创建人")
@@ -4,7 +4,9 @@ import com.alibaba.excel.EasyExcel; @@ -4,7 +4,9 @@ import com.alibaba.excel.EasyExcel;
4 import com.alibaba.excel.ExcelWriter; 4 import com.alibaba.excel.ExcelWriter;
5 import com.alibaba.excel.write.metadata.WriteSheet; 5 import com.alibaba.excel.write.metadata.WriteSheet;
6 import com.lframework.starter.bpm.dto.FlowTaskDto; 6 import com.lframework.starter.bpm.dto.FlowTaskDto;
  7 +import com.lframework.starter.bpm.entity.FlowInstanceWrapper;
7 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; 8 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
  9 +import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
8 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 10 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
9 import com.lframework.starter.common.utils.StringUtil; 11 import com.lframework.starter.common.utils.StringUtil;
10 import com.lframework.starter.web.core.annotations.security.HasPermission; 12 import com.lframework.starter.web.core.annotations.security.HasPermission;
@@ -86,6 +88,8 @@ public class CustomerCreditController extends DefaultBaseController { @@ -86,6 +88,8 @@ public class CustomerCreditController extends DefaultBaseController {
86 private ContractDistributorStandardService contractDistributorStandardService; 88 private ContractDistributorStandardService contractDistributorStandardService;
87 @Resource 89 @Resource
88 private FlowTaskWrapperMapper flowTaskWrapperMapper; 90 private FlowTaskWrapperMapper flowTaskWrapperMapper;
  91 + @Resource
  92 + private FlowInstanceWrapperService flowInstanceWrapperService;
89 93
90 /** 94 /**
91 * 查询列表 95 * 查询列表
@@ -500,11 +504,24 @@ public class CustomerCreditController extends DefaultBaseController { @@ -500,11 +504,24 @@ public class CustomerCreditController extends DefaultBaseController {
500 data.setSupervisorReviewName(sysUser.getName()); 504 data.setSupervisorReviewName(sysUser.getName());
501 } 505 }
502 } 506 }
  507 +
  508 + //流程数据
  509 + List<String> ids = new ArrayList<>();
  510 + ids.add(credit.getId());
  511 + List<FlowInstanceWrapper> flowByBusinessIdList = flowInstanceWrapperService.getFlowByBusinessIdList(ids);
  512 + if (CollectionUtils.isNotEmpty(flowByBusinessIdList)) {
  513 + List<String> collect = flowByBusinessIdList.stream().map(FlowInstanceWrapper::getBusinessId).collect(Collectors.toList());
  514 + data.setShowExamineDetail(collect.contains(credit.getId()));
  515 + } else {
  516 + data.setShowExamineDetail(false);
  517 + }
503 // 获取当前人员的待办任务数据 518 // 获取当前人员的待办任务数据
504 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 519 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
505 if (CollectionUtils.isNotEmpty(flowTaskList)) { 520 if (CollectionUtils.isNotEmpty(flowTaskList)) {
506 List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList()); 521 List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
507 data.setShowExamine(businessIds.contains(credit.getId())); 522 data.setShowExamine(businessIds.contains(credit.getId()));
  523 + } else {
  524 + data.setShowExamine(false);
508 } 525 }
509 // enterpriseOperationType 转中文 526 // enterpriseOperationType 转中文
510 String opType = data.getEnterpriseOperationType(); 527 String opType = data.getEnterpriseOperationType();
@@ -415,6 +415,8 @@ public class PurchaseOrderInfoController extends DefaultBaseController { @@ -415,6 +415,8 @@ public class PurchaseOrderInfoController extends DefaultBaseController {
415 dataMap.put("regionName", data.getRegionName() == null ? "" : data.getRegionName()); 415 dataMap.put("regionName", data.getRegionName() == null ? "" : data.getRegionName());
416 //备货单位名称 416 //备货单位名称
417 dataMap.put("stockUpCompanyName", data.getStockUpCompanyName() == null ? "" : data.getStockUpCompanyName()); 417 dataMap.put("stockUpCompanyName", data.getStockUpCompanyName() == null ? "" : data.getStockUpCompanyName());
  418 + //价格表编号
  419 + dataMap.put("priceListNo", data.getPriceListNo());
418 420
419 processTemplate(workbook, dataMap); 421 processTemplate(workbook, dataMap);
420 422
@@ -2,12 +2,16 @@ package com.lframework.xingyun.sc.controller.shipments; @@ -2,12 +2,16 @@ package com.lframework.xingyun.sc.controller.shipments;
2 2
3 import com.baomidou.mybatisplus.core.conditions.Wrapper; 3 import com.baomidou.mybatisplus.core.conditions.Wrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5 +import com.lframework.starter.bpm.dto.FlowTaskDto;
  6 +import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
  7 +import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
5 import com.lframework.starter.common.exceptions.impl.DefaultClientException; 8 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
6 import com.lframework.starter.common.utils.CollectionUtil; 9 import com.lframework.starter.common.utils.CollectionUtil;
7 import com.lframework.starter.web.core.annotations.security.HasPermission; 10 import com.lframework.starter.web.core.annotations.security.HasPermission;
8 import com.lframework.starter.web.core.components.resp.InvokeResult; 11 import com.lframework.starter.web.core.components.resp.InvokeResult;
9 import com.lframework.starter.web.core.components.resp.InvokeResultBuilder; 12 import com.lframework.starter.web.core.components.resp.InvokeResultBuilder;
10 import com.lframework.starter.web.core.components.resp.PageResult; 13 import com.lframework.starter.web.core.components.resp.PageResult;
  14 +import com.lframework.starter.web.core.components.security.SecurityUtil;
11 import com.lframework.starter.web.core.controller.DefaultBaseController; 15 import com.lframework.starter.web.core.controller.DefaultBaseController;
12 import com.lframework.starter.web.core.utils.PageResultUtil; 16 import com.lframework.starter.web.core.utils.PageResultUtil;
13 import com.lframework.starter.web.inner.entity.SysDataDicItem; 17 import com.lframework.starter.web.inner.entity.SysDataDicItem;
@@ -71,6 +75,8 @@ public class ReplenishmentOrderController extends DefaultBaseController { @@ -71,6 +75,8 @@ public class ReplenishmentOrderController extends DefaultBaseController {
71 private PurchaseOrderInfoService purchaseOrderInfoService; 75 private PurchaseOrderInfoService purchaseOrderInfoService;
72 @Resource 76 @Resource
73 private ReplenishmentOrderLineService replenishmentOrderLineService; 77 private ReplenishmentOrderLineService replenishmentOrderLineService;
  78 + @Resource
  79 + private FlowTaskWrapperMapper flowTaskWrapperMapper;
74 80
75 81
76 public static final String AUDIT_STATUS_DIC_CODE = "AUDIT_STATUS"; // 审核状态 82 public static final String AUDIT_STATUS_DIC_CODE = "AUDIT_STATUS"; // 审核状态
@@ -205,6 +211,12 @@ public class ReplenishmentOrderController extends DefaultBaseController { @@ -205,6 +211,12 @@ public class ReplenishmentOrderController extends DefaultBaseController {
205 }); 211 });
206 212
207 result.setReplenishmentOrderLineList(lineBoList); 213 result.setReplenishmentOrderLineList(lineBoList);
  214 + // 获取当前人员的待办任务数据
  215 + List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
  216 + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(flowTaskList)) {
  217 + List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
  218 + result.setShowExamine(businessIds.contains(result.getId()));
  219 + }
208 return InvokeResultBuilder.success(result); 220 return InvokeResultBuilder.success(result);
209 } 221 }
210 222
1 package com.lframework.xingyun.sc.controller.shipments.car; 1 package com.lframework.xingyun.sc.controller.shipments.car;
2 2
  3 +import com.github.pagehelper.PageInfo;
  4 +import com.lframework.starter.bpm.dto.FlowTaskDto;
  5 +import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
  6 +import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
3 import com.lframework.starter.common.exceptions.impl.DefaultClientException; 7 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
4 import com.lframework.starter.common.utils.CollectionUtil; 8 import com.lframework.starter.common.utils.CollectionUtil;
5 import com.lframework.starter.web.core.annotations.security.HasPermission; 9 import com.lframework.starter.web.core.annotations.security.HasPermission;
@@ -18,6 +22,7 @@ import com.lframework.xingyun.sc.vo.shipments.car.*; @@ -18,6 +22,7 @@ import com.lframework.xingyun.sc.vo.shipments.car.*;
18 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
19 import io.swagger.annotations.ApiImplicitParam; 23 import io.swagger.annotations.ApiImplicitParam;
20 import io.swagger.annotations.ApiOperation; 24 import io.swagger.annotations.ApiOperation;
  25 +import org.apache.commons.collections.CollectionUtils;
21 import org.apache.commons.lang3.StringUtils; 26 import org.apache.commons.lang3.StringUtils;
22 import org.springframework.beans.factory.annotation.Autowired; 27 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.validation.annotation.Validated; 28 import org.springframework.validation.annotation.Validated;
@@ -43,6 +48,8 @@ public class DraftRequestCarTicketController extends DefaultBaseController { @@ -43,6 +48,8 @@ public class DraftRequestCarTicketController extends DefaultBaseController {
43 private DraftRequestCarTicketService draftRequestCarTicketService; 48 private DraftRequestCarTicketService draftRequestCarTicketService;
44 @Resource 49 @Resource
45 private PurchaseOrderInfoService purchaseOrderInfoService; 50 private PurchaseOrderInfoService purchaseOrderInfoService;
  51 + @Resource
  52 + private FlowTaskWrapperMapper flowTaskWrapperMapper;
46 /** 53 /**
47 * 查询列表 54 * 查询列表
48 */ 55 */
@@ -104,6 +111,12 @@ public class DraftRequestCarTicketController extends DefaultBaseController { @@ -104,6 +111,12 @@ public class DraftRequestCarTicketController extends DefaultBaseController {
104 result.setDraftCreateBy(true); 111 result.setDraftCreateBy(true);
105 } 112 }
106 } 113 }
  114 + // 获取当前人员的待办任务数据
  115 + List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
  116 + if (CollectionUtils.isNotEmpty(flowTaskList)) {
  117 + List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
  118 + result.setShowExamine(businessIds.contains(result.getId()));
  119 + }
107 120
108 return InvokeResultBuilder.success(result); 121 return InvokeResultBuilder.success(result);
109 } 122 }
1 package com.lframework.xingyun.sc.controller.shipments.delay; 1 package com.lframework.xingyun.sc.controller.shipments.delay;
2 2
3 import com.lframework.starter.bpm.dto.FlowTaskDto; 3 import com.lframework.starter.bpm.dto.FlowTaskDto;
  4 +import com.lframework.starter.bpm.entity.FlowInstanceWrapper;
4 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; 5 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
  6 +import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
5 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 7 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
6 import com.lframework.starter.web.core.annotations.security.HasPermission; 8 import com.lframework.starter.web.core.annotations.security.HasPermission;
7 import com.lframework.starter.web.core.components.security.SecurityUtil; 9 import com.lframework.starter.web.core.components.security.SecurityUtil;
@@ -9,6 +11,7 @@ import com.lframework.starter.web.core.controller.DefaultBaseController; @@ -9,6 +11,7 @@ import com.lframework.starter.web.core.controller.DefaultBaseController;
9 import com.lframework.starter.web.core.utils.PageResultUtil; 11 import com.lframework.starter.web.core.utils.PageResultUtil;
10 import com.lframework.starter.web.core.components.resp.PageResult; 12 import com.lframework.starter.web.core.components.resp.PageResult;
11 import com.lframework.starter.web.core.components.resp.InvokeResult; 13 import com.lframework.starter.web.core.components.resp.InvokeResult;
  14 +
12 import javax.annotation.Resource; 15 import javax.annotation.Resource;
13 import javax.validation.constraints.NotBlank; 16 import javax.validation.constraints.NotBlank;
14 import com.lframework.xingyun.sc.bo.shipments.delay.GetDelayedShipmentBo; 17 import com.lframework.xingyun.sc.bo.shipments.delay.GetDelayedShipmentBo;
@@ -32,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
32 import org.springframework.validation.annotation.Validated; 35 import org.springframework.validation.annotation.Validated;
33 import org.springframework.web.bind.annotation.*; 36 import org.springframework.web.bind.annotation.*;
34 import javax.validation.Valid; 37 import javax.validation.Valid;
  38 +import java.util.ArrayList;
35 import java.util.List; 39 import java.util.List;
36 import java.util.stream.Collectors; 40 import java.util.stream.Collectors;
37 41
@@ -51,6 +55,8 @@ public class DelayedShipmentController extends DefaultBaseController { @@ -51,6 +55,8 @@ public class DelayedShipmentController extends DefaultBaseController {
51 private DelayedShipmentDetailService delayedShipmentDetailService; 55 private DelayedShipmentDetailService delayedShipmentDetailService;
52 @Resource 56 @Resource
53 private FlowTaskWrapperMapper flowTaskWrapperMapper; 57 private FlowTaskWrapperMapper flowTaskWrapperMapper;
  58 + @Resource
  59 + private FlowInstanceWrapperService flowInstanceWrapperService;
54 60
55 /** 61 /**
56 * 查询列表 62 * 查询列表
@@ -103,24 +109,25 @@ public class DelayedShipmentController extends DefaultBaseController { @@ -103,24 +109,25 @@ public class DelayedShipmentController extends DefaultBaseController {
103 QueryDelayedShipmentDetailVo vo = new QueryDelayedShipmentDetailVo(); 109 QueryDelayedShipmentDetailVo vo = new QueryDelayedShipmentDetailVo();
104 vo.setDelayedShipmentId(id); 110 vo.setDelayedShipmentId(id);
105 List<DelayedShipmentDetail> delayedShipmentDetailList = delayedShipmentDetailService.query(vo); 111 List<DelayedShipmentDetail> delayedShipmentDetailList = delayedShipmentDetailService.query(vo);
106 - String currentUserId = SecurityUtil.getCurrentUser().getId();  
107 - // 判断 createById 是否等于当前用户 ID  
108 - boolean isCreateBy = false;  
109 - if (currentUserId.equals(data.getCreateById())) {  
110 - isCreateBy = true;  
111 - }  
112 - result.setDelayedCreateBy(isCreateBy); 112 + result.setDelayedShipmentDetailList(delayedShipmentDetailList);
113 // 获取当前人员的待办任务数据 113 // 获取当前人员的待办任务数据
114 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 114 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
115 if (CollectionUtils.isNotEmpty(flowTaskList)) { 115 if (CollectionUtils.isNotEmpty(flowTaskList)) {
116 - List<String> ids = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());  
117 - if (ids.contains(data.getId())) {  
118 - result.setShowExamine(true);  
119 - } else {  
120 - result.setShowExamine(false);  
121 - } 116 + List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
  117 + result.setShowExamine(businessIds.contains(result.getId()));
  118 + } else {
  119 + result.setShowExamine(false);
  120 + }
  121 + //流程数据
  122 + List<String> ids = new ArrayList<>();
  123 + ids.add(result.getId());
  124 + List<FlowInstanceWrapper> flowByBusinessIdList = flowInstanceWrapperService.getFlowByBusinessIdList(ids);
  125 + if (CollectionUtils.isNotEmpty(flowByBusinessIdList)) {
  126 + List<String> collect = flowByBusinessIdList.stream().map(FlowInstanceWrapper::getBusinessId).collect(Collectors.toList());
  127 + result.setShowExamineDetail(collect.contains(result.getId()));
  128 + } else {
  129 + result.setShowExamineDetail(false);
122 } 130 }
123 - result.setDelayedShipmentDetailList(delayedShipmentDetailList);  
124 131
125 return InvokeResultBuilder.success(result); 132 return InvokeResultBuilder.success(result);
126 } 133 }
@@ -369,6 +369,12 @@ public class CustomerCredit extends BaseEntity implements BaseDto { @@ -369,6 +369,12 @@ public class CustomerCredit extends BaseEntity implements BaseDto {
369 private Boolean showExamine = false; 369 private Boolean showExamine = false;
370 370
371 /** 371 /**
  372 + * 是否展示审核详情按钮(非持久化字段)
  373 + */
  374 + @TableField(exist = false)
  375 + private Boolean showExamineDetail;
  376 +
  377 + /**
372 * 流程发起人(非持久化字段) 378 * 流程发起人(非持久化字段)
373 */ 379 */
374 @TableField(exist = false) 380 @TableField(exist = false)
@@ -72,6 +72,12 @@ public class DelayedShipment extends BaseEntity implements BaseDto { @@ -72,6 +72,12 @@ public class DelayedShipment extends BaseEntity implements BaseDto {
72 private Boolean showExamine = false; 72 private Boolean showExamine = false;
73 73
74 /** 74 /**
  75 + * 是否展示审核按钮详情(非持久化字段)
  76 + */
  77 + @TableField(exist = false)
  78 + private Boolean showExamineDetail;
  79 +
  80 + /**
75 * 创建人ID 81 * 创建人ID
76 */ 82 */
77 @TableField(fill = FieldFill.INSERT) 83 @TableField(fill = FieldFill.INSERT)
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; @@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
7 import com.fasterxml.jackson.databind.ObjectMapper; 7 import com.fasterxml.jackson.databind.ObjectMapper;
8 import com.github.pagehelper.PageInfo; 8 import com.github.pagehelper.PageInfo;
9 import com.lframework.starter.bpm.dto.FlowTaskDto; 9 import com.lframework.starter.bpm.dto.FlowTaskDto;
  10 +import com.lframework.starter.bpm.entity.FlowInstanceWrapper;
10 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; 11 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
11 import com.lframework.starter.bpm.service.FlowDefinitionWrapperService; 12 import com.lframework.starter.bpm.service.FlowDefinitionWrapperService;
12 import com.lframework.starter.bpm.service.FlowInstanceWrapperService; 13 import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
@@ -111,6 +112,19 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM @@ -111,6 +112,19 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM
111 PageHelperUtil.startPage(pageIndex, pageSize); 112 PageHelperUtil.startPage(pageIndex, pageSize);
112 List<CustomerCredit> datas = this.query(vo); 113 List<CustomerCredit> datas = this.query(vo);
113 if (CollectionUtils.isNotEmpty(datas)) { 114 if (CollectionUtils.isNotEmpty(datas)) {
  115 + //流程数据
  116 + List<FlowInstanceWrapper> flowByConditionList = flowInstanceWrapperService.getFlowByBusinessIdList(
  117 + datas.stream().map(CustomerCredit::getId).collect(Collectors.toList()));
  118 + if (CollectionUtils.isNotEmpty(flowByConditionList)) {
  119 + List<String> idList = flowByConditionList.stream().map(FlowInstanceWrapper::getBusinessId).collect(Collectors.toList());
  120 + for (CustomerCredit customerCredit : datas) {
  121 + if (idList.contains(customerCredit.getId())) {
  122 + customerCredit.setShowExamineDetail(true);
  123 + } else {
  124 + customerCredit.setShowExamineDetail(false);
  125 + }
  126 + }
  127 + }
114 // 获取当前人员的待办任务数据 128 // 获取当前人员的待办任务数据
115 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 129 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
116 if (org.apache.commons.collections4.CollectionUtils.isEmpty(flowTaskList)) { 130 if (org.apache.commons.collections4.CollectionUtils.isEmpty(flowTaskList)) {
@@ -27,7 +27,10 @@ import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; @@ -27,7 +27,10 @@ import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
27 import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService; 27 import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService;
28 import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanDetailService; 28 import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanDetailService;
29 import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanService; 29 import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanService;
  30 +import com.lframework.xingyun.sc.service.shipments.delay.DelayedShipmentDetailService;
  31 +import com.lframework.xingyun.sc.service.shipments.delay.DelayedShipmentService;
30 import com.lframework.xingyun.sc.utils.CommonUtil; 32 import com.lframework.xingyun.sc.utils.CommonUtil;
  33 +import com.lframework.xingyun.sc.vo.shipments.delay.QueryDelayedShipmentVo;
31 import com.lframework.xingyun.sc.vo.shipments.plan.*; 34 import com.lframework.xingyun.sc.vo.shipments.plan.*;
32 import org.apache.commons.collections4.CollectionUtils; 35 import org.apache.commons.collections4.CollectionUtils;
33 import org.apache.commons.lang3.StringUtils; 36 import org.apache.commons.lang3.StringUtils;
@@ -61,6 +64,11 @@ public class ShipmentsPlanDetailServiceImpl extends BaseMpServiceImpl<ShipmentsP @@ -61,6 +64,11 @@ public class ShipmentsPlanDetailServiceImpl extends BaseMpServiceImpl<ShipmentsP
61 private SysRoleService sysRoleService; 64 private SysRoleService sysRoleService;
62 @Resource 65 @Resource
63 private SysUserDeptService sysUserDeptService; 66 private SysUserDeptService sysUserDeptService;
  67 + @Resource
  68 + private DelayedShipmentService delayedShipmentService;
  69 + @Resource
  70 + private DelayedShipmentDetailService delayedShipmentDetailService;
  71 +
64 72
65 73
66 @Override 74 @Override
@@ -208,12 +216,36 @@ public class ShipmentsPlanDetailServiceImpl extends BaseMpServiceImpl<ShipmentsP @@ -208,12 +216,36 @@ public class ShipmentsPlanDetailServiceImpl extends BaseMpServiceImpl<ShipmentsP
208 existOrderSpecIds.addAll(orderSpecIds); 216 existOrderSpecIds.addAll(orderSpecIds);
209 } 217 }
210 } 218 }
  219 + //延期发货单中审核中、审核驳回的数据不可被选择
  220 + QueryDelayedShipmentVo vo1 = new QueryDelayedShipmentVo();
  221 + vo1.setStatus("AUDIT");
  222 + List<DelayedShipment> query = delayedShipmentService.query(vo1);
  223 + List<String> ids = new ArrayList<>();
  224 + if (CollectionUtils.isNotEmpty(query)) {
  225 + ids = query.stream().map(DelayedShipment::getId).collect(Collectors.toList());
  226 + }
  227 + QueryDelayedShipmentVo vo2 = new QueryDelayedShipmentVo();
  228 + vo2.setStatus("REFUSE");
  229 + List<DelayedShipment> query1 = delayedShipmentService.query(vo2);
  230 + if (CollectionUtils.isNotEmpty(query1)) {
  231 + ids.addAll(query.stream().map(DelayedShipment::getId).collect(Collectors.toList()));
  232 + }
  233 + List<String> orderSpecIdList = new ArrayList<>();
  234 + if (CollectionUtils.isNotEmpty(ids)) {
  235 + List<DelayedShipmentDetail> delayedShipmentDetails = delayedShipmentDetailService.queryByList(ids);
  236 + if (CollectionUtils.isNotEmpty(delayedShipmentDetails)) {
  237 + orderSpecIdList = delayedShipmentDetails.stream().map(DelayedShipmentDetail::getOrderSpecId).collect(Collectors.toList());
  238 + }
  239 + }
211 List<String> orderSpecIds = vo.getOrderSpecIds(); 240 List<String> orderSpecIds = vo.getOrderSpecIds();
212 if (CollectionUtils.isNotEmpty(orderSpecIds)) { 241 if (CollectionUtils.isNotEmpty(orderSpecIds)) {
213 orderSpecIds.addAll(existOrderSpecIds); 242 orderSpecIds.addAll(existOrderSpecIds);
214 } else { 243 } else {
215 orderSpecIds = existOrderSpecIds; 244 orderSpecIds = existOrderSpecIds;
216 } 245 }
  246 + if (CollectionUtils.isNotEmpty(orderSpecIdList)) {
  247 + orderSpecIds.addAll(orderSpecIdList);
  248 + }
217 vo.setOrderSpecIds(orderSpecIds); 249 vo.setOrderSpecIds(orderSpecIds);
218 // 业务员做权限控制 250 // 业务员做权限控制
219 List<String> userIds = new ArrayList<>(); 251 List<String> userIds = new ArrayList<>();
1 package com.lframework.xingyun.sc.impl.shipments.delay; 1 package com.lframework.xingyun.sc.impl.shipments.delay;
2 2
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 4 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 import com.github.pagehelper.PageInfo; 6 import com.github.pagehelper.PageInfo;
@@ -48,6 +49,14 @@ public class DelayedShipmentDetailServiceImpl extends BaseMpServiceImpl<DelayedS @@ -48,6 +49,14 @@ public class DelayedShipmentDetailServiceImpl extends BaseMpServiceImpl<DelayedS
48 } 49 }
49 50
50 @Override 51 @Override
  52 + public List<DelayedShipmentDetail> queryByList(List<String> delayedShipmentIds) {
  53 + LambdaQueryWrapper<DelayedShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(DelayedShipmentDetail.class);
  54 + lambdaQueryWrapper.in(DelayedShipmentDetail::getDelayedShipmentId, delayedShipmentIds);
  55 +
  56 + return getBaseMapper().selectList(lambdaQueryWrapper);
  57 + }
  58 +
  59 + @Override
51 public DelayedShipmentDetail findById(String id) { 60 public DelayedShipmentDetail findById(String id) {
52 61
53 return getBaseMapper().findById(id); 62 return getBaseMapper().findById(id);
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 import com.github.pagehelper.PageInfo; 5 import com.github.pagehelper.PageInfo;
6 import com.lframework.starter.bpm.dto.FlowTaskDto; 6 import com.lframework.starter.bpm.dto.FlowTaskDto;
  7 +import com.lframework.starter.bpm.entity.FlowInstanceWrapper;
7 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; 8 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
8 import com.lframework.starter.bpm.service.FlowInstanceWrapperService; 9 import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
9 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 10 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
@@ -29,10 +30,7 @@ import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto; @@ -29,10 +30,7 @@ import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto;
29 import com.lframework.starter.web.inner.dto.system.UserInfoDto; 30 import com.lframework.starter.web.inner.dto.system.UserInfoDto;
30 import com.lframework.starter.web.inner.service.system.SysUserRoleService; 31 import com.lframework.starter.web.inner.service.system.SysUserRoleService;
31 import com.lframework.starter.web.inner.service.system.SysUserService; 32 import com.lframework.starter.web.inner.service.system.SysUserService;
32 -import com.lframework.xingyun.sc.entity.DelayedShipment;  
33 -import com.lframework.xingyun.sc.entity.DelayedShipmentDetail;  
34 -import com.lframework.xingyun.sc.entity.PurchaseOrderInfo;  
35 -import com.lframework.xingyun.sc.entity.RequestCarTicket; 33 +import com.lframework.xingyun.sc.entity.*;
36 import com.lframework.xingyun.sc.handlers.TransactorHandler; 34 import com.lframework.xingyun.sc.handlers.TransactorHandler;
37 import com.lframework.xingyun.sc.mappers.DelayedShipmentMapper; 35 import com.lframework.xingyun.sc.mappers.DelayedShipmentMapper;
38 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; 36 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
@@ -93,6 +91,19 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen @@ -93,6 +91,19 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen
93 PageHelperUtil.startPage(pageIndex, pageSize); 91 PageHelperUtil.startPage(pageIndex, pageSize);
94 List<DelayedShipment> datas = this.query(vo); 92 List<DelayedShipment> datas = this.query(vo);
95 if (CollectionUtils.isNotEmpty(datas)) { 93 if (CollectionUtils.isNotEmpty(datas)) {
  94 + //流程数据
  95 + List<FlowInstanceWrapper> flowByConditionList = flowInstanceWrapperService.getFlowByBusinessIdList(
  96 + datas.stream().map(DelayedShipment::getId).collect(Collectors.toList()));
  97 + if (CollectionUtils.isNotEmpty(flowByConditionList)) {
  98 + List<String> idList = flowByConditionList.stream().map(FlowInstanceWrapper::getBusinessId).collect(Collectors.toList());
  99 + for (DelayedShipment delayedShipment : datas) {
  100 + if (idList.contains(delayedShipment.getId())) {
  101 + delayedShipment.setShowExamineDetail(true);
  102 + } else {
  103 + delayedShipment.setShowExamineDetail(false);
  104 + }
  105 + }
  106 + }
96 // 获取当前人员的待办任务数据 107 // 获取当前人员的待办任务数据
97 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 108 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
98 if (org.apache.commons.collections4.CollectionUtils.isEmpty(flowTaskList)) { 109 if (org.apache.commons.collections4.CollectionUtils.isEmpty(flowTaskList)) {
@@ -166,13 +177,16 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen @@ -166,13 +177,16 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen
166 LocalDate deliveryDate = createDelayedShipmentDetailVo.getDeliveryDate(); 177 LocalDate deliveryDate = createDelayedShipmentDetailVo.getDeliveryDate();
167 applyShipmentDate = createDelayedShipmentDetailVo.getApplyShipmentDate(); 178 applyShipmentDate = createDelayedShipmentDetailVo.getApplyShipmentDate();
168 if (deliveryDate != null && applyShipmentDate != null) { 179 if (deliveryDate != null && applyShipmentDate != null) {
  180 + ShipmentsPlanDetail shipmentsPlanDetail = shipmentsPlanDetailService.findById(createDelayedShipmentDetailVo.getShipmentsPlanDetailId());
169 long daysBetween = Math.abs(ChronoUnit.DAYS.between(deliveryDate, applyShipmentDate)); 181 long daysBetween = Math.abs(ChronoUnit.DAYS.between(deliveryDate, applyShipmentDate));
170 - if (daysBetween > 1) {  
171 - ids.add(createDelayedShipmentDetailVo.getShipmentsPlanDetailId());  
172 - delayedExceedOneDay = true;  
173 - } else {  
174 - //延期等于1天的自动加入后日预发 182 + if (daysBetween == 1 && StringUtil.isBlank(shipmentsPlanDetail.getShipmentOrderId())) {
  183 + // 延期1天且不是发货单:自动加入后日预发(发货计划)
175 shipmentsPlanDetailService.updateShipmentDate(createDelayedShipmentDetailVo.getShipmentsPlanDetailId(), applyShipmentDate); 184 shipmentsPlanDetailService.updateShipmentDate(createDelayedShipmentDetailVo.getShipmentsPlanDetailId(), applyShipmentDate);
  185 + } else {
  186 + ids.add(createDelayedShipmentDetailVo.getShipmentsPlanDetailId());
  187 + if (daysBetween > 1) {
  188 + delayedExceedOneDay = true;
  189 + }
176 } 190 }
177 } 191 }
178 } 192 }
@@ -297,7 +311,7 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen @@ -297,7 +311,7 @@ public class DelayedShipmentServiceImpl extends BaseMpServiceImpl<DelayedShipmen
297 if (CollectionUtils.isNotEmpty(userIds)) { 311 if (CollectionUtils.isNotEmpty(userIds)) {
298 userIdList.addAll(userIds); 312 userIdList.addAll(userIds);
299 } 313 }
300 - } else if ("sfc".equals(workshopCode)) { 314 + } else if ("ztfc".equals(workshopCode)) {
301 //经营办计划员、经营办发货员、经营办主管 315 //经营办计划员、经营办发货员、经营办主管
302 codeList.add("ztfcjybjhy"); 316 codeList.add("ztfcjybjhy");
303 codeList.add("ztfcjybfhy"); 317 codeList.add("ztfcjybfhy");
@@ -27,6 +27,13 @@ public interface DelayedShipmentDetailService extends BaseMpService<DelayedShipm @@ -27,6 +27,13 @@ public interface DelayedShipmentDetailService extends BaseMpService<DelayedShipm
27 List<DelayedShipmentDetail> query(QueryDelayedShipmentDetailVo vo); 27 List<DelayedShipmentDetail> query(QueryDelayedShipmentDetailVo vo);
28 28
29 /** 29 /**
  30 + * 根据延期发货单ids,查询
  31 + * @param delayedShipmentIds
  32 + * @return
  33 + */
  34 + List<DelayedShipmentDetail> queryByList(List<String> delayedShipmentIds);
  35 +
  36 + /**
30 * 根据ID查询 37 * 根据ID查询
31 * @param id 38 * @param id
32 * @return 39 * @return
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
25 <result column="show_order" property="showOrder"/> 25 <result column="show_order" property="showOrder"/>
26 <result column="assessment_exceeds_agreement" property="assessmentExceedsAgreement"/> 26 <result column="assessment_exceeds_agreement" property="assessmentExceedsAgreement"/>
27 <result column="packaging_fee" property="packagingFee"/> 27 <result column="packaging_fee" property="packagingFee"/>
  28 + <result column="shipment" property="shipment"/>
28 <result column="create_by_id" property="createById"/> 29 <result column="create_by_id" property="createById"/>
29 <result column="create_by" property="createBy"/> 30 <result column="create_by" property="createBy"/>
30 <result column="update_by_id" property="updateById"/> 31 <result column="update_by_id" property="updateById"/>
@@ -57,6 +58,7 @@ @@ -57,6 +58,7 @@
57 tb.show_order, 58 tb.show_order,
58 tb.assessment_exceeds_agreement, 59 tb.assessment_exceeds_agreement,
59 tb.packaging_fee, 60 tb.packaging_fee,
  61 + tb.shipment,
60 tb.create_by_id, 62 tb.create_by_id,
61 tb.create_by, 63 tb.create_by,
62 tb.update_by_id, 64 tb.update_by_id,