Browse Source

单证Bug调整

zengtx 2 years ago
parent
commit
3813382c83

+ 5 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationIngredientMapper.xml

@@ -31,7 +31,7 @@
 		from
 		from
 		(
 		(
 			select t4.goodsName,sum(t4.dosage) as dosage,sum(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from(
 			select t4.goodsName,sum(t4.dosage) as dosage,sum(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from(
-		SELECT t3.goodsName,t3.cVenAbbName AS supper,SUM ( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
+		SELECT t3.goodsName,t3.cVenAbbName AS supper,max( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
 	
 	
 	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
 	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
 	SUM ( t3.totalCost )/sum(totalSum) AS cost 
 	SUM ( t3.totalCost )/sum(totalSum) AS cost 
@@ -76,7 +76,7 @@ GROUP BY
 	union all
 	union all
 		
 		
 		
 		
-SELECT t3.goodsName,t3.cVenAbbName AS supper,SUM ( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
+SELECT t3.goodsName,t3.cVenAbbName AS supper,max( t3.dosage ) AS dosage,SUM ( t3.usageQuantity ) AS usageQuantity,
 	
 	
 	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
 	SUM ( t3.rmbAmount ) AS rmbAmount,SUM ( t3.usdAmount ) AS usdAmount,SUM ( t3.priceExcludingtax ) AS priceExcludingtax,
 	SUM ( t3.totalCost )/sum(totalSum) AS cost 
 	SUM ( t3.totalCost )/sum(totalSum) AS cost 
@@ -166,7 +166,7 @@ GROUP BY
 		from
 		from
 		(
 		(
 		select t4.goodsName,sum(t4.dosage) as dosage,sum(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from (
 		select t4.goodsName,sum(t4.dosage) as dosage,sum(t4.usageQuantity) as usageQuantity,max(t4.supper) as supper,sum(t4.rmbAmount) as rmbAmount,sum(t4.usdAmount) as usdAmount,sum(t4.priceExcludingtax) as priceExcludingtax,sum(t4.cost) as cost from (
-		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
+		select t3.goodsName,max(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
 
 
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 
 
@@ -198,7 +198,7 @@ GROUP BY
 
 
 		union all
 		union all
 
 
-		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
+		select t3.goodsName,max(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
 
 
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 
 
@@ -233,7 +233,7 @@ GROUP BY
 		) t3  GROUP BY t3.goodsName
 		) t3  GROUP BY t3.goodsName
 
 
 		union all
 		union all
-		select t3.goodsName,sum(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
+		select t3.goodsName,max(t3.dosage) as dosage,sum(t3.usageQuantity) as usageQuantity,max(t3.cVenAbbName) as supper,sum(t3.rmbAmount) as rmbAmount,sum(t3.usdAmount) as usdAmount,sum(t3.priceExcludingtax) as priceExcludingtax,sum(t3.iCost) as cost from (
 
 
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 		select t1.goodsName,t1.dosage,t1.usageQuantity,t2.cVenAbbName,t2.rmbAmount,t2.usdAmount,t2.priceExcludingtax,t2.iCost from (select  ot.cInvCode,od.isosid,om.ccode,oti.cInvName as goodsName,sum(ot.iUnitQuantity) as dosage,sum(ot.iSendQTY) as usageQuantity
 
 

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/orderData/controller/SyOrderDataController.java

@@ -76,6 +76,9 @@ public class SyOrderDataController extends JeecgController<SyOrderData, ISyOrder
 //			syOrderData.setDate(sdf.format(syOrderData.getOrderDate()));
 //			syOrderData.setDate(sdf.format(syOrderData.getOrderDate()));
 //		}
 //		}
 		Page<SyOrderData> page = new Page<SyOrderData>(pageNo, pageSize);
 		Page<SyOrderData> page = new Page<SyOrderData>(pageNo, pageSize);
+		if(oConvertUtils.isNotEmpty(syOrderData.getOrderNumber())){
+			syOrderData.setOrderNumber(syOrderData.getOrderNumber().trim());
+		}
 		IPage<SyOrderData> pageList = syOrderDataService.queryList(syOrderData,page);
 		IPage<SyOrderData> pageList = syOrderDataService.queryList(syOrderData,page);
 		return Result.OK(pageList);
 		return Result.OK(pageList);
 	}
 	}

+ 28 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/orderData/service/impl/SyOrderDataServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.ss.formula.functions.T;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.documents.orderData.entity.SyOrderData;
 import org.jeecg.modules.documents.orderData.entity.SyOrderData;
@@ -30,10 +31,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
 /**
  * @Description: 订单主表
  * @Description: 订单主表
@@ -219,16 +217,24 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd
                 }
                 }
                 List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
                 List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
                 List<SyOrderDataItem> syItemList = new ArrayList<>();
                 List<SyOrderDataItem> syItemList = new ArrayList<>();
+                //已被参照行ID
+                List<String> idsID = new ArrayList<>();
+
+                //记录主表ID
+                String orderID = jianSon.get(0).get("syOrderDataId").toString();
                 for (JSONObject Object:jianSon) {
                 for (JSONObject Object:jianSon) {
                     SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
                     SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
                     sy2.setId(sy.getAccount()+sy2.getId());
                     sy2.setId(sy.getAccount()+sy2.getId());
                     if(isNewOrder){
                     if(isNewOrder){
                         String item = syOrderDataItemService.queryItemMub(sy2.getId());
                         String item = syOrderDataItemService.queryItemMub(sy2.getId());
                         if(item!=null && item.equals("已被参照")){
                         if(item!=null && item.equals("已被参照")){
+                            idsID.add(sy2.getId());
                             continue;
                             continue;
                         }else {
                         }else {
+                            idsID.add(sy2.getId());
                             //更新数据前 删除旧数据防止id冲突
                             //更新数据前 删除旧数据防止id冲突
                             syOrderDataItemService.deleteByID(sy2.getId());
                             syOrderDataItemService.deleteByID(sy2.getId());
+
                         }
                         }
                     }
                     }
                     sy2.setSyOrderDataId(sy.getAccount()+sy2.getSyOrderDataId());
                     sy2.setSyOrderDataId(sy.getAccount()+sy2.getSyOrderDataId());
@@ -271,6 +277,23 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd
                     }
                     }
                     syItemList.add(sy2);
                     syItemList.add(sy2);
                 }
                 }
+                //处理U8已经删除的数据,单证系统也需要删除
+                //第一查询改订单下所有行数据
+                List<String> deleteId = new ArrayList<>();
+                QueryWrapper<SyOrderDataItem> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("sy_order_data_id",sy.getAccount()+orderID);
+                List<SyOrderDataItem> entityList = syOrderDataItemService.list(queryWrapper1);
+                for(SyOrderDataItem str:entityList){
+                    deleteId.add(str.getId());
+                }
+                   //比对两个几个的差集,删除deleteId集合不存的ID
+                    Collection subtract = CollectionUtils.subtract(deleteId, idsID);
+                    for (Object s:subtract) {
+                        //删除没用的数据
+                        syOrderDataItemService.deleteByID(s.toString());
+                    }
+
+
                 //添加单证id 原数据账套+原数据id
                 //添加单证id 原数据账套+原数据id
                 String syId = sy.getId();
                 String syId = sy.getId();
                 sy.setId(sy.getAccount()+sy.getId());
                 sy.setId(sy.getAccount()+sy.getId());
@@ -616,4 +639,5 @@ public class SyOrderDataServiceImpl extends ServiceImpl<SyOrderDataMapper, SyOrd
         this.syOrderDataMapper = applicationContext.getBean(SyOrderDataMapper.class);
         this.syOrderDataMapper = applicationContext.getBean(SyOrderDataMapper.class);
 
 
     }
     }
+    
 }
 }

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/controller/SyShippingOrderController.java

@@ -112,7 +112,7 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 	@AutoLog(value = "托书主表实体类-分页列表查询")
 	@AutoLog(value = "托书主表实体类-分页列表查询")
 	@ApiOperation(value="托书主表实体类-分页列表查询", notes="托书主表实体类-分页列表查询")
 	@ApiOperation(value="托书主表实体类-分页列表查询", notes="托书主表实体类-分页列表查询")
 	@GetMapping(value = "/list")
 	@GetMapping(value = "/list")
-	public Result<IPage<SyShippingOrder>> queryPageList(SyShippingOrder syShippingOrder,String shippingOrderDate,String smailPo,String type,
+	public Result<IPage<SyShippingOrder>> queryPageList(SyShippingOrder syShippingOrder,String shippingOrderDateB,String shippingOrderDateE,String smailPo,String type,
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
 								   HttpServletRequest req) {
@@ -122,8 +122,8 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getOrderNumber())){
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getOrderNumber())){
 			queryWrapper.like("b.order_number",syShippingOrder.getOrderNumber());
 			queryWrapper.like("b.order_number",syShippingOrder.getOrderNumber());
 		}
 		}
-		if(oConvertUtils.isNotEmpty(shippingOrderDate)){
-			queryWrapper.eq("a.shipping_order_date",shippingOrderDate);
+		if(oConvertUtils.isNotEmpty(shippingOrderDateB)){
+			queryWrapper.between("a.shipping_order_date",shippingOrderDateB,shippingOrderDateE);
 		}
 		}
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getClientAbbreviation())){
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getClientAbbreviation())){
 			queryWrapper.eq("b.client_abbreviation",syShippingOrder.getClientAbbreviation());
 			queryWrapper.eq("b.client_abbreviation",syShippingOrder.getClientAbbreviation());

+ 24 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/quartz/job/AddOrderJob.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
 import org.jeecg.modules.documents.orderData.entity.SyOrderData;
 import org.jeecg.modules.documents.orderData.entity.SyOrderData;
 import org.jeecg.modules.documents.orderData.entity.SyOrderDataItem;
 import org.jeecg.modules.documents.orderData.entity.SyOrderDataItem;
 import org.jeecg.modules.documents.orderData.entity.SyOrderDataVO;
 import org.jeecg.modules.documents.orderData.entity.SyOrderDataVO;
@@ -25,10 +26,7 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationContextAware;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 @PersistJobDataAfterExecution
 @PersistJobDataAfterExecution
 @DisallowConcurrentExecution
 @DisallowConcurrentExecution
@@ -212,14 +210,20 @@ public class AddOrderJob implements Job,ApplicationContextAware {
                 }
                 }
                 List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
                 List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(listSon);
                 List<SyOrderDataItem> syItemList = new ArrayList<>();
                 List<SyOrderDataItem> syItemList = new ArrayList<>();
+                //已被参照行ID
+                List<String> idsID = new ArrayList<>();
+                //记录主表ID
+                String orderID = jianSon.get(0).get("syOrderDataId").toString();
                 for (JSONObject Object:jianSon) {
                 for (JSONObject Object:jianSon) {
                     SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
                     SyOrderDataItem sy2 = JSONObject.toJavaObject(Object, SyOrderDataItem.class);
                     sy2.setId(sy.getAccount()+sy2.getId());
                     sy2.setId(sy.getAccount()+sy2.getId());
                     if(isNewOrder){
                     if(isNewOrder){
                         String item = syOrderDataItemService.queryItemMub(sy2.getId());
                         String item = syOrderDataItemService.queryItemMub(sy2.getId());
                         if(item!=null && item.equals("已被参照")){
                         if(item!=null && item.equals("已被参照")){
+                            idsID.add(sy2.getId());
                             continue;
                             continue;
                         }else {
                         }else {
+                            idsID.add(sy2.getId());
                             //更新数据前 删除旧数据防止id冲突
                             //更新数据前 删除旧数据防止id冲突
                             syOrderDataItemService.deleteByID(sy2.getId());
                             syOrderDataItemService.deleteByID(sy2.getId());
                         }
                         }
@@ -264,6 +268,22 @@ public class AddOrderJob implements Job,ApplicationContextAware {
                     }
                     }
                     syItemList.add(sy2);
                     syItemList.add(sy2);
                 }
                 }
+                //处理U8已经删除的数据,单证系统也需要删除
+                //第一查询改订单下所有行数据
+                List<String> deleteId = new ArrayList<>();
+                QueryWrapper<SyOrderDataItem> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("sy_order_data_id",sy.getAccount()+orderID);
+                List<SyOrderDataItem> entityList = syOrderDataItemService.list(queryWrapper1);
+                for(SyOrderDataItem str:entityList){
+                    deleteId.add(str.getId());
+                }
+                //比对两个几个的差集,删除deleteId集合不存的ID
+                Collection subtract = CollectionUtils.subtract(deleteId, idsID);
+                for (Object s:subtract) {
+                    //删除没用的数据
+                    syOrderDataItemService.deleteByID(s.toString());
+                }
+
                 //添加单证id 原数据账套+原数据id
                 //添加单证id 原数据账套+原数据id
                 String syId = sy.getId();
                 String syId = sy.getId();
                 sy.setId(sy.getAccount()+sy.getId());
                 sy.setId(sy.getAccount()+sy.getId());