Commit c1ab10ca by 胡懿

台账保存逻辑修改

parent 32c60d61
......@@ -77,7 +77,6 @@ public class Ledger extends DataEntity<Ledger> {
this.model = model;
}
@NotNull(message="货架不能为空")
@ExcelField(title="货架id集合", align=2, sort=4)
public String getShelvesIds() {
return shelvesIds;
......
......@@ -185,6 +185,7 @@
warehouse_ids = #{warehouseIds},
code = #{code},
amount = #{amount},
num = #{num},
update_by = #{updateBy.id},
update_date = #{updateDate},
remarks = #{remarks}
......
......@@ -9,8 +9,10 @@ import java.util.*;
import com.jeeplus.modules.warehouse.ledger.dto.CountLedgerInfo;
import com.jeeplus.modules.warehouse.qrcode.entity.QrCode;
import com.jeeplus.modules.warehouse.qrcode.mapper.QrCodeMapper;
import com.jeeplus.modules.warehouse.shelves.entity.Shelves;
import com.jeeplus.modules.warehouse.shelves.utils.ShelvesUtil;
import com.jeeplus.modules.warehouse.storage.dto.CountStorageInfo;
import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -39,67 +41,17 @@ public class LedgerService extends CrudService<LedgerMapper, Ledger> {
public Ledger get(String id) {
Ledger ledger = super.get(id);
ledger.setLedgerInfoList(ledgerInfoMapper.findList(new LedgerInfo(ledger)));
return ledger;
}
public Ledger countLedger(String id) {
Ledger ledger = super.get(id);
List<CountLedgerInfo> countLedgerInfoList = ledgerInfoMapper.findCliList(new LedgerInfo(ledger));
Map<String, List<CountLedgerInfo>> map = new HashMap<>();
for (CountLedgerInfo countLedgerInfo : countLedgerInfoList) {
String batchNum = countLedgerInfo.getBatchNum();
List<CountLedgerInfo> list = map.get(batchNum);
if (null == list) {
list = new ArrayList<>();
list.add(countLedgerInfo);
map.put(countLedgerInfo.getBatchNum(), list);
} else {
list.add(countLedgerInfo);
}
}
List<CountLedgerInfo> cliList = new ArrayList<>();
for (Map.Entry<String, List<CountLedgerInfo>> entry : map.entrySet()) {
List<CountLedgerInfo> list = entry.getValue();
CountLedgerInfo cli = new CountLedgerInfo();
Set<String> wNameSet = new HashSet<>();
Set<String> sNameSet = new HashSet<>();
String shelvesNames = "";
int num = 0;
BigDecimal sum = new BigDecimal(0);
for (int i = 0; i < list.size(); i ++) {
CountLedgerInfo c = list.get(i);
if (i == 0) {
cli.setBatchNum(c.getBatchNum());
cli.setModel(c.getModel());
cli.setName(c.getName());
cli.setType(c.getType());
}
sNameSet.add(c.getShelves().getName());
/*if (i != list.size() - 1) {
shelvesNames = shelvesNames + c.getShelves().getName() + ",";
} else {
shelvesNames = shelvesNames + c.getShelves().getName();
}*/
wNameSet.add(c.getShelves().getWarehouse().getName());
num += c.getNum();
sum = sum.add(c.getSum());
}
String wNames = ShelvesUtil.mergerWarehouseName(wNameSet);
String sNames = ShelvesUtil.mergerWarehouseName(sNameSet);
cli.setShelvesNames(sNames);
cli.setWarehouseNames(wNames);
cli.setNum(num);
cli.setSum(sum);
cliList.add(cli);
List<LedgerInfo> ledgerInfoList = ledgerInfoMapper.findList(new LedgerInfo(ledger));
ledger.setLedgerInfoList(ledgerInfoList);
for (LedgerInfo li : ledgerInfoList) {
List<Shelves> shelvesList = ShelvesUtil.getShelvesListByIds(li.getShelvesIds());
li.setShelvesList(shelvesList);
List<Warehouse> warehouseList = ShelvesUtil.getWarehouseListByIds(li.getWarehouseIds());
li.setWarehouseList(warehouseList);
}
ledger.setCountLedgerInfoList(cliList);
return ledger;
}
public List<Ledger> findList(Ledger ledger) {
return super.findList(ledger);
......@@ -123,32 +75,9 @@ public class LedgerService extends CrudService<LedgerMapper, Ledger> {
if (null == oldLeger || StringUtils.isBlank(oldLeger.getId())) {
super.save(ledger);
} else {
String shelvesIds = ledger.getShelvesIds();
int num = ledger.getNum();
BigDecimal sum = ledger.getSum();
Set<String> set = new HashSet<>();
String [] sIdArr = shelvesIds.split(",");
String [] oldSIdArr = oldLeger.getShelvesIds().split(",");
for (String sId : sIdArr) {
set.add(sId);
}
for (String oSId : oldSIdArr) {
set.add(oSId);
}
List<String> list = new ArrayList<>();
for (String sid : set) {
list.add(sid);
}
String newSIds = "";
for (int i = 0; i < list.size(); i ++) {
if (i != list.size() - 1) {
newSIds = newSIds + list.get(i) +",";
} else {
newSIds = newSIds + list.get(i);
}
}
oldLeger.setShelvesIds(newSIds);
oldLeger.setNum(oldLeger.getNum() + num);
oldLeger.setSum(oldLeger.getSum().add(sum));
List<LedgerInfo> oldLedgerInfos = oldLeger.getLedgerInfoList();
......
......@@ -178,12 +178,6 @@ public class LedgerController extends BaseController {
return ledgerService.get(id);
}
@ResponseBody
@RequestMapping(value = "countLedger")
public Ledger countLedger(String id) {
return ledgerService.countLedger(id);
}
/**
* 导入Excel数据
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment