Commit 2ba19839d7faff30061873aa95dd8a465292a1ff

Authored by 房远帅
2 parents 6782b75d 37e86c1b

Merge branch 'master_chujiang' into master_quotation

... ... @@ -641,6 +641,9 @@ create table if not exists shipments_plan (
641 641 update_time datetime default now() comment '更新时间'
642 642 );
643 643
  644 +ALTER TABLE `shipments_plan`
  645 + ADD COLUMN `business_office_auditor` varchar(32) DEFAULT NULL COMMENT '经营办审核人(发货计划提交人)';
  646 +
644 647 -- 发货明细
645 648 drop table if exists `shipments_plan_detail`;
646 649 create table if not exists `shipments_plan_detail` (
... ...
... ... @@ -311,6 +311,18 @@ public class GetPurchaseOrderInfoBo extends BaseBo<PurchaseOrderInfo> {
311 311 private String contractCreateByName;
312 312
313 313 /**
  314 + * 目的地(合同里的目的地)
  315 + */
  316 + @ApiModelProperty("目的地")
  317 + private String destination;
  318 +
  319 + /**
  320 + * 下单人手机号(非持久化字段)
  321 + */
  322 + @ApiModelProperty("下单人手机号")
  323 + private String contractCreateByTelephone;
  324 +
  325 + /**
314 326 * 是否展示审核按钮(非持久化字段)
315 327 */
316 328 @ApiModelProperty("是否展示审核按钮")
... ...
... ... @@ -175,6 +175,8 @@ public class PurchaseOrderInfoController extends DefaultBaseController {
175 175 }
176 176
177 177 GetPurchaseOrderInfoBo result = new GetPurchaseOrderInfoBo(data);
  178 + //目的地
  179 + result.setDestination(ExcelUtil.buildPrintDestination(data.getContractType(), data.getDestination(), data.getForeignDestination()));
178 180 // 判断 contractCreateById 是否等于当前用户 ID
179 181 String currentUserId = SecurityUtil.getCurrentUser().getId();
180 182 boolean isCreateBy = false;
... ...
... ... @@ -144,7 +144,7 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
144 144 * 填写实际发货日期
145 145 */
146 146 @ApiOperation("填写实际发货日期")
147   - @HasPermission({"shipping-plan-manage:invoice:modify"})
  147 + @HasPermission({"shipping-plan-manage:invoice:fill-date"})
148 148 @PutMapping
149 149 public InvokeResult<Void> update(@Valid UpdateShipmentsOrderInfoVo vo) {
150 150 shipmentsOrderInfoService.updateShipmentDate(vo);
... ... @@ -249,6 +249,7 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
249 249 @Scheduled(cron = "0 8 0 * * ?")
250 250 public InvokeResult<Void> dataHandler() {
251 251 // 只处理今日应该发货但状态仍是未发货的数据,避免已签收/已发货的数据被重复处理
  252 + log.info("=========定时任务开始执行========");
252 253 List<ShipmentsOrderInfo> shipmentsOrderInfoList = shipmentsOrderInfoService.queryUnShipmentsByShipmentDate(LocalDate.now());
253 254 if (CollectionUtils.isNotEmpty(shipmentsOrderInfoList)) {
254 255 for (ShipmentsOrderInfo orderInfo : shipmentsOrderInfoList) {
... ... @@ -400,9 +401,9 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
400 401 // 发货单明细开始行
401 402 int startRow = 4;
402 403 DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
403   - for (int i = startRow + 1; i < startRow + detailList.size(); i++) {
404   - ExcelUtil.copyRow(workbook, sheet, startRow, i);
405   - }
  404 +// for (int i = startRow + 1; i < startRow + detailList.size(); i++) {
  405 +// ExcelUtil.copyRow(workbook, sheet, startRow, i);
  406 +// }
406 407 BigDecimal totalQuantity = BigDecimal.ZERO;
407 408 BigDecimal totalActualQuantity = BigDecimal.ZERO;
408 409 BigDecimal totalNum = BigDecimal.ZERO;
... ... @@ -510,9 +511,9 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
510 511 formulaComponent.setSub(detail.getLengthTolNeg());
511 512 formulaComponentList.add(formulaComponent);
512 513 }
513   - String latex = LatexFormulaExcelExporterUtil.convertToLatex(formulaComponentList);
  514 + String latex = LatexFormulaExcelExporterUtil.convertToContractSpecLatexSingleLineFixed3(formulaComponentList);
514 515 if (StringUtils.isNotBlank(latex)) {
515   - LatexFormulaExcelExporterUtil.insertLatexImageToCell(workbook, sheet, latex, startRow, 2, 1, 7);
  516 + LatexFormulaExcelExporterUtil.insertLatexImageToCellLeftAligned(workbook, sheet, latex, startRow, 2, 1, 7);
516 517 }
517 518 String materialCode = resultMaterialMap.get(detail.getOrderSpecId());
518 519 ExcelUtil.setCellValue(sheet, startRow, 9, materialCode);
... ...
... ... @@ -312,6 +312,12 @@ public class PurchaseOrderInfo extends BaseEntity implements BaseDto {
312 312 @TableField(exist = false)
313 313 private String contractCreateByName;
314 314
  315 + /**
  316 + * 下单人手机号(非持久化字段)
  317 + */
  318 + @TableField(exist = false)
  319 + private String contractCreateByTelephone;
  320 +
315 321
316 322 /**
317 323 * 是否展示审核按钮(非持久化字段)
... ...
... ... @@ -58,6 +58,11 @@ public class ShipmentsPlan extends BaseEntity implements BaseDto {
58 58 private Boolean autoGenerate;
59 59
60 60 /**
  61 + * 经营办审核人(发货计划提交人)
  62 + */
  63 + private String businessOfficeAuditor;
  64 +
  65 + /**
61 66 * 创建人ID
62 67 */
63 68 @TableField(fill = FieldFill.INSERT)
... ...
... ... @@ -116,6 +116,10 @@ public class ShipmentsPlanServiceImpl extends BaseMpServiceImpl<ShipmentsPlanMap
116 116 LambdaUpdateWrapper<ShipmentsPlan> updateWrapper = Wrappers.lambdaUpdate(ShipmentsPlan.class)
117 117 .set(ShipmentsPlan::getStatus, vo.getStatus())
118 118 .eq(ShipmentsPlan::getId, vo.getId());
  119 + // 状态为审核中(CHECKING)时,记录当前提交人作为经营办审核人
  120 + if ("CHECKING".equals(vo.getStatus())) {
  121 + updateWrapper.set(ShipmentsPlan::getBusinessOfficeAuditor, SecurityUtil.getCurrentUser().getId());
  122 + }
119 123
120 124 getBaseMapper().update(updateWrapper);
121 125
... ...
... ... @@ -20,6 +20,7 @@ import com.lframework.starter.common.utils.Assert;
20 20 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
21 21 import com.lframework.xingyun.sc.entity.*;
22 22 import com.lframework.xingyun.sc.mappers.CarRequestPlanMapper;
  23 +import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanService;
23 24 import com.lframework.xingyun.sc.service.shipments.car.CarRequestPlanService;
24 25 import com.lframework.xingyun.sc.service.shipments.car.DraftRequestCarTicketService;
25 26 import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService;
... ... @@ -44,6 +45,8 @@ public class CarRequestPlanServiceImpl extends BaseMpServiceImpl<CarRequestPlanM
44 45 private RequestCarTicketService requestCarTicketService;
45 46 @Resource
46 47 private DraftRequestCarTicketService draftRequestCarTicketService;
  48 + @Resource
  49 + private ShipmentsPlanService shipmentsPlanService;
47 50
48 51 @Override
49 52 public PageResult<CarRequestPlan> query(Integer pageIndex, Integer pageSize, QueryCarRequestPlanVo vo) {
... ... @@ -157,6 +160,11 @@ public class CarRequestPlanServiceImpl extends BaseMpServiceImpl<CarRequestPlanM
157 160 List<DraftRequestCarTicket> draftTickets = draftRequestCarTicketService.listByOrderId(orderIds);
158 161 Map<String, DraftRequestCarTicket> draftTicketMap = draftTickets.stream().collect(Collectors.toMap(DraftRequestCarTicket::getPurchaseOrderId, Function.identity()
159 162 , (v1, v2) -> v2));
  163 + // 获取发货计划,取经营办审核人(发货计划提交人)
  164 + ShipmentsPlan shipmentsPlan = null;
  165 + if (StringUtil.isNotBlank(shipmentsOrderInfo.getPlanId())) {
  166 + shipmentsPlan = shipmentsPlanService.findById(shipmentsOrderInfo.getPlanId());
  167 + }
160 168 for (PurchaseOrderInfo orderInfo : orderInfoList) {
161 169 // 生成要车计划
162 170 LocalDate requestCarDate = shipmentsOrderInfo.getShipmentsDate();
... ... @@ -185,8 +193,8 @@ public class CarRequestPlanServiceImpl extends BaseMpServiceImpl<CarRequestPlanM
185 193 ticketVo.setShipmentsOrderId(shipmentsOrderInfo.getId());
186 194 // 外办审核人(草稿要车单审核人)
187 195 ticketVo.setExternalAuditor(draftTicket.getExternalAuditor());
188   - // 经营办审核人(发货计划提交人)
189   - ticketVo.setBusinessOfficeAuditor(SecurityUtil.getCurrentUser().getId());
  196 + // 经营办审核人(发货计划提交人,取自发货计划)
  197 + ticketVo.setBusinessOfficeAuditor(shipmentsPlan != null ? shipmentsPlan.getBusinessOfficeAuditor() : null);
190 198 ticketVo.setDestination(draftTicket.getDestination());
191 199 ticketVo.setConsignee(draftTicket.getConsignee());
192 200 ticketVo.setPhone(draftTicket.getPhone());
... ...
... ... @@ -49,6 +49,7 @@
49 49 <result column="packaging_fee" property="packagingFee"/>
50 50 <result column="contract_create_by_id" property="contractCreateById"/>
51 51 <result column="contract_create_by_name" property="contractCreateByName"/>
  52 + <result column="contract_create_by_telephone" property="contractCreateByTelephone"/>
52 53 <result column="sample_order" property="sampleOrder"/>
53 54 <result column="warranty_certificate_file_id" property="warrantyCertificateFileId"/>
54 55 <result column="warranty_certificate_file_name" property="warrantyCertificateFileName"/>
... ... @@ -108,6 +109,7 @@
108 109 tb.packaging_fee,
109 110 tb.contract_create_by_id,
110 111 su.name as contract_create_by_name,
  112 + su.telephone as contract_create_by_telephone,
111 113 tb.freeze,
112 114 tb.sample_order,
113 115 tb.warranty_certificate_file_id,
... ...
... ... @@ -10,6 +10,7 @@
10 10 <result column="tomo_pre_ship_date" property="tomoPreShipDate"/>
11 11 <result column="af_tomo_pre_ship_date" property="afTomoPreShipDate"/>
12 12 <result column="auto_generate" property="autoGenerate"/>
  13 + <result column="business_office_auditor" property="businessOfficeAuditor"/>
13 14 <result column="create_by_id" property="createById"/>
14 15 <result column="update_by_id" property="updateById"/>
15 16 <result column="create_time" property="createTime"/>
... ... @@ -25,6 +26,7 @@
25 26 tb.tomo_pre_ship_date,
26 27 tb.af_tomo_pre_ship_date,
27 28 tb.auto_generate,
  29 + tb.business_office_auditor,
28 30 tb.create_by_id,
29 31 tb.update_by_id,
30 32 tb.create_time,
... ... @@ -58,7 +60,7 @@
58 60 ORDER BY tb.create_time DESC
59 61 </select>
60 62
61   - <select id="getById" resultType="com.lframework.xingyun.sc.entity.ShipmentsPlan">
  63 + <select id="getById" resultMap="ShipmentsPlan">
62 64 <include refid="ShipmentsPlan_sql"/>
63 65 <where>
64 66 AND tb.id = #{id}
... ...