瀏覽代碼

增加批量推送和批量提交,修改编辑bug

huxy 2 年之前
父節點
當前提交
9742cea3b1

+ 152 - 13
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/controller/SyPreAssembledPackingListController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.spapl.controller;
 
 import java.io.IOException;
+import java.lang.reflect.Array;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -8,9 +9,13 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.util.JwtUtil;
+import org.jeecg.common.util.RedisUtil;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 import org.jeecg.modules.openApi.entity.DxpDataPlan;
 import org.jeecg.modules.openApi.service.IDxpDataPlanService;
@@ -30,6 +35,7 @@ import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListService;
 import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListItemService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.multipart.MultipartFile;
@@ -59,6 +65,8 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 	private ISyPreAssembledPackingListItemService syPreAssembledPackingListItemService;
 	@Autowired
 	private IDxpDataPlanService iDxpDataPlanService;
+	@Autowired
+	private RedisUtil redisUtil;
 
 	/**
 	 * 分页列表查询
@@ -110,6 +118,8 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 	 public Result<IPage<SyPreAssembledPackingListVo>> queryPageList2(SyPreAssembledPackingListVo syPreAssembledPackingListVo,
 									 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 									 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									 String stratDate,
+									 String endDate,
 									 HttpServletRequest req) {
 		 //System.out.println("当前登录用户:"+((LoginUser)SecurityUtils.getSubject().getPrincipal()).getRealname());
 		 QueryWrapper<SyPreAssembledPackingListVo> queryWrapper =new QueryWrapper<>();//初始化
@@ -117,14 +127,28 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getId())){//查询id
 		 	queryWrapper.eq("a.id",syPreAssembledPackingListVo.getId());
 		 }
-		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getOrderNumber())){
-			 queryWrapper.eq("a.order_number",syPreAssembledPackingListVo.getOrderNumber());//订单号
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getOrderNumber())){//订单号
+			 queryWrapper.eq("a.order_number",syPreAssembledPackingListVo.getOrderNumber());
+		 }
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getItemNumber())){//款号
+			 queryWrapper.eq("a.item_number",syPreAssembledPackingListVo.getItemNumber());
+		 }
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getProductName())){//品名
+			 queryWrapper.eq("a.product_Name",syPreAssembledPackingListVo.getProductName());
+		 }
+		 // 小po 分销点
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getSmallPo())){//小po
+			 queryWrapper.eq("b.small_Po",syPreAssembledPackingListVo.getSmallPo());
 		 }
-		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getItemNumber())){
-			 queryWrapper.eq("a.item_number",syPreAssembledPackingListVo.getItemNumber());//款号
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getDistributionPoint())){//分销点
+			 queryWrapper.eq("b.distribution_Point",syPreAssembledPackingListVo.getDistributionPoint());
 		 }
-		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getProductName())){
-			 queryWrapper.eq("a.product_Name",syPreAssembledPackingListVo.getProductName());//品名
+		 //预发货日期
+		 if(oConvertUtils.isNotEmpty(stratDate)){//起始
+			 queryWrapper.ge("b.hod",stratDate);
+		 }
+		 if(oConvertUtils.isNotEmpty(endDate)){//结束
+			 queryWrapper.le("b.hod",endDate);
 		 }
 		 Page<SyPreAssembledPackingListVo> page = new Page<SyPreAssembledPackingListVo>(pageNo, pageSize);
 		 IPage<SyPreAssembledPackingListVo> pageList = syPreAssembledPackingListService.selectPage(page, queryWrapper);
@@ -334,6 +358,94 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 
 	 }
 
+	/**
+	 * 推送测试
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "批量推送")
+	@ApiOperation(value="批量推送", notes="批量推送")
+	@RequestMapping(value = "/pushBatch", method = {RequestMethod.GET})
+	public JSONObject pushBatch(@RequestParam(value = "id",required = true) String[] ids) {
+		JSONObject result=new JSONObject();
+		List<PackingHeaderVo> list=new ArrayList<>();
+		try{
+			if(oConvertUtils.isEmpty(ids)){
+				log.warn("id为空");
+				return null;
+			}
+			//查询IP及账套信息、时间戳
+			QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
+			//获取推送接口地址
+			queryWrapper.eq("code", "senYu_YCY_local").or().eq("code","senYu_YCY_token");
+			queryWrapper.orderBy(true,true,"id");
+			Page<DxpDataPlan> page = new Page<DxpDataPlan>(1, 10);
+			IPage<DxpDataPlan> pageList = iDxpDataPlanService.page(page, queryWrapper);
+			List<DxpDataPlan> resultList = pageList.getRecords();
+			list = syPreAssembledPackingListService.pushDataBatch(ids);
+			System.out.println("list的长度:\t"+list.size());
+			list.forEach(System.out::println);
+			Gson userGson = new GsonBuilder().create();
+			result.put("payload", userGson.toJson(JSONObject.toJSON(list)));
+			log.info("JSON数据:" + result);
+
+			String url = resultList.get(0).getItemIp() + resultList.get(0).getItemUrl();//拼接url
+
+			String tokenUrl = resultList.get(1).getItemIp()+resultList.get(1).getItemUrl();//获取token
+
+			if(oConvertUtils.isEmpty(url)||oConvertUtils.isEmpty(tokenUrl)){
+				log.warn("缺少推送接口信息" );
+				return null;
+			}
+			//调用doPost
+			InterfaceConnUtils interfaceConnUtils = new InterfaceConnUtils();
+			//处理返回信息
+			JSONObject  informationJson = interfaceConnUtils.doPostToBearer(result, url,tokenUrl, "发预装箱单接口-");
+			//获取返回信息
+			JSONObject jsonArray = informationJson.getJSONObject("payload");
+
+			//获取code判断是否成功
+			String code = jsonArray.getString("code");
+			//获取返回消息
+			String message = jsonArray.getString("message");
+
+			UpdateWrapper<SyPreAssembledPackingList> wrapper=new UpdateWrapper<>();
+			if(code.equals("S")){
+				wrapper.set("push_Status","1");//推送过去
+				wrapper.in(" id",ids);
+				System.out.println("推送过去了");
+			}else{
+				wrapper.set("push_Status","2");//推送失败
+				wrapper.in(" id",ids);
+				System.out.println("推送失败了");
+			}
+			syPreAssembledPackingListService.update(wrapper);
+
+		}catch (Exception ex){
+			ex.printStackTrace();
+			log.error("推送失败:" + ex.getMessage());
+		}
+
+		return result;
+	}
+
+	/**
+	 * testtest
+	 *
+	 * @param username,syspassword
+	 * @return
+	 */
+	@AutoLog(value = "获取token")
+	@ApiOperation(value="获取token", notes="获取token")
+	@RequestMapping(value = "/getToken", method = {RequestMethod.GET})
+	public String getToken(String username,String syspassword) {
+		String token = JwtUtil.sign(username, syspassword);
+		redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
+		redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
+		System.out.println("CommonConstant.PREFIX_USER_TOKEN"+CommonConstant.PREFIX_USER_TOKEN);
+		System.out.println("JwtUtil.EXPIRE_TIME"+JwtUtil.EXPIRE_TIME);
+		return token;
+	}
 	 /**
 	  * 提交
 	  *
@@ -372,6 +484,39 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 	 	return result;
 	 }
 
+	/**
+	 * 批量提交
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "批量提交")
+	@ApiOperation(value="批量提交", notes="批量提交")
+	@RequestMapping(value = "/submitBatch", method = {RequestMethod.GET})
+	public Result<?> submitBatch(@RequestParam(value = "id",required = true) String []ids) {
+		Result<?> result=new Result<>();
+		try{
+			if(oConvertUtils.isEmpty(ids)){
+				result.setMessage("未获取到任何id!");
+				result.setSuccess(false);
+				return result;
+			}
+			String message=syPreAssembledPackingListService.submitBatch(ids);
+			if(!message.equals("提交成功")){
+				result.setSuccess(false);
+				result.setMessage(message);
+				return result;
+			}
+			result.setMessage("提交成功!");
+			result.setSuccess(true);
+		}catch (Exception ex){
+			ex.printStackTrace();
+			log.error("提交失败:" + ex.getMessage());
+			result.error500("提交失败:" + ex.getMessage());
+		}
+		return result;
+	}
+
 	 /**
 	  * 取消提交
 	  *
@@ -395,7 +540,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 				 result.setSuccess(false);
 				 return result;
 			 }
-			 if(syPreAssembledPackingList2.getPushStatus().equals("1")){
+			 if(syPreAssembledPackingList2.getPushStatus().equals("1")||syPreAssembledPackingList2.getIsReference()>0){
 				 result.setMessage("已推送云工厂或已被下游参照!");
 				 result.setSuccess(false);
 				 return result;
@@ -648,10 +793,4 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 		return dateNo;
 	 }
 
-	@AutoLog(value = "getToken")
-	@ApiOperation(value="getToken", notes="getToken")
-	@GetMapping(value = "/token")
-	public String token(){
-		return "token";
-	}
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/SyPreAssembledPackingListMapper.java

@@ -26,6 +26,8 @@ public interface SyPreAssembledPackingListMapper extends BaseMapper<SyPreAssembl
    IPage<SyPreAssembledPackingListVo> selectPage(IPage<SyPreAssembledPackingListVo> page, @Param("ew") QueryWrapper<SyPreAssembledPackingListVo> queryWrapper);
 
    PackingHeaderVo pushData(String id);
+
+   List<PackingHeaderVo> pushDataBatch(@Param("list")String[] ids);
    //发运明细分页列表查询
    public IPage<SyShippingDetailsVo> queryShippingDetails(IPage<SyShippingDetailsVo> page, @Param("ew") QueryWrapper<SyShippingDetailsVo> queryWrapper);
 

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/xml/SyPreAssembledPackingListItemMapper.xml

@@ -14,6 +14,7 @@
 			id,
 			sy_pre_assembled_packing_list_id,
 			sy_declaration_elements_id,
+			sy_order_data_id,
 			ac_set_no,
 			garment_factory,
 			hod,
@@ -45,6 +46,7 @@
 			with_code,
 			small_po,
 			inventory_name,
+			inventory_code,
 			spur_or_sub_order,
 			factory_unit_price,
 			master_Metering,

+ 22 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/xml/SyPreAssembledPackingListMapper.xml

@@ -5,7 +5,7 @@
     /*获取发运明细数据*/
     SELECT
         sy_shipping_details.id AS syDeclarationElementsId, /*发运明细主表id*/
-        sy_order_data.id AS syDeclarationElementsId, /*订单数据主表id*/
+        sy_order_data.id AS sy_order_data_id, /*订单数据主表id*/
         sy_shipping_details.chinese_Name AS productName,/*中文品名-->品名*/
         sy_shipping_details.customer AS customer, /*客户 customer */
         sy_order_data.customer_Abbreviation AS customerAbbreviation, /*客户简称 customer */
@@ -49,7 +49,7 @@
         a.`push_Status`,/*推送状态*/
         b.master_Metering,/*计量单位*/
         SUM(b.total) total,/*件数*/
-        b.hod,/*预发货日期*/
+        b.hod as  preDeliveryDate,/*预发货日期*/
         sum(b.total_net_weight) totalnetweight,/*总净重*/
         sum(b.total_gross_weight) totalgrossweight,/*总毛重*/
         sum(b.total_volume) totalvolume,/*总体积*/
@@ -87,7 +87,26 @@
         create_By AS preparer/*创建人*/,
         create_Time AS preparationTime/*创建时间*/
     FROM `sy_pre_assembled_packing_list`
-    where id=#{value}
+    where id=#{value }
+    </select>
+
+    <select id="pushDataBatch" resultType="org.jeecg.modules.spapl.vo.PackingHeaderVo" parameterType="java.lang.String">
+        SELECT
+        document_No AS packingHeaderNum/*单据号*/,
+        spur_Or_Sub_Order AS poNo,/*委外/采购订单号*/
+        sy_order_data_id AS attributeBigint1,/*采购/委外订单号对应的ID(唯一标识)*/
+        'CLOTHING' AS packingType /*计划装箱单类型*/,
+        'NEW' AS packingStatus /*计划装箱单头状态*/,
+        size_Range  AS size_Range,/*尺寸范围*/
+        item_number AS styleNo,/*款号*/
+        product_Name AS  productName,/*品名*/
+        supplier_code supplierNumber, /*供应商编码*/
+        create_By AS preparer/*创建人*/,
+        create_Time AS preparationTime/*创建时间*/
+        FROM `sy_pre_assembled_packing_list`
+        where id in <foreach collection="list" item="value" index="index" open="(" separator="," close=")">
+                 #{value}
+            </foreach>
     </select>
 
 

+ 14 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/ISyPreAssembledPackingListService.java

@@ -75,11 +75,24 @@ public interface ISyPreAssembledPackingListService extends IService<SyPreAssembl
 
 
 	/**
-	 * 根据id手动推送云工厂数据
 	 * 根据id手动推送云工厂数据
 	 * @param id
 	 * @return	PackingHeaderVo
 	 */
 	public PackingHeaderVo pushData(String id);
 
+	/**
+	 * 批量推送云工厂数据
+	 * @param ids
+	 * @return	PackingHeaderVo
+	 */
+	public List<PackingHeaderVo> pushDataBatch(String []ids);
+
+	/**
+	 * 根据数组
+	 * @param ids
+	 * @return
+	 */
+	public String submitBatch(String [] ids);
+
 }

+ 40 - 7
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/impl/SyPreAssembledPackingListServiceImpl.java

@@ -78,11 +78,13 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				item1.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
 				item1.setSort(size.getNum());//获取序号
 				item1.setId(oConvertUtils.id());//获取到随机id
-				syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
 				//获取发育明细数据
-				SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item.getSyDeclarationElementsItemId());
-				syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item.getTotal()));
+				SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
+				item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());//获取到订单子表id
+				syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
 				//原剩余数量-预装箱单装箱数量=新剩余数量
+				syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
+				//超发数量
 				syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(syItem.getShipmentQuantity()));
 				syItem.setIsReference(1);//标识已被参照
 				syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
@@ -122,20 +124,23 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				// 获取到发运明细子表id
 				String syDeclarationElementsItemId=syPreAssembledPackingListItemMapper.selectById(item1.getId()).getSyDeclarationElementsItemId();
 				item1.setSyDeclarationElementsItemId(syDeclarationElementsItemId);
-				syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
+				//获取发育明细数据
+				SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
+				//获取订单子表id
+				item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());
 				if(item.getIsAdd()>0){//如果为0就添加数据
 					item1.setSyPreAssembledPackingListId(pid);
 					item1.setId(oConvertUtils.id());//获取到随机id
 					syPreAssembledPackingListItemMapper.insert(item1);
+				}else{
+					syPreAssembledPackingListItemMapper.updateById(item1);//如果没修改成功就是新增数据
 				}
 				//这个构造器用来获取预装箱单里所有参照了改发运明细数量的合计
 				QueryWrapper<SyPreAssembledPackingListItem> queryWrapperCount =new QueryWrapper<>();
 				queryWrapperCount.select("sum(total) total");
 				queryWrapperCount.eq("del_Flag","0");
-				queryWrapperCount.eq("sy_Declaration_Elements_Item_Id",item.getSyDeclarationElementsItemId());
+				queryWrapperCount.eq("sy_Declaration_Elements_Item_Id",item1.getSyDeclarationElementsItemId());
 				BigDecimal total=syPreAssembledPackingListItemMapper.selectOne(queryWrapperCount).getTotal();
-				//获取发育明细数据
-				SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item.getSyDeclarationElementsItemId());
 				///发货-预装箱单数量=剩余数量
 				syItem.setSurplusQuantity(syItem.getShipmentQuantity().subtract(total));
 				//预装箱单数量-发货=超发数量
@@ -313,4 +318,32 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 		return vo;
 	}
 
+	@Override
+	public List<PackingHeaderVo> pushDataBatch(String[] ids) {
+		List<PackingHeaderVo> vo=syPreAssembledPackingListMapper.pushDataBatch(ids);
+		int row=0;
+		for (PackingHeaderVo v : vo){
+			List<PackingLineVo> packingLineVoList =syPreAssembledPackingListItemMapper.pushData(ids[row]);
+			if(packingLineVoList.size()>0) {
+				v.setLines(packingLineVoList);
+			}
+			row++;
+		}
+		return vo;
+	}
+
+	@Override
+	@Transactional
+	public String submitBatch(String[] ids) {
+		for (String id:ids){
+			SyPreAssembledPackingList syPreAssembledPackingList2=syPreAssembledPackingListMapper.selectById(id);
+			if(oConvertUtils.isEmpty(syPreAssembledPackingList2)){
+				throw new JeecgBootException("未找到id:"+id+"对应的数据!");
+			}
+			syPreAssembledPackingList2.setStatus("1");//修改为提交状态
+			syPreAssembledPackingListMapper.updateById(syPreAssembledPackingList2);//修改提交状态
+		}
+		return "提交成功";
+	}
+
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/vo/SyPreAssembledPackingListVo.java

@@ -139,7 +139,7 @@ public class SyPreAssembledPackingListVo {
 	/**预发货日期*/
 	@ApiModelProperty(value = "预发货日期")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd")
 	@Excel(name = "预发货日期", width = 20)
 	private Date preDeliveryDate;
 	//**小PO*//*