Commit eaa74e0d670e4fe967cd7054338453891401b2cd

Authored by yeqianyong
1 parent 17c0bc66

楚江erp:发货单填写发货日期逻辑调整

... ... @@ -132,13 +132,13 @@ public class ShipmentsOrderInfoController extends DefaultBaseController {
132 132 }
133 133
134 134 /**
135   - * 修改
  135 + * 填写实际发货日期
136 136 */
137   - @ApiOperation("修改")
  137 + @ApiOperation("填写实际发货日期")
138 138 @HasPermission({"shipping-plan-manage:invoice:modify"})
139 139 @PutMapping
140 140 public InvokeResult<Void> update(@Valid UpdateShipmentsOrderInfoVo vo) {
141   - shipmentsOrderInfoService.update(vo);
  141 + shipmentsOrderInfoService.updateShipmentDate(vo);
142 142 return InvokeResultBuilder.success();
143 143 }
144 144
... ...
... ... @@ -1259,7 +1259,12 @@ public class ReceiptLedgerInfoServiceImpl extends BaseMpServiceImpl<ReceiptLedge
1259 1259 data.setRegion(region);
1260 1260 }
1261 1261 data.setCustomerId(shipmentsOrderInfo.getCustomerId());
1262   - data.setShipmentDate(shipmentsOrderInfo.getShipmentsDate());
  1262 + // 发货日期处理
  1263 + LocalDate shipmentsDate = shipmentsOrderInfo.getShipmentsDate();
  1264 + if (BooleanUtils.isFalse(shipmentsOrderInfo.getOnTimeShipment())) {
  1265 + shipmentsDate = shipmentsOrderInfo.getNewShipmentDate();
  1266 + }
  1267 + data.setShipmentDate(shipmentsDate);
1263 1268
1264 1269 String contractType = null;
1265 1270 List<String> supplyUnitList = new ArrayList<>();
... ...
... ... @@ -287,8 +287,8 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
287 287 @OpLog(type = OtherOpLogType.class, name = "修改发货单,ID:{}", params = {"#id"})
288 288 @Transactional(rollbackFor = Exception.class)
289 289 @Override
290   - public void update(UpdateShipmentsOrderInfoVo vo) {
291   - ShipmentsOrderInfo data = getBaseMapper().selectById(vo.getId());
  290 + public void updateShipmentDate(UpdateShipmentsOrderInfoVo vo) {
  291 + ShipmentsOrderInfo data = findById(vo.getId());
292 292 if (ObjectUtil.isNull(data)) {
293 293 throw new DefaultClientException("发货单不存在!");
294 294 }
... ... @@ -297,9 +297,34 @@ public class ShipmentsOrderInfoServiceImpl extends BaseMpServiceImpl<ShipmentsOr
297 297 .eq(ShipmentsOrderInfo::getId, vo.getId());
298 298
299 299 getBaseMapper().update(updateWrapper);
300   -
301   - OpLogUtil.setVariable("id", data.getId());
302   - OpLogUtil.setExtra(vo);
  300 + // 判断当前日期是否大于等于发货日期
  301 + LocalDate now = LocalDate.now();
  302 + LocalDate newShipmentDate = vo.getNewShipmentDate();
  303 + if (!now.isBefore(newShipmentDate)) {
  304 + List<ShipmentsPlanDetail> detailList = data.getDetailList();
  305 + if (CollectionUtils.isEmpty(detailList)) {
  306 + throw new DefaultClientException("发货明细不存在!");
  307 + }
  308 + List<String> orderIds = new ArrayList<>();
  309 + List<String> orderSpecIds = new ArrayList<>();
  310 + List<String> detailIds = new ArrayList<>();
  311 + for (ShipmentsPlanDetail detail : detailList) {
  312 + String orderId = detail.getOrderId();
  313 + String orderSpecId = detail.getOrderSpecId();
  314 + String detailId = detail.getId();
  315 + if (!orderIds.contains(orderId)) {
  316 + orderIds.add(orderId);
  317 + }
  318 + if (!orderSpecIds.contains(orderSpecId)) {
  319 + orderSpecIds.add(orderSpecId);
  320 + }
  321 + if (!detailIds.contains(detailId)) {
  322 + detailIds.add(detailId);
  323 + }
  324 + }
  325 + List<PurchaseOrderInfo> orderInfoList = purchaseOrderInfoService.listByIds(orderIds);
  326 + this.handleData(data, orderInfoList, orderSpecIds, detailIds);
  327 + }
303 328 }
304 329
305 330 @OpLog(type = OtherOpLogType.class, name = "删除发货单,ID:{}", params = {"#id"})
... ...
... ... @@ -310,7 +310,9 @@ public class ShipmentDetailStatisticsServiceImpl extends BaseMpServiceImpl<Shipm
310 310 iterator.remove();
311 311 }
312 312 }
313   - getBaseMapper().batchAdd(needStatisticsDataList);
  313 + if (CollectionUtils.isNotEmpty(needStatisticsDataList)) {
  314 + getBaseMapper().batchAdd(needStatisticsDataList);
  315 + }
314 316 }
315 317
316 318 @Override
... ...
... ... @@ -52,7 +52,7 @@ public interface ShipmentsOrderInfoService extends BaseMpService<ShipmentsOrderI
52 52 *
53 53 * @param vo 数据实体
54 54 */
55   - void update(UpdateShipmentsOrderInfoVo vo);
  55 + void updateShipmentDate(UpdateShipmentsOrderInfoVo vo);
56 56
57 57 /**
58 58 * 根据ID删除
... ...
... ... @@ -149,9 +149,12 @@
149 149 o.settlement_terms,
150 150 o.supply_unit as supplier,
151 151 o.workshop_id,
152   - o.delivery_method,
153 152 so.code as shipment_order_no,
154   - so.shipments_date as shipment_date,
  153 + case
  154 + when so.on_time_shipment = true then so.shipments_date
  155 + when so.on_time_shipment = false then so.new_shipment_date
  156 + else so.shipments_date
  157 + end as shipment_date,
155 158 sc.id as contract_id,
156 159 sc.type as contract_type,
157 160 sc.packaging_requirements,
... ... @@ -164,7 +167,7 @@
164 167 left join tbl_contract_distributor_standard sc on o.contract_id = sc.id
165 168 left join tbl_contract_std_processing_line cl on sc.id = cl.contract_id
166 169 <where>
167   - and sd.del_flag = false
  170 + and sd.del_flag = false and so.status != 'DRAFT'
168 171 <if test="vo.ids != null and vo.ids.size() > 0">
169 172 and sd.id in
170 173 <foreach collection="vo.ids" open="(" separator="," close=")" item="item">
... ...