Browse Source

2025.02.10 送货计划 删除功能优化

master
yuejiayang 11 months ago
parent
commit
b9f9cdbd53
  1. 5
      src/main/java/com/xujie/sys/modules/deliverySchedule/controller/DeliveryScheduleController.java
  2. 2
      src/main/java/com/xujie/sys/modules/deliverySchedule/data/DeliveryPlanData.java
  3. 2
      src/main/java/com/xujie/sys/modules/deliverySchedule/service/DeliveryPlanService.java
  4. 32
      src/main/java/com/xujie/sys/modules/deliverySchedule/service/impl/DeliveryPlanServiceImpl.java
  5. 3
      src/main/resources/mapper/deliverySchedule/DeliveryPlanMapper.xml

5
src/main/java/com/xujie/sys/modules/deliverySchedule/controller/DeliveryScheduleController.java

@ -9,6 +9,7 @@ import com.xujie.sys.modules.deliverySchedule.mapper.DeliveryScheduleMapper;
import com.xujie.sys.modules.deliverySchedule.service.DeliveryPlanService;
import com.xujie.sys.modules.deliverySchedule.service.DeliveryScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -119,9 +120,7 @@ public class DeliveryScheduleController {
@PostMapping("/removeSupplierDeliveryPlan")
@ResponseBody
public R removeSupplierDeliveryPlan(@RequestBody DeliveryPlanData data){
data.getIds().forEach(id -> {
deliveryPlanService.removeById(id);
});
deliveryPlanService.updateSupplierDeliveryQty(data);
return R.ok();
}
}

2
src/main/java/com/xujie/sys/modules/deliverySchedule/data/DeliveryPlanData.java

@ -19,7 +19,7 @@ import org.springframework.format.annotation.DateTimeFormat;
@TableName(value ="PODelNotify")
@Data
public class DeliveryPlanData extends QueryPage implements Serializable {
@TableId(value = "id",type = IdType.AUTO)
@TableId(value = "ID",type = IdType.AUTO)
private Integer id;
@TableField(exist = false)

2
src/main/java/com/xujie/sys/modules/deliverySchedule/service/DeliveryPlanService.java

@ -22,4 +22,6 @@ public interface DeliveryPlanService extends IService<DeliveryPlanData> {
List<DeliveryPlanData> summaryMethod(DeliveryPlanData data);
Double updateSupplierDeliveryPlan(DeliveryPlanData data);
void updateSupplierDeliveryQty(DeliveryPlanData data);
}

32
src/main/java/com/xujie/sys/modules/deliverySchedule/service/impl/DeliveryPlanServiceImpl.java

@ -14,6 +14,8 @@ import com.xujie.sys.modules.deliverySchedule.mapper.DeliveryPlanMapper;
import com.xujie.sys.modules.deliverySchedule.mapper.DeliveryScheduleMapper;
import com.xujie.sys.modules.deliverySchedule.service.DeliveryPlanService;
import com.xujie.sys.modules.deliverySchedule.service.DeliveryScheduleService;
import com.xujie.sys.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -147,6 +149,36 @@ public class DeliveryPlanServiceImpl extends ServiceImpl<DeliveryPlanMapper, Del
return (double) -1;
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateSupplierDeliveryQty(DeliveryPlanData data) {
List<Integer> ids = data.getIds();
for (Integer id : ids) {
DeliveryPlanData deliveryPlanData = new DeliveryPlanData();
deliveryPlanData.setId(id);
deliveryPlanData.setSite(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getSite());
deliveryPlanData.setPage(1);
deliveryPlanData.setLimit(-1);
IPage<DeliveryPlanData> deliveryPlanDataIPage = deliveryPlanMapper.searchSupplierDeliveryPlan(new Page<>(deliveryPlanData.getPage(), deliveryPlanData.getLimit()), deliveryPlanData);
List<DeliveryPlanData> list = deliveryPlanDataIPage.getRecords();
QueryWrapper<DeliveryScheduleData> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("OrderNo", list.get(0).getOrderNo());
queryWrapper.eq("itemNo", list.get(0).getOrderItemNo());
queryWrapper.eq("site", list.get(0).getSite());
DeliveryScheduleData one = deliveryScheduleService.getOne(queryWrapper);
DeliveryScheduleData deliveryScheduleData = new DeliveryScheduleData();
if (one.getDelNotifyQty() - list.get(0).getNotifyQty() > one.getQty()){
throw new RuntimeException("无法删除该送货计划:待发货数量将大于订单数量,请检查送货计划!");
}
deliveryScheduleData.setDelNotifyQty(one.getDelNotifyQty() - list.get(0).getNotifyQty());
deliveryScheduleData.setDeliveryQty(one.getQty() - deliveryScheduleData.getDelNotifyQty());
deliveryScheduleService.getBaseMapper().update(deliveryScheduleData, queryWrapper);
removeById(id);
}
}
}

3
src/main/resources/mapper/deliverySchedule/DeliveryPlanMapper.xml

@ -45,6 +45,9 @@
LEFT JOIN POHeader AS POH ON PODN.OrderNo = POH.OrderNo and PODN.Site = POH.Site
<where>
AND PODN.site = #{query.site}
<if test="query.id != null and query.id != ''">
AND PODN.ID = #{query.id}
</if>
<if test="query.OrderNo != null and query.OrderNo != ''">
AND PODN.OrderNo like #{query.OrderNo}
</if>

Loading…
Cancel
Save