fix : better purchase status + better job name display

feature :client invoicing internal use
pull/6221/head
Gauthier LO 2024-01-08 12:23:09 +01:00
parent 5930515a90
commit 6f05d8c1bb
10 changed files with 69 additions and 21 deletions

View File

@ -6,9 +6,8 @@ import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.business.entity.Client;
import org.jeecg.modules.business.entity.ClientCategory;
import org.jeecg.modules.business.service.IUserClientService;
import org.jeecg.modules.system.entity.SysRole;
import org.jeecg.modules.system.service.ISysUserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -25,8 +24,6 @@ import java.util.Map;
public class UserClientController {
@Autowired
private IUserClientService userClientService;
@Autowired
private ISysUserRoleService sysUserRoleService;
/**
* Checks if the user is a client or internal user
* @return the client's info OR a list of clients
@ -37,15 +34,7 @@ public class UserClientController {
String userId = loginUser.getId();
Client client = userClientService.getClientMinInfoByUserId(userId);
if(client == null) {
List<SysRole> sysRoles = sysUserRoleService.getUserRole(userId);
boolean isAllowed = false;
for(SysRole sysRole: sysRoles) {
if(sysRole.getRoleCode().equals("admin") || sysRole.getRoleCode().equals("dev") || sysRole.getRoleCode().equals("Sales")){
isAllowed = true;
break;
}
}
if(isAllowed) {
if(loginUser.getOrgCode().contains("A01") || loginUser.getOrgCode().contains("A03")) {
Map<String, List<Client>> internalClientList = new HashMap<>();
internalClientList.put("internal", userClientService.listClients());
return Result.OK("internal usage", internalClientList);
@ -57,4 +46,8 @@ public class UserClientController {
clientMap.put("client", client);
return Result.ok(clientMap);
}
@GetMapping(value = "/getSelfServiceClients")
public Result<?> getSelfServiceClients() {
return Result.ok(userClientService.getClientsByCategory(ClientCategory.CategoryName.SELF_SERVICE.getName()));
}
}

View File

@ -544,6 +544,13 @@ public class InvoiceController {
if(entry.getKey().getProductAvailable().equals("0") && entry.getKey().getVirtualProductAvailable().equals("1"))
entry.getKey().setProductAvailable("2");
if(entry.getKey().getPurchaseInvoiceNumber() != null) {
PurchaseOrder purchase = purchaseOrderService.getPurchaseByInvoiceNumber(entry.getKey().getPurchaseInvoiceNumber());
if(purchase.getStatus().equals("1"))
entry.getKey().setProductAvailable("3");
else
entry.getKey().setProductAvailable("4");
}
BeanUtils.copyProperties(entry.getKey(), orderFront);
finalOrderAndStatus.add(MutableTriple.of(orderFront, ordersAndStatus.get(ordersAndStatus.size() - 1).getMiddle(), ordersAndStatus.get(ordersAndStatus.size() - 1).getRight()));
}
@ -1115,14 +1122,30 @@ public class InvoiceController {
return Result.OK().success("sys.api.syncRequestSubmitted");
}
@GetMapping(value = "/duplicateInvoiceNumberCheck")
public Result<?> duplicateInvoiceNumberCheck(@RequestParam("invoiceNumber") String invoiceNumber) {
if(iShippingInvoiceService.getShippingInvoice(invoiceNumber) != null
|| purchaseOrderService.getInvoiceId(invoiceNumber) != null
|| !platformOrderService.getPlatformOrdersByInvoiceNumber(invoiceNumber).isEmpty()) {
return Result.error("Invoice number already exists.");
public Result<?> duplicateInvoiceNumberCheck(@RequestParam(value = "id", required = false) String invoiceId,
@RequestParam("invoiceNumber") String invoiceNumber,
@RequestParam("invoiceType") String invoiceType) {
if(invoiceType.equals("purchase")) {
if(purchaseOrderService.getInvoiceId(invoiceNumber) != null) {
if(invoiceId != null && purchaseOrderService.getInvoiceId(invoiceNumber).equals(invoiceId))
return Result.OK("Invoice number not changed.");
else
return Result.error("Invoice number already exists.");
}
else {
return Result.OK("Invoice number is available.");
}
}
else {
return Result.OK("Invoice number is available.");
if(iShippingInvoiceService.getShippingInvoice(invoiceNumber) != null) {
if(invoiceId != null && iShippingInvoiceService.getShippingInvoice(invoiceNumber).getId().equals(invoiceId))
return Result.OK("Invoice number not changed.");
else
return Result.error("Invoice number already exists.");
}
else {
return Result.OK("Invoice number is available.");
}
}
}
}

View File

@ -31,4 +31,6 @@ public interface ClientUserMapper extends BaseMapper<UserClient> {
List<Client> listClients();
Client getClientMinInfoByUserId(@Param("userId") String userId);
List<Client> getClientsByCategory(@Param("category") String categoryName);
}

View File

@ -101,6 +101,7 @@ public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrder> {
String getInvoiceId(@Param("invoiceNumber") String invoiceNumber);
PurchaseOrder getPurchaseByInvoiceNumber(@Param("invoiceNumber") String invoiceNumber);
List<PurchaseOrder> getPurchasesByInvoiceNumber(@Param("invoiceNumber") String invoiceNumber);
List<PlatformOrder> getPlatformOrder(@Param("invoiceNumber") String invoiceNumber);

View File

@ -25,4 +25,13 @@
JOIN client c
ON c.id = user_client.client_id
</select>
<select id="getClientsByCategory" resultType="org.jeecg.modules.business.entity.Client">
SELECT c.*
FROM user_client
JOIN client c
ON c.id = user_client.client_id
JOIN client_category cc
ON cc.id = c.client_category_id
WHERE cc.name = #{category};
</select>
</mapper>

View File

@ -86,6 +86,13 @@
FROM purchase_order
WHERE invoice_number = #{invoiceNumber}
</select>
<select id="getPurchaseByInvoiceNumber" resultType="org.jeecg.modules.business.entity.PurchaseOrder">
SELECT *
FROM purchase_order
WHERE invoice_number = #{invoiceNumber}
ORDER BY create_time DESC
LIMIT 1;
</select>
<select id="getPurchasesByInvoiceNumber" resultType="org.jeecg.modules.business.entity.PurchaseOrder">
SELECT *
FROM purchase_order

View File

@ -122,6 +122,8 @@ public interface IPurchaseOrderService extends IService<PurchaseOrder> {
String getInvoiceId(String invoiceNumber);
PurchaseOrder getPurchaseByInvoiceNumber(String invoiceNumber);
List<PurchaseOrder> getPurchasesByInvoiceNumber(String invoiceNumber);
List<PlatformOrder> getPlatformOrder(String invoiceNumber);

View File

@ -12,4 +12,6 @@ public interface IUserClientService extends IService<UserClient> {
List<Client> listClients();
Client getClientMinInfoByUserId(String userId);
List<Client> getClientsByCategory(String categoryName);
}

View File

@ -28,4 +28,9 @@ public class UserClientServiceImpl extends ServiceImpl<ClientUserMapper, UserCl
public Client getClientMinInfoByUserId(String userId) {
return clientUserMapper.getClientMinInfoByUserId(userId);
}
@Override
public List<Client> getClientsByCategory(String categoryName) {
return clientUserMapper.getClientsByCategory(categoryName);
}
}

View File

@ -358,7 +358,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
Client client = clientService.getCurrentClient();
if(client == null) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(sysUser.getUsername().equals("admin")) {
if(sysUser.getOrgCode().contains("A01") || sysUser.getOrgCode().contains("A03")) {
String poId = platformOrderIDs.get(0);
client = clientService.getClientFromOrder(poId);
}
@ -584,7 +584,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
Client client = clientService.getCurrentClient();
if(client == null) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (sysUser.getUsername().equals("admin")) {
if (sysUser.getOrgCode().contains("A01") || sysUser.getOrgCode().contains("A03")) {
client = clientService.getClientFromPurchase(purchaseID);
}
}
@ -631,6 +631,10 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
return purchaseOrderMapper.getInvoiceId(invoiceNumber);
}
@Override
public PurchaseOrder getPurchaseByInvoiceNumber(String invoiceNumber) {
return purchaseOrderMapper.getPurchaseByInvoiceNumber(invoiceNumber);
}
@Override
public List<PurchaseOrder> getPurchasesByInvoiceNumber(String invoiceNumber) {
return purchaseOrderMapper.getPurchasesByInvoiceNumber(invoiceNumber);