mirror of https://github.com/jeecgboot/jeecg-boot
fix : better purchase status + better job name display
feature :client invoicing internal usepull/6221/head
parent
5930515a90
commit
6f05d8c1bb
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -12,4 +12,6 @@ public interface IUserClientService extends IService<UserClient> {
|
|||
List<Client> listClients();
|
||||
|
||||
Client getClientMinInfoByUserId(String userId);
|
||||
|
||||
List<Client> getClientsByCategory(String categoryName);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue