123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.dynamic.datasource.annotation.DSTransactional;
- import com.ruoyi.common.core.domain.BaseIdPo;
- import com.sd.SdApplication;
- import com.sd.business.entity.bom.po.BomSpec;
- import com.sd.business.entity.in.po.InOutStorageDetails;
- import com.sd.business.entity.inventory.po.Inventory;
- import com.sd.business.service.bom.BomSpecService;
- import com.sd.business.service.in.InOutStorageDetailsService;
- import com.sd.business.service.inventory.InventoryService;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringRunner;
- import java.math.BigDecimal;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- @RunWith(SpringRunner.class)
- @SpringBootTest(classes = SdApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
- public class C2_SyncInventoryTest {
- @Autowired
- private BomSpecService bomSpecService;
- @Autowired
- private InventoryService inventoryService;
- @Autowired
- private InOutStorageDetailsService inOutStorageDetailsService;
- /**
- * string修改库存
- */
- @DSTransactional
- @Test
- public void test() {
- String a = "204010400192 1442\n" +
- "204010400195 2170\n" +
- "204010400198 6\n" +
- "204010400193 926\n" +
- "204010400196 4125\n" +
- "204010400199 2";
- List<List<String>> list = Arrays.stream(a.split("\n"))
- .map(item -> Arrays.stream(item.split(" ")).filter(StrUtil::isNotBlank).collect(Collectors.toList()))
- .collect(Collectors.toList());
- Map<String, Long> bomSpecMap = bomSpecService.mapKV(BomSpec::getCode, BaseIdPo::getId, null);
- for (List<String> data : list) {
- String code = data.get(0);
- String quantity = data.size() == 1 ? "0" : data.get(1);
- Long bomSpecId = bomSpecMap.get(code);
- if (bomSpecId == null) {
- System.err.println(code + " 为空");
- }
- boolean update = inventoryService.update(q -> q
- .eq(Inventory::getBomSpecId, bomSpecId)
- .eq(Inventory::getWarehouseId, 1684037244354052098L)
- .eq(Inventory::getDepartmentId, 0L)
- .set(Inventory::getQuantity, quantity)
- );
- if (!update) {
- Inventory inventory = new Inventory();
- inventory.setBomSpecId(bomSpecId);
- inventory.setWarehouseId(1684037244354052098L);
- inventory.setDepartmentId(0L);
- inventory.setQuantity(new BigDecimal(quantity));
- inventory.setBalanceUnitPrice(BigDecimal.ZERO);
- inventoryService.save(inventory);
- System.err.println(code + " 0库存");
- }
- boolean update1 = inOutStorageDetailsService.update(q -> q
- .eq(InOutStorageDetails::getBomSpecId, bomSpecId)
- .eq(InOutStorageDetails::getWarehouseId, 1684037244354052098L)
- .eq(InOutStorageDetails::getDepartmentId, 0L)
- .set(InOutStorageDetails::getQuantity, quantity)
- );
- if (!update1) {
- System.err.println(code + " 0结存");
- InOutStorageDetails inOutStorageDetails = new InOutStorageDetails();
- inOutStorageDetails.setBomSpecId(bomSpecId);
- inOutStorageDetails.setWarehouseId(1684037244354052098L);
- inOutStorageDetails.setDepartmentId(0L);
- inOutStorageDetails.setQuantity(new BigDecimal(quantity));
- inOutStorageDetails.setInUnitPrice(BigDecimal.ZERO);
- inOutStorageDetailsService.save(inOutStorageDetails);
- }
- }
- }
- }
|