|
@@ -0,0 +1,173 @@
|
|
|
+package org.dromara.bulk.service.impl;
|
|
|
+
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import org.dromara.bulk.domain.BulkOrderList;
|
|
|
+import org.dromara.bulk.domain.UserOrderTemplate;
|
|
|
+import org.dromara.bulk.domain.bo.BulkOrderListBo;
|
|
|
+import org.dromara.bulk.domain.bo.NewBulkOrderBo;
|
|
|
+import org.dromara.bulk.domain.bo.OrderListBo;
|
|
|
+import org.dromara.bulk.mapper.BulkOrderListMapper;
|
|
|
+import org.dromara.bulk.mapper.UserOrderMapper;
|
|
|
+import org.dromara.bulk.mapper.UserOrderTemplateMapper;
|
|
|
+import org.dromara.bulk.service.BulkOrderManagementService;
|
|
|
+import org.dromara.commodityManagement.domain.Template;
|
|
|
+import org.dromara.commodityManagement.domain.bo.TemplateBo;
|
|
|
+import org.dromara.common.core.utils.MapstructUtils;
|
|
|
+import org.dromara.common.core.utils.OrderNumberGenerator;
|
|
|
+import org.dromara.common.json.utils.JsonUtils;
|
|
|
+import org.dromara.productionManagement.domain.ProductionPlan;
|
|
|
+import org.dromara.productionManagement.mapper.ProductionPlanMapper;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 大货订单管理服务层实现
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@RequiredArgsConstructor
|
|
|
+public class BulkOrderManagementServiceImpl implements BulkOrderManagementService {
|
|
|
+
|
|
|
+ private final ProductionPlanMapper productionPlanMapper;
|
|
|
+ private final BulkOrderListMapper bulkOrderListMapper;
|
|
|
+ private final UserOrderMapper userOrderMapper;
|
|
|
+ private final UserOrderTemplateMapper userOrderTemplateMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int insertBulkOrder(NewBulkOrderBo newBulkOrderBo) {
|
|
|
+ OrderNumberGenerator orderNumberGenerator = OrderNumberGenerator.getInstance();
|
|
|
+ for (OrderListBo orderList : newBulkOrderBo.getOrderLists()){
|
|
|
+ String sysNo = orderNumberGenerator.generateOrderNumber("SYS");
|
|
|
+ String purchaseCode = orderNumberGenerator.generateOrderNumber("SC");
|
|
|
+ String orderNumber = orderNumberGenerator.generateOrderNumber("DH");
|
|
|
+
|
|
|
+ productionPlanMapper.insert(initProductionPlanBo(orderList, sysNo, purchaseCode, orderNumber));
|
|
|
+
|
|
|
+ bulkOrderListMapper.insert(initBulkOrderListBo(orderList, sysNo, purchaseCode));
|
|
|
+
|
|
|
+ Long orderId = userOrderMapper.selectLastId();
|
|
|
+ Long planId = productionPlanMapper.selectLastId();
|
|
|
+
|
|
|
+ List<UserOrderTemplate> userOrderTemplate = initUserOrderTemplate(orderList, orderId, planId);
|
|
|
+ userOrderTemplateMapper.insert(userOrderTemplate);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化大货订单列表BO对象
|
|
|
+ * @param orderList 订单列表
|
|
|
+ * @param sysNo 系统单号
|
|
|
+ * @param purchaseCode 生产单号
|
|
|
+ * @return 构建完毕的BO对象
|
|
|
+ */
|
|
|
+ private BulkOrderList initBulkOrderListBo(OrderListBo orderList, String sysNo, String purchaseCode) {
|
|
|
+ BulkOrderList bulkOrderList = new BulkOrderList();
|
|
|
+ //设置系统单号
|
|
|
+ bulkOrderList.setSysNo(sysNo);
|
|
|
+ //设置生产单号
|
|
|
+ bulkOrderList.setScNo(purchaseCode);
|
|
|
+ //设置商品ID
|
|
|
+ bulkOrderList.setGoodsId(9L);
|
|
|
+ //设置商品编号
|
|
|
+ bulkOrderList.setGoodsCode("SP001");
|
|
|
+ //设置商品名称
|
|
|
+ bulkOrderList.setGoodsName("图片下单");
|
|
|
+ //设置单位ID
|
|
|
+ bulkOrderList.setUnitId(5);
|
|
|
+ //设置默认单位ID
|
|
|
+ bulkOrderList.setDefaultUnit(5);
|
|
|
+ //设置大货编号
|
|
|
+ bulkOrderList.setGoodsTypeExtend1Id(orderList.getDaHuoNumberBo().getName());
|
|
|
+ //设置成衣厂
|
|
|
+ bulkOrderList.setGarmentFactory(orderList.getGarmentFactory());
|
|
|
+ //设置成衣厂联系人
|
|
|
+ bulkOrderList.setGarmentFactoryPeople(orderList.getGarmentFactoryPeople());
|
|
|
+ //设置成衣厂电话
|
|
|
+ bulkOrderList.setGarmentFactoryTel(orderList.getGarmentFactoryTel());
|
|
|
+ //设置收货地址
|
|
|
+ bulkOrderList.setReceivingAddress(orderList.getReceivingAddress());
|
|
|
+ //设置当前消耗时间
|
|
|
+ bulkOrderList.setCurrentTimeConsumption(orderList.getCurrentTimeConsumption());
|
|
|
+ //设置下单时间
|
|
|
+ bulkOrderList.setOrderTime(orderList.getOrderTime());
|
|
|
+ //设置目标时间
|
|
|
+ bulkOrderList.setTargetDate(orderList.getTargetDate());
|
|
|
+ //设置底布
|
|
|
+ bulkOrderList.setBaseCloth(orderList.getBaseCloth());
|
|
|
+ //设置底布价格
|
|
|
+ bulkOrderList.setBaseClothPrice(orderList.getBaseClothPrice());
|
|
|
+ //设置品牌组
|
|
|
+ bulkOrderList.setBrandGroup(orderList.getBrandGroup());
|
|
|
+ //设置工艺类型并转换为JSON格式后存入
|
|
|
+ bulkOrderList.setGoodsTypeExtend3Attr(JsonUtils.toJsonString(orderList.getCraft()));
|
|
|
+ //设置花型号类型并转换为JSON格式存入
|
|
|
+ bulkOrderList.setGoodsTypeExtend4Attr(JsonUtils.toJsonString(orderList.getOem()));
|
|
|
+ return bulkOrderList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化生产计划BO对象
|
|
|
+ * @param orderList 订单列表
|
|
|
+ * @param sysNo 系统单号
|
|
|
+ * @param purchaseCode 生产单号
|
|
|
+ * @return 构建完毕的生产计划BO对象
|
|
|
+ */
|
|
|
+ private ProductionPlan initProductionPlanBo(OrderListBo orderList, String sysNo, String purchaseCode, String orderNumber) {
|
|
|
+ ProductionPlan productionPlan = new ProductionPlan();
|
|
|
+ //设置系统单号
|
|
|
+ productionPlan.setSysNo(sysNo);
|
|
|
+ //设置生产单号
|
|
|
+ productionPlan.setPurchaseCode(purchaseCode);
|
|
|
+ //设置订单单号
|
|
|
+ productionPlan.setOrderNum(orderNumber);
|
|
|
+ //设置用户id
|
|
|
+ productionPlan.setUserId(orderList.getUserId());
|
|
|
+ //设置是否烧花
|
|
|
+ productionPlan.setIsBurnFlowers(orderList.getIsBurnFlowers());
|
|
|
+ //设置是否快返
|
|
|
+ productionPlan.setIsQuickReturn(orderList.getIsQuickReturn());
|
|
|
+ //设置是否作废
|
|
|
+ productionPlan.setIsToVoid(orderList.getIsToVoid());
|
|
|
+ //设置是否多色
|
|
|
+ productionPlan.setIsMulticolor(orderList.getIsMulticolor());
|
|
|
+ //设置是否首单
|
|
|
+ productionPlan.setIsFirstOrder(orderList.getIsFirstOrder());
|
|
|
+ //设置是否紧急
|
|
|
+ productionPlan.setIsUrgent(orderList.getIsUrgent());
|
|
|
+ //设置是否补货
|
|
|
+ productionPlan.setIsBuhuo(orderList.getIsBuhuo());
|
|
|
+ //设置是否系统单
|
|
|
+ productionPlan.setIsSys(orderList.getIsSys());
|
|
|
+ //设置创建时间
|
|
|
+ productionPlan.setCreateTime(orderList.getCreateTime());
|
|
|
+ return productionPlan;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<UserOrderTemplate> initUserOrderTemplate(OrderListBo orderList, Long orderId, Long planId) {
|
|
|
+ ArrayList<UserOrderTemplate> userOrderTemplateList = new ArrayList<>();
|
|
|
+ for (TemplateBo templateBo : orderList.getTemplateList()) {
|
|
|
+ UserOrderTemplate userOrderTemplate = new UserOrderTemplate();
|
|
|
+ //设置用户id
|
|
|
+ userOrderTemplate.setUserId(orderList.getUserId());
|
|
|
+ //设置订单id 对应fa_kuyou_user_order表id
|
|
|
+ userOrderTemplate.setOrderId(orderId);
|
|
|
+ //设置生产计划id 对应fa_kuyou_production_plan表id
|
|
|
+ userOrderTemplate.setPlanId(planId);
|
|
|
+ //设置大货编号id
|
|
|
+ userOrderTemplate.setItemId(orderList.getDaHuoNumberBo().getId());
|
|
|
+ //设置份数
|
|
|
+ userOrderTemplate.setNumber(templateBo.getNumber());
|
|
|
+ //设置米数
|
|
|
+ userOrderTemplate.setMiter(templateBo.getMiter());
|
|
|
+ //设置版图名称
|
|
|
+ userOrderTemplate.setName(templateBo.getName());
|
|
|
+ //设置版图图片
|
|
|
+ userOrderTemplate.setImage(templateBo.getImage());
|
|
|
+ userOrderTemplateList.add(userOrderTemplate);
|
|
|
+ }
|
|
|
+ return userOrderTemplateList;
|
|
|
+ }
|
|
|
+}
|