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